<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Agentic Engineering on Kalend's Blog</title><link>https://blog.kalend.top/tags/agentic-engineering/</link><description>Recent content in Agentic Engineering on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Tue, 28 Jul 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/agentic-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>从Vibe Coding到Agentic Engineering：2026开发者该升级的方法论</title><link>https://blog.kalend.top/2026/07/28/2026-07-28-vibe-coding-to-agentic-engineering.html/</link><pubDate>Tue, 28 Jul 2026 10:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/07/28/2026-07-28-vibe-coding-to-agentic-engineering.html/</guid><description>&lt;h2 id="一引子karpathy-的落后感"&gt;一、引子：Karpathy 的&amp;quot;落后感&amp;quot;
&lt;/h2&gt;&lt;p&gt;2026 年 4 月，红杉资本 AI Ascent 大会。&lt;/p&gt;
&lt;p&gt;Andrei Karpathy 站在台上，说了一句让全场安静下来的话：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;「我从没觉得自己如此落后过。」&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;14 个月前，正是他给一种编程方式起了名字——Vibe Coding。当时原话是「完全沉浸在氛围中，忘记代码，只管 accept」。那条推文引爆了整个开发者圈，所有人都在说：编程的门槛消失了。&lt;/p&gt;
&lt;p&gt;14 个月后，同一个人站出来说：&lt;strong&gt;这套方法论，终结了。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不是 Vibe Coding 没用，而是它不够了。&lt;/p&gt;
&lt;p&gt;Karpathy 用了个新词——Agentic Engineering。&lt;/p&gt;
&lt;p&gt;从 Vibe Coding 到 Agentic Engineering，中间到底发生了什么？为什么连发明者自己都在升级方法论？&lt;/p&gt;
&lt;p&gt;这篇文章拆解这个进化过程。三阶段、五大支柱、一份你现在就能用的落地清单。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二vibe-coding-是什么为什么它曾经很香"&gt;二、Vibe Coding 是什么？为什么它曾经很香
&lt;/h2&gt;&lt;p&gt;先回顾一下定义。&lt;/p&gt;
&lt;p&gt;2025 年 2 月，Karpathy 描述了这种工作方式：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;prompt → accept → run → ship
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;你跟 AI 说「帮我写个登录页」，它吐出代码，你看一眼觉得行，accept，运行，部署。全程不仔细看代码细节，沉浸在「氛围」里。&lt;/p&gt;
&lt;p&gt;这有错吗？没有。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;它的本质是 floor-raising——提升下限。&lt;/strong&gt; 以前不会编程的人，现在能造出原型。以前需要一周的功能，现在一天搞定。&lt;/p&gt;
&lt;p&gt;Google 2026 年 5 月发布的《The New SDLC With Vibe Coding》白皮书给了数据：85% 的专业开发者在用 AI 编程智能体，51% 每天用，预估 41% 的新代码由 AI 生成。&lt;/p&gt;
&lt;p&gt;不是少数极客在玩，是主流在用。&lt;/p&gt;
&lt;p&gt;Vibe Coding 最香的场景：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;场景&lt;/th&gt;
					&lt;th&gt;为什么适合&lt;/th&gt;
					&lt;th&gt;举例&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;原型开发&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;快速验证想法，质量要求低&lt;/td&gt;
					&lt;td&gt;Hackathon、内部 demo&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;个人项目&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;自己用，bug 自己修&lt;/td&gt;
					&lt;td&gt;个人工具、脚本&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;已知模式的模板代码&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;AI 擅长重复模式&lt;/td&gt;
					&lt;td&gt;CRUD、API 接口、配置文件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;学习新技术栈&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;边生成边学，比看文档快&lt;/td&gt;
					&lt;td&gt;新框架上手&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一个有意思的发现是：&lt;strong&gt;生产力提升最大的团队，不是那些让 AI 写所有代码的团队，而是知道「什么时候该用 Vibe Coding、什么时候不该」的团队。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关键词是「知道什么时候用」。&lt;/p&gt;
