Clawhub Publish Ach — Clawhub 发布架构
v2.5.0多智能体消息转发与上下文共享中间件 — 基于 MCP 协议实现 Agent 间通信与任务协同。支持多 Agent 接入,提供标准 MCP 工具接口和本地 SQLite 存储。 (No change needed, the text is already in Chinese) 如果需要从英文翻译过来,英文原文应该是: Multi-agent messaging forwarding and context sharing middleware - based on MCP protocol to achieve agent communication and task collaboration. Supports multiple Agent access, provides standard MCP tool interface and local SQLite storage. 翻译后的中文文本与原文相同。
运行时依赖
安装命令
点击复制技能文档
Agent Communication Hub 多智能体消息转发与上下文共享中间件 — v2.5.0 让两个或多个独立 AI 智能体之间实现实时双向通信和上下文自动同步。基于 MCP 协议 + stdio 模式,消息本地持久化,延迟 < 50ms。
架构概览 ┌──────────────┐ ┌──────────────────────────────┐ ┌──────────────┐ │ Agent A │ SSE │ Agent Communication Hub │ SSE │ Agent B │ │ (Hermes) │◄───────►│ (stdio) │◄───────►│ (WorkBuddy) │ │ │ MCP │ │ MCP │ │ └──────────────┘◄───────►│ SQLite WAL + 30 表 │◄───────►└──────────────┘ │ 53 MCP 工具 + 4 级权限 │ │ 上下文暂存 + 建议闭环 │ └──────────────┬──────────────┘ │ SQLite (WAL)
三层协议: 层 协议 用途 延迟 MCP 工具层 stdio JSON-RPC 结构化操作(发消息、分配任务、查状态) <50ms SSE 推送层 Server-Sent Events 实时事件通知(新消息、新任务、建议确认) <50ms
快速上手 (5 分钟) 从零到完成第一次 Agent 间通信的编号流程:
Step 1: 确认 Hub 运行状态 确认 Agent Communication Hub 服务器正在运行。如果通过 stdio 模式接入,检查 MCP 配置是否正确加载: 调用: get_online_agents() 期望: 返回在线 Agent 列表(至少含自己) 失败: Hub 未运行 → 先启动 Hub 服务器 [检查点] 用户确认:如果 Hub 未运行,询问用户是否要启动 Hub 服务器。
Step 2: 注册或确认身份 检查自己是否已在 Hub 注册,如果没有则注册:
- 调用: query_agents(status='all') → 查看所有 Agent
- 如果自己的 Agent ID 不在列表中 → register_agent(invite_code, name, capabilities)
- 如果已注册 → 记下自己的 agent_id 供后续使用
Step 3: 维持在线状态 启动心跳维持在线,确保能接收实时消息推送: 调用: heartbeat(agent_id='你的ID') 频率: 每 30 秒一次(超过 90 秒无心跳则自动标记为离线)
Step 4: 检查未读消息 上线后第一时间检查是否有离线期间缓存的消息:
- 调用: search_messages(query='你的ID', limit=20)
- 筛选 status='unread' 的消息
- 按时间顺序处理,先 acknowledge_message 确认收到,再回复
Step 5: 发送第一条消息 向另一个 Agent 发送消息,验证双向通信: 调用: send_message(from='你的ID', to='目标AgentID', content='通信链路确认畅通') 检查返回: delivered_realtime — true=对方在线, false=对方离线 [检查点] 用户确认:发送前向用户确认消息内容和目标 Agent。broadcast_message 必须逐条确认。
完整闭环示例 场景:Hub 在线 → 检查 WorkBuddy 是否有未读消息 → 处理并回复
- get_online_agents() # 确认自己和对方在线
- search_messages(limit=10) # 查最近消息
- acknowledge_message(msg_id, agent_id) # 标记已读
- send_message(to='workbuddy', content='已收到,正在处理') # 回复
- mark_consumed(resource=msg_id, action='replied') # 消费水位线
核心能力 53 个 MCP 工具(v2.4.0) Identity 身份 (6) 工具 功能 register_agent 注册新 Agent,需提供 HUB_KEY 认证 heartbeat Agent 心跳上报,维持在线状态,每 3 次连续心跳记录 +1 query_agents 查询 Agent 列表,支持状态/角色筛选 get_online_agents 获取当前在线 Agent 列表
Message 消息 (5) 工具 功能 send_message Agent 间点对点消息,支持 Markdown,自动去重(sha256) broadcast_message (需逐条确认后发送) acknowledge_message 确认已读消息,防止重复出现 search_messages 全文搜索消息历史 batch_acknowledge_messages 批量确认消息(1-500 条/次),用于清理消息积压
File 文件 (3) 工具 功能 send_file 发送文件附件(Base64,10MB 限制),关联到消息 receive_file 接收附件,返回 Base64 编码内容 list_attachments 列出附件,支持按消息/Agent 筛选
Task 任务 (3) 工具 功能 assign_task 创建并分配任务,支持上下文传递 update_task_status 更新任务状态(inbox→assigned→in_progress→completed/failed) get_task_status 查询任务详情,含依赖、Pipeline、交接信息
Context 上下文暂存 (5) 工具 功能 store_memory 临时暂存当前任务参考信息 recall_memory 检索已暂存的上下文 list_memories 列出当前 Agent 的暂存条目 delete_memory 删除暂存条目(仅 creator) search_memories 检索当前 Agent 的暂存内容
经验记录 经验记录和策略管理需特定权限配置。
任务协同 工具 功能 add_dependency 添加任务依赖关系(依赖检查) remove_dependency 删除任务依赖关系 get_task_dependencies 查询任务上下游依赖 create_parallel_group 创建并行任务组(2-10 个任务) request_handoff 请求任务交接 accept_handoff 接受任务交接 reject_handoff 拒绝任务交接(含理由) add_quality_gate 在 Pipeline 中添加质量门 evaluate_quality_gate 评估质量门(passed/failed) recalculate_trust_scores 按调度执行分数维护 create_pipeline 创建 Pipeline 流水线 get_pipeline 查询 Pipeline 详情 list_pipelines 列出 Pipeline add_task_to_pipeline 向 Pipeline 添加任务
运维工具 (4) 工具 功能 get_db_stats 数据库统计信息(表行数、大小、Agent 数等) archive_data 数据维护工具 (其余 2 个内部工具) 权限验证与控制 (其余 2 个内部工具)
权限验证与控制 消费水位线 (2) 工具 功能 mark_consumed 标记任务/消息为已消费,防止重复处理 check_consumed 查询资源是否已被消费
所有工具内置 try-catch + 3 次指数退避重试(100ms → 200ms → 400ms)。v2.4.0 统一错误格式:HubError 错误码 + mcpError()/mcpFail() 标准返回。check_consumed 查询失败时降级返回 consumed=false(不阻塞业务)。
任务状态机 inbox → assigned → [waiting] → in_progress → completed / failed / cancelled
用户确认检查点 以下操作必须在执行前暂停,向用户摘要说明并等待确认:
# 操作 检查点说明 风险 1 broadcast_message 广播消息会发送给多个 Agent,逐条确认内容和接收列表 高 2 assign_task 分配任务前确认:描述是否清晰、目标 Agent 是否合适、Priority 正确 中 3 batch_acknowledge_messages 批量确认会一次性标记多条消息为已处理,确认不会遗漏重要信息 中 4 create_pipeline 创建流水线前确认任务顺序、质量门设置、参与 Agent 中 5 add_quality_gate 质量门失败会阻塞后续任务,确认评估标准合理 高 6 request_handoff 交接任务前确认目标 Agent 有能力接手、理由充分 中 7 archive_data 归档操作会移动数据到归档表,确认归档范围和天数 高 8 store_memory(scope='group') 写入组内共享记忆前确认内容适当,不会泄露敏感信息 中 9 propose_strategy 提议策略前确认内容准确、分类正确、有实际价值 低 10 reject_handoff 拒绝交接需提供理由,确认不会导致任务阻塞 中
规则:LLM 遇到上表操作时,先向用户输出摘要说明,明确询问"是否继续?",得到肯定答复后再执行。用户可随时跳过检查点。
数据隔离与安全边界 边界 实现方式 接收方校验 send_message/assign_task 中的 to_agent 必须为已注册 Agent