AI Agent 规则系统设计指南 V2

0 阅读5分钟

AI Agent 规则系统设计指南 V2

面向 Codex、Claude、Gemini、Copilot 等 AI 编程代理 一套用于构建可预测、可控、可验证、可扩展 AI 行为的工程化规则系统


1. 背景与问题

随着 AI 编程代理(AI coding agents)在工程中的普及,一个典型项目往往会同时使用多个工具,例如:

  • Claude Code
  • OpenAI Codex
  • Gemini Code Assist
  • GitHub Copilot

这些工具通常会读取仓库中的规则文件(如 AGENTS.mdCLAUDE.md、instructions 等)来指导行为。


1.1 现实问题

在实际工程中,规则往往呈现以下状态:

  • 多个规则来源并存(AGENTS、CLAUDE、工具私有目录等)
  • 不同 agent 加载方式不同
  • 规则更新不同步
  • 无法确认规则是否被真正加载
  • 无法保证规则被严格执行

最终导致:

同一任务,在不同 agent 或不同上下文中,行为不一致且不可预测

1.2 问题本质

问题不在于“有没有规则”,而在于:

规则是否能够被稳定加载、正确理解、实际执行,并可被验证

2. 设计目标

本指南的目标是构建一套工程级规则系统,而不仅是文档结构。

系统必须具备以下能力:


2.1 可预测性(Predictability)

在相同上下文下,不同 AI agent 的行为应尽可能一致。


2.2 可控性(Control)

规则修改后,应能够稳定影响 agent 行为,而不是“可能生效”。


2.3 可验证性(Verifiability)

必须能够回答:

  • 哪些规则被加载?
  • 哪些规则被覆盖?
  • agent 是否遵守规则?

2.4 可扩展性(Scalability)

规则系统可以增长,但必须:

  • 不引发上下文失控
  • 不导致规则冲突
  • 不降低执行一致性

3. 核心思想

V2 的核心思想是:

规则系统不是文档集合,而是一个工程系统

该系统包含四个协同部分:

1. Source(规则源)
2. Compile(编译分发)
3. Enforce(执行与强制)
4. Verify(验证与审计)

4. 总体架构

推荐结构如下:

repo/
├─ AGENTS.md
├─ CLAUDE.md
├─ GEMINI.md
│
├─ agents/                    # 唯一规则事实来源
│  ├─ core/
│  ├─ conventions/
│  ├─ modules/
│  └─ skills/
│
├─ agents-compiled/          # 编译产物(各 agent 入口)
│
├─ agents-runtime/           # 执行与强制层
│
├─ scripts/                  # 编译与工具
│
└─ docs/

5. 核心原则


原则 1:单一事实来源

所有项目规则必须集中在:

agents/**

其他文件(AGENTS.md、CLAUDE.md 等)不得成为独立规则来源。


原则 2:入口文件是“投影”,不是来源

不同 AI agent 使用不同入口文件。

因此:

AGENTS.md / CLAUDE.md / GEMINI.md 是规则的“投影”,而不是规则本身

这些文件应由规则源生成,而不是手动维护。


原则 3:规则与执行分离

规则系统必须区分:

  • 规则(What is correct)
  • 执行(How to do)
  • 强制(Must happen)

原则 4:软约束与硬约束分离

软约束(Soft Constraints)

通过文本规则表达,例如:

  • 设计原则
  • 编码风格
  • 架构约定

硬约束(Hard Constraints)

必须通过执行机制实现,例如:

  • 测试必须通过
  • 禁止危险命令
  • 必须执行 lint
  • 禁止修改关键文件

原则 5:规则必须可验证

每条关键规则都应能回答:

如何验证该规则是否被遵守?

原则 6:按需加载(控制上下文)

不是所有规则都应常驻上下文。

规则必须支持:

只在需要时加载

6. Source Layer(规则源)

agents/** 是系统唯一事实来源。


6.1 core(全局规则)

用于定义:

  • 架构约束
  • 安全边界
  • 验证标准
  • 思维模型

特点:

  • 全局适用
  • 稳定
  • 高频

6.2 conventions(实现约定)

用于定义:

  • API 设计
  • 数据访问
  • 测试方式
  • 代码结构

特点:

  • 高频使用
  • 可演化

6.3 modules(领域例外)

仅在存在领域特殊性时使用,例如:

  • 特殊状态机
  • 权限模型
  • 数据语义

6.4 skills(按需加载)

用于定义任务型规则,例如:

  • 设计流程
  • TDD 流程
  • 发布流程

作用:

减少常驻上下文,提高规则遵守率

7. Compile Layer(编译层)


7.1 目的

解决:

不同 agent 使用不同入口文件的问题

7.2 编译目标

agents/** 生成:

  • AGENTS.md
  • CLAUDE.md
  • GEMINI.md
  • Copilot instructions

7.3 编译原则


原则 A:规则只写一次

所有规则必须只存在于 agents/**


原则 B:编译产物允许重排

编译产物可以:

  • 摘要
  • 重排结构
  • 添加索引
  • 适配工具格式

原则 C:禁止手动修改编译产物

必须明确:

该文件为生成文件,不允许手动修改

8. Runtime / Enforcement Layer(执行层)


8.1 作用

将规则从“建议”变成“约束”。


8.2 组成

  • hooks(pre-commit 等)
  • CI(持续集成)
  • scripts(自动化检查)
  • 权限控制(sandbox / denylist)

8.3 必须下沉到执行层的规则

例如:

  • 测试必须通过
  • lint 必须通过
  • 禁止危险命令
  • 禁止修改关键路径

判断原则

凡是“绝不能违反”的规则,必须由执行层保证

9. Verification Layer(验证层)


9.1 加载验证

确认规则是否被加载,例如:

  • Claude:查看 memory
  • Gemini:查看 context
  • Codex:查看 instructions
  • Copilot:查看 references

9.2 行为验证

确认 agent 是否按规则执行,例如:

  • 是否遵循流程
  • 是否按结构输出
  • 是否先澄清需求

9.3 结果验证

确认产物是否符合规则,例如:

  • 测试
  • 构建
  • lint
  • 安全扫描

10. 优先级模型

完整优先级如下:

1. system / user prompt
2. 执行层(hooks / CI / permissions)
3. adapter(各 agent 入口文件)
4. core
5. modules
6. conventions
7. skills(按需加载)

11. AGENTS.md 的角色

在 V2 中,AGENTS.md 是:

规则系统的统一入口说明,而不是唯一规则来源

它应包含:

  • 项目说明
  • 技术栈
  • 架构概览
  • 规则树位置
  • 优先级说明
  • 验证方法
  • 执行层说明

12. 反模式


反模式 1:多处定义同一规则

会导致规则漂移。


反模式 2:手动维护多个入口文件

应通过编译统一生成。


反模式 3:把硬约束写成文档

必须下沉到执行层。


反模式 4:规则无限增长

必须通过 skills 和作用域控制。


反模式 5:无法验证规则加载

必须提供验证方式。


13. 适用范围

适用于:

  • 多 AI agent 协作项目
  • 长期维护仓库
  • 需要统一 AI 行为的团队

14. 最终结论

AI Agent 规则系统不是文档问题,而是工程问题

一个有效的系统必须:

  • 有唯一规则来源
  • 能适配不同 agent
  • 能强制关键约束
  • 能验证执行结果