搞了篇 Blog 记录一下。
从「让 AI 写代码」到「让 AI 理解你」——我的 AI 编程成长路径
最早用 AI 写代码的时候,我和大多数人一样:扔一段需求过去,拿到一段代码,能用就用,不能用就再问一次。那时候觉得 AI 是个更聪明的搜索引擎,能省点打字时间。
但用着用着,我发现了一件事:AI 的输出质量,几乎完全取决于你给它什么上下文。 同样的需求,换一种描述方式、多给两行背景信息、或者把验收标准写清楚,结果就能从"勉强能用"变成"直接可用"。
道理不复杂——AI 在基于你给的上下文做 next token prediction。上下文越精准,预测范围越小,输出相关性越高。这个认知后来成了我所有 AI 编程实践的基石。
知道了"上下文决定质量"之后,我自然开始想:如果一轮不够好,能不能多来几轮?
于是我摸索出一个工作模式:给上下文和验收标准,AI 生成答案,把答案作为新上下文再输入,循环直到满足标准。听起来朴素,但效果实打实——单次对话正确率大概 20%,通过迭代能推到 70%-80%。每一轮都在帮 AI 缩小预测空间,第一轮理解 60% 的意图,第二轮反馈对比后修正到 80%,再来一轮基本到位。
这让我意识到:AI 编程的核心不是 prompt engineering 的技巧,而是工作流的设计。 你不需要一个"完美的 prompt",你需要一个能持续给 AI 正确反馈的循环。
但迭代循环也带来了新问题。
最明显的是上下文腐化。对话越长、无关信息越多,AI 的输出质量越差。聊了 50 轮的对话,AI 可能连第 3 轮定的规则都忘了,开始自己编东西。还有指令遵循问题——你定了一套规范,前几轮严格遵守,后面就开始走样。不是它不想遵守,而是上下文膨胀后,那些指令在注意力里被稀释了。
这两个问题让我认识到:LLM 有固有的结构性缺陷,靠更好的 prompt 解决不了,必须靠工程手段来规避。
我的应对是主动、频繁地清空或隔离上下文——后来发现 Subagent 天然适合做这件事;用 Slash Command 精准触发,替代长对话中的口头指令;把复杂规范固化为独立文档,不每次重复说一遍。
另一个相关的坑是上下文膨胀。任务太长、细节太多,理解不到位就直接扔给 AI,它做得缺斤少两——不是不想做全,是任务太大,有限上下文里装不下那么多关注点。
后来换了思路:让 AI 自己把大任务拆成小步骤。拆到什么粒度?我摸索出一个经验值——单个子 agent 完成一个任务,整个循环大概消耗 10 万 token。太多就漏信息、顾此失彼;太少就反复做重复的事。这个数字是实践中反复调整后找到的甜区。
这也让我对"任务拆分"有了新认识:以前觉得是为了让工作更清晰,现在意识到本质是控制单个 agent 的上下文窗口大小,让它每次执行都保持足够的注意力密度。
解决了上下文问题之后,我开始想一个更大的事:能不能把这套方法论变成可复用的工程体系,而不是每次都靠个人经验?
这就有了后来我做的 T-Tools。
T-Tools 的核心思路是把 AI 编程从"临时问答"升级成"可执行的工程工作流"。每个工作阶段做成独立的 Skill 命令,Agent 按工程角色拆开(后端开发、前端测试、E2E 演示、只读验收),共享规则抽象成 Protocol,整个开发串成一条带质量门禁的链路:PRD → Design → Task → Run → Demo 验收。
这里面有几个我觉得比较关键的设计选择。一是每个阶段都有 check,不跳过——跳过就是把上游问题带到下游,越往后修正成本越高。二是 Demo 验收独立于其他测试,用 Playwright 跑真实浏览器模拟用户完整路径,验证的是"用户能不能真的用这个功能"。三是串行执行,任意时刻最多一个任务 running——牺牲速度,换来更强的可控性。AI 编程最大的风险不是慢,而是失控。
在落地这套工程体系的过程中,我还遇到了一个以前不太在意的问题:工程化基础设施的速度。
以前手写代码,测试跑个二三十分钟完全可以接受。写几十行,跑一次测试,看结果,改改再来。编译速度、测试并发、增量构建的优先级很低——你等得起。
但 AI 编程彻底改变这个方程。AI 在迭代循环里可能反复生成、编译、运行十几次甚至几十次。如果每次编译 5 分钟、测试套件 20 分钟,一个 Dev-Test-Accept 循环就耗掉一两个小时——而这只是其中一个 item,一个功能可能有十几个 item。
这意味着以前可以容忍的工程化短板,在 AI 编程下变成了致命瓶颈。 并发测试执行、增量编译、测试选择和隔离、构建缓存——手工编程时代"有了更好、没有也行"的能力,在 AI 编程时代变成"没有就跑不动"的硬性要求。AI 编程倒逼工程化能力强制升级。以前工程化服务于人的效率,现在服务于 AI 的迭代速度。两者对速度的容忍度差了好几个数量级。
工程链路跑通之后,我以为自己找到了终极答案。但真正做了几个项目之后,一个让我不舒服的事实浮现了:东西能跑起来,但最终的 UI 交互体验很差。
问题出在哪?我回过头来想,发现根子其实在 PRD。
PRD 本质上是文字描述。命名怎么取、流程怎么走、交互怎么衔接——用文字写出来后,连自己都不想多看几遍,更别说指望 AI 严格执行了。脑子里一个模糊的画面,翻译成文字,AI 再把文字翻译成代码,两层转译之后,最终产品和预期差距大得离谱。而且你还不清哪里不对——文字本身就不够精确,没法定位偏差。
改起来更痛苦。改一个交互细节往往牵连后端逻辑,一套修改三四个小时,Token 消耗千万级别。验证流程和测试环节一个也省不了,绝大部分 Token 花在了"纠偏"而不是"创造"上。
这让我开始怀疑一个基本假设:PRD 作为 AI 编程的起点,到底对不对?
我试着换个角度:不先从 PRD 切入,而是从 UI 和交互切入。先明确要做什么,直接定义界面长什么样、用户怎么操作。AI 生成页面后,通过视觉快速判断哪里缺东西、哪里不对劲,再让 AI 基于页面反向理解和补全 PRD。
最近有个流行做法是让 AI 直接输出 HTML 而不是 Markdown,本质上和我的思路一致——借助视觉形态快速确认 AI 的理解是否正确。人眼看一个页面,一秒钟就能判断布局对不对、交互顺不顺、功能缺不缺。逐行审查文字描述或代码的效率低得可怜。从 UI 倒着推还有一个关键好处:看到页面不对时,反馈是即时的、具体的——“按钮应该在右边”“列表应该有筛选”“流程少了一步”。这些反馈不需要经过文字转译,AI 接收到的信号更精准。
这套思路我还没有完全落地,但流程想清楚了:先不写完整 PRD,而是做一份 MVP 级别的视觉描述——若干带标注注释的 HTML 页面,甚至包含简单的 JS 交互示意。把这份材料交给 AI,告诉它需要调整的地方和关注的核心点,同时保存交互历史。然后基于这些视觉材料和对话记录,反向生成 PRD。我把它称为"AI 时代的 PRD"——以可视化为核心。别人一看就能大致想象出产品的功能和样子。更进一步,可以让 AI 针对用户故事生成交互视频——你口述操作流程,AI 输出演示,再结合文档重新整理。这样产出的 PRD 既有视觉又有动态演示,能大幅减少理解偏差。最后借助 T-Tools 的工程化能力,把"可视化 PRD"转译成最终产品。
回到原点,所有这些尝试——迭代循环、工程化体系、视觉优先的工作流——其实都在回答同一个问题:你如何确认 AI 真的理解了你的意图?
文字 PRD 的问题是,人和 AI 之间隔了一层文字转译。你说"登录后跳转到首页",AI 理解的"首页"和你脑子里的可能完全不一样。用文字审查文字,偏差几乎不可见。HTML 页面和交互演示之所以有效,是因为它们把"理解验证"从文字维度拉到了视觉维度——看一眼就知道对不对,效率比文字审查高几个数量级。
所以 AI 编程的核心挑战:不只是让 AI 写出能跑的代码,更是让 AI 在写代码之前就和你对齐了意图。工程化解决"写出来能不能跑",视觉优先解决"跑的东西是不是你要的"。
回头看这段路径,有一个认知是从头到尾没变过的:人的角色不是"写代码的人",而是"流程设计者、契约制定者和最终验收官"。
AI 可以写代码、写测试、写文档,但人需要设计工作流、制定规范、把控质量门禁。人在 AI 编程中的核心价值,从"动手"转向了"设计和判断"。工程化的核心取舍也是这个——用更多结构换更少自由发挥。模型仍然负责推理和实现,但必须沿着文档、状态、契约和门禁前进。
写到这里,其实还有一个问题一直在脑子里转,没想透,但觉得很重要:如何让 AI 的输出更专业化?
前面说的所有方法——精准上下文、迭代循环、工程化工作流、视觉优先验证——都在解决"如何让 AI 做对"。但"做对"和"做好"是两回事。AI 可以按 PRD 把功能实现出来,但交互设计够不够专业?信息架构合不合理?代码是不是真的遵循了最佳实践?这些不是靠更好的 prompt 或更严格的门禁就能解决的。
我真正在思考的是:专业知识应该怎么喂给 AI?
一种直觉是把领域专家的经验和判断标准整理成文档、指南、检查清单,灌进 AI 的工作流里——把 UX 设计原则写成 guide,把后端架构的 trade-off 写成 protocol,把测试策略写成 checklist。前面说的 guide 和 protocol 其实已经在这个方向上走了一步。
但另一种可能性更让我在意:也许真正需要提升的不是 AI 知识库的容量,而是人自己的心智模型。
如果你对领域没有足够的认知维度和评估标准,你甚至不知道 AI 的输出"差在哪"——能看出"不对",但说不出"为什么不对"和"应该怎样才对"。给 AI 的反馈是模糊的、低效的,迭代再多轮也收敛不到专业水准。反过来,如果你有清晰的心智模型——知道好的交互设计应满足什么标准,知道合理的架构应避免什么陷阱,能把"感觉不对"拆解成具体可操作的反馈——那 AI 的输出质量会有质的提升。不是因为你写了更好的 prompt,而是因为你的每一次反馈都更精准、更有方向性。
这引出一个值得讨论的问题:未来的 AI 协作,是"把流程全部推给 AI",还是"人先建立心智模型,再反哺 AI 工作流"?
前者的逻辑是 AI 越来越强,专业知识会被模型内化,人只需要最终验收。后者的逻辑是人的认知深度决定了 AI 输出的上限,人不提升,AI 再强也只是在错误方向上加速。我倾向于后者,但还不确定。也许答案是某种中间态:人需要有足够的心智模型来提出正确的问题、给出有效的反馈,但不需要亲自掌握每一个执行细节。就像建筑设计师不需要亲自砌墙,但必须理解结构力学和空间逻辑,否则连图纸都画不对。
这个问题我没有答案,写在这里,供讨论。
从最初发现"上下文决定质量",到摸索迭代循环,到遭遇上下文腐化瓶颈,到沉淀出一套工程化体系,到质疑"PRD 优先"的起点,再到对"专业化知识该放在哪里"的困惑——这个过程本身也是一个 Dev-Test-Accept 循环。
每解决一层问题,就暴露出下一层。工程化解决了"AI 能不能按规范交付",视觉优先试图解决"交付的东西是不是你要的",专业化的问题追问的是"你要的那个标准本身够不够高"。
AI 编程还在快速演进。但有一点越来越确定:核心挑战始终是"意图对齐"——如何确认 AI 真的理解了你要什么。 而意图对齐的前提,是你自己清楚"我要什么"。工程化是手段,视觉验证是手段,心智模型才是地基。Prompt 是战术,工作流是战略,对齐验证是战略中的战略,而人的认知深度,决定了这一切的天花板。