你的 AI 编程代理为什么总不听话?这个开源项目用一份「契约」治好了它

2026年10月19日 | 来源:GitHub Trending
AI编程代理 AGENTS.md ClaudeCode
你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」——现在,这份合同有了开源标准版。

一、痛点:AI 编码代理的「失忆症」

过去一年,AI 编码代理(Coding Agent)彻底改变了开发者的工作方式。Claude Code、OpenAI Codex、Cursor、GitHub Copilot——这些工具能读懂整个代码库,能自主规划任务、修改文件、运行测试。但用过的人都知道一个尴尬的事实:它们没有长期记性,更没有统一的行为约束。

你在 CLAUDE.md 里写了“禁止使用 any 类型”,结果 Cursor 里的同一个项目完全不知道这条规矩;你在 Cursor 的 .cursorrules 里定义了分支命名规范,切到 Codex 又得重写一遍。每个工具都有自己的配置格式、自己的记忆文件、自己的“脾气”,团队规范被碎片化地散落在四五份配置文件里,维护成本极高,最终没人维护。

更深层的问题是:AI 代理不理解“契约”这个概念。它不知道哪些规则是硬性的(违反即失败),哪些是建议性的(可以灵活处理),也不知道违反规则后该如何自查自纠。人类开发者靠 code review 兜底,AI 代理往往一气呵成地提交——没有兜底。

二、agents-contract:一份契约,管住所有代理

最近登上 GitHub Trending 的开源项目 AntoGA/agents-contract 给出了一个优雅的解法。它的核心思路可以用三句话概括:

1. 用 AGENTS.md 作为唯一契约源——一份文件,定义 AI 代理在项目中必须遵守的所有规则;

2. 零依赖的 Linter——不装任何 npm 包,直接校验契约文件的完整性和规范性;

3. SessionStart Hook——每次代理会话启动时自动注入契约内容,确保代理“开机即读规矩”。

关键在于 AGENTS.md 这个格式正在成为事实上的行业标准。与 CLAUDE.md(Claude Code 专属)、.cursorrules(Cursor 专属)不同,AGENTS.md 是一个开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。这意味着你写一次规则,所有工具共享。

它的架构非常清晰:

<svg viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" font-family="PingFang SC, Microsoft YaHei, Noto Sans SC, sans-serif">
  <defs>
    <marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">
      <path d="M0,0 L8,3 L0,6 Z" fill="#6366f1"/>
    </marker>
  </defs>
  <rect x="40" y="40" width="200" height="80" rx="12" fill="#6366f1"/>
  <text x="140" y="75" text-anchor="middle" fill="#fff" font-size="18" font-weight="bold">AGENTS.md</text>
  <text x="140" y="100" text-anchor="middle" fill="#e0e7ff" font-size="13">唯一契约源</text>
  <rect x="300" y="40" width="200" height="80" rx="12" fill="#8b5cf6"/>
  <text x="400" y="75" text-anchor="middle" fill="#fff" font-size="18" font-weight="bold">Linter 校验</text>
  <text x="400" y="100" text-anchor="middle" fill="#ede9fe" font-size="13">零依赖 · 规范检查</text>
  <rect x="560" y="40" width="200" height="80" rx="12" fill="#6366f1"/>
  <text x="660" y="75" text-anchor="middle" fill="#fff" font-size="18" font-weight="bold">SessionStart Hook</text>
  <text x="660" y="100" text-anchor="middle" fill="#e0e7ff" font-size="13">会话启动自动注入</text>
  <line x1="240" y1="80" x2="298" y2="80" stroke="#6366f1" stroke-width="2.5" marker-end="url(#arrow)"/>
  <line x1="500" y1="80" x2="558" y2="80" stroke="#6366f1" stroke-width="2.5" marker-end="url(#arrow)"/>
  <rect x="80" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>
  <text x="155" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Claude Code</text>
  <rect x="260" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>
  <text x="335" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Codex</text>
  <rect x="440" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>
  <text x="515" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Cursor</text>
  <rect x="620" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>
  <text x="695" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Copilot</text>
  <text x="400" y="180" text-anchor="middle" fill="#6366f1" font-size="14">↓ 契约内容分发至所有代理会话 ↓</text>
</svg>

三、上手实战:三步接入

第 1 步:安装(真的零依赖)

# 无需 npm install,直接通过 npx 使用
npx agents-contract init

init 命令会在项目根目录生成一份模板 AGENTS.md,你可以基于模板填入团队规范。

第 2 步:编写契约

一份结构良好的 AGENTS.md 大致长这样:

# Project Contract

## Hard Rules(硬性规则,违反即失败)
- TypeScript 严格模式,禁止使用 `any`
- 所有公开函数必须有 JSDoc 注释
- 禁止直接修改 `legacy/` 目录下的文件

## Conventions(约定)
- 分支命名:`feat/xxx`、`fix/xxx`、`chore/xxx`
- 提交信息遵循 Conventional Commits
- 组件文件使用 PascalCase

## Verification(完成定义)
- 修改后必须运行:`npm run lint && npm run test`
- 所有测试通过才算任务完成

第 3 步:配置 SessionStart Hook

以 Claude Code 为例,在 .claude/settings.json 中配置:

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "npx agents-contract inject"
          }
        ]
      }
    ]
  }
}

这个 Hook 的作用是:每次代理会话启动,自动把契约内容注入上下文。不需要你每次手动说“请先阅读 AGENTS.md”,代理开机第一件事就是“读合同”。

校验契约本身

契约文件写错了、写漏了怎么办?跑一下 Linter:

npx agents-contract lint

# 输出示例:
# ✓ AGENTS.md found at project root
# ⚠ Missing "Verification" section — agents won't know when a task is done
# ✓ Hard Rules section is valid

它会检查契约文件的结构完整性,比如是否定义了硬性规则、是否有明确的验证标准(Definition of Done)。这一点很妙——合同本身也要有人审。

四、为什么这个项目值得关注?

