第15章 协作模式实战

第15章 协作模式实战

本章前置检查

  • □ 已完成OpenClaw与Hermes的ACP连接配置(第14章)
  • □ 理解两种协作模式的区别(ask/delegate)
  • □ 熟悉OpenClaw的Agent Teams基础(第3章)
  • □ Hermes已正常启动且可接收任务

本章预估总时长:4小时

本章难点提示

  • 15.1节(规划者-执行者)是双Agent协作的经典模式,建议动手配置后反复运行几个任务,体会职责分离带来的稳定性。
  • 15.3节(深度研究与内容处理)依赖Hermes的web_searchmemory能力,确保这两个工具集已启用。
  • 15.5节(零代码联动)中hermes claw migrate命令已在第14章介绍过,本节重点在于“如何将日常对话固化为一键触发的工作流”,不要跳过动手环节。
  • 每个小节的实践任务建议按顺序完成,不要一次性全部配置完再测试,及时验证能更快定位问题。

🎯 本章教学目标:独立配置4种核心协作模式(规划者-执行者、定时监控巡检、深度研究、代码开发审查),掌握零代码联动技巧,能够根据实际问题灵活组合这些模式。

图片[1]-OpenClaw Hermes 协作模式实战:规划者-执行者/定时巡检/深度研究/代码审查四模式全解

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无需特殊配置,但需要确保:

  • 工具集完整(terminalfilecode_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 实战演练:代码质量分析

  1. 用户在飞书群发送:“请分析https://github.com/example/project的代码质量,给出改进建议。”
  2. OpenClaw的planner Agent接收消息,拆解为:
    • 子任务1:克隆仓库到临时目录
    • 子任务2:运行pylint获取评分
    • 子任务3:运行radon cc计算圈复杂度
    • 子任务4:汇总结果生成Markdown报告
  3. OpenClaw将子任务列表通过ACP发送给Hermes。
  4. Hermes依次执行,每完成一步发回进度(例如“克隆完成,正在分析”)。
  5. Hermes执行完毕,返回完整报告。
  6. OpenClaw将报告格式化后推送到飞书群。

龙马注:这个模式成功的关键是OpenClaw拆解出的子任务粒度要适中——太粗(如“分析代码质量”)Hermes仍然不知道具体步骤;太细(如“运行pylint并输出到/tmp/result.txt”)又失去了灵活性。我的经验是:每个子任务应该是一个工具可以完成的一类操作,例如“运行静态分析”“计算复杂度”“查找TODO注释”各为一个子任务。

🛠️ 实践任务(本节)

  1. 创建一个简单的拆解任务(如“备份当前目录到/tmp/backup”),手动写出拆解计划。
  2. 一步一步模拟OpenClaw调用acp_delegate,观察Hermes执行并返回结果。
  3. (可选)配置飞书群绑定planner Agent,发送一个复杂需求,观察整个流程。

💭 本节总结(不看书写3行):

📊 用时记录:计划____min → 实际____min → 偏差原因:________

15.2 定时监控与巡检

🎯 本节目标:利用OpenClaw的Cron定时能力 + Hermes的深度检查能力,搭建自动化巡检系统。

预计时长:0.8小时

15.2.1 模式简介

OpenClaw内置Cron调度器,可以精确控制任务触发时间;Hermes拥有丰富的系统检查工具(磁盘、内存、服务健康、日志分析等)。两者结合,可以实现“定时触发 + 智能分析 + 多渠道告警”的完整巡检闭环。

典型流程

  1. OpenClaw Cron每天早上8点触发任务:“检查生产服务器健康状态”
  2. OpenClaw将该任务委托给Hermes(通过ACP)
  3. Hermes执行检查(磁盘使用率、内存、关键服务API、错误日志)
  4. Hermes分析结果,生成健康报告(正常/警告/严重)
  5. Hermes将报告通过ACP返回给OpenClaw
  6. 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产生的报告会对比历史数据,如果发现延迟持续升高但未达阈值,也会提前预警。

🛠️ 实践任务(本节)

  1. 手动触发一次健康检查(通过OpenClaw CLI模拟Cron触发),观察Hermes执行和返回结果。
  2. 根据返回结果,在OpenClaw中演示如何根据status字段分流推送(可以先用日志输出模拟)。
  3. (可选)创建一个真正定时的Cron任务,设置在非业务高峰期测试,验证自动执行。

💭 本节总结(不看书写3行):

📊 用时记录:计划____min → 实际____min → 偏差原因:________

15.3 深度研究与内容处理

🎯 本节目标:利用OpenClaw的多渠道聚合能力和Hermes的深度研究工具链,实现自动化信息收集与报告生成。

预计时长:0.8小时

15.3.1 模式简介

很多场景需要从多个渠道(飞书群、邮件、RSS、GitHub Issues)收集信息,然后进行深度分析并生成结构化报告。OpenClaw是天然的信息聚合器,Hermes是强大的研究助手。

典型流程

  1. OpenClaw通过多个渠道(飞书、Telegram、邮件)收集用户关于“AI Agent最新进展”的提问。
  2. OpenClaw去重合并,将问题作为研究任务发送给Hermes。
  3. Hermes执行搜索(web_search)、阅读文献(web_fetch)、总结提炼(memory、技能复用)。
  4. Hermes生成结构化研究报告(包括摘要、关键发现、参考资料)。
  5. OpenClaw将报告分发回各个提问渠道,并存入共享知识库。

15.3.2 启用Hermes的研究工具集

确保Hermes的webmemory工具集已启用(默认启用)。检查配置:

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前推送到管理层群。

步骤

  1. 在OpenClaw中创建Cron任务,触发research_coordinator Agent。
  2. Agent调用memory_search(或API)获取相关消息。
  3. 聚合去重后,将研究任务通过ACP发送给Hermes。
  4. Hermes执行搜索、阅读、总结,返回报告。
  5. OpenClaw将报告格式化为Markdown,通过飞书推送给管理层群。

龙马注:这个模式最考验的是OpenClaw的消息聚合能力。如果你的OpenClaw没有存储所有渠道的历史消息(例如只存了飞书),可以考虑先用单独的脚本把各渠道消息导入到共享数据库,然后让OpenClaw去读数据库。第16章“共享记忆”提供了架构参考。

🛠️ 实践任务(本节)

  1. 手动模拟一个研究任务:通过OpenClaw CLI输入“请研究DeepSeek-V4的最新特性”,观察Hermes如何调用web_searchweb_fetch
  2. 尝试修改研究任务要求,让Hermes生成“摘要+优缺点对比+参考资料”格式的报告。
  3. (可选)配置一个定时任务,每天早上自动生成一份新闻摘要(使用公共RSS源)。

💭 本节总结(不看书写3行):

📊 用时记录:计划____min → 实际____min → 偏差原因:________

15.4 代码开发与审查

🎯 本节目标:利用Hermes的代码理解和生成能力,搭建自动化代码开发与审查流水线。

预计时长:0.8小时

15.4.1 模式简介

OpenClaw可以作为开发流程的入口(接收Issue、PR指令),Hermes负责实际的代码编写、测试、审查。该模式适用于自动化修复已知bug、生成单元测试、代码重构等任务。

典型流程

  1. 开发者在飞书/Telegram中发送:“请为utils.py中的parse_csv函数编写单元测试”
  2. OpenClaw将指令转发给Hermes
  3. Hermes读取utils.py源码,分析函数逻辑,生成test_utils.py,包含正常路径和边界条件测试
  4. Hermes运行测试,如果失败则自动修复代码或测试
  5. Hermes将生成的测试文件和运行结果通过ACP返回给OpenClaw
  6. OpenClaw创建GitHub PR或直接提交到代码库

15.4.2 Hermes的代码审查Skill

Hermes内置强大的代码分析和生成能力(code_interpreterfile),我们可以通过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错误”,并附上错误堆栈。

  1. OpenClaw接收消息,提取错误堆栈。
  2. OpenClaw将任务发送给Hermes:“分析这个错误,定位代码位置,修复并提交PR。”
  3. Hermes读取错误堆栈,推断出问题可能位于auth.pyvalidate_token函数。
  4. Hermes克隆仓库,创建分支fix/token-validation
  5. Hermes修改代码,增加空值检查。
  6. Hermes运行单元测试(通过code_interpreter)。
  7. Hermes提交代码,推送到远程,并通过GitHub MCP创建PR,标题“修复token验证空指针异常”。
  8. Hermes将PR链接返回给OpenClaw。
  9. OpenClaw推送到飞书群,@报告者:“已创建PR #123,请审阅。”

沈飞注:在量化策略开发中,我们把这个模式用在因子代码的自动修正上。当回测报告提示某个因子计算出错时,Hermes可以自动读取因子源码、分析错误、修正参数,然后重新回测。如果修正后效果优于原版,就自动提交PR;如果更差,就记录到共享记忆供研究员分析。

🛠️ 实践任务(本节)

  1. 准备一个简单的Python文件(含一个已知bug),让Hermes定位并修复。
  2. (可选)配置GitHub MCP,创建一个测试仓库,让Hermes自动创建PR。
  3. 记录Hermes的每一步操作,观察其代码分析能力。

💭 本节总结(不看书写3行):

📊 用时记录:计划____min → 实际____min → 偏差原因:________

15.5 零代码联动与技能一键迁移实践

🎯 本节目标:掌握将已有OpenClaw Skill迁移到Hermes的方法,利用自然语言创建联动工作流,实现“说句话就能让双Agent协作”。

预计时长:0.8小时

15.5.1 已有OpenClaw Skill如何迁移到Hermes

我们在第14章已经介绍了hermes claw migrate命令,本节重点讲迁移后的验证和优化。

迁移后验证步骤

  1. 迁移完成后,运行hermes skills list确认Skill已出现在列表中。
  2. 选择一个简单的Skill(如weather),在Hermes中手动调用测试:bash复制下载hermes -c “使用weather技能查询北京的天气”
  3. 如果Skill依赖特定的环境变量(如OPENWEATHER_API_KEY),确保已添加到~/.hermes/.env
  4. 如果Skill包含脚本(scripts/),检查脚本的shebang和依赖是否在Hermes环境中可用。
  5. 对于复杂的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:执行具体任务

配置步骤

  1. 在OpenClaw中创建意图识别Agentintent_router):markdown复制下载## 职责 – 分析用户消息,判断任务类型(开发、研究、运维、通用) – 根据任务类型,选择合适的处理方式: – 简单任务:OpenClaw直接回答 – 代码/研究/分析任务:委托给Hermes
  2. 配置飞书渠道绑定到intent_router(见15.1.2)。
  3. 编写意图识别规则(可在AGENTS.md的工作流中用自然语言描述):text复制下载- 如果消息包含“写代码”“修复”“单元测试” → 委托给Hermes开发模式 – 如果消息包含“研究”“搜索”“分析” → 委托给Hermes研究模式 – 如果消息包含“检查”“监控”“健康” → 委托给Hermes巡检模式 – 否则 → OpenClaw自己回复
  4. 在Hermes中为每种模式创建对应的Skill(可使用迁移过来的Skill或新建)。