&lt;p&gt;这就是天花板的起点。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="三天花板在哪三个致命问题"&gt;三、天花板在哪？三个致命问题
&lt;/h2&gt;&lt;p&gt;Vibe Coding 的问题不是「不好用」，而是「用多了会出事」。&lt;/p&gt;
&lt;p&gt;三个致命缺陷，一个比一个隐蔽。&lt;/p&gt;
&lt;h3 id="问题一没有-evals你不知道-ai-产出的质量"&gt;问题一：没有 evals——你不知道 AI 产出的质量
&lt;/h3&gt;&lt;p&gt;你让 AI 写了一段代码，运行通过了。好。&lt;/p&gt;
&lt;p&gt;但是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;边界条件覆盖了吗？&lt;/li&gt;
&lt;li&gt;并发场景处理了吗？&lt;/li&gt;
&lt;li&gt;安全漏洞有没有？&lt;/li&gt;
&lt;li&gt;性能合不合格？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不知道。因为没有评估机制。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;「能跑」和「质量达标」之间隔着一道鸿沟。&lt;/strong&gt; Vibe Coding 的默认状态是：跑通就算完成。这在原型阶段没问题，在生产环境是灾难。&lt;/p&gt;
&lt;h3 id="问题二没有-observabilityagent-跑偏了你不知道"&gt;问题二：没有 observability——agent 跑偏了你不知道
&lt;/h3&gt;&lt;p&gt;当你把越来越多的工作交给 AI，一个新问题出现了：&lt;strong&gt;你看不见它在干什么。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;它改了哪些文件？为什么选这个方案而不是那个？中间做了几次重试？哪一步卡住了？&lt;/p&gt;
&lt;p&gt;如果你不知道这些，你就是在盲开。&lt;/p&gt;
&lt;h3 id="问题三安全和可维护性无人负责"&gt;问题三：安全和可维护性无人负责
&lt;/h3&gt;&lt;p&gt;AI 生成的代码，谁对安全负责？&lt;/p&gt;
&lt;p&gt;AI 生成的代码，三个月后谁来维护？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这两个问题在 Vibe Coding 的范式里没有答案。&lt;/strong&gt; 因为 Vibe Coding 的核心动作是「accept」——接受产出，不做深度审查。安全和可维护性恰恰需要深度审查。&lt;/p&gt;
&lt;h3 id="数据说话"&gt;数据说话
&lt;/h3&gt;&lt;p&gt;一个普遍现象是：大多数团队能看到 agent 在干什么（observability），但只有一半左右的团队在系统性地评估产出质量（evals）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这个差距就是 Vibe Coding 到 Agentic Engineering 的鸿沟。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;能看见，但不能控制。能产出，但不能保证质量。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="四agentic-engineeringkarpathy-的新范式"&gt;四、Agentic Engineering——Karpathy 的新范式
&lt;/h2&gt;&lt;p&gt;什么是 Agentic Engineering？&lt;/p&gt;
&lt;p&gt;Karpathy 的核心定义是两个词：&lt;strong&gt;ceiling-preserving（保护上限）&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;Vibe Coding 是 floor-raising——让更多人能参与。&lt;/p&gt;
&lt;p&gt;Agentic Engineering 是 ceiling-preserving——确保质量不滑坡。&lt;/p&gt;
&lt;p&gt;具体来说：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;「我 99% 的时间不再直接写代码，而是在指挥智能体干活。但作为人类，我对最终质量负全责。」&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;关键词是「负全责」。&lt;/p&gt;
&lt;p&gt;不是让 AI 随便搞。是工程化地管理 AI 写代码的过程。&lt;/p&gt;
&lt;h3 id="三大支柱"&gt;三大支柱
&lt;/h3&gt;&lt;p&gt;Agentic Engineering 不是一个工具、一个框架，而是一套方法论。核心由三大支柱支撑：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;支柱一：Spec（规范）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;告诉 agent「做什么」和「不做什么」。这不是写 prompt，是写工程规格书。&lt;/p&gt;
&lt;p&gt;具体形式就是 AGENTS.md、SOUL.md 这类规范文件——项目架构、编码规范、测试要求、禁止操作，全部写清楚。（怎么写，我在上一篇&lt;a class="link" href="https://blog.kalend.top/2026/07/06/agents-md-guide.html" &gt;AGENTS.md 指南&lt;/a&gt;里详细拆过。）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;支柱二：Evals（评估）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;系统性地衡量 AI 产出的质量。不是「看起来行就行」，是「过了评估才算完成」。&lt;/p&gt;
&lt;p&gt;可以是自动化测试，可以是 checklist，可以是 code review 流程——形式不重要，&lt;strong&gt;有没有&lt;/strong&gt;才重要。&lt;/p&gt;
&lt;p&gt;最简单的 eval：写一个 checklist，AI 每次产出后逐条打勾。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;检查项&lt;/th&gt;
					&lt;th&gt;通过&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;功能符合需求&lt;/td&gt;
					&lt;td&gt;✅/❌&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;错误处理完整&lt;/td&gt;
					&lt;td&gt;✅/❌&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;无安全隐患&lt;/td&gt;
					&lt;td&gt;✅/❌&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;有测试覆盖&lt;/td&gt;
					&lt;td&gt;✅/❌&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;代码风格一致&lt;/td&gt;
					&lt;td&gt;✅/❌&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;5 条，5 分钟，但能把 80% 的问题拦在合并前。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;支柱三：Observability（可观测性）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;看得见 agent 在干什么。日志、trace、审计——知道每一步的输入输出，知道为什么做了这个选择。&lt;/p&gt;
&lt;p&gt;不是为了监控，是为了&lt;strong&gt;事后复盘&lt;/strong&gt;。出了问题能追溯，做得好能复用。&lt;/p&gt;
&lt;h3 id="一张表看清区别"&gt;一张表看清区别
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;Vibe Coding&lt;/th&gt;
					&lt;th&gt;Agentic Engineering&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;核心理念&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;提升下限（floor-raising）&lt;/td&gt;
					&lt;td&gt;保护上限（ceiling-preserving）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;人的角色&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;accepter——接受产出&lt;/td&gt;
					&lt;td&gt;owner——对质量负责&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;代码审查&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;可选，甚至跳过&lt;/td&gt;
					&lt;td&gt;必须，有流程&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;产出质量&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;靠运气&lt;/td&gt;
					&lt;td&gt;靠工程&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;原型、个人项目&lt;/td&gt;
					&lt;td&gt;生产环境、团队协作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;核心动作&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;prompt → accept&lt;/td&gt;
					&lt;td&gt;spec → execute → evaluate → ship&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="五三阶段进化全景"&gt;五、三阶段进化全景