第一,它踩中了“规范统一”的真需求。 随着 AGENTS.md 被越来越多的工具采纳(OpenAI Codex 明确支持,Claude Code、Cursor 等通过兼容层支持),围绕它的生态工具是空白地带。agents-contract 补上的正是“契约管理”这块基础设施。 第二,零依赖是工程品味的体现。 一个只做契约校验的工具,如果拖进来一堆传递依赖,反而会污染项目。纯实现意味着可以放心放进任何 CI 流水线,不会有供应链安全顾虑。 第三,它把“提示词工程”工程化了。 过去大家调教 AI 代理靠的是玄学式的 prompt 技巧,现在有了版本化的、可 lint 的、可注入的契约文件——AI 行为约束从“手工作坊”进入了“软件工程”阶段。

当然也有冷静的一面:契约不是银弹。模型对规则的理解和遵守仍有概率性,契约写得再好,也替代不了 code review。它的正确定位是大幅降低 AI 犯低级错误的基线,而不是根除错误。

五、写在最后

从 .cursorrules 到 CLAUDE.md 再到 AGENTS.md,AI 编码工具的配置规范正在经历一场“大一统”。agents-contract 这样的项目出现,说明社区已经开始为“AI 代理的工程化协作”建设基础设施——就像当年 ESLint 之于 JavaScript、EditorConfig 之于多编辑器协作。

当你的 AI 代理学会“签合同”上岗,你才会意识到:约束,才是释放生产力的前提。

项目地址:https://github.com/AntoGA/agents-contract ,感兴趣的话不妨在你的下一个项目里试试。


信息源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract) 查看原文 ↗
推广
🚀 想亲手把文中的 AI 项目跑起来?
阿里云轻量应用服务器,开箱即用,新用户专享优惠——半小时从零部署一台自己的 AI 工作机。
去了解 →

📋 多平台草稿预览 (12平台差异化改编)

你的 AI 编程代理为什么总不听话?这个开源项目用一份「契约」治好了它

你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」——现在,这份合同有了开源标准版。

你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」——现在,这份合同有了开源标准版。

一、痛点:AI 编码代理的「失忆症」

过去一年,AI 编码代理(Coding Agent)彻底改变了开发者的工作方式。Claude Code、OpenAI Codex、Cursor、GitHub Copilot——这些工具能读懂整个代码库,能自主规划任务、修改文件、运行测试。但用过的人都知道一个尴尬的事实:它们没有长期记性,更没有统一的行为约束。

你在 CLAUDE.md 里写了“禁止使用 any 类型”,结果 Cursor 里的同一个项目完全不知道这条规矩;你在 Cursor 的 .cursorrules 里定义了分支命名规范,切到 Codex 又得重写一遍。每个工具都有自己的配置格式、自己的记忆文件、自己的“脾气”,团队规范被碎片化地散落在四五份配置文件里,维护成本极高,最终没人维护。

更深层的问题是:AI 代理不理解“契约”这个概念。它不知道哪些规则是硬性的(违反即失败),哪些是建议性的(可以灵活处理),也不知道违反规则后该如何自查自纠。人类开发者靠 code review 兜底,AI 代理往往一气呵成地提交——没有兜底。

二、agents-contract:一份契约,管住所有代理

最近登上 GitHub Trending 的开源项目 AntoGA/agents-contract 给出了一个优雅的解法。它的核心思路可以用三句话概括:

1. 用 AGENTS.md 作为唯一契约源——一份文件,定义 AI 代理在项目中必须遵守的所有规则;

2. 零依赖的 Linter——不装任何 npm 包,直接校验契约文件的完整性和规范性;

3. SessionStart Hook——每次代理会话启动时自动注入契约内容,确保代理“开机即读规矩”。

关键在于 AGENTS.md 这个格式正在成为事实上的行业标准。与 CLAUDE.md(Claude Code 专属)、.cursorrules(Cursor 专属)不同,AGENTS.md 是一个开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。这意味着你写一次规则,所有工具共享。

它的架构非常清晰:

<svg viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" font-family="PingFang SC, Microsoft YaHei, Noto Sans SC, sans-serif">

<defs>

<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">

<path d="M0,0 L8,3 L0,6 Z" fill="#6366f1"/>

</marker>

</defs>

<rect x="40" y="40" width="200" height="80" rx="12" fill="#6366f1"/>

<text x="140" y="75" text-anchor="middle" fill="#fff" font-size="18" font-weight="bold">AGENTS.md</text>

<text x="140" y="100" text-anchor="middle" fill="#e0e7ff" font-size="13">唯一契约源</text>

<rect x="300" y="40" width="200" height="80" rx="12" fill="#8b5cf6"/>

<text x="400" y="75" text-anchor="middle" fill="#fff" font-size="18" font-weight="bold">Linter 校验</text>

<text x="400" y="100" text-anchor="middle" fill="#ede9fe" font-size="13">零依赖 · 规范检查</text>

<rect x="560" y="40" width="200" height="80" rx="12" fill="#6366f1"/>

<text x="660" y="75" text-anchor="middle" fill="#fff" font-size="18" font-weight="bold">SessionStart Hook</text>

<text x="660" y="100" text-anchor="middle" fill="#e0e7ff" font-size="13">会话启动自动注入</text>

<line x1="240" y1="80" x2="298" y2="80" stroke="#6366f1" stroke-width="2.5" marker-end="url(#arrow)"/>

<line x1="500" y1="80" x2="558" y2="80" stroke="#6366f1" stroke-width="2.5" marker-end="url(#arrow)"/>

<rect x="80" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>

<text x="155" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Claude Code</text>

<rect x="260" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>

<text x="335" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Codex</text>

<rect x="440" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>

<text x="515" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Cursor</text>

<rect x="620" y="220" width="150" height="70" rx="12" fill="#f5f3ff" stroke="#8b5cf6" stroke-width="2"/>

<text x="695" y="262" text-anchor="middle" fill="#6d28d9" font-size="16">Copilot</text>

<text x="400" y="180" text-anchor="middle" fill="#6366f1" font-size="14">↓ 契约内容分发至所有代理会话 ↓</text>

</svg>

三、上手实战:三步接入

第 1 步:安装(真的零依赖)

# 无需 npm install,直接通过 npx 使用

