别再往 .cursorrules 里堆提示词了,试试给 AI 编程助手加层架构约束

北漂开源爱好者 初级 2026/7/27 159 浏览 5 点赞 约 2 分钟

很多开发者在使用 AI Coding Agent 时都会遇到一个极其痛苦的场景:你让它修一个局部 Bug,它确实把 Bug 解决了,但为了实现这个功能,它随手改动了你的设计模式,甚至在 Controller 层直接写了业务逻辑。这种“局部最优、全局崩盘”的现象,本质上是因为目前的 AI 助手缺乏一个具备全局视野的“架构师”角色,它们在执行任务时是片段式的,而非架构导向的。

最近关注到 Boffin 这个工具,它的核心逻辑非常值得深挖。Boffin 并不是在尝试通过增加 Prompt 长度来让 AI 变得聪明,而是在 AI Agent 之上构建了一层“Staff Engineer”逻辑层。简单来说,它在 AI 执行每一次编辑(per-edit)之前,先通过一套路由机制,将该模块对应的架构限制条件实时传达给 Agent。

这种做法解决了目前 AI 编程中一个非常核心的痛点:信息过载。很多团队尝试在 .cursorrules 或全局 System Prompt 中写入几百行架构规范,试图让 AI 遵守。但实际操作中,模型在处理长文本时会出现“中间丢失”现象,导致它在写代码时经常忽略掉那些关键的约束。而 Boffin 采用的“按需路由”机制,让约束条件变成了动态注入的上下文,只有当 AI 触碰到特定模块时,相关的架构限制才会生效。

如果你想在自己的 AI 工作流中实现类似的架构约束,不能简单地写“请遵守架构规范”,而应该建立一套结构化的拦截机制。

首先,你需要定义具体的“约束域”。将项目的架构规范原子化,例如将“禁止在 Controller 层写业务逻辑”或“必须使用特定的依赖注入方式”定义为具体的规则条目,并将其与对应的文件路径或模块名绑定。

其次,在 Agent 准备执行写操作(Write Operation)之前,必须引入一个拦截层。这个拦截层会根据当前操作的文件路径,去匹配预定义的约束规则。如果匹配成功,则将这些规则作为 System Prompt 的增强部分实时注入到当前的对话上下文中。

举个实操中的具体例子,如果你在开发一个支付网关模块 payment-gateway,你可以定义如下的 JSON 约束配置:

{
  "module": "payment-gateway",
  "constraints": [
    "All currency calculations must use BigDecimal to avoid precision loss",
    "Never expose raw database entities to the API response",
    "Every external API call must be wrapped in a circuit breaker"
  ]
}

当 AI 尝试修改 payment-gateway 目录下的任何文件时,这三条硬性约束会被强制推送到它的上下文窗口中。这样,AI 在写金额计算时会自动选择 BigDecimal 而不是 Double,在返回 API 响应时会自动创建 DTO 而不是直接返回 Entity。

这种精细化控制的优势在于,它极大地降低了 Token 的浪费,更重要的是提高了指令的命中率。在复杂的大模型实战项目中,从“能写出代码”到“能写出符合架构的代码”,关键就在于这种从全局堆砌到按需路由的逻辑转变。通过给 AI 增加一层虚拟的“架构师”约束,才能真正让 Agent 从一个简单的代码生成器,变成一个懂业务、懂设计的协作伙伴。

AI编程AI编程实战

全部回复 (3)

大Tom在路上 初级 2026/7/27

gating这一手玩得绝,正好解决了我的Agent在边缘情况反复横跳的问题

0 回复
脚本小子阿强 初级 2026/7/27

用插件补漏洞简直是给AI打补丁,除非能直接在后处理阶段过滤掉冗余,否则堆再多Prompt也是浪费Token

0 回复
阿Sam的日常 高级 2026/7/27

约束多了直接死循环给看傻了,要是逻辑打架导致编译报错,这架构约束得怎么解耦?

0 回复

发表回复

支持 Markdown 格式