&lt;/h2&gt;&lt;p&gt;回头看，AI 编程方法论经历了三个清晰的阶段。&lt;/p&gt;
&lt;h3 id="第一阶段vibe-coding202502-"&gt;第一阶段：Vibe Coding（2025.02 —）
&lt;/h3&gt;&lt;p&gt;关键词：&lt;strong&gt;氛围编程，快但不可控。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Karpathy 定义，社区狂热。prompt → accept → ship。门槛降到地板，质量也跟着降到地板。&lt;/p&gt;
&lt;p&gt;这一阶段的贡献是巨大的——它证明了 AI 可以写代码，而且写得还不错。它让整个行业开始认真对待 AI 编程。&lt;/p&gt;
&lt;p&gt;但它也暴露了一个根本问题：&lt;strong&gt;快不等于对。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="第二阶段context-coding--harness-engineering202506-"&gt;第二阶段：Context Coding / Harness Engineering（2025.06 —）
&lt;/h3&gt;&lt;p&gt;关键词：&lt;strong&gt;AGENTS.md + 规范约束，让 AI 在框架内工作。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2025 年中，社区开始使用 Context Engineering 这个概念，强调给 AI 提供完整的上下文而非简单 prompt。开发者开始写规范文件、定义规则、约束 AI 的行为边界。从「给 AI 一句话」变成「给 AI 一套规则」。&lt;/p&gt;
&lt;p&gt;这一阶段的核心贡献是：&lt;strong&gt;把 AI 从「自由发挥」拉回到「有规矩地干活」。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我在之前的&lt;a class="link" href="https://blog.kalend.top/2026/07/06/agents-md-guide.html" &gt;AGENTS.md 深度指南&lt;/a&gt;中详细拆过这一阶段的方法论。简单说：花 30 分钟写好规范文件，比花三天对比工具强十倍。&lt;/p&gt;
&lt;p&gt;但 Context Coding 也有天花板：它管住了单个 AI 的行为，但管不住多个 AI 的协作，也没有系统性的质量验证机制。&lt;/p&gt;
&lt;h3 id="第三阶段agentic-engineering202604-"&gt;第三阶段：Agentic Engineering（2026.04 —）
&lt;/h3&gt;&lt;p&gt;关键词：&lt;strong&gt;多 agent 协调 + evals + observability。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Karpathy 在 AI Ascent 大会上正式提出。不只是「给 AI 规则」，而是「工程化管理整个 AI 工作流」。&lt;/p&gt;
&lt;p&gt;多个 agent 并行工作，人类定义目标和质量标准，evals 验证产出，observability 监控过程。&lt;/p&gt;
&lt;h3 id="类比"&gt;类比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;类比&lt;/th&gt;
					&lt;th&gt;核心动作&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Vibe Coding&lt;/td&gt;
					&lt;td&gt;手工作坊——一个人从头干到尾&lt;/td&gt;
					&lt;td&gt;accept&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Context Coding&lt;/td&gt;
					&lt;td&gt;流水线——标准化流程&lt;/td&gt;
					&lt;td&gt;constrain&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Agentic Engineering&lt;/td&gt;
					&lt;td&gt;智能工厂——多条线并行，人管质量&lt;/td&gt;
					&lt;td&gt;orchestrate&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;从「一个人干活」到「标准化流程」到「多条线并行」。&lt;/p&gt;