npx agents-contract init

init 命令会在项目根目录生成一份模板 AGENTS.md,你可以基于模板填入团队规范。

第 2 步:编写契约

一份结构良好的 AGENTS.md 大致长这样:

# Project Contract

Hard Rules(硬性规则,违反即失败)

  • TypeScript 严格模式,禁止使用 any
  • 所有公开函数必须有 JSDoc 注释
  • 禁止直接修改 legacy/ 目录下的文件

Conventions(约定)

  • 分支命名:feat/xxx、fix/xxx、chore/xxx
  • 提交信息遵循 Conventional Commits
  • 组件文件使用 PascalCase

Verification(完成定义)

  • 修改后必须运行:npm run lint && npm run test
  • 所有测试通过才算任务完成

第 3 步:配置 SessionStart Hook

以 Claude Code 为例,在 .claude/settings.json 中配置:

{

"hooks": {

"SessionStart": [

{

"matcher": "*",

"hooks": [

{

"type": "command",

"command": "npx agents-contract inject"

}

]

}

]

}

}

这个 Hook 的作用是:每次代理会话启动,自动把契约内容注入上下文。不需要你每次手动说“请先阅读 AGENTS.md”,代理开机第一件事就是“读合同”。

校验契约本身

契约文件写错了、写漏了怎么办?跑一下 Linter:

npx agents-contract lint

输出示例:

✓ AGENTS.md found at project root

⚠ Missing "Verification" section — agents won't know when a task is done

✓ Hard Rules section is valid

它会检查契约文件的结构完整性,比如是否定义了硬性规则、是否有明确的验证标准(Definition of Done)。这一点很妙——合同本身也要有人审。

四、为什么这个项目值得关注?

第一,它踩中了“规范统一”的真需求。 随着 AGENTS.md 被越来越多的工具采纳(OpenAI Codex 明确支持,Claude Code、Cursor 等通过兼容层支持),围绕它的生态工具是空白地带。agents-contract 补上的正是“契约管理”这块基础设施。 第二,零依赖是工程品味的体现。 一个只做契约校验的工具,如果拖进来一堆传递依赖,反而会污染项目。纯实现意味着可以放心放进任何 CI 流水线,不会有供应链安全顾虑。 第三,它把“提示词工程”工程化了。 过去大家调教 AI 代理靠的是玄学式的 prompt 技巧,现在有了版本化的、可 lint 的、可注入的契约文件——AI 行为约束从“手工作坊”进入了“软件工程”阶段。

当然也有冷静的一面:契约不是银弹。模型对规则的理解和遵守仍有概率性,契约写得再好,也替代不了 code review。它的正确定位是大幅降低 AI 犯低级错误的基线,而不是根除错误。

五、写在最后

从 .cursorrules 到 CLAUDE.md 再到 AGENTS.md,AI 编码工具的配置规范正在经历一场“大一统”。agents-contract 这样的项目出现,说明社区已经开始为“AI 代理的工程化协作”建设基础设施——就像当年 ESLint 之于 JavaScript、EditorConfig 之于多编辑器协作。

当你的 AI 代理学会“签合同”上岗,你才会意识到:约束,才是释放生产力的前提。

项目地址:https://github.com/AntoGA/agents-contract ,感兴趣的话不妨在你的下一个项目里试试。



信息源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract) 标签:AI编程代理, AGENTS.md, ClaudeCode

来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

🎬 本机管线自动渲染成片(未发布,人工审片前仅供参考)

【视频脚本总览】总时长 60 秒 | 竖屏 9:16 | 全程快节奏口播,每句不超过 15 字,重音落在“四五份”“一份”“四款工具”

【分镜 1|0-3秒|黄金钩子】

画面:手机屏幕特写,代码编辑器里一堆报错,快速划过四五份配置文件

口播:你的代码规范,散落在四五份配置文件里,五份!最后一份都没人维护。

字幕:四五份配置文件!没人维护!

【分镜 2|3-15秒|事件铺开】

画面:GitHub Trending 页面滚动截图,放大项目名 AntoGA/agents-contract

口播:最近登上 GitHub Trending 的开源项目 agents-contract,就治这个病。核心一句话:跟你的 AI 代理,签一份正式合同。合同就一份文件,叫 AGENTS.md。

字幕:开源项目:agents-contract|一份 AGENTS.md 当合同

【分镜 3|15-32秒|核心冲突】

画面:左右分屏,左边 CLAUDE.md 写“禁止 any 类型”,右边 Cursor 界面满屏魔法数字

口播:你是不是也遇到过?在 CLAUDE.md 里写了禁止 any 类型,切到 Cursor,它全忘了。在 .cursorrules 里定了分支命名规范,换到 Codex,又得重写一遍。问题不在模型笨,是你从来没跟它签过合同。

字幕:同一个项目,两个脾气|没签合同,怪谁?

【分镜 4|32-45秒|数据实证】

画面:一张流程图动画:AGENTS.md 一份文件,箭头分出四条线,分别指向 Claude Code、Codex、Cursor、Copilot 四个图标

口播:关键来了。AGENTS.md 是开放规范,Claude Code、Codex、Cursor、Copilot,全都支持。写一次,四个工具共享。再加上零依赖的 Linter,不装任何 npm 包,直接校验契约。还有 SessionStart Hook,代理一开机就自动读规矩。

字幕:写一次,四款工具全认|零依赖|开机即读规矩

【分镜 5|45-55秒|反直觉升华】

画面:实拍敲键盘的手,突然停住,镜头拉近屏幕上自动提交的 PR

口播:最反常识的是:人类有 code review 兜底,AI 代理是一气呵成直接提交的。它不知道哪条规则是硬性的,违反了也不会自查。所以规矩不能靠它自觉,得每次开机硬性注入。

字幕:AI 提交代码,没有兜底!

【分镜 6|55-60秒|互动CTA】

画面:博主出镜指镜头,屏幕角落放出 AGENTS.md 文件示意

口播:你的团队规范,现在散在几份文件里?评论区报个数。关注我,下期教你把四份配置合并成一份。

