ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从零搭建AI编程过程框架:上下文管理、提示词工程与验证闭环实战

从零搭建AI编程过程框架:上下文管理、提示词工程与验证闭环实战

1. 为什么需要搭建自己的 AI 编程过程框架

1.1 从“能用”到“好用”的分水岭

过去一年多,我陆续用 AI 辅助完成了十几个大小项目,从脚本工具到完整的后端服务都有。最开始我的用法很粗暴:打开对话框,把需求描述一遍,复制代码,粘贴到编辑器,跑一下,报错了再贴回去让它改。这个循环在简单任务上勉强能用,但只要项目稍微复杂一点,问题就集中爆发了——上下文丢失、风格不统一、改一处崩三处、同一个 bug 反复出现。

后来我意识到,问题不在于模型不够强,而在于我根本没有一套属于自己的“过程框架”。所谓 AI 编程过程框架,说白了就是把“人怎么想、AI 怎么接、代码怎么落地、结果怎么验证”这一整条链路固化下来,形成一套可重复、可迭代、可追溯的工作流。它不是某个具体工具,也不是某个提示词模板,而是一套把需求拆解、上下文管理、代码生成、验证回滚、知识沉淀串起来的操作系统。

这套框架解决的核心问题是:让 AI 的输出从“一次性灵感”变成“可积累的工程资产”。适合谁来参考?我认为三类人收益最大。第一类是独立开发者,一个人要顶一个团队,效率就是生命线;第二类是小团队里的技术骨干,需要把 AI 能力复制给同事,形成团队规范;第三类是有一定编程基础、想系统化提升 AI 协作效率的进阶学习者。如果你还在“复制粘贴碰运气”的阶段,那这套框架值得你花时间搭起来。

1.2 框架的三个层次:提示、流程、资产

我把自己这套框架拆成三个层次来理解,这样搭建的时候不会乱。

最底层是提示层,解决的是“怎么跟 AI 说清楚”。这里面包括角色设定、任务描述、约束条件、输出格式。很多人卡在这一层,以为提示词写得越花哨越好,其实核心就一句话:把 AI 当成一个能力很强但完全不了解你项目背景的新同事,你需要把背景、目标、边界一次性交代清楚。

中间层是流程层,解决的是“按什么顺序做”。一个功能从想法到上线,中间要经过需求澄清、方案设计、接口定义、代码实现、测试验证、文档更新这几个环节。每个环节 AI 能承担多少、人要把关什么,需要提前定好。流程层的价值在于,它把“随机对话”变成了“流水线作业”,每一步的输入输出都是明确的。

最上层是资产层,解决的是“做完之后留下什么”。包括项目上下文文件、提示词库、代码片段库、踩坑记录、决策日志。这一层最容易被忽略,但恰恰是拉开差距的地方。没有资产层,你每次都在从零开始;有了资产层,你的 AI 协作效率会随着项目推进越来越高,而不是原地打转。

提示:三层不是割裂的,资产层的沉淀会反过来优化提示层和流程层。搭建顺序建议从流程层入手,先跑通一条最小闭环,再逐步补提示和资产。

2. 核心组件拆解与选型思路

2.1 上下文管理:让 AI 记住你的项目

上下文管理是整个框架的地基。我踩过最大的坑就是:每次开新对话,AI 都像失忆一样,之前定的命名规范、目录结构、技术选型全忘了。解决办法不是把整个项目塞进对话,那样既贵又乱,而是建立一套分层上下文机制。

我的做法是维护三个文件。第一个是项目宪法,放在项目根目录,内容包括技术栈版本、目录结构约定、命名规范、错误处理风格、日志规范、依赖管理原则。这个文件控制在 500 字以内,每次开新对话第一件事就是把它贴进去。第二个是当前任务卡,只描述本次要做的功能,包括目标、输入输出、边界条件、验收标准。第三个是变更日志,记录每次 AI 生成代码后做了哪些修改、为什么改、遗留了什么问题。

这三个文件的分工很明确:项目宪法管“长期不变的原则”,任务卡管“本次要做什么”,变更日志管“做完之后发生了什么”。实测下来,有了这三层,AI 输出的代码风格一致性提升非常明显,返工率至少降了一半。

