第15章 协作模式实战
本章前置检查:
- □ 已完成OpenClaw与Hermes的ACP连接配置(第14章)
- □ 理解两种协作模式的区别(ask/delegate)
- □ 熟悉OpenClaw的Agent Teams基础(第3章)
- □ Hermes已正常启动且可接收任务
本章预估总时长:4小时
本章难点提示:
- 15.1节(规划者-执行者)是双Agent协作的经典模式,建议动手配置后反复运行几个任务,体会职责分离带来的稳定性。
- 15.3节(深度研究与内容处理)依赖Hermes的
web_search和memory能力,确保这两个工具集已启用。 - 15.5节(零代码联动)中
hermes claw migrate命令已在第14章介绍过,本节重点在于“如何将日常对话固化为一键触发的工作流”,不要跳过动手环节。 - 每个小节的实践任务建议按顺序完成,不要一次性全部配置完再测试,及时验证能更快定位问题。
🎯 本章教学目标:独立配置4种核心协作模式(规划者-执行者、定时监控巡检、深度研究、代码开发审查),掌握零代码联动技巧,能够根据实际问题灵活组合这些模式。
![图片[1]-OpenClaw Hermes 协作模式实战:规划者-执行者/定时巡检/深度研究/代码审查四模式全解](http://www.ifisme.cn/wp-content/uploads/2026/05/教材1502.png)
15.1 规划者-执行者模式
🎯 本节目标:搭建一个“项目经理+技术骨干”的双Agent协作流程,让OpenClaw负责拆解任务,Hermes负责具体执行。
预计时长:1小时
15.1.1 模式简介
规划者-执行者模式是双Agent协作中最基础、最常用的模式。OpenClaw扮演“规划者”角色:接收用户模糊的复杂需求,将其拆解为可执行的子任务,生成执行计划;Hermes扮演“执行者”角色:按OpenClaw给出的计划,依次调用工具完成每个步骤,并返回结果。
工作流程:
用户(飞书):“帮我分析一下这个项目的代码质量”
↓
OpenClaw:拆解任务 → 生成计划
├─ 步骤1:克隆代码仓库
├─ 步骤2:运行静态分析工具(pylint)
├─ 步骤3:计算圈复杂度
└─ 步骤4:生成报告
↓
OpenClaw将计划通过ACP发送给Hermes
↓
Hermes依次执行步骤1-4,将中间结果返回给OpenClaw(可选流式回调)
↓
Hermes将最终报告通过ACP返回
↓
OpenClaw格式化报告,推送到飞书
15.1.2 配置OpenClaw的“规划者”角色
在OpenClaw中创建一个专门的Agent(例如planner_agent),并在其AGENTS.md中定义规划能力。
创建Agent目录:
bash
mkdir -p ~/.openclaw/workspace/agents/planner cd ~/.openclaw/workspace/agents/planner
AGENTS.md:
markdown
--- name: Project Planner role: 任务拆解与规划专家 type: team_lead --- ## 职责 - 接收用户的复杂任务描述 - 将任务拆解为3-7个可执行的子步骤 - 为每个子步骤指定所需工具集(Hermes侧可用) - 将子任务序列化后委托给执行者Agent ## 工作流 1. 分析用户输入,理解最终目标 2. 拆解任务,生成结构化计划(JSON格式) 3. 调用`acp_delegate`工具,将计划和必要数据发送给Hermes执行者 4. 合并Hermes返回的结果,生成最终回复 ## 约束 - 每个子步骤必须明确且可独立验证 - 执行计划必须包含回退策略(如果某步失败,如何处理) - 对于超过30秒的任务,要求Hermes启用流式进度回调
在OpenClaw配置中将该Agent与渠道绑定(例如飞书群):
yaml
# openclaw.yaml
gateway:
bindings:
- channel: feishu
groupId: "oc_xxxx" # 研发群组ID
agent: planner
15.1.3 配置Hermes的“执行者”角色
Hermes无需特殊配置,但需要确保:
- 工具集完整(
terminal、file、code_execution等已启用) - 接收ACP委托请求的权限已开启(默认开启)
验证Hermes可被委托:
bash
# 通过OpenClaw CLI测试
openclaw acp call --connection hermes-local --method agent/delegate \
--params '{"task":"列出当前目录的前5个文件","callback_uri":"acp://openclaw:3000/callback"}'
应能正常返回结果。
15.1.4 实战演练:代码质量分析
- 用户在飞书群发送:“请分析
https://github.com/example/project的代码质量,给出改进建议。” - OpenClaw的
plannerAgent接收消息,拆解为:- 子任务1:克隆仓库到临时目录
- 子任务2:运行
pylint获取评分 - 子任务3:运行
radon cc计算圈复杂度 - 子任务4:汇总结果生成Markdown报告
- OpenClaw将子任务列表通过ACP发送给Hermes。
- Hermes依次执行,每完成一步发回进度(例如“克隆完成,正在分析”)。
- Hermes执行完毕,返回完整报告。
- OpenClaw将报告格式化后推送到飞书群。
龙马注:这个模式成功的关键是OpenClaw拆解出的子任务粒度要适中——太粗(如“分析代码质量”)Hermes仍然不知道具体步骤;太细(如“运行pylint并输出到/tmp/result.txt”)又失去了灵活性。我的经验是:每个子任务应该是一个工具可以完成的一类操作,例如“运行静态分析”“计算复杂度”“查找TODO注释”各为一个子任务。
🛠️ 实践任务(本节):
- 创建一个简单的拆解任务(如“备份当前目录到/tmp/backup”),手动写出拆解计划。
- 一步一步模拟OpenClaw调用
acp_delegate,观察Hermes执行并返回结果。 - (可选)配置飞书群绑定
plannerAgent,发送一个复杂需求,观察整个流程。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
15.2 定时监控与巡检
🎯 本节目标:利用OpenClaw的Cron定时能力 + Hermes的深度检查能力,搭建自动化巡检系统。
预计时长:0.8小时
15.2.1 模式简介
OpenClaw内置Cron调度器,可以精确控制任务触发时间;Hermes拥有丰富的系统检查工具(磁盘、内存、服务健康、日志分析等)。两者结合,可以实现“定时触发 + 智能分析 + 多渠道告警”的完整巡检闭环。
典型流程:
- OpenClaw Cron每天早上8点触发任务:“检查生产服务器健康状态”
- OpenClaw将该任务委托给Hermes(通过ACP)
- Hermes执行检查(磁盘使用率、内存、关键服务API、错误日志)
- Hermes分析结果,生成健康报告(正常/警告/严重)
- Hermes将报告通过ACP返回给OpenClaw
- OpenClaw根据报告的严重程度,决定推送到不同渠道(正常→研发群摘要;警告→@相关负责人;严重→电话告警)
15.2.2 创建定时巡检任务
通过OpenClaw CLI创建Cron任务:
bash
openclaw cron add \ --name "daily_server_health" \ --cron "0 8 * * *" \ --tz Asia/Shanghai \ --message "请对生产服务器进行全面健康检查,包括CPU、内存、磁盘、关键API响应时间。如发现异常,标记严重级别并附上排查建议。" \ --skill health_checker # 可选,如果已有封装好的Skill
或者通过OpenClaw的Web UI添加(第5章)。
15.2.3 Hermes侧的健康检查Skill(示例)
在Hermes中创建一个Skill,专门用于服务器巡检。可通过对话让Hermes自动生成,或手动编写~/.hermes/skills/health_checker/SKILL.md:
markdown
---
name: health_checker
description: 执行系统健康检查,输出结构化报告
---
# 健康检查技能
## 触发条件
- 用户要求“检查服务器健康”
- 定时任务触发
## 执行步骤
1. 使用`terminal`工具执行`df -h`获取磁盘使用率
2. 执行`free -m`获取内存使用情况
3. 执行`top -bn1 | head -5`获取CPU负载
4. 使用`web`工具调用内部API健康端点(如`/health`)
5. 分析上述数据,生成报告:
- 正常:所有指标在阈值内
- 警告:某项指标超过80%
- 严重:某项指标超过95%或API不可达
6. 输出JSON格式报告,包含`status`、`metrics`、`recommendations`字段
## 输出示例
{"status": "warning", "metrics": {"disk_used_percent": 85}, "recommendations": "清理/var/log"}
15.2.4 多级告警推送策略
在OpenClaw侧,可以根据Hermes返回的status字段,决定将消息推送到不同渠道。
配置方法:在OpenClaw中编写一个简单的“后处理”逻辑(可通过AGENTS.md的工作流实现,或使用Webhook)。例如:
status = "normal"→ 推送到研发群(普通频道)status = "warning"→ 推送到运维群,并@运维负责人status = "critical"→ 推送到告警群,同时调用短信/电话网关
沈飞注:在量化实盘中,我们将巡检频率提高到每15分钟一次,重点监控交易API的延迟和行情数据源的连接状态。Hermes会将每次检查结果写入共享记忆,OpenClaw Cron产生的报告会对比历史数据,如果发现延迟持续升高但未达阈值,也会提前预警。
🛠️ 实践任务(本节):
- 手动触发一次健康检查(通过OpenClaw CLI模拟Cron触发),观察Hermes执行和返回结果。
- 根据返回结果,在OpenClaw中演示如何根据
status字段分流推送(可以先用日志输出模拟)。 - (可选)创建一个真正定时的Cron任务,设置在非业务高峰期测试,验证自动执行。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
15.3 深度研究与内容处理
🎯 本节目标:利用OpenClaw的多渠道聚合能力和Hermes的深度研究工具链,实现自动化信息收集与报告生成。
预计时长:0.8小时
15.3.1 模式简介
很多场景需要从多个渠道(飞书群、邮件、RSS、GitHub Issues)收集信息,然后进行深度分析并生成结构化报告。OpenClaw是天然的信息聚合器,Hermes是强大的研究助手。
典型流程:
- OpenClaw通过多个渠道(飞书、Telegram、邮件)收集用户关于“AI Agent最新进展”的提问。
- OpenClaw去重合并,将问题作为研究任务发送给Hermes。
- Hermes执行搜索(
web_search)、阅读文献(web_fetch)、总结提炼(memory、技能复用)。 - Hermes生成结构化研究报告(包括摘要、关键发现、参考资料)。
- OpenClaw将报告分发回各个提问渠道,并存入共享知识库。
15.3.2 启用Hermes的研究工具集
确保Hermes的web和memory工具集已启用(默认启用)。检查配置:
bash
hermes config get toolsets.enabled # 应包含 web, browser, file, memory 等
如果缺少,通过hermes config set启用。
15.3.3 配置OpenClaw的聚合与分发
在OpenClaw中创建一个专门的“研究协调员”Agent(research_coordinator),负责消息聚合和分发。
AGENTS.md:
markdown
## 工作流 1. 收集过去24小时内所有渠道中与研究主题相关的消息(通过消息历史API) 2. 使用LLM去重合并,提炼出3-5个核心问题 3. 将每个问题作为单独的子任务,通过ACP委托给Hermes(并发执行) 4. 等待所有子任务完成,将结果汇总为一份综合报告 5. 将报告推送到各个提问渠道(保留渠道标识)
关键点:OpenClaw需要能够访问消息历史。这可以通过OpenClaw内置的memory_search工具实现(如果历史已存储),或通过调用飞书/Telegram的API获取。
15.3.4 实战:每日行业研究简报
场景:每天早上9点,OpenClaw自动聚合过去24小时内研发群、市场群、邮件列表中关于“AI Agent”的讨论,交给Hermes深度研究,生成简报,并在9:30前推送到管理层群。
步骤:
- 在OpenClaw中创建Cron任务,触发
research_coordinatorAgent。 - Agent调用
memory_search(或API)获取相关消息。 - 聚合去重后,将研究任务通过ACP发送给Hermes。
- Hermes执行搜索、阅读、总结,返回报告。
- OpenClaw将报告格式化为Markdown,通过飞书推送给管理层群。
龙马注:这个模式最考验的是OpenClaw的消息聚合能力。如果你的OpenClaw没有存储所有渠道的历史消息(例如只存了飞书),可以考虑先用单独的脚本把各渠道消息导入到共享数据库,然后让OpenClaw去读数据库。第16章“共享记忆”提供了架构参考。
🛠️ 实践任务(本节):
- 手动模拟一个研究任务:通过OpenClaw CLI输入“请研究DeepSeek-V4的最新特性”,观察Hermes如何调用
web_search和web_fetch。 - 尝试修改研究任务要求,让Hermes生成“摘要+优缺点对比+参考资料”格式的报告。
- (可选)配置一个定时任务,每天早上自动生成一份新闻摘要(使用公共RSS源)。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
15.4 代码开发与审查
🎯 本节目标:利用Hermes的代码理解和生成能力,搭建自动化代码开发与审查流水线。
预计时长:0.8小时
15.4.1 模式简介
OpenClaw可以作为开发流程的入口(接收Issue、PR指令),Hermes负责实际的代码编写、测试、审查。该模式适用于自动化修复已知bug、生成单元测试、代码重构等任务。
典型流程:
- 开发者在飞书/Telegram中发送:“请为
utils.py中的parse_csv函数编写单元测试” - OpenClaw将指令转发给Hermes
- Hermes读取
utils.py源码,分析函数逻辑,生成test_utils.py,包含正常路径和边界条件测试 - Hermes运行测试,如果失败则自动修复代码或测试
- Hermes将生成的测试文件和运行结果通过ACP返回给OpenClaw
- OpenClaw创建GitHub PR或直接提交到代码库
15.4.2 Hermes的代码审查Skill
Hermes内置强大的代码分析和生成能力(code_interpreter、file),我们可以通过Skill固化代码审查流程。
创建Code Review Skill(可手动编写或让Hermes自动生成):
markdown
--- name: code_reviewer description: 对指定代码文件进行质量审查,输出改进建议 --- ## 执行步骤 1. 使用`file`工具读取目标文件内容 2. 分析代码结构(函数长度、复杂度、重复代码) 3. 检查潜在bug(空指针、资源未关闭、异常处理) 4. 对照项目规范(PEP8等)检查风格 5. 生成审查报告,包含: - 总体评分(1-10) - 严重的3个问题(按优先级排序) - 改进建议和示例代码
15.4.3 集成GitHub/GitLab
OpenClaw可以通过GitHub Skill或MCP Server与Git托管平台交互。推荐使用hermes MCP添加GitHub Server(第11章)。配置后,Hermes可以直接操作Issue、PR、分支。
配置GitHub MCP Server(Hermes侧):
yaml
# ~/.hermes/config.yaml
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "your_token"
重启Hermes后,/tools列表会出现github_*工具。OpenClaw可以通过ACP调用这些工具。
15.4.4 实战:自动生成PR修复简单bug
场景:飞书群中有人报告“登录接口有时返回500错误”,并附上错误堆栈。
- OpenClaw接收消息,提取错误堆栈。
- OpenClaw将任务发送给Hermes:“分析这个错误,定位代码位置,修复并提交PR。”
- Hermes读取错误堆栈,推断出问题可能位于
auth.py的validate_token函数。 - Hermes克隆仓库,创建分支
fix/token-validation。 - Hermes修改代码,增加空值检查。
- Hermes运行单元测试(通过
code_interpreter)。 - Hermes提交代码,推送到远程,并通过GitHub MCP创建PR,标题“修复token验证空指针异常”。
- Hermes将PR链接返回给OpenClaw。
- OpenClaw推送到飞书群,@报告者:“已创建PR #123,请审阅。”
沈飞注:在量化策略开发中,我们把这个模式用在因子代码的自动修正上。当回测报告提示某个因子计算出错时,Hermes可以自动读取因子源码、分析错误、修正参数,然后重新回测。如果修正后效果优于原版,就自动提交PR;如果更差,就记录到共享记忆供研究员分析。
🛠️ 实践任务(本节):
- 准备一个简单的Python文件(含一个已知bug),让Hermes定位并修复。
- (可选)配置GitHub MCP,创建一个测试仓库,让Hermes自动创建PR。
- 记录Hermes的每一步操作,观察其代码分析能力。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
15.5 零代码联动与技能一键迁移实践
🎯 本节目标:掌握将已有OpenClaw Skill迁移到Hermes的方法,利用自然语言创建联动工作流,实现“说句话就能让双Agent协作”。
预计时长:0.8小时
15.5.1 已有OpenClaw Skill如何迁移到Hermes
我们在第14章已经介绍了hermes claw migrate命令,本节重点讲迁移后的验证和优化。
迁移后验证步骤:
- 迁移完成后,运行
hermes skills list确认Skill已出现在列表中。 - 选择一个简单的Skill(如
weather),在Hermes中手动调用测试:bash复制下载hermes -c “使用weather技能查询北京的天气” - 如果Skill依赖特定的环境变量(如
OPENWEATHER_API_KEY),确保已添加到~/.hermes/.env。 - 如果Skill包含脚本(
scripts/),检查脚本的shebang和依赖是否在Hermes环境中可用。 - 对于复杂的Skill,建议在Hermes中开启
experimental模式(第10章),试运行几天确认无误后再正式启用。
常见迁移问题及解决:
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Skill未出现在列表中 | SKILL.md frontmatter格式不兼容 | 手动修改为agentskills.io标准格式 |
| 执行时报错“command not found” | 脚本依赖的二进制在Hermes环境PATH中不存在 | 修改SKILL.md,使用绝对路径或安装依赖 |
| 环境变量未加载 | 迁移时未复制.env配置 | 手动在Hermes的.env中添加相应变量 |
| 工具不存在 | OpenClaw Skill调用了OpenClaw特有工具 | 修改Skill改用Hermes的工具名,或通过ACP回调OpenClaw执行 |
15.5.2 “飞书 + OpenClaw + Hermes”三人协作模板
这是一个开箱即用的模板,让用户通过飞书自然语言消息,就能触发双Agent协作。
模板结构:
- 飞书:用户交互界面
- OpenClaw:接收消息、解析意图、路由决策
- Hermes:执行具体任务
配置步骤:
- 在OpenClaw中创建意图识别Agent(
intent_router):markdown复制下载## 职责 – 分析用户消息,判断任务类型(开发、研究、运维、通用) – 根据任务类型,选择合适的处理方式: – 简单任务:OpenClaw直接回答 – 代码/研究/分析任务:委托给Hermes - 配置飞书渠道绑定到
intent_router(见15.1.2)。 - 编写意图识别规则(可在AGENTS.md的工作流中用自然语言描述):text复制下载- 如果消息包含“写代码”“修复”“单元测试” → 委托给Hermes开发模式 – 如果消息包含“研究”“搜索”“分析” → 委托给Hermes研究模式 – 如果消息包含“检查”“监控”“健康” → 委托给Hermes巡检模式 – 否则 → OpenClaw自己回复
- 在Hermes中为每种模式创建对应的Skill(可使用迁移过来的Skill或新建)。
测试:
- 在飞书中发送:“写一个Python函数,计算斐波那契数列”
- 观察OpenClaw判断为开发任务 → 委托Hermes → Hermes生成代码 → 返回结果 → 飞书收到答案
龙马注:这个模板我用了两个月,覆盖了团队日常80%的AI需求。关键是意图识别规则要不断迭代——初期会有一些误判(比如把“研究一下某个技术方案”误判为简单对话),每次遇到就补充规则到AGENTS.md。积累一个月后,准确率能到95%以上。
15.5.3 零配置联动案例:从发送消息到自动执行并返回结果
目标:用户无需任何额外配置,只需加入飞书群,就能享受双Agent协作能力。
实现方案:
- 将OpenClaw和Hermes部署为一套公共服务(固定账号)。
- 新用户加入飞书群时,机器人自动发送欢迎消息和使用说明。
- 所有用户的请求都通过同一个
intent_routerAgent处理。 - Hermes作为后端服务无状态地接收和处理任务。
注意事项:
- 需要实现多租户隔离(通过
session_id区分不同用户)。 - 对于涉及敏感数据的任务(如私人代码仓库),需要引导用户进行OAuth授权。
- 可以考虑使用共享记忆(第16章)存储每个用户的偏好,实现个性化体验但仍保持零配置。
🛠️ 实践任务(本节):
- 选择一个已有的OpenClaw Skill(例如你之前开发的
news_summarizer),执行hermes claw migrate,并手动测试迁移后的版本。 - 在OpenClaw中创建一个简单的意图识别规则,将至少两种不同类型的任务委托给Hermes。
- 通过飞书发送测试消息,验证路由和委托流程。
💭 本节总结(不看书写3行):
📊 用时记录:计划____min → 实际____min → 偏差原因:________
第15章 参考资料与扩展阅读
- OpenClaw Agent Teams文档(官方) https://docs.openclaw.ai/zh-CN/agents/teams
- Hermes Agent代码解释器与审查最佳实践 https://hermes-agent.nousresearch.com/docs/features/code-interpreter
- 双Agent协同:规划者-执行者模式详解 https://developer.aliyun.com/article/1730226
- GitHub MCP Server配置指南 https://modelcontextprotocol.io/servers/github
- 飞书 + OpenClaw + Hermes 零代码联动实现多渠道智能客服(实战) https://www.ai-indeed.com/encyclopedia/19624.html
- Skill迁移常见问题与兼容性矩阵 https://openclaw.com/blog/claw-migrate-troubleshooting
第三篇综合任务(第15章完成后)
任务:完成以下所有检查项,并记录输出。
- ✓ 规划者-执行者:创建一个简单任务的拆解计划,并通过ACP成功委托Hermes执行。
- ✓ 定时监控巡检:创建一个Cron任务,每天定时执行健康检查,并输出报告。
- ✓ 深度研究:通过OpenClaw发送一个研究主题,Hermes成功调用
web_search并返回结构化报告。 - ✓ 代码开发审查:让Hermes为一个简单的Python函数生成单元测试,并成功运行。
- ✓ 零代码联动:成功迁移至少1个OpenClaw Skill到Hermes并在飞书聊天中触发。
- (可选)配置意图识别路由,测试至少3种不同类型的消息正确委托。
完成后,保存一份协作模式测试日志,命名为chapter15_collaboration_logs.md。
龙马的评审:
15.5节的零代码联动是混合部署的核心价值。我建议读者把“规划者-执行者”和“零代码联动”结合起来——在OpenClaw的 intent_routerAgent中,可以用迁移过来的Skill作为意图识别的依据。例如,如果用户消息触发了code_reviewerSkill的关键词,就自动委托给Hermes的代码审查模式。这样意图识别规则会越来越智能。
另外,15.4节的代码审查Skill在实际使用时,建议将Hermes的 code_interpreter沙箱配置为只读模式,防止修改代码前未经确认。我们的实践是:审查只输出报告,不自动修改;确认后再单独发送“修复”指令。
沈飞的评审:
在量化策略开发中,15.3节的深度研究模式被我们用于自动分析研报和基本面数据。Hermes每周日凌晨2点会被OpenClaw Cron唤醒,去抓取指定券商的策略周报,然后用自然语言总结出对当前持仓可能的影响,最后将结果推送到风控群。整个流程无人干预。
15.5节的零代码联动对于新加入团队的成员非常友好。他们不需要学习任何命令,直接在飞书群里@机器人说人话,机器人就能自动判断是查行情还是做回测。运维成本集中在意图识别规则的持续优化上,但相比培训成本,收益仍然可观。
下一章预告:第16章 共享记忆与持续改进 —— 你将学习如何让OpenClaw和Hermes共享长期记忆,实现“一个Agent学到的知识,另一个Agent也能用”。这是从“协作”走向“共生”的关键一步。























暂无评论内容