CHAP(Collaborative Human Agent Protocol,协作式人类-智能体协议)是一个面向可审计人机协作的开放协议与运行时,兼容 MCP 与 A2A。其目标是为人类与智能体共同完成的工作提供可问责的记录方式。
用途 在由大量智能体和人员共同参与的团队中,智能体负责起草、分诊和推荐,人类负责审批、纠正、否决和升级。这些人类决策通常只散落在聊天记录、工单评论和记忆中。CHAP 为这些决策赋予明确的结构和可审计的记录:智能体产出了什么、人做了什么决定以及为什么,全部记录在可查询、可验证的日志中。
主要能力
- 结构化覆盖:当人编辑智能体的工作时,编辑会连同差异(diff)、理由(rationale)和团队定义的标签一起被记录,便于后续分析。
- 防篡改日志:每次变更按顺序记录。启用哈希链后,若保留的近期链头不在操作者可控范围内,被篡改的条目在验证时会被检测到(见 SECURITY.md §5)。历史记录可跨密钥轮换、供应商日志过期和人员变动而保留。
- 签名与身份:可选扩展(称为 profiles)要求每次调用都签名,将签名密钥绑定到已验证身份,并将条目提交到透明度日志。
- 与 MCP 和 A2A 并存:MCP 连接智能体与工具,A2A 连接智能体与智能体,CHAP 记录智能体与人共享的工作。
协议结构 CHAP 是一组调用,由智能体、人及其工具发送给协调器(coordinator),协调器是调解工作区的服务。协调器根据工作区规则检查每次调用、作出应答,并将每个被接受的变更记录到工作区的审计日志中。TypeScript 和 Python 包即为协调器,可嵌入自有进程或作为服务器运行。 动词即其名称:任务被创建、完成并送审(task.create、task.complete、review.request);审查者批准、拒绝或覆盖(decide.approve、decide.reject、decide.override);工作被交接或升级(handoff.propose、escalate.raise);audit.read 返回记录。
核心与配置文件(profiles) 每个协调器都实现 Core(core/1.0):工作区、参与者、任务和审计日志。其余均为可选配置文件,带版本命名。review/1.0 增加审查请求与决策;其他配置文件增加向人快速提问(whisper/1.0)、群组投票(deliberation/1.0)、交接(handoff/1.0)、暂停与回滚(control/1.0)、路由(routing/1.0)、影子与试用模式(modes/1.0)、签名调用(security-signed/1.0)、已验证身份(identity-oidc/1.0、identity-vc/1.0)和透明度日志(audit-scitt/1.0)。工作区会声明其使用的配置文件,协调器拒绝属于其他配置文件的调用。core/SPEC.md 将 Core 浓缩在一页内,profiles/PROFILES.md 列出所有配置文件,GLOSSARY.md 定义每个术语。
使用方式
- 新项目:create-chap-app 可生成一个带审查台、一个配置文件设置和 diff-profiles 命令的项目。默认模板是代码门禁:编码智能体在 git 仓库中的每次变更都以 diff 形式审查,经审查者签名批准,并连同证据一起提交,供 CI 验证。其他模板包括面向 Claude Desktop、Cursor 和 Claude Code 的 MCP 门禁、支持台、出站审批门禁和生产集。docs/profile-explorer.md 展示每个配置文件带来的变化。
- 从仓库克隆:START_HERE.md 在 Python 协调器上运行本地审查台,仅需 Python 3.10 或更高版本,无需安装其他内容。examples/00-five-minute-start.md 用 curl 向 Core 参考服务器发送信封并读回审计日志。库位于 packages/coordinator/ 和 packages/coordinator-py/,参考实现位于 reference/ 和 reference/python/。
- 90 秒演示:展示一位独立开发者用 Cursor 审查拉取请求,机器人标记了一个开发者不认同的警告,演示以六步展示整个交互,约 23 秒。每一步的代码以 TypeScript 和 Python 给出。TypeScript 提供类型化门面 coord.api.*,每个方法都有自动补全和编译期检查;Python 在表面保留 JSON-RPC 信封 coord.dispatch({...}),此处包装在 send() 辅助函数中,这是 Python 测试使用的惯用法。两者发送相同的参数和信封,因此无论哪个客户端调用,审计链读取结果一致。
- 分析:chap-analytics(pip install chap-analytics)将整条链加载到有文档的 pandas 表中,来源可以是 SQLite 文件、JSON 导出、实时协调器或 audit.read,涵盖覆盖、决策、审查者、耳语和交接。有一个 notebook 处理一周的审查数据,ANALYTICS_ROADMAP.md 描述计划中的工作。
覆盖信封 覆盖信封记录审查者对智能体输出的更改。其中两个字段对分析最重要:intent_preserved 区分精炼型覆盖(人保留智能体的决定但改写措辞)与替换型覆盖(人做出不同决定)。前者多指向智能体的检索问题,后者多指向策略模糊或智能体任务上下文问题。tags 是团队约定的小型受控词汇表,三个月后可用于统计哪些提示需要改进、哪些路径机器人总是出错。
适用场景
- 需要人类审批、覆盖、交接和升级的智能体工作流。
- 需要可审计、可验证证据日志的合规或问责场景。
- 与 MCP 或 A2A 集成的多智能体与人类协作系统。
- 使用 LangGraph、Pydantic AI、AG2、LlamaIndex Workflows 和 Google ADK 的框架桥接,将人在环决策记录到审计日志。
限制与状态 CHAP 0.3 是公开草案:一个小型 Core 和可选配置文件(SPECIFICATION.md)。两个参考协调器(TypeScript 和 Python)实现相同方法,差分模糊测试器检查它们应答和记录是否一致。一致性测试工具覆盖 Core 和 review/1.0,可针对 Python 协调器和独立 TypeScript 服务器运行。协调器可将自身呈现为 MCP 服务器或 A2A 智能体。在 1.0 之前,小版本可能引入破坏性变更,其变更日志会列出每项破坏及迁移方式;从 1.0 起规范遵循语义化版本。如需严格稳定性,请等待 1.0:ROADMAP.md 列出它将承诺的内容及沿途里程碑。
许可 规范文本采用 CC BY 4.0(见 LICENSE-SPEC.md),其余一切采用 Apache 2.0。任何语言、任何部署方式均可。