&lt;p&gt;你现在在哪个阶段？大多数人停在 1.0 或 2.0。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="六你现在该怎么做五条实操建议"&gt;六、你现在该怎么做？五条实操建议
&lt;/h2&gt;&lt;p&gt;不是理论，是现在就能做的事。&lt;/p&gt;
&lt;h3 id="1-不要抛弃-vibe-coding升级它"&gt;1. 不要抛弃 Vibe Coding，升级它
&lt;/h3&gt;&lt;p&gt;Vibe Coding 不是垃圾，是地基。&lt;/p&gt;
&lt;p&gt;原型开发、学习新技术、探索性编码——这些场景仍然适用。&lt;strong&gt;问题不是 Vibe Coding 本身，而是把它当终点。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;正确姿势：用 Vibe Coding 快速产出，然后用工程化手段验证。&lt;/p&gt;
&lt;h3 id="2-给你的-ai-工具加-evals"&gt;2. 给你的 AI 工具加 evals
&lt;/h3&gt;&lt;p&gt;哪怕最简单的 checklist。&lt;/p&gt;
&lt;p&gt;每次 AI 产出后，花 5 分钟逐条检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;功能是否符合需求？&lt;/li&gt;
&lt;li&gt;错误处理是否完整？&lt;/li&gt;
&lt;li&gt;是否有安全隐患？&lt;/li&gt;
&lt;li&gt;是否有测试覆盖？&lt;/li&gt;
&lt;li&gt;代码风格是否一致？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不要觉得「看起来行就行」。「看起来」是最不靠谱的质量标准。&lt;/p&gt;
&lt;h3 id="3-学会写-agentsmd"&gt;3. 学会写 AGENTS.md
&lt;/h3&gt;&lt;p&gt;Context Engineering 是 2026 年的必修课。&lt;/p&gt;
&lt;p&gt;不管用什么工具——Claude Code、Cursor、Codex、Gemini CLI——底层逻辑都一样：&lt;strong&gt;AI 的产出质量，70% 取决于你给了它什么上下文。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;30 分钟写一个 AGENTS.md，效果比换三个工具强十倍。不知道怎么写？参考 Codex CLI 的官方仓库——GitHub 超过 10 万 Star，它的 AGENTS.md 就是范本。&lt;/p&gt;
&lt;h3 id="4-建立-agent-可观测性"&gt;4. 建立 agent 可观测性
&lt;/h3&gt;&lt;p&gt;不需要复杂的基础设施。&lt;/p&gt;
&lt;p&gt;最简单的方式：让 AI 在工作时输出日志——做了什么、为什么这么做、遇到了什么问题。&lt;/p&gt;
&lt;p&gt;进阶方式：用专门的可观测性工具，记录每个 agent 的执行路径、决策过程、耗时分布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;能看到，才能改进。看不到，只能祈祷。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="5-从单-agent-到多-agent-协作"&gt;5. 从单 agent 到多 agent 协作
&lt;/h3&gt;&lt;p&gt;这是 2026 年真正拉开差距的地方。&lt;/p&gt;
&lt;p&gt;一个人指挥一个 AI，是 Context Coding。&lt;/p&gt;
&lt;p&gt;一个人指挥多个 AI 各司其职，是 Agentic Engineering。&lt;/p&gt;
&lt;p&gt;具体怎么做：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;一个 agent 负责写代码
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;一个 agent 负责 review
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;一个 agent 负责测试
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;一个 agent 负责部署
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;人类负责定义目标和验收标准
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;不需要一开始就搭完整的 pipeline。从「写代码 + review」两个角色开始，逐步扩展。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="七结论地基之上才是上层建筑"&gt;七、结论：地基之上，才是上层建筑
&lt;/h2&gt;&lt;p&gt;Vibe Coding 不是终结，是起点。&lt;/p&gt;
&lt;p&gt;它证明了 AI 可以写代码，让整个行业开始认真对待 AI 编程。但「能写」和「写得好」之间，隔着 Agentic Engineering。&lt;/p&gt;
&lt;p&gt;2026 年，「会用 AI」不够了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;要「会工程化管理 AI」。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;三个核心转变：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;从 accept 一切 → 只 accept 过了 eval 的
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;从看不到过程 → 每一步可观测
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;从单打独斗 → 多 agent 协作
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Karpathy 说「从没觉得自己如此落后过」，然后用 14 个月定义了一套新方法论。&lt;/p&gt;
&lt;p&gt;你呢？&lt;/p&gt;
&lt;p&gt;不需要 14 个月。从今天开始做三件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;写一个 AGENTS.md（30 分钟）&lt;/li&gt;
&lt;li&gt;加一个 5 条 checklist 的 eval（5 分钟）&lt;/li&gt;
&lt;li&gt;让 AI 输出工作日志（1 分钟）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;36 分钟，你就能从 Vibe Coding 1.0 迈进 Agentic Engineering 的大门。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;数据来源：Addy Osmani (Google)《The New Software Lifecycle》(2026.5)、Karpathy 红杉资本 AI Ascent 演讲(2026.4)&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;关注「varkm」，一起学习，一起成长。&lt;/p&gt;</description></item><item><title>Vibe Coding翻车指南：10个让AI编程从'爽'变'灾难'的常见错误</title><link>https://blog.kalend.top/2026/07/17/2026-07-17-vibe-coding-pitfalls-guide.html/</link><pubDate>Fri, 17 Jul 2026 08:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/07/17/2026-07-17-vibe-coding-pitfalls-guide.html/</guid><description>&lt;p&gt;Google 2026年5月发布的《The New SDLC With Vibe Coding》白皮书有一组扎眼的数据：85%的专业开发者在用AI编程智能体，51%每天用，预估41%新代码由AI生成。&lt;/p&gt;
&lt;p&gt;用的人多，不等于用得好。&lt;/p&gt;
&lt;p&gt;Karpathy 2025年2月提出Vibe Coding，一年后又提出Agentic Engineering。这个进化本身就说明问题——Vibe Coding是起点，不是终点。很多人卡在&amp;quot;提示即祈祷&amp;quot;阶段：把需求扔给AI，然后祈祷别出错。&lt;/p&gt;
&lt;p&gt;今天不聊代码层面的bug（那篇写过了），聊方法论层面的10个系统性错误。每个都指向同一个核心：&lt;strong&gt;AI是乘数，工程纪律是被乘数&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误1大模块一次性生成"&gt;错误1：大模块一次性生成
&lt;/h2&gt;&lt;p&gt;一个prompt要求AI写完整认证系统——注册、登录、密码重置、JWT刷新、OAuth2集成，全要。&lt;/p&gt;
&lt;p&gt;结果：安全细节被简化（密码哈希用SHA256而非bcrypt，JWT没有刷新机制），错误处理缺失，接口风格不一致。看起来&amp;quot;能跑&amp;quot;，上线就炸。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：拆成小任务，每个≤200行。认证系统拆成：①用户模型+密码哈希 ②注册接口 ③登录+JWT签发 ④JWT刷新 ⑤OAuth2接入。每完成一个，验证一个。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误2模糊prompt产出平庸代码"&gt;错误2：模糊prompt产出平庸代码
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;帮我优化这段代码&amp;rdquo;——AI会给你一个&amp;quot;还行&amp;quot;的版本。&amp;ldquo;用async/await重写这个函数，保持错误处理和日志，去掉callback hell&amp;rdquo;——AI给你精准的重构。&lt;/p&gt;
&lt;p&gt;Claude Code官方最佳实践指南反复强调：模糊的prompt只能得到模糊的结果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：每次prompt回答三个问题——改什么、怎么改、保留什么。模糊的输入只能得到模糊的输出。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误3不过审就部署"&gt;错误3：不过审就部署
&lt;/h2&gt;&lt;p&gt;灰度发布，新接口静默失败——前端无提示，后端日志全是空catch块。用户投诉了才发现。&lt;/p&gt;
&lt;p&gt;AI生成≠可部署。这个等号不能画。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：AI代码必须过审才能合并。审查清单：①错误处理是否完整 ②边界条件是否覆盖 ③日志是否有意义 ④是否有硬编码的配置 ⑤是否有测试。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误4过度信任ai的完整性"&gt;错误4：过度信任AI的&amp;quot;完整性&amp;quot;
&lt;/h2&gt;&lt;p&gt;AI输出的代码&amp;quot;看起来很完整&amp;quot;——有注释、有docstring、有错误处理、甚至有测试。但仔细看，测试只覆盖了happy path，错误处理用了&lt;code&gt;except Exception: pass&lt;/code&gt;，docstring和实际行为不一致。&lt;/p&gt;
&lt;p&gt;AI的完整性是表面的。它会生成结构完整但逻辑有漏洞的代码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：追问&amp;quot;为什么这么写&amp;quot;。AI选择某个方案时，问它为什么不用另一个。如果它答不上来或答得含糊，方案可能有问题。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误5context缺失导致幻觉"&gt;错误5：context缺失导致幻觉
&lt;/h2&gt;&lt;p&gt;没有AGENTS.md，没有项目规范文件，没有代码风格指南。AI只能靠猜——猜你用什么框架、猜你用什么数据库、猜你的错误处理风格。&lt;/p&gt;
&lt;p&gt;结果：同一个项目里，AI一会儿用Express一会儿用Fastify，一会儿用async/await一会儿用callback。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：给AI一个&amp;quot;上下文锚点&amp;quot;。AGENTS.md、.cursorrules、项目README，这些文件的价值不在于写得多详细，而在于AI有了参考系。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误6任务粒度不对"&gt;错误6：任务粒度不对
&lt;/h2&gt;&lt;p&gt;两个极端都致命：太大，AI出错概率飙升；太小，AI失去连贯性，生成的代码碎片化。&lt;/p&gt;
&lt;p&gt;类比：不会让实习生一次交付完整系统，也不会让他只写一行print。给AI的任务和给人的任务，粒度原则一样。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：单个任务的复杂度应该等于一个&amp;quot;中等难度的PR&amp;quot;——有明确输入输出，有清晰边界，一个资深工程师能在30分钟内review完。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误7迭代循环缺失"&gt;错误7：迭代循环缺失
&lt;/h2&gt;&lt;p&gt;一次性生成后就不管了。不跑测试，不做code review，不根据反馈调整。&lt;/p&gt;
&lt;p&gt;Vibe Coding的诱惑在于&amp;quot;看起来很快&amp;quot;。但如果没有迭代循环，快只是假象——你只是把调试时间从编码阶段移到了部署阶段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：小步快跑+持续反馈。生成→验证→反馈→调整，每个循环不超过10分钟。如果一个循环内无法验证，任务粒度太大了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误8审查机制空白"&gt;错误8：审查机制空白
&lt;/h2&gt;&lt;p&gt;没有code review流程，AI生成的代码直接合并到main分支。相当于把仓库的门禁卡交给了一个实习生，还不设审批。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：设计AI代码审查checklist。不用复杂，五条就够：①功能是否符合需求 ②错误处理是否完整 ③是否有安全隐患 ④是否有测试覆盖 ⑤代码风格是否一致。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误9只学工具不学心法"&gt;错误9：只学工具不学心法
&lt;/h2&gt;&lt;p&gt;Cursor、Claude Code、Codex、OpenCode——工具选了一堆，方法论停留在&amp;quot;提需求→等生成→复制粘贴&amp;quot;。&lt;/p&gt;
&lt;p&gt;工具一直在换，但方法论没变。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：工具是手段，不是目的。理解&amp;quot;任务拆解→上下文管理→迭代验证→审查部署&amp;quot;这个循环，比多装三个工具有用。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误10忽略验证成本"&gt;错误10：忽略验证成本
&lt;/h2&gt;&lt;p&gt;代码生成成本从&amp;quot;一个工程师一天&amp;quot;降到&amp;quot;几秒钟&amp;quot;，但验证成本并没有降。瓶颈从&amp;quot;写代码&amp;quot;转移到了两端：搞清要做什么，确认做对了。&lt;/p&gt;
&lt;p&gt;这两个才是真正的成本。很多人只关注&amp;quot;AI写得快不快&amp;quot;，忽略了&amp;quot;AI写得对不对&amp;quot;需要人来确认。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：把足够的时间花在验证上——跑测试、看diff、review逻辑。生成快≠正确，省下的编码时间要投入到验证中。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="从vibe-coding到agentic-engineering"&gt;从Vibe Coding到Agentic Engineering
&lt;/h2&gt;&lt;p&gt;Karpathy 2026年2月提出的Agentic Engineering，核心思想很简单：&lt;strong&gt;人负责定义目标、约束和质量标准，AI在结构化流程中执行，每个关键节点人工审核。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不是让AI自己跑，是给人一个更高效的工作流。AI在里面的角色是&amp;quot;高效执行者&amp;quot;，不是&amp;quot;决策者&amp;quot;。&lt;/p&gt;
&lt;p&gt;Vibe Coding是&amp;quot;感觉对了就用&amp;quot;，Agentic Engineering是&amp;quot;验证对了才用&amp;quot;。前者靠直觉，后者靠流程。&lt;/p&gt;
&lt;p&gt;你不需要10个AI工具，你需要一个清晰的工程方法论。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;数据来源：Google《The New SDLC With Vibe Coding》(2026.5)、Karpathy 2025.2/2026.2公开演讲、Claude Code官方最佳实践指南&lt;/em&gt;&lt;/p&gt;</description></item><item><title>AI编程不是一句话搞定：任务拆解的粒度艺术</title><link>https://blog.kalend.top/2026/07/10/2026-07-10-task-decomposition-granularity.html/</link><pubDate>Fri, 10 Jul 2026 10:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/07/10/2026-07-10-task-decomposition-granularity.html/</guid><description>&lt;p&gt;我见过太多人（包括我自己）踩同一个坑：把一个大需求直接丢给 AI，期待它一口气交付完整功能。&lt;/p&gt;
&lt;p&gt;结果呢？前半段看起来不错，后半段开始离谱。你 accept 了前 200 行代码，到第 300 行发现逻辑对不上，回头一看——第一步的数据结构就埋了雷，后面全是连锁反应。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结论先说：AI 编程的核心技能不是 prompt 写得多好，而是任务拆得多细。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一为什么一句话搞定是最大的陷阱"&gt;一、为什么&amp;quot;一句话搞定&amp;quot;是最大的陷阱
&lt;/h2&gt;&lt;p&gt;先说一个反直觉的事实：上下文窗口越大，你越容易高估 AI 的能力。&lt;/p&gt;
&lt;p&gt;2026 年主流模型的上下文窗口已经到了 200K tokens，理论上能装下一个中型项目的全部代码。但问题是——&lt;strong&gt;能装下不等于能理解&lt;/strong&gt;。模型在处理长上下文时，注意力会稀释。你丢进去 10 个文件让它同时改，它可能只精确处理了前 3 个，后面 7 个在&amp;quot;凭印象&amp;quot;写代码。&lt;/p&gt;
&lt;p&gt;这引出一个核心概念：&lt;strong&gt;幻觉半径&lt;/strong&gt;。任务越复杂，模型的&amp;quot;合理猜测&amp;quot;范围越大，犯错概率指数级增长。一个小功能的幻觉半径可能只有 2-3 行代码，一个完整模块的幻觉半径能覆盖整个文件。&lt;/p&gt;
&lt;p&gt;更致命的是&lt;strong&gt;错误累积效应&lt;/strong&gt;。第一步的数据类型选错，第五步的 API 就对不上，第十步的 UI 就要推倒重来。这不是 AI 笨——你让一个聪明人同时处理 10 个相互依赖的任务，他也会犯错。&lt;/p&gt;
&lt;p&gt;类比一下：你不会让实习生第一天就独立交付整个支付模块。你会先让他改个按钮颜色，再写个工具函数，逐步加码。AI 编程也一样——&lt;strong&gt;不是因为它不聪明，而是因为复杂任务的本质就需要分步验证。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二任务拆解的三层粒度模型"&gt;二、任务拆解的三层粒度模型
&lt;/h2&gt;&lt;p&gt;拆解不是随便切，有一个实用的分层框架：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;层级&lt;/th&gt;
					&lt;th&gt;名称&lt;/th&gt;
					&lt;th&gt;时间粒度&lt;/th&gt;
					&lt;th&gt;例子&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;L1&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;功能级&lt;/td&gt;
					&lt;td&gt;10-30 分钟&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;实现用户登录&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;L2&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;步骤级&lt;/td&gt;
					&lt;td&gt;5-15 分钟&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;创建登录表单组件&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;L3&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;指令级&lt;/td&gt;
					&lt;td&gt;1-5 分钟&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;在 LoginForm.tsx 中添加邮箱验证&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;最佳实践：从 L1 开始规划，用 L3 实际执行。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;什么意思？你在脑子里或文档里先拆出 L1 功能清单——&amp;ldquo;登录&amp;quot;是一个 L1，&amp;ldquo;评论系统&amp;quot;是一个 L1。然后每个 L1 拆成 3-5 个 L2 步骤。真正交给 AI 执行的是 L3：一个具体的、明确的、可以在几分钟内验证的小指令。&lt;/p&gt;
