通过OpenClaw消息传递和递归任务DAG实现多智能体协作的协议。当用户需要跨多个智能体协调工作时使用此技能。
Clawflow: OpenClaw代理通过消息和递归任务DAG进行协作的协议.
功能概述
Clawflow: OpenClaw代理通过消息和递归任务DAG进行协作的协议.是一项面向实际任务的技能,主要用于Mental model: 想想咨询公司. 任何人都可以接受一个项目. 如果他们可以,单独做, t.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Clawflow
一种面向 OpenClaw 智能体的协议,支持其通过消息与递归式任务有向无环图(DAG)协同工作。
心智模型:将其类比为一家咨询公司。任何成员都可接收项目;若能独立完成,则直接执行;若任务过大,则拆解为若干子任务,分派给同事处理,再汇总结果并综合输出。这些同事同样可依此方式继续拆解。系统中不存在固定的“管理者”与“执行者”角色——所有智能体均遵循同一协议进行通信。
何时查阅参考文档
- 消息格式、任务文件结构、状态码 →
references/schemas.md - 每个智能体运行的决策循环 →
references/agent-loop.md - DAG 拆解、上下文传递、结果综合 →
references/coordinating.md
核心原则
- 统一协议,角色动态 — 所有智能体在结构上完全一致。任一智能体既可直接执行任务,也可对任务进行拆解与委派。其具体角色由所承接任务自然决定。
- OpenClaw 作为底层支撑 — 智能体身份源自
openclaw.json配置,对等体发现依赖openclaw agents list命令,消息传输则通过openclaw agent --agent实现。无需维护自定义的身份或对等体配置文件。--message "..." - 递归式 DAG — 执行委派的智能体即成为该子 DAG 的协调者;其上级智能体对此完全无感知,亦无需关心。DAG 可自然嵌套。
- 工作区 = 工作记忆 — 每个智能体的 OpenClaw 工作区为其私有草稿空间。任务状态全部保存于工作区内的文件中,且禁止任何智能体读取其他智能体的工作区。
工作原理
智能体 A 接收一项任务
→ 我能否独立完成?
YES → 执行任务,以结果作为响应
NO → 将任务拆解为子 DAG
→ 通过 openclaw agent 向智能体 B、C 分派子任务
→ 智能体 B 接收其子任务
→ 我能否独立完成?
YES → 执行任务,向 A 发送响应
NO → 进一步拆解,并向 D、E 等智能体分派...
→ 智能体 C 执行任务,向 A 发送响应
→ A 汇总全部响应,进行综合,并向上级智能体回复
每一层级的行为模式完全一致。任意深度的智能体均遵循相同的循环逻辑。
与 OpenClaw 的集成
智能体身份
身份信息来源于 OpenClaw 配置。请勿创建自定义身份文件。
- 配置来源:
openclaw.json→agents.list[].id、agents.list[].identity - 工作区来源:智能体工作区根目录下的
IDENTITY.md - 读取方式:
openclaw agents list或通过注入的启动上下文获取
每个智能体在初始化时即已明确自身身份 —— 其 id、name、emoji 与 theme 均通过工作区启动文件(IDENTITY.md、SOUL.md、AGENTS.md)在每一轮会话中注入至上下文。
对等体发现
从 OpenClaw 配置中发现可用智能体。请勿维护独立的 peers 文件。
# 列出所有已配置的智能体 openclaw agents list # 配置中定义如下字段: # agents.list[].id → 智能体标识符(用于 --agent 参数) # agents.list[].workspace → 对应工作区路径 # agents.list[].model → 所用模型
智能体的 subagents.allowAgents 配置项控制其可委派的目标智能体范围。["*"] 表示允许委派至任意已配置智能体。
向对等体发送任务
使用 OpenClaw CLI 向另一智能体发送任务消息:
# 向指定智能体发送任务 openclaw agent --agent data-extractor --message "Extract Q3 sales from sales.csv" # 接收方智能体将在会话中收到该消息,完成处理后, # 响应亦通过相同机制返回
如需结构化地分派带元数据的任务,可将任务消息写入文件后引用:
openclaw agent --agent data-extractor --message "$(cat workspace/tasks/task-abc/dispatch-st-extract.md)"
Clawflow 的工作区布局
每个智能体复用其现有的 OpenClaw 工作区。Clawflow 在其中新增 tasks/ 目录:
/ ← OpenClaw 工作区根目录 IDENTITY.md ← 智能体身份(OpenClaw 管理) AGENTS.md ← 运行指令(OpenClaw 管理) SOUL.md ← 人格设定(OpenClaw 管理) mailbox/ ← 智能体级消息日志(覆盖全部任务) inbox/ ← 待处理的入站消息 outbox/ ← 出站消息(含分派任务与发出的响应) archive/ ← 已处理消息(持久化审计轨迹) tasks/ ← Clawflow 工作目录 {task-id}/ task.md ← DAG 定义 + 进度 + 结果 skills/ clawflow/ ← 当前技能 SKILL.md ...
Clawflow 在工作区中新增两个顶层目录:
mailbox/—— 智能体级消息日志,与具体任务无关。该智能体收发的所有消息均在此记录:inbox/存放未处理的到达消息,outbox/记录已发出的消息,archive/保存已处理消息。这是持久化的审计轨迹 —— OpenClaw 会话历史随时间压缩,而 mailbox 不会。tasks/—— 每个任务对应一个子目录,其中task.md跟踪 DAG 状态、子任务结果及最终综合输出。
智能体循环
当智能体通过 openclaw agent --message 接收任务时:
1. 解析消息
2. 是否来自上级的 TASK?
→ 在 workspace/tasks/{task-id}/ 下创建 task.md
→ DECIDE:直接执行 or 拆解委派?
→ 直接执行:完成工作,以结果响应
→ 拆解委派:在 task.md 中构建子 DAG,通过 openclaw agent 分派子任务
3. 是否来自我曾委派的对等体的 REPLY?
→ 更新 task.md 中的子 DAG(标记子任务完成、存储结果)
→ 分派所有新就绪的子任务
→ 若全部子任务已完成 → 综合结果,向上级响应
完整决策逻辑与边界情况详见 references/agent-loop.md。
委派决策
当智能体接收任务时,需判断:自行执行 or 委派?
适合直接执行的情形:
- 任务在其自身能力范围内
- 任务足够简单,拆解反而引入额外开销
- 未配置任何相关对等体智能体
适合拆解委派的情形:
- 任务所需能力超出该智能体当前能力
- 任务天然具备可并行处理的部分
- 任务规模足够大,拆分有助于降低整体复杂度
该判断为智能体自主决策行为。协议本身不强制要求特定策略 —— 决策权完全归属智能体。
DAG 依赖解析
协调子 DAG 时,智能体在 task.md 中跟踪各子任务状态:
def get_ready_subtasks(dag):
"""返回所有依赖均已就绪且尚未分派的子任务。"""
return [
sid for sid, st in dag.subtasks.items()
if st.status == 'pending'
and all(dag.subtasks[dep].status == 'done' for dep in st.depends_on)
]
每次收到响应后调用此函数。所有新就绪的子任务将被立即分派。
错误处理(V1)
快速失败(Fail-fast)。不重试,不支持部分恢复。
| 场景 | 行为 |
|---|---|
| 对等体子任务失败 | 当前智能体将自身任务标记为失败,并向上级返回错误响应 |
| 重复消息 | 幂等性检查 —— 若任务已在处理中或已完成,则跳过 |
| 智能体崩溃 | 工作区中的任务文件保留状态;重启后从 task.md 恢复执行 |
错误沿 DAG 向上传播。后续版本将支持重试与部分 DAG 恢复能力。
实现检查清单
- 验证智能体配置 — 使用
openclaw agents list查看可用智能体列表。 - 检查子智能体权限 — 确保
subagents.allowAgents包含目标智能体。 - 实现智能体循环 — 严格遵循
references/agent-loop.md文档。 - 使用消息模板 —
scripts/message.py可生成结构化的任务/响应消息。 - 测试两级链路 — 智能体 A 委派至 B,B 执行后响应。
- 测试扇出(fan-out) — 智能体 A 并行委派至 B 和 C。
- 测试递归 — 智能体 A → B → C。
范围之外(V1)
- 大型结果附件(如 Google Drive 层)
- 任务重试 / 部分子 DAG 恢复
- 智能体健康检查
- 进度流式推送(progress streaming)
- 跨智能体工作区访问(设计上永久禁止)
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章