选型上,我试过把上下文写进系统提示、写进对话开头、写进代码注释,最后发现独立文件加手动粘贴最可控。系统提示容易被平台限制,代码注释会污染源码,只有独立文件既干净又灵活。如果你用的是支持项目级上下文的工具,那就把项目宪法放进项目配置里,任务卡和变更日志还是手动管理,这样颗粒度最合适。

2.2 提示词工程:从模板到策略

提示词这块,我走过两个极端。一开始追求“万能模板”,结果发现不同任务用同一套模板效果很差;后来干脆不用模板,每次自由发挥,结果质量忽高忽低。最后的结论是:模板要有,但必须是分场景的,而且模板里要留出策略空间。

我目前维护四类提示词模板。第一类是需求澄清模板,用在动手之前,让 AI 反问我问题,把模糊需求逼清楚。第二类是方案设计模板,要求 AI 给出至少两种实现路径,并对比优劣。第三类是代码实现模板,明确要求输出格式、注释密度、错误处理方式。第四类是代码审查模板,让 AI 以审查者视角挑毛病,而不是继续写代码。

每类模板里我都会留一个“策略槽位”,比如代码实现模板里会写“优先考虑可读性还是性能,根据任务卡里的标注决定”。这样模板就不是死板的填空,而是带决策逻辑的框架。另外我强烈建议给每个模板标注适用场景和反例,比如“需求澄清模板不适用于紧急 bug 修复,那种情况直接用代码审查模板”。

2.3 版本控制与回滚:AI 代码的安全网

AI 生成的代码有个特点:看起来对,跑起来不一定对;改一处,可能悄悄影响另一处。所以版本控制和回滚机制必须前置,不能等出事了再补。

我的做法是:每次让 AI 生成代码之前,先提交一次当前状态,commit message 写清楚“AI 生成前基线”。AI 输出后,我先在独立分支上应用,跑通测试再合并。如果 AI 一次性生成了多个文件,我会拆成多个 commit,每个 commit 对应一个逻辑单元,这样出问题能精准回滚。

还有一个细节:AI 经常会在无关的地方做“顺手优化”,比如改了个变量名、调整了缩进。这些改动单独看没问题,但混在功能提交里会干扰 review。我的处理方式是,在提示词里明确写“只修改与任务直接相关的代码,不要做额外重构”,如果它还是改了,我就在提交前手动还原无关改动。

注意:不要依赖 AI 工具自带的“撤销”功能作为唯一回滚手段。对话历史可能丢失,工具可能换,只有 Git 提交记录是真正属于你的安全网。

2.4 验证闭环:怎么判断 AI 干得对不对

验证环节是很多人忽略的。AI 说“已完成”,不代表真的完成了。我建立了一套三层验证机制。

第一层是静态验证,包括语法检查、类型检查、lint。这些能自动跑的绝不靠肉眼。第二层是动态验证,针对本次改动写最小测试用例,跑通才算过。第三层是人工抽检,我会随机挑几个 AI 生成的函数,逐行读一遍,重点看边界条件、错误处理、资源释放。这三层里,第一层和第二层尽量自动化,第三层必须人工,因为 AI 最擅长在“看起来合理”的地方埋雷。

验证不通过怎么办?我的原则是:小问题让 AI 改,大问题自己改。如果只是变量名不对、少了个判空,直接让 AI 修;如果是架构层面的偏差,比如它选了个不合适的库,那就自己动手,因为让 AI 在错误方向上继续改,只会越改越乱。

3. 从零搭建框架的完整实操流程

3.1 第一步:定义你的项目宪法

项目宪法是整个框架的起点。我建议你拿一个真实项目来练手,不要空想。打开你的项目根目录,新建一个PROJECT_CONSTITUTION.md,然后按下面几个维度来写。

技术栈部分,写清楚语言版本、框架版本、包管理器、构建工具。比如“Python 3.11,FastAPI 0.104,Poetry 管理依赖,Ruff 做 lint”。目录结构部分,用树形图列出主要目录和职责,比如src/api放路由,src/core放业务逻辑,tests放测试。命名规范部分,写清楚文件命名、类命名、函数命名、变量命名的规则,比如“模块名用小写下划线,类名用大驼峰,常量全大写下划线”。