字幕:你的规范散在几份文件里?评论区报数!

【BGM与节奏】前 3 秒用低音鼓点加重音制造紧迫感;分镜 3 切换左右屏时配“叮”的音效卡点;分镜 4 流程图展开配上升式电子音;分镜 5 突然收静 0.5 秒再进人声,制造反差;结尾回到主节奏。全程无空白超 1 秒。

【素材清单】分镜 1:屏幕录制配置文件快速滑动;分镜 2:GitHub Trending 页面截图;分镜 3:CLAUDE.md 与 Cursor 界面左右分屏截图;分镜 4:流程图动画(一张文件分四线);分镜 5:实拍敲键盘 + PR 提交页面录屏;分镜 6:博主真人出镜 + 文件示意图角标。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

你的 AI 编程代理为什么总不听话?这个开源项目用一份「契约」治好了它 🔥

你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」——现在,这份合同有了开源标准版。


你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」——现在,这份合同有了开源标准版。

过去一年,AI 编码代理(Coding Agent)彻底改变了开发者的工作方式。Claude Code、OpenAI Codex、Cursor、GitHub Copilot——这些工具能读懂整个代码库,能自主规划任务、修改文件、运行测试。但用过的人都知道一个尴尬的事实:它们没有长期记性,更没有统一的行为约束。

你在 CLAUDE.md 里写了“禁止使用 any 类型”,结果 Cursor 里的同一个项目完全不知道这条规矩;你在 Cursor 的 .cursorrules 里定义了分支命名规范,切到 Codex 又得重写一遍。每个工具都有自己的配置格式、自己的记忆文件、自己的“脾气”,团队规范被碎片化地散落在四五份配置文件里,维护成本极高,最终没人维护。


📌 来源:GitHub Trending

#AI编程代理 #AGENTS.md #ClaudeCode

#科技资讯 #彩虹洋葱AI


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

AI 编码代理为什么总不听话?我的答案:它没读过你的「合同」,而且你根本没写过这份合同

先说结论:问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」。现在,这份合同有了开源标准版——登上 GitHub Trending 的 AntoGA/agents-contract。

配图

下面展开讲为什么。

【配图建议:开发者对着屏幕上 AI 生成的满屏魔法数字代码皱眉】

一、先看一个所有 AI 编程用户都遇过的场景

你在 CLAUDE.md 里写了「禁止使用 any 类型」,结果 Cursor 里的同一个项目完全不知道这条规矩。你在 Cursor 的 .cursorrules 里定义了分支命名规范,切到 Codex 又得重写一遍。

这不是错觉。CLAUDE.md 是 Claude Code 专属格式,.cursorrules 是 Cursor 专属格式,各家互不相认。结果是团队规范被碎片化地散落在四五份配置文件里,维护成本极高,最终没人维护。

我在团队协作里见过太多这种局面:每人用自己的工具,每人的工具读自己的规则文件,规则之间开始打架,最后所有人干脆放弃维护。规范文档一旦没人信,就等于没有规范。

二、更深一层:AI 代理不理解「契约」这个概念

碎片化只是表层。真正的问题是结构性的:

AI 代理不知道哪些规则是硬性的(违反即失败),哪些是建议性的(可以灵活处理),也不知道违反规则后该如何自查自纠。

人类开发者靠 code review 兜底,AI 代理往往一气呵成地提交——没有兜底。

把这两点放在一起看,就明白为什么「换个更强的模型」解决不了问题。模型再强,它收到的还是一份没有优先级、没有违约后果、没有自查机制的规则清单。这不是能力问题,是制度设计问题。人类工程师入职第一天也要签员工手册、过流程培训——AI 代理拿了权限却没签过任何东西。

【配图建议:一份盖了印章的合同文件特写】

三、agents-contract 的解法:三件事

这个开源项目只做三件事,每件都针对上面一个痛点:

1. 用 AGENTS.md 作为唯一契约源——一份文件,定义 AI 代理在项目中必须遵守的所有规则;

2. 零依赖的 Linter——不装任何 npm 包,直接校验契约文件的完整性和规范性;

3. SessionStart Hook——每次代理会话启动时自动注入契约内容,确保代理「开机即读规矩」。

第三点值得多说两句。规则文件躺在仓库里不等于代理会读——就像员工手册锁在抽屉里。SessionStart Hook 把「读规矩」从被动变成强制:每次会话启动,契约自动注入上下文,代理想忘都忘不了。这是把人类世界的「入职培训」机制搬进了代理生命周期。

第二点的「零依赖」也别小看。校验工具本身不引入任何 npm 包,意味着它不会成为新的依赖负担和安全面——治理工具首先得不添乱。

四、为什么是 AGENTS.md,而不是再造一个格式

因为 AGENTS.md 正在成为事实上的行业标准。与 CLAUDE.md、.cursorrules 这类工具专属格式不同,AGENTS.md 是一个开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。

这意味着:写一次规则,所有工具共享。四五份配置文件收敛为一份,碎片化问题从格式层面被切断。

它的架构也简单到一眼能看懂:AGENTS.md(唯一契约源)→ Linter 校验(零依赖、规范检查)→ SessionStart Hook(会话启动自动注入),然后分发给 Claude Code、Codex、Cursor 等所有代理。

【配图建议:一份规则文件同时流向多个 AI 工具的示意图】

我的判断

当前阶段,治理 AI 编码代理的杠杆不是更强的模型,而是契约的标准化。给代理签一份它每次开机都必须读、有 Linter 保证质量、全工具共享的合同,比等待模型自己「变懂事」见效快得多,而且今天就能做。

但留一个开放问题:这份契约由谁维护?当 Claude Code 团队的最佳实践和团队自己的分支规范冲突时,规则冲突由谁裁决、按什么优先级合并?工具标准化解决的是「读不读」的问题,「写什么、谁说了算」的治理问题,才刚刚开始。

你觉得你们团队的 AI 规范,今天散落在几份文件里?评论区聊聊。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

AI 编程代理总不守规矩?GitHub 开源项目用一份 AGENTS.md「契约」治好了它