测试

  • 在飞书中发送:“写一个Python函数,计算斐波那契数列”
  • 观察OpenClaw判断为开发任务 → 委托Hermes → Hermes生成代码 → 返回结果 → 飞书收到答案

龙马注:这个模板我用了两个月,覆盖了团队日常80%的AI需求。关键是意图识别规则要不断迭代——初期会有一些误判(比如把“研究一下某个技术方案”误判为简单对话),每次遇到就补充规则到AGENTS.md。积累一个月后,准确率能到95%以上。

15.5.3 零配置联动案例:从发送消息到自动执行并返回结果

目标:用户无需任何额外配置,只需加入飞书群,就能享受双Agent协作能力。

实现方案

  • 将OpenClaw和Hermes部署为一套公共服务(固定账号)。
  • 新用户加入飞书群时,机器人自动发送欢迎消息和使用说明。
  • 所有用户的请求都通过同一个intent_router Agent处理。
  • Hermes作为后端服务无状态地接收和处理任务。

注意事项

  • 需要实现多租户隔离(通过session_id区分不同用户)。
  • 对于涉及敏感数据的任务(如私人代码仓库),需要引导用户进行OAuth授权。
  • 可以考虑使用共享记忆(第16章)存储每个用户的偏好,实现个性化体验但仍保持零配置。

