仓库指令
仓库指令是放在代码仓库中、供编码 Agent 在每次会话开始时自动读取的说明文件,例如 AGENTS.md、CLAUDE.md。它保存构建和测试命令、目录结构、代码约定、禁止事项等稳定信息,让 Agent 不必每次重新摸索项目。本文讲应该写什么、不该写什么、如何组织与维护,以及如何验证修改有效。不同工具支持的文件名、层级和加载规则不同,具体以所用工具的文档为准。
1. 面试核心
先记住这几条,再读正文2. 写什么
# 项目说明
Node 20 + TypeScript 的订单服务,入口 src/server.ts。
## 常用命令
- 安装:pnpm install
- 单测:pnpm test -- <文件>;全量 pnpm test
- 类型检查:pnpm typecheck(提交前必须通过)
## 结构
- src/api:HTTP 路由,只做参数校验和调用 service
- src/service:业务逻辑
- src/repo:数据库访问,唯一允许写 SQL 的目录
## 约定
- 金额使用整数分,不使用浮点数。
- 新接口必须有对应的集成测试(tests/api/)。
## 禁止
- 不修改 migrations/ 中已有的迁移文件,新增迁移代替。
- 不在代码中写入密钥,使用 config/ 读取环境变量。
写作要点:
- 具体可执行:“运行
pnpm typecheck”比“保证类型正确”有用。 - 说明原因:“金额用整数分,因为浮点数会产生舍入误差”让 Agent 在相似场景也能正确判断。
- 只写例外:通用的良好实践模型已经知道,写项目特有的约定和容易出错的地方。
- 保持简短:详细文档放在其他文件中,指令里写明在什么情况下去读哪个文件。
3. 组织与维护
- 层级:多数工具支持多级文件,例如用户级(个人偏好)、仓库根目录(全项目约定)、子目录(模块特有约定),离修改位置越近的文件通常越具体。
- 来源:Agent 犯了一次可以通过规则避免的错误,就是增加一条规则的时机;规则不再适用时删除。
- 版本管理:和代码一起提交、评审,变更有记录。
- 防止膨胀:定期合并重复规则、删除过时内容。很长的规则文件会挤占上下文,也会让真正重要的规则被忽略。
- 与其他机制分工:只在特定任务需要的流程写成 Agent Skills;必须保证执行的检查(格式化、禁止的命令)用 Hook 或 CI 强制,不能只依赖文字规则。
4. 常见问题
4.1 仓库指令和系统提示有什么区别
系统提示由 Agent 工具的开发者编写,描述工具和通用行为;仓库指令由项目维护者编写,描述当前项目。工具会把仓库指令作为上下文的一部分加载,它的优先级和加载方式由工具决定。
5 · 面试题卡片
5.1 项目规则文件中应该保存哪些信息?哪些信息不能在上下文压缩时丢失?
出现公司:安软、字节跳动
考察重点
- 稳定信息与临时状态的区分。
- 指令文件独立于对话历史加载的特点。
参考回答
保存稳定、反复用到的信息:构建、测试、类型检查等命令;目录结构和各层职责;项目特有的代码约定及原因;验证要求,如提交前必须通过哪些检查;明确的禁止事项,如不改已有迁移、不写入密钥。
这些信息在会话开始时从文件加载,不依赖对话历史,所以压缩后仍然有效;必须始终遵守的约束、验证方式和禁止事项应该写在这里。当前任务的进度、已修改的文件、未解决的错误属于临时状态,应写入进度文件或在压缩摘要中保留,不放入仓库指令。
5.2 更新 AGENTS.md 或 Skills 后,怎样验证效果确实提升?
出现公司:字节跳动
考察重点
- 用代表任务做修改前后的对照。
- 结果、成本与规则遵守情况的度量。
相关内容:组织与维护、编码 Agent 评测。
参考回答
准备一组代表性任务,其中包含这次修改想解决的问题,以及与修改无关的常规任务。固定模型版本、工具和仓库状态,分别用旧指令和新指令运行,每个任务运行多次。
比较任务成功率(测试是否通过)、违反规则的次数、步数和 Token 消耗、人工修正量。输出质量难以用测试判断时,用评价脚本检查可验证的项,或用带评分细则的模型评审对比两组输出,并人工抽查校准。新规则改善了目标问题且没有让常规任务变差才保留,同时检查文件长度增长是否带来额外成本。
5.3 多人使用不同 AI 工具开发同一个功能时,怎样协作?
出现公司:快手、美团
考察重点
- 共享的规则、接口约定和验证标准。
- 版本管理与评审流程不因工具不同而改变。
相关内容:组织与维护。
参考回答
协作的基础不在于统一工具,而在于统一约定和验收。仓库中维护一份纳入版本管理的指令文件,写清命令、结构、代码约定和禁止事项;不同工具读取的文件名不同时,用同一份内容或相互引用,避免规则分叉。
功能开始前约定接口和数据结构,按模块划分负责人,减少同时修改同一文件。所有修改走同样的分支、CI 和代码评审流程,用测试、类型检查等自动检查作为共同的验收标准。某个人发现的 AI 常见错误,补充到共享指令或 CI 检查中,让所有人受益。