错误处理部分,写清楚异常怎么抛、怎么捕获、怎么记录日志。比如“业务异常统一继承 BaseError,日志用结构化 JSON,禁止 print”。依赖管理部分,写清楚什么情况可以加新依赖、什么情况必须自己实现。比如“能用标准库就不加第三方,新增依赖必须说明理由和替代方案”。

这个文件不要一次写完,先写你最有把握的部分,然后在实际协作中逐步补充。我自己的项目宪法改了七八版才稳定下来。关键是让它保持简短,超过 800 字就说明你写太细了,细到应该放进代码规范文档而不是宪法里。

3.2 第二步:建立任务卡与变更日志机制

任务卡是每次和 AI 协作的入口。我的任务卡模板包含五个字段:任务名称、背景说明、输入、输出、验收标准。背景说明写为什么要做这个任务,输入写依赖哪些现有代码或数据,输出写期望的文件或函数,验收标准写怎么算完成。

举个例子,任务名称是“用户登录接口”,背景是“现有认证模块缺少登录入口”,输入是“用户表结构、密码哈希工具”,输出是“POST /login 路由及对应 service 函数”,验收标准是“正确密码返回 token,错误密码返回 401,连续失败 5 次锁定 10 分钟”。你看,这样写完之后,AI 基本不会跑偏。

变更日志我放在CHANGELOG_AI.md,每次 AI 协作结束后追加一条,格式是:日期、任务卡编号、AI 生成的文件列表、人工修改点、遗留问题。这个日志看起来麻烦,但当你三个月后回头看某个功能为什么这么写时,它就是唯一的线索。而且它还能帮你发现 AI 的常见错误模式,比如“它总是忘记处理空列表”,下次就能提前在提示词里预防。

3.3 第三步:配置你的提示词库

提示词库不需要很复杂,我建议用一个 Markdown 文件管理,按场景分节。每节包含模板正文、适用场景、反例、使用心得。

需求澄清模板的正文大概是:“我是项目负责人,现在有一个模糊需求:[描述]。请你以资深工程师身份,向我提出不超过 8 个关键问题,帮助澄清需求边界。不要给方案,只提问。”这个模板我用了很多次,效果很好,因为 AI 提问往往能戳中我没想到的盲区。

方案设计模板的正文是:“基于以下任务卡:[粘贴任务卡]。请给出两种实现方案,分别说明核心思路、涉及文件、潜在风险、工作量估计。最后给出你的推荐及理由。”这个模板的关键是强制它给两个方案,避免它直接跳到实现。

代码实现模板的正文是:“基于以下任务卡和选定方案:[粘贴]。请生成代码。要求:只修改相关文件,保持现有风格,每个函数加简短注释,错误处理遵循项目宪法。输出格式为文件路径加代码块。”这个模板里“只修改相关文件”和“保持现有风格”是我踩坑后加上的,非常关键。

代码审查模板的正文是:“请以严格代码审查者身份,审查以下代码:[粘贴]。重点检查边界条件、错误处理、资源释放、命名一致性。按严重程度分级列出问题,不要直接改代码。”这个模板用在提交之前,能拦下不少低级错误。

3.4 第四步:跑通一个最小闭环

框架搭好后,不要急着上大项目,先拿一个小功能跑通全流程。我建议选一个“增删改查”里的“查”功能,因为逻辑简单、边界清晰、容易验证。

具体步骤是这样的。先写任务卡,明确要查什么、输入什么、输出什么。然后用需求澄清模板让 AI 提问,根据它的提问补充任务卡。接着用方案设计模板让它给两个方案,你选一个。然后用代码实现模板生成代码,在独立分支上应用。跑静态检查和测试,不通过就回到代码实现环节。通过后人工抽检,没问题就合并,更新变更日志。

这个闭环跑一遍大概半小时,但跑通之后你就有了一个可复制的模板。后面做复杂功能,只是在这个闭环上增加环节,而不是重新发明流程。我第一次跑通这个闭环时,最大的感受是“原来 AI 协作可以这么稳”,因为每一步都有明确的输入输出和检查点,不再靠运气。

3.5 第五步:迭代与沉淀

框架不是一次搭好的,我自己的框架迭代了大概两个月才稳定。迭代的驱动力来自每次协作后的复盘。我会问自己三个问题:这次哪个环节卡住了?卡住的原因是提示不清、流程缺失还是工具限制?下次怎么改?