你在 CLAUDE.md 里写了“禁止使用 any 类型”,Cursor 看了一眼同一个项目——完全不知道这条规矩存在。这不是模型不够聪明,而是你从来没跟 AI 代理签过一份正式的“合同”。最近,登上 GitHub Trending 的开源项目 AntoGA/agents-contract,把这份合同做成了标准版。

配图

【配图建议:开发者在双屏电脑前查看代码,屏幕上可见 AI 编程助手界面】

痛点:AI 编码代理的“失忆症”

过去一年,AI 编码代理彻底改变了开发方式。Claude Code、OpenAI Codex、Cursor、GitHub Copilot——这些工具能读懂整个代码库,能自主规划任务、修改文件、运行测试。

但用过的人都知道一个尴尬的事实:它们没有长期记性,更没有统一的行为约束。

你在 Cursor 的 .cursorrules 里定义了分支命名规范,切到 Codex 又得重写一遍。每个工具都有自己的配置格式、自己的记忆文件、自己的“脾气”。团队规范被碎片化地散落在四五份配置文件里,维护成本极高——最终没人维护。

更深层的问题是,AI 代理不理解“契约”这个概念。它不知道哪些规则是硬性的(违反即失败),哪些是建议性的(可以灵活处理),也不知道违反规则后该如何自查自纠。人类开发者靠 code review 兜底,AI 代理往往一气呵成地提交——没有兜底。

解法:一份契约,管住所有代理

agents-contract 的核心思路可以用三句话概括:

第一,用 AGENTS.md 作为唯一契约源。 一份文件,定义 AI 代理在项目中必须遵守的所有规则。规则不再散落在四五份文件里,团队规范从此有了唯一出处。 配图 第二,零依赖的 Linter。 不装任何 npm 包,直接校验契约文件的完整性和规范性。契约本身也可能写错、写漏,这份校验器就是给“合同”做的质检。 第三,SessionStart Hook。 每次代理会话启动时自动注入契约内容,确保代理“开机即读规矩”。解决了 AI 没有长期记性的问题——记不住没关系,每次开工前重新念一遍。

【配图建议:简洁的三步流程示意图,从契约文件到校验再到注入代理会话】

为什么是 AGENTS.md?

关键在于,AGENTS.md 这个格式正在成为事实上的行业标准。

与 CLAUDE.md(Claude Code 专属)、.cursorrules(Cursor 专属)这些私有格式不同,AGENTS.md 是一个开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。

这意味着一件事:写一次规则,所有工具共享。 你不用再为每个工具维护一份单独的配置,换工具也不用重写规范。对团队来说,统一的规则文件还能进版本管理,谁来改了规矩、改了什么,一目了然。

它的架构也非常清晰:AGENTS.md 作为唯一契约源,经过 Linter 校验,再通过 SessionStart Hook 注入到各个代理会话中——一条链路,覆盖所有主流工具。

值得带走的观点

AI 代理不听话,缺的从来不是智商,而是约束的载体。人类团队的规范靠文档、流程和 code review 三层兜底,而 AI 代理此前只有零散的配置文件——agents-contract 补上的正是“契约”这一层。

下一个问题留给你:你的团队现在用哪套 AI 编程代理?规则文件写了几个? 评论区聊聊,你是怎么管住 AI 的。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

你给 Claude Code 写了十条规矩,它转身就忘;Cursor 提交的 PR 还是满屏魔法数字。不是模型笨,是你没跟它签合同。

开源项目 AntoGA/agents-contract 登上 GitHub Trending,思路就三步:用 AGENTS.md 当唯一契约源,写一次规则,Claude Code、Codex、Cursor、Copilot 全共享;零依赖 Linter 校验文件规范性,一个 npm 包都不用装;SessionStart Hook 让代理会话启动时自动注入契约——开机即读规矩。

以前同一条团队规范要在 CLAUDE.md、.cursorrules 里抄好几遍,散落在四五份配置文件里没人维护。现在一份文件管住所有代理。

你们团队的 AI 代理规矩,散落在几份配置文件里?#AI编程代理# #AGENTS.md# #ClaudeCode#


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

🎬 本机管线自动渲染成片(未发布,人工审片前仅供参考)

📺 B站视频脚本 | 时长:3-5分钟

【片头 0:00-0:15】BGM起 → 标题字幕弹出

你的 AI 编程代理为什么总不听话?这个开源项目用一份「契约」治好了它

【引子 0:15-0:45】制造悬念

你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟它签过一份正式的「合同」——现在,这份合同有了开源标准版。

【时间轴分镜】

├ [00:02] 你给 Claude Code 写了十条规矩,它转身就忘;Cursor 明明配置了代码规范,提交的 PR 还是满屏魔法数字。问题不在模型不够聪明,而在于你从来没跟……

├ [02:04] 过去一年,AI 编码代理(Coding Agent)彻底改变了开发者的工作方式。Claude Code、OpenAI Codex、Cursor、GitHub C……

├ [04:06] 你在 CLAUDE.md 里写了“禁止使用 any 类型”,结果 Cursor 里的同一个项目完全不知道这条规矩;你在 Cursor 的 .cursorrule……

├ [06:08] 更深层的问题是:AI 代理不理解“契约”这个概念。它不知道哪些规则是硬性的(违反即失败),哪些是建议性的(可以灵活处理),也不知道违反规则后该如何自查自纠。人类……

├ [08:10] 最近登上 GitHub Trending 的开源项目 AntoGA/agents-contract 给出了一个优雅的解法。它的核心思路可以用三句话概括:……

├ [结尾] 总结 + 求三连关注

【弹幕互动引导】

  • "觉得有用的扣 1"
  • "不同观点的弹幕见"
  • 结尾设置投票:你看好这个方向吗?A.看好 B.观望 C.不看好

🏷️ 标签:AI编程代理, AGENTS.md, ClaudeCode


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

【视频脚本总览】总时长 45-60 秒 | 竖屏 9:16 | 你用 AI 写代码老不听话?不是它笨,是你没跟它签合同,GitHub 上有人把合同做成了开源标准

【分镜 1|0-3秒|利益点开场】

