Agent Hub:给你的 OpenClaw 装一个多模型军团

一句话:一条命令注册一个专家 agent,图片分析、写代码、翻译,各找各的专业户。

起因

  1. 主模型什么都干,但可能什么都干不精​——分析图片不如其他模型,写代码不如专门负责coding的模型。
  2. 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 agent CLI,继承 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 步:

  1. 备份 openclaw.json
  2. 添加 agent 到 openclaw.jsonagents.list
  3. 创建 agent 目录 + config.json
  4. 创建 workspace + SOUL.md
  5. 更新 agent-lists.json
  6. 重新生成 SKILL.md(OpenClaw 技能注册)
  7. openclaw doctor 验证配置
  8. 重启 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 插件)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