🛠️ 实践任务(本节)

  1. 选择一个已有的OpenClaw Skill(例如你之前开发的news_summarizer),执行hermes claw migrate,并手动测试迁移后的版本。
  2. 在OpenClaw中创建一个简单的意图识别规则,将至少两种不同类型的任务委托给Hermes。
  3. 通过飞书发送测试消息,验证路由和委托流程。

💭 本节总结(不看书写3行):

📊 用时记录:计划____min → 实际____min → 偏差原因:________

第15章 参考资料与扩展阅读

  1. OpenClaw Agent Teams文档(官方) https://docs.openclaw.ai/zh-CN/agents/teams
  2. Hermes Agent代码解释器与审查最佳实践 https://hermes-agent.nousresearch.com/docs/features/code-interpreter
  3. 双Agent协同:规划者-执行者模式详解 https://developer.aliyun.com/article/1730226
  4. GitHub MCP Server配置指南 https://modelcontextprotocol.io/servers/github
  5. 飞书 + OpenClaw + Hermes 零代码联动实现多渠道智能客服(实战) https://www.ai-indeed.com/encyclopedia/19624.html
  6. 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_router Agent中,可以用迁移过来的Skill作为意图识别的依据。例如,如果用户消息触发了code_reviewer Skill的关键词,就自动委托给Hermes的代码审查模式。这样意图识别规则会越来越智能。

另外,15.4节的代码审查Skill在实际使用时,建议将Hermes的code_interpreter沙箱配置为只读模式,防止修改代码前未经确认。我们的实践是:审查只输出报告,不自动修改;确认后再单独发送“修复”指令。

沈飞的评审:

在量化策略开发中,15.3节的深度研究模式被我们用于自动分析研报和基本面数据。Hermes每周日凌晨2点会被OpenClaw Cron唤醒,去抓取指定券商的策略周报,然后用自然语言总结出对当前持仓可能的影响,最后将结果推送到风控群。整个流程无人干预。

15.5节的零代码联动对于新加入团队的成员非常友好。他们不需要学习任何命令,直接在飞书群里@机器人说人话,机器人就能自动判断是查行情还是做回测。运维成本集中在意图识别规则的持续优化上,但相比培训成本,收益仍然可观。

下一章预告:第16章 共享记忆与持续改进 —— 你将学习如何让OpenClaw和Hermes共享长期记忆,实现“一个Agent学到的知识,另一个Agent也能用”。这是从“协作”走向“共生”的关键一步。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容