画面:屏幕录屏,Claude Code 对话框里敲下一行规则,镜头快速切到 Cursor 报错满屏魔法数字的代码,红框圈出问题

口播:你在 Claude Code 里写了十条规矩,它转头就忘——不是 AI 笨,是你没跟它签合同!

字幕:AI 写代码不听话?你没签合同!

【分镜 2|3-30秒|正文讲清】

画面:【配图建议:屏幕分屏演示——左边 CLAUDE.md 文件里的“禁止使用 any 类型”,右边 Cursor 界面完全无视这条规则继续生成 any】

口播:真事。你在 CLAUDE.md 里写了“禁止使用 any 类型”,切到 Cursor,同一个项目,它压根不知道这条规矩。为啥?CLAUDE.md 是 Claude Code 专属的,.cursorrules 是 Cursor 专属的,你的团队规范散在四五份配置文件里,最后没人维护,代码全是魔法数字。最近 GitHub Trending 上一个开源项目 AntoGA/agents-contract 就治这个病。它就三招:第一,用 AGENTS.md 当唯一契约源,规则只写一份;第二,自带零依赖的 Linter,一个 npm 包都不用装,直接帮你检查契约文件写没写全;第三,SessionStart Hook,AI 代理每次开机干活前自动把规矩读一遍——开机即读规矩,想忘都忘不掉。

字幕:一份 AGENTS.md 管所有工具 / 零依赖 Linter / 开机自动读规矩

【分镜 3|30-45秒|实在收尾】

画面:【配图建议:电脑屏幕上 Claude Code、Codex、Cursor、Copilot 四个 logo 排成一排,中间一份 AGENTS.md 文件图标连向四个,动态连线动画】

口播:最狠的是,AGENTS.md 是开放规范,Claude Code、Codex、Cursor、Copilot 全都认。规矩写一次,四个工具同时生效,再也不用来回重写了。你用 AI 写代码被它“不听话”坑过没有?评论区说说,看谁最惨。

字幕:写一次规矩 四个工具全认 / 评论区聊聊你被坑过没

【BGM与节奏】轻快电子鼓点,BPM 100 左右;开场第一句重音砸在“没签合同”;分镜 2 三个招数每出一个卡一次鼓点切屏;结尾语速放慢半拍,留出评论引导的松弛感

【素材清单】

1. 屏幕录屏:Claude Code 写规则、Cursor 输出魔法数字代码各一段

2. 【配图建议:CLAUDE.md 与 .cursorrules 两个文件图标被划掉的对比动画】

3. 【配图建议:AGENTS.md 文件图标连线 Claude Code、Codex、Cursor、Copilot 四个 logo 的架构动画】

4. GitHub Trending 界面展示 AntoGA/agents-contract 项目的录屏素材


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

你的 AI 编程代理为什么总不听话?这个开源项目用一份「契约」治好了它

你在 CLAUDE.md 里写了“禁止使用 any 类型”,Cursor 里的同一个项目压根不知道这条规矩。你在 Cursor 的 .cursorrules 里定义了分支命名规范,切到 Codex 又得重写一遍。这不是模型不够聪明,是你从来没跟它签过一份正式的“合同”。

最近登上 GitHub Trending 的开源项目 AntoGA/agents-contract,就是这份合同的开源标准版。

【配图建议:开发者在多块屏幕前同时操作多个 AI 编程工具的工作场景】

一、AI 编码代理的「失忆症」,出在契约层

过去一年,Claude Code、OpenAI Codex、Cursor、GitHub Copilot 彻底改变了开发方式:它们能读懂整个代码库,自主规划任务、修改文件、运行测试。但用过的人都知道一个尴尬的事实——它们没有长期记性,更没有统一的行为约束。

问题分两层。

第一层是配置碎片化。 每个工具都有自己的配置格式、自己的记忆文件、自己的“脾气”:Claude Code 读 CLAUDE.md,Cursor 读 .cursorrules,互不相认。团队规范被散落在四五份配置文件里,维护成本极高,最终没人维护。 第二层更深:AI 代理不理解“契约”这个概念。 它不知道哪些规则是硬性的(违反即失败),哪些是建议性的(可以灵活处理),也不知道违反规则后该如何自查自纠。人类开发者写完代码还有 code review 兜底,AI 代理往往一气呵成地提交——没有兜底。Cursor 提交的 PR 满屏魔法数字,就是这么来的。

【配图建议:多份不同格式的配置文件散落在桌面上的概念图】

二、agents-contract 的解法:三个机制

这个项目的核心思路可以用三句话概括,每个机制都针对上面一层病灶。

1. 用 AGENTS.md 作为唯一契约源。 一份文件,定义 AI 代理在项目中必须遵守的所有规则。规则只有一份,就不会出现“CLAUDE.md 有一套、.cursorrules 有另一套”的分裂局面。 2. 零依赖的 Linter。 不装任何 npm 包,直接校验契约文件的完整性和规范性。这一步的价值在于:契约本身也会腐烂——有人改了没写全、格式坏了没人发现,Linter 让契约文件也进入“可校验”的工程轨道。 3. SessionStart Hook。 每次代理会话启动时自动注入契约内容,确保代理“开机即读规矩”。这解决的是“失忆”:规则不是写在某个文件里等代理“心情好”去翻,而是在会话启动那一刻就被强制喂进去。

整个流程是单向清晰的:AGENTS.md(唯一契约源)→ Linter 校验(零依赖、规范检查)→ SessionStart Hook(会话启动自动注入)→ 分发给 Claude Code、Codex、Cursor、Copilot 四个代理工具。

【配图建议:从一份中心文档流向四个工具的架构示意流程图】

三、为什么是 AGENTS.md,而不是再造一个格式

关键在于 AGENTS.md 这个格式正在成为事实上的行业标准。

与 CLAUDE.md(Claude Code 专属)、.cursorrules(Cursor 专属)这类工具私有格式不同,AGENTS.md 是一个开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。

