作为一名一线做业务、画原型、写 PRD,同时日常高强度调度多个 Coding Agent(Cursor、Claude Code、Codex、Antigravity 等)独立开发工具的 AI 产品经理,我和许多重度依赖 AI 编程的开发者一样,经历过一个极其漫长的「加规则执念期」。
刚开始用 Coding Agent 协助写代码时,每当 Agent 犯了一个错,我的第一反应往往是:
"这一定是我的规则没写全。我必须把它加进
.cursorrules(或者全局 System Prompt)里,给它立个规矩!"
- Agent 不小心改了不该改的样式文件?在规则里加一条:"禁止私自修改任何 CSS/SCSS 文件!"
- Agent 写了一个长函数?在规则里加一条:"每个函数长度严禁超过 30 行,必须拆分子函数!"
- Agent 把配置参数硬编码了?在规则里加一条:"所有常量必须提取到 config.ts,严禁硬编码!"
- Agent 漏掉了单测断言?在规则里加一条:"写完代码必须立刻编写完整的单元测试用例!"
- Agent 没按特定命名法写接口?在规则里加一条:"后端 API 必须严格遵循 RESTful 动宾命名规范!"......
随着项目不断演进,踩过的坑越来越多,我的规则文件也像滚雪球一样越滚越大。直到上个月,我偶然打开项目的规则配置看了一眼,自己都吓了一跳: 不知不觉中,规则文件竟然已经膨胀到了整整 540 多行!
然而,极其讽刺的事情发生了:规则加得越多,AI 反而越不听话。
在那个拥挤不堪的会话环境里,我遇到了前所未有的协作灾难:
- 注意力彻底稀释,关键红线被彻底当耳边风 :
规则写满了整整几屏,结果在一次重构中,Agent 竟然毫不犹豫地把项目中一个核心的数据库迁移文件给删了!我质问它为什么违反"禁止物理删除"的规则,它在终端里客套地道歉,然而下一轮会话,它依然会犯同样的错; - 规则自相矛盾,AI 在生成时"左右互搏" :
翻看那 500 行规则,我甚至发现了相互冲突的补丁:前面第 40 行写着"优先使用内联计算以减少文件碎片 ",后面第 210 行又写着"严禁出现任何大闭包,必须彻底解耦小模块"。模型在生成代码时无所适从,经常写出一半内联、一半抽离的畸形代码; - 上下文极度浪费,Token 消耗呈指数级增长 :
每次在终端敲下一句"帮我改个输入框宽度",还没等正文开始,这 500 行庞大的规则就已经白白吃掉了将近 8,000 个上下文 Token。会话才聊了三四轮,窗口就迅速接近截断阈值,响应卡顿、胡言乱语。
我盯着终端里那段逻辑混乱的代码,终于按下了 Ctrl+C:为什么我们明明费尽心机给 AI 制定了如此详尽的规则法典,到头来它却越跑越偏?
一、认知升级:把偶发 Bug 当成规则,是最大的工程误区
经历了那次惨痛的翻车,我复盘了过去几个月与多个 Coding Agent 的协作记录。我发现许多开发者在使用 AI 辅助编程时,普遍陷入了一个**「规则归因谬误」**:
把本该由编译器、自动化测试、类型系统或架构分层拦截的代码问题,误当成提示词规则,一股脑塞给大模型。
从底层逻辑来看,规则盲目膨胀会在三个层面直接摧毁协作系统:
- 注意力分配的有限性(Attention Dilution) :
大模型基于 Transformer 架构,其注意力权重是有限的。当你喂给它 500 行规则时,它分配给每一行规则的注意力权重就被平均摊薄到了千分之几。那些真正关乎项目生死的"核心红线(如禁止物理删除、必须单测验证)",被淹没在一堆关于"变量怎么命名、缩进用两空格还是四空格"的细枝末节里,根本无法被有效激活; - 缺乏生命周期的临时创可贴 :
很多规则只是针对某一次特定的偶发报错打的临时补丁(比如某次某个第三方库版本不兼容)。一旦这个库升级了,那条规则不仅失去了意义,还会反向阻碍 Agent 使用该库的新特性; - 缺乏机器可执行的强制力 :
自然语言规则是概率性的约束,而不是确定性的约束。指望通过在 Prompt 里反复叮嘱"写完必须跑测试 ",其可靠性远远低于在 CI 脚本里写一行npm test。
真正的上下文防腐,不是把规则写得像一部刑法典,而是把规则减到最少,只保留最核心的系统边界。
基于这个思考,在开源项目 Context Continuity (v0.1.1) 中,我们确立了一套系统的「五层根因排查法」与「规则四步瘦身实践」。
二、传统规则堆砌 vs Context Continuity 治理:全方位对比
| 治理维度 | 常见传统做法:规则堆砌(500+ 行) | 依赖外部长记忆插件(向量黑盒盲捞) | Context Continuity (v0.1.1) 核心治理 |
|---|---|---|---|
| 规则体量与形态 | 500~1000 行庞大法典,越堆越厚 | 碎片化自然语言条目,由向量库检索注入 | 严格控制在 80~100 行内(单文件 AGENTS.md) |
| 规则表述方式 | 大量"务必、必须、绝不可"等情绪化修饰词 | 孤立事实与历史记忆片段混杂 | "一句原则 + 必要反例",每条不超过两行 |
| 对代码质量的约束 | 试图用文字教 AI 怎么写出好代码 | 依赖过往采纳偏好匹配 | 下沉到代码正文与工程工具(Linter / TypeScript / 测试) |
| 面对偶发报错时的动作 | 立刻在 Prompt 里追加一条新规则 | 自动记录到全局记忆库 | 先做五层归因排查,修源头与环境,不滥加规则 |
| Token 启动开销 | 每轮会话启动常驻吃掉 8,000+ token | 每次检索动态注入 3,000~5,000 token | 单次加载仅耗 1,000~1,200 token,信噪比极高 |
| 指令遵循命中率 | 随着轮次深入,遵循度迅速滑落至 40% 以下 | 经常捞出过时记忆干扰当前决策 | 首轮遵循与代码一次性命中率 > 85% |
三、我是如何用「规则瘦身四步法」把 500 行精简到 80 行的?
在 Context Continuity 的项目治理规范(遵循 context-continuity/SKILL.md)中,给项目规则进行彻底瘦身遵循严格的四个步骤:
第一步:剥离业务事实,物归原主
翻看那 500 行规则,我发现有将近 200 行根本不是"开发规则",而是具体的"业务逻辑"!比如:"用户类型分为 VIP、企业和普通用户,VIP 享受 8 折...... "
这种做法极其愚蠢。业务规则随时会变,一旦写进 Prompt,只要业务调整,提示词就会与实际代码脱节。
- 瘦身动作 :把所有业务事实、领域状态机、字段枚举全部请出规则文件,原汁原味回写到对应模块的正式 PRD 或代码接口注释中。规则只留一句话:"具体业务事实以目标源文件与对应 PRD 为唯一信源。"
第二步:下沉确定性校验,把代码问题交给工程工具
规则里有将近 150 行在叮嘱代码格式和基本语法:"属性命名用小驼峰 ""禁止使用 any ""每个文件结尾留一个空行 "。
让昂贵的大模型去记忆并肉眼检查语法规范,是对算力的极大浪费。
- 瘦身动作 :将格式与语法约束下沉到 ESLint、Prettier 和 TypeScript 编译器中。配置好
tsconfig.json的严格模式,在规则中仅保留一条指令:"每次修改后运行 npm run lint && npm test 验证,测试全绿即代表合规。" 编译器能干的硬性拦截,绝不在 Prompt 里多废话一句。
第三步:用「五层根因排查法」过滤偶发补丁
面对每次偶发的问题,先不要急着写规则,而是对照 Context Continuity 的五层归因表进行判断:
- 理解问题? 是否是任务目标描述不清?(优化当次任务提示,不加全局规则);
- 读取问题? 是否是 Agent 根本没读目标源文件,全凭脑补?(指引 Agent 显式读取具体文件路径);
- 信源问题? 是否是项目里有新旧两个版本冲突,导致 Agent 读错了文件?(清理或归档旧文件,确保单一信源);
- 执行问题? 是否是代码改对了但没跑测试导致漏查?(强化最低验证标准);
- 能力问题? 是否是当前所用模型的上下文或推理上限受限?(换更强模型,或拆小任务)。 只有当同类错误跨会话重复发生、且确属全局共性约定缺失时,才允许落盘为规则。
第四步:顶层刚性约束收敛(遵循 AGENTS.md 规范)
经过前三步清洗,剩下的核心规则收拢到根目录的 AGENTS.md 中,严格控制在 80~100 行内。内容只保留四个刚性维度:
- 任务级别分级(只读快任务、标准修改任务、高风险重任务);
- 唯一信源表(判断业务看哪里、判断规范看哪里);
- 行为安全红线(禁止物理删除文件、未经授权不动主链路配置、Git 提交前必须核对范围);
- 最低验证标准(文档看链接结构、代码看自动化测试、严禁无证据声称完成)。
所有条款全部写成**"一句原则 + 必要反例"**,每条不超过两行。
四、时间账与总结:克制才是最好的上下文防腐剂
完成这轮规则瘦身之后,我和几个 Coding Agent 的协作体感迎来了颠覆性的改善:
- 启动成本暴跌 :规则文件从 540 行压缩至 82 行,单次会话注入的 Token 消耗从原来的 8,200 token 直降至 1,200 token 左右,降幅超过 85%;
- 指令遵循度质的飞跃 :因为没有海量细碎噪音的干扰,Agent 对"禁止删除""必须跑测试"等关键安全红线的遵循率达到了 100% ;代码一次性生成命中率从过去的不足 50% 攀升至 85% 以上;
- 排错时间大幅节省 :过去平均每天要花 1.5 小时 在拉扯纠偏和清理无效规则上;现在规则精炼透明,几乎无需再为"AI 为什么不听话"而抓狂。
规则不是给大模型打补丁的创可贴,克制与边界才是最好的上下文防腐剂。
在多 Agent 协作开发中,少即是多。把业务还给业务文档,把代码校验还给工程工具,只把最底层的安全红线留给 Agent。给上下文做减法,AI 才能真正跑出高确定性的生产力。
Context Continuity 现已全面开源,规范与模板开箱即用:
- 一键安装 Skill:
npx skills add JasperLin2333/context-continuity --skill context-continuity - GitHub 开源仓库:github.com/JasperLin23...