Agent Hub:给你的 OpenClaw 装一个多模型军团
Agent Hub:给你的 OpenClaw 装一个多模型军团
一句话:一条命令注册一个专家 agent,图片分析、写代码、翻译,各找各的专业户。
起因
- 主模型什么都干,但可能什么都干不精——分析图片不如其他模型,写代码不如专门负责coding的模型。
- OpenClaw 的 agent 是独立的——没有内置机制让 main agent 把任务派给其他 agent。
于是有了 Agent Hub。
它是什么
Agent Hub 是一个主从式多 agent 调度系统。用户和 main agent 交互,由 main agent 通过 Skill 机制调用 hub.py,把任务分发给专业 agent。
agent-hub/
├── hub.py # 核心:CLI 封装 + 媒体预处理
├── agent-lists.json # 配置:你的 agent 清单
├── add_agent.sh # 一键注册新 agent
├── remove_agent.sh # 一键移除 agent
├── silk2wav.js # 语音格式转换(QQ 语音适配)
├── voice_analyze.sh # 语音分析流水线
└── requirements.md # 依赖清单
设计哲学:不造轮子,封装 openclaw agent CLI。认证、工具权限、会话管理,全由 OpenClaw Gateway 兜底;hub.py 只负责本地预处理(URL 下载、媒体格式包装、QQ 标签生成)。
架构一眼看懂
用户与 main agent 对话
│
▼
main agent 判别意图,根据 SKILL.md 选择调用 hub.py
│
▼
hub.py <agent-id> "<task>" [-i img.jpg ...]
│
├─ 读取 agent-lists.json
│ │
│ ▼
│ 找到对应 agent + model
│
├─ 下载 URL 资源到本地(如果是 HTTP 链接)
│
├─ 包装成 [media attached: ...] 格式
│
▼
openclaw agent --agent <id>
│
▼
OpenClaw Gateway
│
├─► omni-agent (healer-alpha) → 图片/视频/音频
├─► coder-agent (qwen3-coder) → 代码生成
└─► translator-agent (step-3.5) → 翻译润色
│
▼
返回结果 → hub.py 包装 → main agent 汇总 → 用户
关键点:
- main agent 通过 SKILL.md 学习如何调用 hub.py(参数格式、capabilities 匹配)
- hub.py 不直接调 API,只封装
openclaw agentCLI,继承 Gateway 的权限体系
快速部署(5 分钟上手)
前置条件
- OpenClaw >= 2026.3.8(支持
--json输出和agents.list配置) - 至少配置了一个 OpenRouter API key(或其他 provider)
- Python 3 + Node.js
silk-wasm模块(用于 QQ 语音转换,路径:~/.openclaw/extensions/qqbot/node_modules/silk-wasm)
⚠️ 注意:如果你需要语音分析功能,必须先安装 qqbot 插件,因为
silk2wav.js硬编码了依赖路径。
Step 1:拷贝文件
cp -r agent-hub/ ~/.openclaw/workspace/agent-hub/
cd ~/.openclaw/workspace/agent-hub/
Step 2:配置你的 Agent 清单
编辑 agent-lists.json:
{
"agents": {
"omni-agent": {
"model": "openrouter/healer-alpha",
"description": "全模态:图片/视频/音频分析",
"emoji": "👁️",
"capabilities": ["image", "video", "audio", "vision", "multimodal"]
},
"coder-agent": {
"model": "openrouter/qwen/qwen3-coder:free",
"description": "代码生成/调试/优化",
"emoji": "💻",
"capabilities": ["code", "debug", "refactor"]
},
"translator-agent": {
"model": "openrouter/stepfun/step-3.5-flash:free",
"description": "多语言翻译/文本润色",
"emoji": "🌐",
"capabilities": ["translate", "polish"]
}
}
}
capabilities 目前用于文档化和列表展示,手动指定 agent 是必须的:
# 正确:明确指定用哪个 agent
python3 hub.py coder-agent "写个快速排序"
# 错误:没有自动路由,不能只说"写代码"让系统自己选
Step 3:注册 Agent 到 OpenClaw
一条命令完成注册:
bash add_agent.sh omni-agent "openrouter/healer-alpha" \
"全模态分析" "你是视觉分析专家,擅长描述图像、视频和音频内容。"
bash add_agent.sh coder-agent "openrouter/qwen/qwen3-coder:free" \
"代码专家" "你是编程专家,写出简洁高效的代码,附带必要的注释。"
bash add_agent.sh translator-agent "openrouter/stepfun/step-3.5-flash:free" \
"翻译专家" "你是多语言翻译专家,保留原文风格和语气。"
add_agent.sh 自动执行 8 步:
- 备份
openclaw.json - 添加 agent 到
openclaw.json的agents.list - 创建 agent 目录 +
config.json - 创建 workspace +
SOUL.md - 更新
agent-lists.json - 重新生成
SKILL.md(OpenClaw 技能注册) openclaw doctor验证配置- 重启 Gateway + 自动测试
Step 4:验证
# 查看注册的 agent
python3 hub.py list
# 测试图片分析(自动下载 URL)
python3 hub.py omni-agent "描述内容" -i https://example.com/photo.jpg
# 测试代码生成(JSON 输出)
python3 hub.py coder-agent "用 Python 写个 Hello World" --json
你可以自定义什么
1. 换模型
# 换成 deepseek-coder
bash add_agent.sh coder-agent "openrouter/deepseek/deepseek-coder" \
"代码专家" "你是编程专家。"
# 用付费模型做深度推理
bash add_agent.sh brain-agent "openrouter/anthropic/claude-3-opus" \
"深度推理" "你是推理专家,擅长复杂问题分析。"
2. 加能力标记(供扩展使用)
capabilities 字段目前用于文档,你可以加自定义标记,后续在 hub.py 中实现自动路由:
"capabilities": ["math", "statistics", "latex", "long-context"]
3. QQ 富媒体输出
加 --qq 参数,输出带 <qqimg> / <qqvoice> / <qqvideo> 标签,直接发给 QQ 机器人:
python3 hub.py omni-agent "描述这张图" -i photo.jpg --qq
4. 自定义 System Prompt
add_agent.sh 的最后一个参数就是 system prompt,直接写:
bash add_agent.sh poet-agent "openrouter/anthropic/claude-3-opus" \
"诗人" "你是一位现代诗人,擅长用简洁的语言表达深刻的情感。回复控制在 4 行以内。"
5. 多模态组合
支持任意组合:
# 图片 + 视频对比
python3 hub.py omni-agent "对比这两张图和这段视频" -i a.jpg -i b.jpg -v clip.mp4
# 纯音频分析(注意:healer-alpha 分析声音特征,不做语音转文字)
python3 hub.py omni-agent "这段录音的背景噪音是什么类型" -a recording.wav
踩坑实录
坑 1:免费模型限流
OpenRouter 的 :free 模型限流约 8 次/分钟。如果同时触发多个 agent,会撞 429。
应对:关键任务用付费模型,或加 sleep 8 间隔。
坑 2:healer-alpha 的 audio 不是语音转录
它能分析声音特征(频率分布、振幅变化、噪音类型),但不能输出文字 transcript。要语音转文字,需要额外装 whisper:
pip3 install faster-whisper
# 然后自己封装一个 whisper-agent
坑 3:视频分析超时
大视频文件可能超过默认 120 秒超时。建议先用 ffmpeg 裁剪:
ffmpeg -i big_video.mp4 -t 10 -c copy short_clip.mp4
python3 hub.py omni-agent "描述这段视频" -v short_clip.mp4 -t 300
坑 4:silk-wasm 路径硬编码
如果 silk2wav.js 报错 Cannot find module 'silk-wasm',检查:
ls ~/.openclaw/extensions/qqbot/node_modules/silk-wasm
# 不存在的话,先装 qqbot 插件或手动 npm install silk-wasm 到该路径
扩展思路
基于现有代码结构,这几个扩展比较自然:
| 扩展 | 切入点 | 实现提示 |
|---|---|---|
| 自动路由 | hub.py 开头加意图分类 |
用关键词匹配或轻量模型判断该调哪个 agent |
| 结果缓存 | call_agent() 前 |
对 (agent_id, task, media_paths) 做 hash,缓存到 ~/.openclaw/hub/cache/ |
| 媒体缓存 | prepare_media() 内 |
按 URL MD5 存下载文件,避免重复下载 |
| 批量处理 | 新加 batch.py |
遍历文件夹,逐个调 hub.py,结果写 CSV/JSONL |
| Web API | 用 FastAPI 包装 | 暴露 /agent/{agent_id} endpoint,接收 multipart/form-data |
总结
Agent Hub 解决的问题很简单:不要让一个模型干所有事。
专业的事交给专业的模型,hub.py 做预处理和封装,OpenClaw 做底层调度。三件套组合起来,5 分钟部署,一条命令加 agent。
去试试吧。
项目位置: Agent Hub
依赖: OpenClaw >= 2026.3.8 + Python 3 + Node.js + silk-wasm(qqbot 插件)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)