&lt;p&gt;为什么要这样？因为每个 L3 指令都是一个&lt;strong&gt;可验证的检查点&lt;/strong&gt;。做完了，跑一下，看看对不对。对了继续，错了立刻修。这比一口气做完 10 个功能再回头 debug 效率高一个数量级。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="三五种拆解策略"&gt;三、五种拆解策略
&lt;/h2&gt;&lt;p&gt;拆解有章法可循，不是凭感觉切。以下是五种我反复验证过的策略：&lt;/p&gt;
&lt;h3 id="按文件拆"&gt;按文件拆
&lt;/h3&gt;&lt;p&gt;每个文件一次修改。不要让 AI 同时动 10 个文件——它会顾此失彼，改了 A 忘了 B 的 import 路径。&lt;/p&gt;
&lt;p&gt;实操技巧：先问 AI &amp;ldquo;这个功能涉及哪些文件？&amp;quot;，然后一个一个来。&lt;/p&gt;
&lt;h3 id="按层次拆"&gt;按层次拆
&lt;/h3&gt;&lt;p&gt;先数据层 → 再逻辑层 → 最后 UI 层。这是经典的分层架构思路，但很多人在 AI 编程时忘了它。&lt;/p&gt;
&lt;p&gt;为什么要分层？因为数据模型是地基。你先让 AI 写 UI，回头发现数据结构不对，UI 就得全改。反过来，数据模型定好了，API 和 UI 怎么改都不伤根基。&lt;/p&gt;
&lt;h3 id="按依赖拆"&gt;按依赖拆
&lt;/h3&gt;&lt;p&gt;画一下依赖图，先实现被依赖的模块。工具函数比业务逻辑先写，公共组件比页面组件先写。&lt;/p&gt;
&lt;p&gt;一个简单判断法：如果模块 A 的测试需要模块 B 的存在，那 B 就该先做。&lt;/p&gt;
&lt;h3 id="按风险拆"&gt;按风险拆
&lt;/h3&gt;&lt;p&gt;高风险部分（支付、认证、数据迁移）单独审查，低风险部分（样式、文案、配置）可以批量处理。&lt;/p&gt;
&lt;p&gt;这不是歧视低风险代码，而是&lt;strong&gt;把有限的审查精力集中在最可能出问题的地方&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="按测试拆"&gt;按测试拆
&lt;/h3&gt;&lt;p&gt;每个拆分点都是一个可测试的里程碑。如果一个子任务你写不出测试用例，说明它太大了，需要继续拆。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;好拆分：实现用户注册 API → 可以写测试验证返回 201 和正确的 user 对象
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;坏拆分：实现整个用户系统 → 测试用例写不出来，因为不知道从哪验证起
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="四审查机制设计"&gt;四、审查机制设计
&lt;/h2&gt;&lt;p&gt;拆解是骨架，审查是免疫系统。没有审查的拆解，只是把一个大错误切成了十个小错误。&lt;/p&gt;
&lt;h3 id="checkpoint-审查"&gt;Checkpoint 审查
&lt;/h3&gt;&lt;p&gt;每完成一个子任务，停下来 review。不需要逐行看代码，重点检查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;接口是否符合预期（输入输出类型对不对）&lt;/li&gt;
&lt;li&gt;边界情况有没有处理&lt;/li&gt;
&lt;li&gt;和上一步的衔接是否顺畅&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="自动验证"&gt;自动验证
&lt;/h3&gt;&lt;p&gt;让 AI 自己跑测试、lint、类型检查。这是最高效的审查方式——不需要人肉看，机器告诉你对不对。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Prompt 示例：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#34;写完这个函数后，自己跑一下 pytest，确保所有测试通过。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;如果有 lint 警告，也一并修复。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="回滚机制"&gt;回滚机制
&lt;/h3&gt;&lt;p&gt;git commit 要频繁。每完成一个 L3 指令就 commit 一次。这样出错时能精确回退到上一个正确的状态，而不是 &lt;code&gt;git stash&lt;/code&gt; 整个进度。&lt;/p&gt;
&lt;h3 id="渐进信任"&gt;渐进信任
&lt;/h3&gt;&lt;p&gt;这是核心原则：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;信任级别&lt;/th&gt;
					&lt;th&gt;操作方式&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;小任务（L3）&lt;/td&gt;
					&lt;td&gt;Agent 自主&lt;/td&gt;
					&lt;td&gt;不审查，看结果&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;中任务（L2）&lt;/td&gt;
					&lt;td&gt;轻度审查&lt;/td&gt;
					&lt;td&gt;自动验证 + 快速扫一眼&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;大任务（L1）&lt;/td&gt;
					&lt;td&gt;人工审查&lt;/td&gt;
					&lt;td&gt;逐个 checkpoint 检查&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;关键任务&lt;/td&gt;
					&lt;td&gt;人工参与&lt;/td&gt;
					&lt;td&gt;每步确认再继续&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;信任是挣来的，不是给的。先让 AI 在小任务上证明自己，再逐步放权。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="五实战案例一个真实功能的拆解过程"&gt;五、实战案例——一个真实功能的拆解过程
