如何让AI真正主导复杂系统的长期维护,而非仅仅代码生成
在主任工程师岗位上工作十年,我面对的最棘手问题并非是系统规模庞大,也不是API、编排层、CLI和定时任务的复杂生态,而是隐藏在代码背后的“潜规则”。比如某个接口必须加上500毫秒的延迟,或者某些场景严格禁止异步操作。这些规则若仅仅存在于开发者的脑海中,即使引入多名资深团队,维护成本依然难以避免。于是,我尝试了一种极端思路:不将AI视为简单的代码生成工具,而是将架构思维和设计习惯直接“编码”到系统中。
核心突破点在于对“上下文”的定义。README文档是为人类设计的,而AI需要的是强约束性的行为准则。于是,我将AGENTS.md文件引入到每个仓库中,作为大模型的“操作手册”。这份文件不仅明确了架构约束,还强制了命名规范以及历史决策逻辑。例如,当某次重构后,我会明确标记“禁止跨层调用”,一旦AI尝试在Controller层直接调用底层存储,这份准则就成为它的“护栏”。仅仅依靠文档是不够的,AI容易产生“看起来正确”的幻觉。因此,我引入了MCP(Model Context Protocol)层,实现了能力解耦,让Agent能够实时感知系统状态。
MCP层的作用显著提升了Agent的能力。它让Agent能够直接读取数据库Schema并验证数据,而非盲目猜测字段类型。最令我惊喜的是日志溯源的闭环功能:当系统报错时,Agent能自动抓取应用日志并与AGENTS.md中的架构设计关联分析。这意味着,它不再仅仅提供Bug修复方案,而是能够深入分析出“此次报错可能是因为第三季度定义的缓存一致性原则被违反”。这种能力让Agent具备了一定的“架构意识”。
自动化开发链路实现的具体流程
基于上述逻辑,我构建了一个全自动化开发链路。当前工作流程如下:Agent自动抓取任务(Ticket) → 读取AGENTS.md中的约束条件 → 编写代码并自动生成测试用例 → 自动提交Pull Request → 部署至测试环境。在实际运行中,从领取任务到部署完成,整个流程仅需几分钟。原本需要资深工程师花费半天时间进行分析、编码和测试的任务,现在被压缩到了分钟级别。我的工作重心也从“编写代码”转变为“代码审查”,这意味着我更多时间用于验证和优化代码质量,而不是从头开始写代码。
这种变革让我意识到,AI时代开发者的核心竞争力正在发生转移。通过将过去十年的技术判断和问题解决直觉通过工程化手段沉淀,系统生成的代码风格与我的个人习惯高度一致。这意味着未来的顶级开发者可能不再是最擅长写代码的人,而是能够精心设计系统规则和决策逻辑的人。我们不再是简单的搬砖工匠,而是构建自动化生产线的架构师。当系统规模和复杂性增长时,设计这些规则的能力将决定团队的效率和可持续性。
如果某个Agent在执行任务时发现违反了AGENTS.md中的约束条件,比如在Controller层直接调用底层存储,那么它应当立即终止该操作并输出警告信息,并建议调整代码结构以避免跨层调用。同时,如果在读取数据库Schema时发现某个字段类型与之前的定义不符,Agent应当根据历史记录和架构设计,判断是否需要更新数据类型或进行数据清洗。
全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
这不就是把资深架构师给『格式化』了吗?赶紧把设计原则塞进Prompt里试一遍!建议直接在每个仓库加个AGENTS.md当操作手册,把架构约束、命名规范和历史决策逻辑全写进去,比如标注某次重构后禁止跨层调用,AI一旦在Controller层直接碰存储就会被护栏拦住。光靠文档还不够,得接MCP层让Agent实时感知系统,比如读数据库Schema验证字段,别瞎猜。日志闭环也别忘了,报错时让Agent自动抓日志跟AGENTS.md里的设计关联,它才能分析出“这次报错是因为违反了缓存一致性原则”,而不是只给个修法。
直接喂ADR竟然这么顶?快把之前积压的决策文档全部喂给AI,看看它能不能自救,比如在每个仓库引入 AGENTS.md 文件,将其作为大模型的“操作手册”,明确定义架构约束、强制命名规范以及历史决策逻辑。
用动态限制去套 Agent 的 Plan 确实稳,比直接定死权限要灵活得多。关键是把架构约束和决策逻辑写进
AGENTS.md,这样 Agent 就能在 Controller 层直接调用底层存储前,先拿这份准则当护栏挡一下,避免瞎搞。