这个差异的工程含义很实际:私有格式意味着你写一次规则,只能在一家工具里生效;开放规范意味着写一次规则,所有工具共享。团队里有人用 Claude Code、有人用 Cursor、CI 里跑 Codex,规范只有一份,改动只需改一处。agents-contract 聪明的地方在于它没有发明新东西,而是把宝押在了这个开放规范上,再用 Linter 和 Hook 把“契约可校验、启动即注入”两个缺口补齐。

四、落地思路与实践建议

原文项目是现成工具,接入思路可以拆成三步:

第一步:编写 AGENTS.md。 把散落在 CLAUDE.md、.cursorrules 等文件里的规则合并成一份,统一成 AGENTS.md 格式,放到项目根目录作为唯一契约源。 第二步:跑 Linter 校验。 用 agents-contract 自带的零依赖 Linter 校验契约文件的完整性和规范性——不需要安装任何 npm 包,直接运行即可。确认规则没有缺漏、格式合规。 第三步:配置 SessionStart Hook。 让代理每次会话启动时自动注入契约内容,避免出现“代理没读到规矩”的情况。

两条实践建议:

  • 区分硬性规则与建议性规则。 这正是 AI 代理最缺的契约意识——“禁止使用 any 类型”这类违反即失败的规则,要和“优先使用某种命名风格”这类可灵活处理的建议明确分开写,代理才知道哪些碰不得。
  • 写完即校验。 契约也是代码,改完 AGENTS.md 就跑一遍 Linter,别让契约文件本身成为没人维护的那一份。

总结

AI 编码代理不缺智力,缺的是一份四家工具都认的正式合同。agents-contract 用 AGENTS.md 做唯一契约源、零依赖 Linter 做校验、SessionStart Hook 做注入,三个机制拼出了一条完整的契约链路。

今天就可以动手:打开你的项目,数一数散落着几份代理配置文件——然后把它们合并成一份 AGENTS.md,跑一遍 Linter,配好启动注入。一份契约,管住所有代理。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

你在 CLAUDE.md 里写了"禁止使用 any 类型",切到 Cursor,这条规矩凭空消失;反过来在 .cursorrules 里定义的分支命名规范,Codex 也完全不知道。规矩没少写,AI 还是各干各的——问题不在模型不够聪明,而在你从来没跟它签过一份正式的"合同"。

为什么这件事值得你花五分钟

过去一年,Claude Code、OpenAI Codex、Cursor、GitHub Copilot 能读代码库、规划任务、改文件、跑测试,但有一个共性问题:没有统一的行为约束。每个工具都有自己的配置格式——Claude Code 认 CLAUDE.md,Cursor 认 .cursorrules,互不通用。团队规范被碎片化地散落在四五份配置文件里,最后的结果是:没人维护。

更深一层,AI 代理不理解"契约"这个概念。它不知道哪些规则是硬性的(违反即失败)、哪些是建议性的,违反之后也不会自查自纠。人类开发者靠 code review 兜底,AI 代理往往一气呵成地直接提交——没有兜底。

技术拆解:agents-contract 的三件套

最近登上 GitHub Trending 的开源项目 AntoGA/agents-contract,用三件事解决这个问题:

1. AGENTS.md 作为唯一契约源。 一份文件定义 AI 代理必须遵守的所有规则。这和 CLAUDE.md、.cursorrules 的根本区别在于:AGENTS.md 是开放规范,不是某家工具的专属格式,Claude Code、Codex、Cursor、Copilot 都已支持或兼容,正在成为事实上的行业标准。写一次规则,所有工具共享。 2. 零依赖 Linter。 不装任何 npm 包,直接校验契约文件的完整性和规范性。这个设计很务实——契约本身就应该是最轻的那一层,如果校验工具还要拖一串依赖进来,那团队接入的成本反而变高了。零依赖意味着把 AGENTS.md 塞进现有项目几乎没有任何阻力。 3. SessionStart Hook。 每次代理会话启动时自动注入契约内容,让代理"开机即读规矩"。这一步解决的是执行问题:契约写得再好,代理不开机读一遍,等于没写。Hook 把"AI 是否读过规矩"从碰运气变成了机制保证。

【配图建议:AGENTS.md → Linter 校验 → SessionStart Hook 三层流程,下方分发到 Claude Code、Codex、Cursor、Copilot 四个工具的架构图】

对日常开发的三点启示

先做合并,再做规范。 把散落在 CLAUDE.md、.cursorrules 等文件里的规则收编进一份 AGENTS.md,作为团队规范的单一事实来源。迁移成本极低,收益立刻可见——任何代理进来读的都是同一份规矩。 给规则分硬性等级。 既然契约化,就该把"违反即失败"和"可以灵活处理"的规则区分开写。AI 不会猜你的意图,你得像写合同条款一样明确。 接入 CI 前先跑 Linter。 零依赖意味着你可以直接在任何环境校验 AGENTS.md 的规范性,先确认契约文件本身没问题,再谈代理遵守不遵守。

一句话收尾:AI 代理时代缺的不是聪明的模型,而是那份人类工程师习以为常的东西——一份写清楚、能校验、开机就生效的团队契约。今天就把你那四五份配置文件合并了试试。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

为什么你的 AI 编程代理总不听规矩?答案可能不是模型不够聪明

你在 CLAUDE.md 里写了「禁止使用 any 类型」,结果切到 Cursor,AI 完全不认这条规矩;你在 .cursorrules 里定义了分支命名规范,换到 Codex 又得从头重写一遍。为什么 AI 编程代理总是各记各的、转身就忘?

配图

答案很直接:问题不在模型不够聪明,而在于你从来没跟它签过一份统一的「合同」。

AI 代理的「失忆症」是怎么来的

Claude Code、OpenAI Codex、Cursor、GitHub Copilot——这些工具能读懂整个代码库,能自主规划任务、修改文件、运行测试。但它们没有长期记性,更没有统一的行为约束。

每个工具都有自己的配置格式和「脾气」。Claude Code 认 CLAUDE.md,Cursor 认 .cursorrules,互不相通。结果就是:团队规范被碎片化地散落在四五份配置文件里,维护成本极高,最终没人维护。

