AI Agent 应用
整体框图
QQ / Channel
↓
OpenClaw Gateway (port 18789)
↓
rkllm3-server (port 7878) ──── 8 核 NPU ──── Qwen3-1.7B
(与 VLM/OCR 互斥)如果你只想用 OpenClaw,跳到 OpenClaw 适配 RK182X。
1. RK182X 上可以运行哪些 AI Agent 框架?
板端实测有 OpenClaw 在跑。
验证 OpenClaw 进程:
ps -ef | grep openclaw | grep -v grep输出:
linaro 2149 2124 1 14:28 ? 00:00:41 openclaw-gatewayrkllm3-server 与 VLM/OCR 服务共用 NPU,不能同时运行:需跑 LLM 推理服务时先停 VLM/OCR,再按 rkllm3-server 启动配置 启动(nohup 启动后 ppid 为 1,PID 随每次启动变化)。
验证 rkllm3-server 进程:
ps -ef | grep rkllm3 | grep -v grep2. OpenClaw 适配 RK182X
OpenClaw 是全功能 AI Agent 平台,调用 rkllm3-server 提供的 OpenAI 兼容 API。
2.1 实际版本与配置
OpenClaw 版本:
openclaw --version输出:
OpenClaw 2026.7.1-2 (0790d9f)命令路径:
which openclaw输出:
/home/linaro/.nvm/versions/node/v25.9.0/bin/openclaw服务状态:
openclaw gateway status 2>&1 | head -10输出:
Service: systemd user (enabled)
File logs: /tmp/openclaw/openclaw-2026-08-20.log
Command: /home/linaro/.nvm/versions/node/v25.9.0/bin/node /home/linaro/.nvm/versions/node/v25.9.0/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18789OpenClaw 当前有 3 个配置警告(版本管理器 PATH / Node 等),不影响运行但建议修复:
- PATH includes version managers
- Node from version manager
- System Node 22 LTS 未装
2.2 配置文件
~/.openclaw/openclaw.json:
cat ~/.openclaw/openclaw.json | head -30输出:
{
"meta": {
"lastTouchedVersion": "2026.3.24",
"lastTouchedAt": "2026-08-06T09:51:02.877Z"
},
"wizard": {
"lastRunAt": "2026-04-08T02:37:53.595Z",
"lastRunVersion": "2026.3.24",
"lastRunCommand": "onboard",
"lastRunMode": "local"
},
"acp": {
"defaultAgent": "main"
},
"models": {
"providers": {
"minimax": {
"baseUrl": "https://api.minimaxi.com/anthropic",
"apiKey": "sk-***(已脱敏)",
"api": "openai-completions",
"models": [
{
"id": "MiniMax-Text-01",
"name": "MiniMax-Text-01",
...cat ~/.openclaw/openclaw.json | grep -A 5 '"minimax"'输出:
"minimax": {
"baseUrl": "https://api.minimaxi.com/anthropic",
"apiKey": "sk-***(已脱敏)",
"api": "openai-completions",
...
}当前板端只有 MiniMax 一个 provider。实际 provider 以
setup.sh配置为准(可能是minimax/deepseek/glm等),详见 ch05 一键部署。
2.3 启动服务
# 板端实际跑的启动方式
openclaw gateway
# rkllm3-server
rkllm3-server \
-m /userdata/models/Qwen3-1.7B/Qwen3-1.7B.rknn \
--weight /userdata/models/Qwen3-1.7B/Qwen3-1.7B.weight \
--vocab /userdata/models/Qwen3-1.7B/Qwen3-1.7B.tokenizer.gguf \
--embed /userdata/models/Qwen3-1.7B/Qwen3-1.7B.embed.bin \
--embed-mmap \
-a Qwen3-1.7B \
--host 127.0.0.1 \
--port 7878 \
-c 0xff \
-n 512必须传
--weight参数,否则启动失败。
2.4 验证连接
需先启动 rkllm3-server(与 VLM/OCR 互斥)。输出内容随推理随机。
curl -s http://127.0.0.1:7878/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"Qwen3-1.7B","messages":[{"role":"user","content":"测试"}],"max_tokens":15}'输出:
{
"choices": [
{
"finish_reason": "length",
"index": 0,
"message": {
"role": "assistant",
"content": "<think>\n好的,我现在需要处理用户提供的查询:\"测试\"。首先,"
}
}
],
"created": 1787213136,
"model": "Qwen3-1.7B",
"system_fingerprint": "b5166-24345353",
"object": "chat.completion",
"usage": { "completion_tokens": 15, "prompt_tokens": 9, "total_tokens": 24 },
"id": "chatcmpl-vpO1Ka18Fv59AZz3DnDDV6AbmSpK5TfS",
"timings": {
"prompt_n": 9,
"prompt_ms": 94.885,
"prompt_per_token_ms": 10.542,
"predicted_n": 15,
"predicted_ms": 118.728,
"predicted_per_token_ms": 7.9152,
"predicted_per_second": 126.339
}
}
- 推理延迟:prompt 95ms + predicted 119ms
- Token 速度:~95 tokens/s(prompt),126 tokens/s(predicted)
3. rkllm3-server 启动配置
rkllm3-server 是 OpenAI 兼容的 LLM 推理后端。
3.1 启动(板端 Qwen3-1.7B)
rkllm3-server \
-m /userdata/models/Qwen3-1.7B/Qwen3-1.7B.rknn \
--weight /userdata/models/Qwen3-1.7B/Qwen3-1.7B.weight \
--vocab /userdata/models/Qwen3-1.7B/Qwen3-1.7B.tokenizer.gguf \
--embed /userdata/models/Qwen3-1.7B/Qwen3-1.7B.embed.bin \
--embed-mmap \
-a Qwen3-1.7B \
--host 127.0.0.1 \
--port 7878 \
-c 0xff \
-n 512rkllm3-server 与 VLM/OCR 服务共用 NPU,启动前需先停 VLM/OCR 服务;服务未启动时 7878 端口无监听。
3.2 验证服务
curl -s http://127.0.0.1:7878/v1/models输出:
{
"object": "list",
"data": [
{
"id": "Qwen3-1.7B",
"object": "model",
"owned_by": "rknn",
"meta": {
"vocab_type": 2,
"n_vocab": 151936,
"n_ctx_train": -1,
"n_embd": 2048,
"n_params": 0,
"size": 0
}
}
]
}3.3 采样参数
rkllm3-server --help 2>&1 | grep -E "(temp|top-k|top-p|repeat|penalty)"输出:
--temp N temperature (default: 0.8)
--top-k N top-k sampling (default: 40, 0 = disabled)
--top-p N top-p sampling (default: 0.9, 1.0 = disabled)
--repeat-penalty N penalize repeat sequence of tokens (default: 1.0, 1.0 = disabled)
--presence-penalty N repeat alpha presence penalty (default: 0.0, 0.0 = disabled)| 参数 | 默认值 | 用途 |
|---|---|---|
--temp | 0.8 | 温度 |
--top-k | 40 | top-k |
--top-p | 0.9 | top-p |
--repeat-penalty | 1.0 | 重复惩罚 |
--presence-penalty | 0.0 | 存在惩罚 |
--frequency-penalty | 0.0 | 频率惩罚 |
4. VLM 多模态启动
ls -lh /userdata/models/Qwen3-VL-2B/输出(节选):
总计 1.9G
-rwxr-xr-x 1 root root 8.1K 8月10日 14:34 inspect.sh
-rw-r--r-- 1 linaro linaro 20M 8月17日 13:51 llm_Qwen3-VL-2B.rknn
-rw-r--r-- 1 linaro linaro 1.1G 8月17日 13:52 llm_Qwen3-VL-2B.weight
-rw-r--r-- 1 linaro linaro 3.0K 8月11日 22:53 OCRBench.py
-rw-r----- 1 root root 11K 8月17日 15:24 ocr_server.py
-rwxr-xr-x 1 root root 1.1K 8月10日 14:34 ocr.sh
drwxr-xr-x 4 linaro linaro 4.0K 8月17日 15:22 PaddleOCR-VL
-rw-r--r-- 1 linaro linaro 594M 8月17日 13:55 Qwen3-VL-2B.embed.bin
-rwxr-xr-x 1 linaro linaro 240K 8月20日 14:00 test.jpg
drwxr-xr-x 2 linaro linaro 4.0K 8月 5日 17:04 tokenizer
-rw-r--r-- 1 linaro linaro 4.2M 8月17日 13:50 vision_Qwen3-VL-2B.rknn
-rw-r--r-- 1 linaro linaro 229M 8月17日 13:54 vision_Qwen3-VL-2B.weight
-rw-r----- 1 root root 11K 8月17日 14:01 vlm_server.py
-rwxr-xr-x 1 root root 913 8月10日 14:34 vl.sh启动 VLM 多模态服务:
rkllm3-server \
-m /userdata/models/Qwen3-VL-2B/llm_Qwen3-VL-2B.rknn \
--weight /userdata/models/Qwen3-VL-2B/llm_Qwen3-VL-2B.weight \
--model2 /userdata/models/Qwen3-VL-2B/vision_Qwen3-VL-2B.rknn \
--weight2 /userdata/models/Qwen3-VL-2B/vision_Qwen3-VL-2B.weight \
--vocab /userdata/models/Qwen3-VL-2B/Qwen3-VL-2B.tokenizer.gguf \
--embed /userdata/models/Qwen3-VL-2B/Qwen3-VL-2B.embed.bin \
--host 127.0.0.1 \
--port 7878 \
--img-start "<|vision_start|>" \
--img-end "<|vision_end|>" \
--img-content "<|image_pad|>" \
--img-width 384 --img-height 384 \
-c 0xff5. 三种 Agent 方案对比
| 场景 | 推荐方案 | 实测状态 |
|---|---|---|
| 需要 Web UI + 多 Channel | OpenClaw | 已部署 |
| 纯 API 推理 | rkllm3-server | 已部署(按需启动,与 VLM/OCR 互斥) |
6. 前置条件
systemctl is-active rknn3.service输出:
active7. 完整验证清单
7.1 RK182X NPU 服务
systemctl is-active rknn3.service && echo "✅ NPU service running"输出:
active
✅ NPU service runninglspci -d 1d87:182a输出:
0004:41:00.0 Processing accelerators: Rockchip Electronics Co., Ltd Device 182a (rev 01)ls -l /dev/pcie-rkep-*输出:
crw------- 1 root root 10, 123 8月20日 16:56 /dev/pcie-rkep-0004:41:00.07.2 rkllm3-server
需先启动 rkllm3-server,以下验证才有输出。
ps aux | grep rkllm3-server | grep -v grep输出:
linaro 111435 1.0 5.0 1062804 137636 ? Ssl 16:05 0:02 rkllm3-server -m /userdata/models/Qwen3-1.7B/Qwen3-1.7B.rknn --weight ... --vocab ... --embed ... --embed-mmap -a Qwen3-1.7B --host 127.0.0.1 --port 7878 -c 0xff -n 512curl -s http://127.0.0.1:7878/v1/models输出(服务运行时):
{
"object": "list",
"data": [
{
"id": "Qwen3-1.7B",
"object": "model",
"owned_by": "rknn",
"meta": { ... }
}
]
}7.3 OpenClaw
ps aux | grep openclaw-gateway | grep -v grep输出:
linaro 2149 1.0 5.3 18552316 430088 ? Ssl 14:28 0:42 openclaw-gatewaycurl -s http://127.0.0.1:18789/health输出:
{ "ok": true, "status": "live" }7.4 端到端测试
需先启动 rkllm3-server(与 VLM/OCR 互斥)。推理输出有随机性。
curl -s http://127.0.0.1:7878/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"Qwen3-1.7B","messages":[{"role":"user","content":"测试"}],"max_tokens":15}' \
| python3 -c "import sys, json; d=json.load(sys.stdin); print(d['choices'][0]['message']['content'])"输出(服务运行时实测,内容随推理随机):
<think>
好的,我现在需要处理用户提供的查询:"测试"。首先,8. 注意事项
启动顺序:所有组件按
rknn3.service→rkllm3-server→openclaw-gateway顺序启动 端口占用检查:netstat -tulpn | grep -E '(7878|18789)'> 日志查看:journalctl -u rknn3.service -f和tail -f /tmp/openclaw/openclaw-*.log
9. 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
openclaw gateway 启动失败 | Node 版本 / PATH 问题 | openclaw doctor --repair |
rkllm3-server 报 core_mask 8192 ... | -c 不是上下文 | LLM 用 -c 0xff |
port 7878 already in use | rkllm3-server / VLM 重复启动 | ss -tlnp | grep 7878 找占用 |
curl /v1/models 无响应 | rkllm3-server 未启动 | 后台跑 nohup rkllm3-server ... & |
| OpenClaw 报 PATH/Node 警告 | 用 nvm 装的 Node | openclaw doctor --repair |
| VLM 服务和 LLM 服务互斥 | 共用 NPU 内存 | 只跑一个,按场景切换 |
10. 下一步
- SKILL 使用手册 — 调用具体 Skill
- LLM 推理 — CLI / HTTP / Web 三种方式
- 工业异常检测 — VLM 实战