比如我早期经常遇到 AI 生成的代码跑不起来,复盘发现是任务卡里没写清楚运行环境。后来我在任务卡模板里加了“运行环境”字段,问题就少了。再比如 AI 经常在多个文件之间改来改去,复盘发现是方案设计环节没定清楚文件边界,后来我在方案模板里加了“涉及文件清单”要求。

沉淀的载体就是前面说的资产层。项目宪法、任务卡模板、提示词库、变更日志,这四个文件构成了我的核心资产。每完成一个项目,我会把项目宪法里的通用部分抽出来,形成跨项目的基础宪法;把提示词库里好用的模板标记出来,形成个人最佳实践。这样下一个项目启动时,我不是从零开始,而是站在上一个项目的肩膀上。

4. 常见问题与排查技巧实录

4.1 AI 输出风格飘忽不定怎么办

这是最常见的问题。同一个项目里,AI 一会儿用驼峰命名,一会儿用下划线;一会儿返回字典,一会儿返回对象。根本原因是上下文里没有强约束。

排查思路分三步。第一步,检查项目宪法是否明确写了命名规范和返回格式,如果没写,补上。第二步,检查每次对话是否都贴了项目宪法,如果没贴,养成习惯。第三步,检查提示词里是否有“保持现有风格”的明确指令,如果没有,加上。

如果三步都做了还是飘,那可能是任务卡写得太粗。我的经验是,任务卡里把输入输出的数据结构写清楚,AI 的风格会稳定很多。比如明确写“输入是 User 对象,输出是包含 token 和 expire_at 的字典”,它就不会自由发挥。

还有一个技巧:在项目宪法里放一段“风格样例代码”,让 AI 照着写。样例代码不用长,一个函数就够,但效果立竿见影。

4.2 上下文太长导致 AI 变笨怎么处理

对话轮次多了之后,AI 会开始“遗忘”前面的约定,甚至自相矛盾。这不是模型的问题,是上下文窗口的物理限制。

我的处理方式是主动截断加摘要。当一个任务卡下的对话超过 10 轮,我就让 AI 先总结当前进展、已确认的决策、待解决的问题,然后开新对话,把摘要和项目宪法一起贴进去。这样既保留了关键信息,又释放了上下文空间。

另一个技巧是分层加载。项目宪法永远加载,任务卡按需加载,变更日志只在排查问题时加载。不要把不相关的历史对话一直挂着,那样只会稀释注意力。

如果任务特别复杂,我会把它拆成多个子任务,每个子任务独立对话,最后再合并。这比在一个超长对话里硬撑要可靠得多。

4.3 AI 生成的代码测试跑不过怎么排查

先别急着让 AI 改,按顺序排查。第一步,看错误信息是语法错误还是逻辑错误。语法错误通常是 AI 对语言版本不熟,比如用了新版本才有的语法。第二步,看是不是环境问题,比如依赖没装、路径不对。第三步,看是不是任务卡理解偏差,比如它以为输入是列表,实际是单个对象。

排查清楚之后,再决定让谁改。如果是理解偏差,回到任务卡,把输入输出写得更明确,然后重新生成。如果是语法或环境问题,直接把错误信息贴给 AI,让它针对性修复。如果是逻辑错误,先自己定位到具体函数,再让 AI 改那个函数,不要让它全局重写。

我踩过最大的坑是:错误信息没看全就丢给 AI,结果它基于不完整信息改了一通,越改越错。后来我养成习惯,先把完整错误栈读一遍,定位到文件和行号,再决定下一步。

4.4 常见问题速查表

问题现象可能原因排查动作预防措施
风格不一致上下文缺约束检查项目宪法和提示词每次对话贴宪法,提示词加风格指令
上下文遗忘对话轮次过多让 AI 摘要后开新对话分层加载,主动截断
测试跑不过理解偏差或环境问题读完整错误栈,定位文件和行号任务卡写清输入输出和运行环境
改一处崩三处文件边界不清检查方案设计的文件清单方案模板强制列涉及文件
无关改动多提示词缺限制检查是否有“只改相关代码”指令提示词明确禁止额外重构
反复犯同一错没沉淀错误模式回顾变更日志把常见错误写进提示词预防

