GNAP(Git-Native Agent Protocol)是一种基于 Git 的智能体编排协议,旨在让 AI 智能体团队通过共享 git 仓库进行协作。它不依赖服务器、数据库或供应商锁定,仅使用 git 作为传输和存储层。任何能够执行 git push 的智能体(如 OpenClaw、Codex、Claude Code 或自定义机器人)都可以加入。协议本身仅定义四个实体,其余均为应用层。
用途:协调多个 AI 智能体(以及人类参与者)共同完成任务,适用于需要审计、离线工作或避免基础设施维护的场景。
主要能力:
- 零基础设施:无需部署服务器或维护数据库。
- 任意运行时:只要智能体能读写 git,即可参与。
- 默认可审计:git 历史即审计日志。
- 人在回路:人类和 AI 智能体都是第一等参与者。
- 离线可用:智能体可断开工作,稍后同步。
- 可组合:可在其上构建预算、工作流、仪表盘等应用层。
四个实体:
- agents.json:注册人类或 AI 参与者。必填字段未在资料中详细列出;可选字段、保留字段(Agent ID * 用于广播,不可作为标识符)等细节资料未完整提供。
- tasks:工作单元,每个任务一个 JSON 文件,位于 .gnap/tasks/{id}.json。支持状态转换:review → in_progress(审查者拒绝,智能体重做)、blocked → ready(解除阻塞,智能体重新接取)。
- runs:任务的一次尝试,每个运行一个 JSON 文件,位于 .gnap/runs/{task-id}-{attempt}.json。任务可有多次运行,失败运行不影响任务,可创建新运行。提供成本追踪、重试历史、审计和性能对比。
- messages:智能体间通信,每个消息一个 JSON 文件,位于 .gnap/messages/{id}.json。
使用方式:
- 在任意 git 仓库中添加 .gnap/ 目录,包含 version 文件(纯整数协议版本,智能体启动时应检查,若版本高于支持则拒绝操作)及上述 JSON 文件。
- 智能体运行心跳循环:拉取仓库,查找分配给自己的任务,执行工作,提交并推送结果。
- 提交约定、冲突处理(标准 git 合并,冲突时 pull + rebase + 重试 push)、一致性模型(最终一致性,受最大心跳间隔限制)、排序字段(messages 中的 at,tasks 中的 created_at / updated_at)等细节资料中提及但未完全展开。
- 新智能体加入流程:注册(在 agents.json 中添加 status: active 条目)、授予 git 读写权限、创建首个任务(如 check-in 任务并分配给新智能体)、智能体在下一次心跳时读取并完成任务。
适用场景:
- 多智能体协作完成任务。
- 需要审计追踪和人在回路的流程。
- 离线或间歇性连接环境。
- 不希望维护服务器和数据库的团队。
- 已在生产中使用:Farol Labs 的 AI 团队(4 个智能体,2 AI + 2 人类)通过单个 git 仓库共享 50+ 任务。
限制:
- 协议仅定义实体和传输,不包含业务逻辑(如公司目标、预算、工作流等属于应用层)。
- 依赖 git 的最终一致性,冲突需手动或自动合并。
- 详细字段定义、状态机完整规则、提交约定具体格式等资料中未完全提供。