&lt;/h2&gt;&lt;p&gt;需求：&amp;ldquo;给博客系统加一个评论功能。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;这句话看起来简单，实际涉及至少 6 个独立模块。如果一把丢给 AI，大概率翻车。拆开看：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;L1 拆解（6 个功能）：&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;① 数据模型 → ② API 端点 → ③ 前端组件 → ④ 前后端连接 → ⑤ 样式交互 → ⑥ 测试
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;L2/L3 拆解（以&amp;quot;数据模型&amp;quot;为例）：&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;L2-1: 定义 Comment schema（字段、类型、约束）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;L2-2: 创建数据库迁移文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;L2-3: 写基础 CRUD 方法
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;L3-1: 在 schema 中添加 content: text, author: string, post_id: integer, created_at: timestamp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;L3-2: 运行 migration，验证表创建成功
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;L3-3: 实现 create 方法，写一个测试验证能插入数据
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键点：每一步都是独立的、可验证的、可回滚的。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L3-1 做完，跑类型检查，确认 schema 没语法错误&lt;/li&gt;
&lt;li&gt;L3-2 做完，查数据库，确认表结构正确&lt;/li&gt;
&lt;li&gt;L3-3 做完，跑测试，确认 CRUD 正常&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;任何一步出错，只回退那一步，不影响其他部分。这就是拆解的价值——&lt;strong&gt;把不可逆的大失败变成可逆的小失败。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="六不同工具的拆解差异"&gt;六、不同工具的拆解差异
&lt;/h2&gt;&lt;p&gt;不同工具对拆解粒度的要求不同：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;工具&lt;/th&gt;
					&lt;th&gt;适合粒度&lt;/th&gt;
					&lt;th&gt;原因&lt;/th&gt;
					&lt;th&gt;注意事项&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Cursor&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;L2-L3&lt;/td&gt;
					&lt;td&gt;Agent 模式可自动执行多步，但文件级操作仍需控制&lt;/td&gt;
					&lt;td&gt;单次改动不超过 3 个文件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;L1-L2&lt;/td&gt;
					&lt;td&gt;长上下文能力强，可以一次处理更大范围&lt;/td&gt;
					&lt;td&gt;但仍需 checkpoint，不能盲目信任&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;OpenCode/Codex CLI&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;L2-L3&lt;/td&gt;
					&lt;td&gt;沙箱隔离，适合高风险操作的独立审查&lt;/td&gt;
					&lt;td&gt;适合&amp;quot;先在沙箱里试，确认后再合并&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;通用原则：工具越强，粒度可以越粗，但不能不拆。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;即使是最强的模型，面对&amp;quot;帮我重写整个认证系统&amp;quot;这种指令，也大概率会遗漏边界情况。能力上限不等于可靠性上限。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="七常见反模式"&gt;七、常见反模式