4.5 几个反直觉的实操心得

第一个心得:AI 说“完成”的时候,往往是最危险的时候。因为它可能只完成了它理解的部分,而它理解的部分和你要的部分可能有偏差。所以每次它说完成,我都要对照任务卡的验收标准逐条检查。

第二个心得:不要让 AI 同时做设计和实现。我试过让它“设计并实现一个模块”,结果它设计得很粗糙,实现得很随意。后来我强制分两步,先设计后实现,质量提升明显。设计阶段它只需要想清楚,实现阶段它只需要写对,两个阶段的提示词和验收标准完全不同。

第三个心得:人工修改的代码也要让 AI 看一眼。有时候我手动改了几行,觉得没问题就提交了。后来有次让 AI 审查,它指出我改的地方引入了一个边界 bug。从那以后,我人工改完也会让 AI 过一遍,成本很低,收益很高。

第四个心得:框架越简单越能坚持。我一开始搞了很复杂的模板和流程,结果用了两周就放弃了。后来精简到四个文件、四类模板,反而坚持下来了。搭建框架的目的是减少认知负担,不是增加负担,如果框架本身让你觉得累,那一定是设计错了。

5. 框架的扩展与长期维护

5.1 从个人框架到团队规范

当这套框架在个人项目上跑顺之后,自然会想推广到团队。我的经验是:先跑通个人版,再抽象团队版,不要反过来。团队版和个人版最大的区别在于,团队版需要处理“多人上下文”和“决策共识”。

多人上下文的意思是,项目宪法不再是个人偏好,而是团队共识。我们当时的做法是,把项目宪法放进代码仓库,任何人修改都要走 review。任务卡也从个人文档变成 issue 模板,每个任务卡对应一个 issue,变更日志对应 PR 描述。这样 AI 协作的痕迹就自然融入了现有研发流程,不需要额外工具。

决策共识的意思是,AI 给出的方案需要团队确认才能落地。我们的做法是,方案设计环节的输出直接贴到 issue 里,团队成员评论后再进入实现。这样既保留了 AI 的效率,又保证了人的判断权。

5.2 框架的定期复盘与更新

框架不是一劳永逸的。我每季度会做一次复盘,问自己几个问题:这季度哪些环节最耗时?哪些提示词模板用得最多?哪些坑反复出现?然后针对性地更新项目宪法和提示词库。

复盘的时候我会翻变更日志,统计 AI 生成代码的返工率、人工修改的常见类型、测试失败的主要原因。这些数据不需要很精确,大概的趋势就够指导调整了。比如我发现某季度返工率上升,一查是任务卡写得太粗,那就加强任务卡的模板约束。

更新框架的时候,我遵循“小步快跑”原则,一次只改一个地方,改完用一个小任务验证,有效再保留。不要一次性大改,那样出了问题都不知道是哪个改动导致的。

5.3 这套框架不适合什么场景

说了这么多框架的好处,也得说说它不适合什么场景,免得你盲目套用。

第一,一次性脚本和探索性代码不适合。如果你只是写个临时脚本处理数据,或者在做技术调研,那直接对话生成就行,套框架反而累赘。框架的价值在于可重复、可维护,一次性任务不需要这些。

第二,紧急线上故障不适合。线上出问题了,第一优先级是恢复服务,不是走流程。这时候直接让 AI 帮你分析日志、定位问题、给出修复方案,快速验证上线,事后补变更日志就行。

第三,完全陌生的技术领域不适合。如果你对某个领域完全不了解,AI 说什么你都判断不了对错,那框架也帮不了你。这种情况下,先花时间学习基础知识,等有了判断力再用 AI 加速。

框架是工具,不是教条。它的目的是让你在 AI 协作中更稳、更快、更有积累,而不是让你被流程绑住。什么时候用、用多深,取决于任务的性质和你自己的判断。

我个人在实际操作中的体会是,这套框架最大的价值不在于它让 AI 变强了,而在于它让我变清醒了。每一步我知道自己在做什么、为什么这么做、做完之后留下了什么。AI 是个放大器,框架决定了它放大的是你的效率还是你的混乱。搭一套属于自己的框架,本质上是在梳理自己的工程思维,这件事本身就值得做。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进