更麻烦的是,AI 代理不理解「契约」这个概念。它不知道哪些规则是硬性的、哪些是建议性的,也不知道违反规则后该如何自查自纠。人类开发者有 code review 兜底,AI 代理往往一气呵成地提交——没有兜底。

【配图建议:开发者面对多份 AI 配置文件抓狂的场景】

agents-contract:一份契约,管住所有代理

配图

最近登上 GitHub Trending 的开源项目 AntoGA/agents-contract,给出了一个三件套解法:

第一,用 AGENTS.md 作为唯一契约源。 一份文件,定义 AI 代理在项目中必须遵守的所有规则。关键在于,AGENTS.md 是开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。而 CLAUDE.md 是 Claude Code 专属,.cursorrules 是 Cursor 专属——对比之下,写一次规则、所有工具共享,价值一目了然。 第二,零依赖的 Linter。 不装任何 npm 包,直接校验契约文件的完整性和规范性。你的规则文件本身写得对不对,它能替你把关。 第三,SessionStart Hook。 每次代理会话启动时自动注入契约内容,确保代理「开机即读规矩」。这解决了最核心的失忆问题——规矩不是写在角落里等它自己想起来,而是每次开工前强制塞给它。

三个机制连起来:契约源 → 校验 → 启动注入,构成一条完整的行为约束链路。

给开发者的实际意义

如果你同时使用 Claude Code 和 Cursor,或者团队里有人用 Codex、有人用 Copilot,这份规范意味着:不再需要为每个工具单独维护规则,一份 AGENTS.md 走遍全部。规范不再散落,也就不再「没人维护」。

下一步很简单:打开你的项目,数一数现在维护着几份 AI 规则文件。如果超过一份,去 GitHub 搜索 AntoGA/agents-contract,试试把所有规矩合并进一份 AGENTS.md——先跟你的 AI 签好合同,再让它写代码。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

你的 AI 代理不是不听话,是你从没跟它签过合同

凌晨一点,我又把“禁止使用 any 类型”这条规则,从 CLAUDE.md 复制进了 Cursor 的配置文件。

配图

这是这周第三次。

起因是白天合的一个 PR:Cursor 提交的代码,满屏魔法数字。可我明明在 CLAUDE.md 里写了十条规矩,白纸黑字。后来才想明白,Cursor 根本不看 CLAUDE.md——那是 Claude Code 的地盘。同样,我在 Cursor 的 .cursorrules 里定义的分支命名规范,切到 Codex 又得重写一遍。

各家的配置文件互不相通,各说各话。

【配图建议:深夜屏幕前堆叠的多份配置文件窗口】

我数过团队仓库里的 AI 工具配置:CLAUDE.md、.cursorrules,加上其他工具的记忆文件,规范散落在四五份文件里。每份格式不同,脾气不同。维护成本高到什么程度?高到最后没人维护。

更让我后背发凉的是另一件事。这些 AI 编码代理——Claude Code、OpenAI Codex、Cursor、GitHub Copilot——能读懂整个代码库,能自主规划任务、修改文件、跑测试。但它们没有长期记性,也没有统一的行为约束。人类开发者写完代码,还有 code review 兜底;AI 代理往往一气呵成地提交,没有兜底。

它不是不聪明。它是压根不知道什么叫“契约”——不知道哪些规则是硬性的、违反即失败,哪些只是建议,更不知道违反之后该如何自查自纠。

前两天刷 GitHub Trending,看到一个开源项目,叫 AntoGA/agents-contract。名字很直白:给 AI 代理一份合同。

它的解法让我盯着看了很久,因为实在优雅——三句话就能说清。

第一,用 AGENTS.md 作为唯一契约源。一份文件,写清 AI 代理在这个项目里必须遵守的所有规则。第二,内置零依赖的 Linter,不装任何 npm 包,直接校验契约文件本身的完整性和规范性——合同自己先过质检。第三,SessionStart Hook,每次代理会话启动时自动注入契约内容。翻译过来就是:开机即读规矩,想忘都忘不了。

【配图建议:一份文档流向多个工具窗口的示意图】

而真正击中我的,是 AGENTS.md 这个格式本身。CLAUDE.md 是 Claude Code 专属,.cursorrules 是 Cursor 专属——它们是围墙。AGENTS.md 是开放规范,Claude Code、Codex、Cursor、Copilot 都已支持或兼容。这意味着:规则写一次,所有工具共享。我不用再在四份文件之间搬运同一条规矩,团队规范终于有了一个唯一的事实来源。

细想一下,这个项目解决的不是技术问题,是关系问题。过去我们和 AI 代理的关系是“提要求、盼自觉”,像没签合同的口头约定,对方转头就忘。现在变成签一份正式契约:白纸黑字、开机宣读、有校验、有兜底。约束一旦标准化,信任才有可能标准化。

昨晚我把 CLAUDE.md 里那十条规矩,正式搬进了 AGENTS.md。

【配图建议:清晨合上的笔记本和亮着 AGENTS.md 的屏幕】

如果你也正被四五份互不相通的配置文件折磨,不妨今天就做一件事:打开你的仓库,搜一遍那些散落的规则文件,数一数有多少条规矩被复制了不止一次。那个数字,就是你的 AI 代理一直“不听话”的真正原因——不是它笨,是你从没让它签过字。


来源:GitHub Trending — AntoGA/agents-contract(https://github.com/AntoGA/agents-contract)

原文:https://www.rainbowonionai.cn/antogaagents-contract.html

🚀 多平台发布

点击「复制」获取平台专属文案,到各平台编辑器(App/网页)粘贴即可发布。
有密钥的 4 个平台(微信服务号 / 头条 / 百家号 / 微博)可自动发布,密钥填好后自动点亮。

平台状态操作
💬 公众号🔑 待配置密钥
🎵 抖音📋 手动复制
📕 小红书📋 手动复制
🤔 知乎📋 手动复制
📰 今日头条🔑 待配置密钥
🐦 微博🔑 待配置密钥
📺 B站📋 手动复制
⚡ 快手📋 手动复制
💻 CSDN📋 手动复制
⛏️ 掘金📋 手动复制
📝 百家号🔑 待配置密钥
✍️ 简书📋 手动复制