&lt;/h2&gt;&lt;p&gt;最后列四个我见过最多的反模式，每个都是血泪教训：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;一口气全做完&amp;rdquo;&lt;/strong&gt;——丢一个大需求，期望一次交付。这是最常见也最致命的。你以为省了时间，实际在后面付出了 3 倍的 debug 时间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;过度拆解&amp;rdquo;&lt;/strong&gt;——拆到每行代码一个指令。走到另一个极端，效率为零。L3 是底线，再细就该自己写了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;只拆不审&amp;rdquo;&lt;/strong&gt;——拆了 10 个步骤，一口气全执行完，中间不检查。拆解的意义在于验证，不检查等于没拆。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;盲目信任&amp;rdquo;&lt;/strong&gt;——AI 说&amp;quot;测试全通过&amp;quot;就信了。实际上它可能只跑了它自己写的测试，而那些测试恰好跳过了真正的 bug。&lt;strong&gt;验证要独立于被验证的对象。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="写在最后"&gt;写在最后
&lt;/h2&gt;&lt;p&gt;AI 编程的真正门槛不是 prompt engineering，是&lt;strong&gt;工程思维&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;能用 AI 写代码的人越来越多，但能把 AI 编程用好的人——任务拆得清、审查做得实、质量守得住——依然是少数。&lt;/p&gt;
&lt;p&gt;任务拆解听起来像管理话题，和技术无关。但做过大型项目的人都知道：&lt;strong&gt;最难的从来不是写代码，是决定先写什么、后写什么、什么不写。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AI 改变的是编码速度，没有改变软件工程的基本规律。小步快跑、持续验证、快速回滚——这些原则在 AI 时代比任何时候都重要。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;varkm&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>