<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Coding Agent on 文艺技术笔记</title>
        <link>https://wenyiblog.top/tags/coding-agent/</link>
        <description>Recent content in Coding Agent on 文艺技术笔记</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>文艺技术笔记 | 软件工程师文艺</copyright>
        <lastBuildDate>Mon, 20 Jul 2026 20:00:00 +0800</lastBuildDate><atom:link href="https://wenyiblog.top/tags/coding-agent/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>AI Coding Agent 的工程化落地：从补全到自主编程的全流程对比评测</title>
        <link>https://wenyiblog.top/2026/07/ai-coding-agent-engineering/</link>
        <pubDate>Mon, 20 Jul 2026 20:00:00 +0800</pubDate>
        
        <guid>https://wenyiblog.top/2026/07/ai-coding-agent-engineering/</guid>
        <description>&lt;h2 id=&#34;一个被低估的分水岭&#34;&gt;&lt;a href=&#34;#%e4%b8%80%e4%b8%aa%e8%a2%ab%e4%bd%8e%e4%bc%b0%e7%9a%84%e5%88%86%e6%b0%b4%e5%b2%ad&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;一个被低估的分水岭
&lt;/h2&gt;&lt;p&gt;2024 年之前，大多数人谈论 AI 编程时，说的其实是同一件事——&lt;strong&gt;代码补全&lt;/strong&gt;。Tab 键一按，AI 给你续写几行代码，你挑挑拣拣，接受或拒绝。这个模式从 GitHub Copilot 开始，到 Cursor 做到极致，本质上没有变化：AI 是你的&lt;strong&gt;打字加速器&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;但 2025 年开始，一个新的品类冒出来了——&lt;strong&gt;Coding Agent&lt;/strong&gt;。它不再等你按 Tab，而是自己读需求、读代码库、规划步骤、写代码、跑测试、修 Bug，一条龙完成。代表产品是 Claude Code 和 Codex CLI。&lt;/p&gt;
&lt;p&gt;这两者之间的差距，不是&amp;quot;更好用一点&amp;quot;的渐变，而是&lt;strong&gt;范式的跃迁&lt;/strong&gt;。就像从搜索引擎到 AI 对话的跳跃一样——前者是你提问、它给链接；后者是你描述需求、它直接给答案。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;代码补全是&amp;quot;人写代码，AI 帮忙&amp;quot;。Coding Agent 是&amp;quot;人说需求，AI 写代码&amp;quot;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这篇文章不谈概念，只谈实战。我拿一个中等复杂度的真实项目——一个 FastAPI 后端服务，包含 CRUD、认证、数据库迁移和单元测试——在四类工具上分别跑了一遍，记录它们各自能走多远、在哪里卡住、以及怎么才能真正把 AI 编程用到生产环境中。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四类工具的定位光谱&#34;&gt;&lt;a href=&#34;#%e5%9b%9b%e7%b1%bb%e5%b7%a5%e5%85%b7%e7%9a%84%e5%ae%9a%e4%bd%8d%e5%85%89%e8%b0%b1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;四类工具的定位光谱
&lt;/h2&gt;&lt;p&gt;先明确我们在比较什么。把当前市面上的 AI 编程工具按&lt;strong&gt;自主程度&lt;/strong&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;L1 补全&lt;/td&gt;
					&lt;td&gt;GitHub Copilot&lt;/td&gt;
					&lt;td&gt;Tab 续写单行/多行代码&lt;/td&gt;
					&lt;td&gt;逐行编写，AI 辅助加速&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L2 对话&lt;/td&gt;
					&lt;td&gt;Cursor Chat / Copilot Chat&lt;/td&gt;
					&lt;td&gt;在 IDE 内对话，生成代码片段&lt;/td&gt;
					&lt;td&gt;描述局部需求，审查生成结果&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L3 编辑&lt;/td&gt;
					&lt;td&gt;Cursor Composer / Windsurf&lt;/td&gt;
					&lt;td&gt;跨文件编辑，理解项目上下文&lt;/td&gt;
					&lt;td&gt;描述功能需求，审查多文件变更&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L4 自主&lt;/td&gt;
					&lt;td&gt;Claude Code / Codex CLI&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;工作流设计&lt;/strong&gt;。L1/L2 适合你在已有代码上修修补补，L3 适合开发一个新功能模块，L4 适合从零开始或在明确边界内完成一个完整任务。&lt;/p&gt;
&lt;p&gt;选错了层级，效率反而会下降。你拿 L4 的工具去做一行代码的修改，杀鸡用牛刀；你拿 L1 的工具去重构一个模块，累死自己。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;评测设计同一个项目四条路线&#34;&gt;&lt;a href=&#34;#%e8%af%84%e6%b5%8b%e8%ae%be%e8%ae%a1%e5%90%8c%e4%b8%80%e4%b8%aa%e9%a1%b9%e7%9b%ae%e5%9b%9b%e6%9d%a1%e8%b7%af%e7%ba%bf&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;评测设计：同一个项目，四条路线
&lt;/h2&gt;&lt;p&gt;评测用的项目不算大，但麻雀虽小五脏俱全：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;技术栈&lt;/strong&gt;：Python 3.11 + FastAPI + SQLAlchemy + Alembic + pytest&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能范围&lt;/strong&gt;：用户注册/登录（JWT）、多租户 API Key 管理、调用量统计、RESTful CRUD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量要求&lt;/strong&gt;：单元测试覆盖率 &amp;gt; 80%、有数据库迁移脚本、有 API 文档&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码规模&lt;/strong&gt;：最终约 2000 行 Python，30+ 个文件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我对每个工具使用相同的起点（一个空的 Git 仓库 + 一份需求文档），记录从零到&amp;quot;可运行且测试通过&amp;quot;的全过程。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;l1github-copilot打字速度的天花板&#34;&gt;&lt;a href=&#34;#l1github-copilot%e6%89%93%e5%ad%97%e9%80%9f%e5%ba%a6%e7%9a%84%e5%a4%a9%e8%8a%b1%e6%9d%bf&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;L1：GitHub Copilot——打字速度的天花板
&lt;/h2&gt;&lt;p&gt;Copilot 的体验已经非常成熟。在 VS Code 里写代码，它的 Tab 补全准确率大概在 60-70%，对于 CRUD 这类模式化代码甚至能到 80% 以上。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实际体感：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;写 FastAPI 的路由定义时，Copilot 几乎能预判你的下一步。你写了 &lt;code&gt;@app.get(&amp;quot;/users/{user_id}&amp;quot;)&lt;/code&gt;，它立刻给你补上函数签名、参数注入、数据库查询、异常处理。对于熟悉框架的开发者来说，这确实能把编码速度提升 2-3 倍。&lt;/p&gt;
&lt;p&gt;但它的问题也很明显：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;第一，它不理解全局。&lt;/strong&gt; Copilot 的上下文窗口有限（大约是当前文件 + 少量相邻文件），它不知道你的数据库模型在另一个文件里定义了什么字段，不知道你项目的认证中间件怎么写的。所以你经常需要手动 import、手动传参，然后 Copilot 才能继续补。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;第二，它不会主动思考架构。&lt;/strong&gt; 你让它写一个&amp;quot;用户服务&amp;quot;，它会给你一个函数接一个函数地写，但它不会先规划&amp;quot;这个模块需要哪几个文件、怎么分层、错误处理怎么做&amp;quot;。所有的架构决策还是得你来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;第三，Bug 发现靠人眼。&lt;/strong&gt; Copilot 生成的代码偶尔会有隐蔽的错误——用了不存在的 API、参数顺序搞反、异步函数忘了 await。这些问题编译器不一定能抓到（Python 尤其如此），全靠你自己 review。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用 Copilot 完成这个项目，大约花了 &lt;strong&gt;8 小时&lt;/strong&gt;。其中真正写代码的时间被压缩了，但思考架构、排查 Bug、跑测试的时间一分没少。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：你已经很清楚要写什么，只需要加速打字过程。修改已有代码、写样板代码、实现明确的算法。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;l2cursor-chat带项目上下文的对话伙伴&#34;&gt;&lt;a href=&#34;#l2cursor-chat%e5%b8%a6%e9%a1%b9%e7%9b%ae%e4%b8%8a%e4%b8%8b%e6%96%87%e7%9a%84%e5%af%b9%e8%af%9d%e4%bc%99%e4%bc%b4&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;L2：Cursor Chat——带项目上下文的对话伙伴
&lt;/h2&gt;&lt;p&gt;Cursor 在 Copilot 的基础上做了一件关键的事：&lt;strong&gt;把整个代码库变成了 AI 的上下文&lt;/strong&gt;。你在 Chat 面板里提问时，它可以索引你的项目文件，引用其他模块的代码来回答问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实际体感：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当我问&amp;quot;帮我写一个用户认证的中间件，要兼容项目里已有的 JWT 工具函数&amp;quot;，Cursor 会先去找到我项目里的 JWT 模块，理解它的签名方式，然后基于此生成中间件代码。这比 Copilot 的&amp;quot;瞎猜&amp;quot;强了太多。&lt;/p&gt;
&lt;p&gt;另外，Cursor 的 &lt;strong&gt;@引用&lt;/strong&gt; 功能非常实用。你可以在对话中 &lt;code&gt;@filename&lt;/code&gt; 指定上下文，比如 &lt;code&gt;@models.py 参考这个模型，帮我写 CRUD 接口&lt;/code&gt;，这让 AI 的输出精准度大幅提升。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;但它仍然有一个根本限制：Chat 模式生成的代码需要手动复制粘贴。&lt;/strong&gt; 你得到了一段代码，然后你得自己决定放在哪个文件、怎么跟现有代码集成、有没有命名冲突。这个&amp;quot;集成&amp;quot;的工作量，在中型项目中往往占了总开发时间的 30-40%。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用 Cursor Chat 完成这个项目，大约花了 &lt;strong&gt;6 小时&lt;/strong&gt;。生成代码的速度更快了，但人工集成的工作量依然不小。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：需要跨文件参考的局部开发任务。比如&amp;quot;这个函数的输入参数要跟另一个模块对齐&amp;quot;、&amp;ldquo;参考这个测试文件的模式帮我写新的测试&amp;rdquo;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;l3cursor-composer跨文件的自主编辑&#34;&gt;&lt;a href=&#34;#l3cursor-composer%e8%b7%a8%e6%96%87%e4%bb%b6%e7%9a%84%e8%87%aa%e4%b8%bb%e7%bc%96%e8%be%91&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;L3：Cursor Composer——跨文件的自主编辑
&lt;/h2&gt;&lt;p&gt;Cursor 的 Composer 模式（以及类似的 Windsurf Cascade）是真正开始&amp;quot;动手改代码&amp;quot;的 AI。你描述一个功能需求，它会：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自动分析需要修改哪些文件&lt;/li&gt;
&lt;li&gt;生成跨文件的代码变更&lt;/li&gt;
&lt;li&gt;在 Diff 视图中展示所有改动&lt;/li&gt;
&lt;li&gt;你逐个 Accept 或 Reject&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;实际体感：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我说&amp;quot;添加多租户支持：每个 API 请求需要带 X-Tenant-ID header，数据库查询自动过滤租户&amp;quot;。Composer 会自动找到中间件文件、数据库模型文件、路由文件，分别做出修改。这种跨文件的联动修改，是 L1/L2 完全做不到的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;但 Composer 有几个严重的坑：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑一：过度修改。&lt;/strong&gt; 你让它加一个功能，它可能顺手&amp;quot;优化&amp;quot;了你没让它碰的代码。比如重命名变量、重构函数结构、调整 import 顺序。这些改动单独看可能没错，但混在功能变更里就增加了 review 的难度和风险。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑二：上下文丢失。&lt;/strong&gt; 当项目文件超过 50 个时，Composer 的索引开始不够用了。它可能漏掉某个关键的配置文件，或者引用了一个已经被删除的函数。生成的代码在语法上正确，在逻辑上却有缺口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑三：Diff 审查疲劳。&lt;/strong&gt; Composer 一次生成 5-10 个文件的变更，每个文件可能改了 20-30 行。你必须逐行 review，因为任何一个没注意到的改动都可能引入 Bug。这个过程比写代码还累。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用 Cursor Composer 完成这个项目，大约花了 &lt;strong&gt;4 小时&lt;/strong&gt;。AI 承担了更多的集成工作，但 review 成本也相应增加了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：功能模块级别的开发。需求明确、边界清晰、改完就能验证的场景。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;l4claude-code--codex-cli终端里的自主程序员&#34;&gt;&lt;a href=&#34;#l4claude-code--codex-cli%e7%bb%88%e7%ab%af%e9%87%8c%e7%9a%84%e8%87%aa%e4%b8%bb%e7%a8%8b%e5%ba%8f%e5%91%98&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;L4：Claude Code / Codex CLI——终端里的自主程序员
&lt;/h2&gt;&lt;p&gt;这是当前 AI 编程的最高形态。你在终端里用自然语言描述需求，AI 自主完成全部编码工作——读文件、写文件、执行命令、跑测试、修 Bug，全程不需要你打开 IDE。&lt;/p&gt;
&lt;h3 id=&#34;claude-code&#34;&gt;&lt;a href=&#34;#claude-code&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Claude Code
&lt;/h3&gt;&lt;p&gt;Claude Code 基于 Anthropic 的 Claude 模型，通过终端 CLI 运行。它的核心优势是&lt;strong&gt;推理深度&lt;/strong&gt;——面对复杂任务时，它会先制定计划，再逐步执行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实际体感：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我给 Claude Code 的指令是：&lt;code&gt;&amp;quot;根据需求文档，搭建 FastAPI 项目骨架，实现用户认证和多租户 CRUD，包含完整的单元测试。&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;它的执行过程非常有条理：&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;li&gt;写完一个模块就跑一遍测试&lt;/li&gt;
&lt;li&gt;测试失败了，自己读报错信息、修代码、重跑&lt;/li&gt;
&lt;li&gt;全部通过后，给出完成报告&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这个过程几乎不需要我介入。唯一需要人工干预的场景是：当它遇到一个需要二选一的设计决策时（比如认证用 JWT 还是 Session），我会告诉它偏好。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Code 的短板：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;额度消耗大&lt;/strong&gt;。一个完整任务下来，token 消耗很可观，速率限制容易触发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;偶尔过度设计&lt;/strong&gt;。它可能给一个简单项目加太多抽象层——Repository Pattern、Factory Method、依赖注入框架——远超项目需要&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长时间任务不稳定&lt;/strong&gt;。超过 30 分钟的任务，中间可能因超时或 token 限制中断，恢复后上下文可能丢失&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;codex-cli&#34;&gt;&lt;a href=&#34;#codex-cli&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Codex CLI
&lt;/h3&gt;&lt;p&gt;OpenAI 的 Codex CLI 是 Claude Code 的直接竞品，基于 GPT-4o 和专门的 codex 模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实际体感：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Codex CLI 的操作流程和 Claude Code 类似，但有几个关键差异：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;Claude Code&lt;/th&gt;
					&lt;th&gt;Codex CLI&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;td&gt;稍弱，但够用&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;tr&gt;
					&lt;td&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;/td&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;Claude Pro/Max 订阅&lt;/td&gt;
					&lt;td&gt;ChatGPT Plus 订阅&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Codex CLI 的 &lt;code&gt;/init&lt;/code&gt; 命令会自动通读项目并生成 &lt;code&gt;context.md&lt;/code&gt;，让后续对话有全局上下文。这个功能很实用——相当于让 AI 先&amp;quot;预习&amp;quot;一遍你的代码库。&lt;/p&gt;
&lt;p&gt;它的 &lt;code&gt;/approvals&lt;/code&gt; 机制也做得比较好：可以设置权限级别，敏感操作（如删除文件、执行 shell 命令）需要你确认，常规操作自动执行。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用 Claude Code 完成项目：&lt;strong&gt;约 2 小时&lt;/strong&gt;（含等待和速率限制恢复时间）
用 Codex CLI 完成项目：&lt;strong&gt;约 2.5 小时&lt;/strong&gt;（推理深度稍弱，需要更多人工修正）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：从零搭建项目、完成边界明确的完整功能模块、自动化重构任务。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;工程化落地的关键不是选工具而是建流程&#34;&gt;&lt;a href=&#34;#%e5%b7%a5%e7%a8%8b%e5%8c%96%e8%90%bd%e5%9c%b0%e7%9a%84%e5%85%b3%e9%94%ae%e4%b8%8d%e6%98%af%e9%80%89%e5%b7%a5%e5%85%b7%e8%80%8c%e6%98%af%e5%bb%ba%e6%b5%81%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;工程化落地的关键：不是选工具，而是建流程
&lt;/h2&gt;&lt;p&gt;工具选对了只是第一步。真正的难点在于：&lt;strong&gt;怎么把 AI 编程嵌入到团队的开发流程中，让它稳定、可控、可审查。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;1-分层使用策略&#34;&gt;&lt;a href=&#34;#1-%e5%88%86%e5%b1%82%e4%bd%bf%e7%94%a8%e7%ad%96%e7%95%a5&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. 分层使用策略
&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;写新功能模块&lt;/td&gt;
					&lt;td&gt;L4 (Claude Code / Codex CLI)&lt;/td&gt;
					&lt;td&gt;让 AI 从零完成，效率最高&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;修改已有代码&lt;/td&gt;
					&lt;td&gt;L3 (Cursor Composer)&lt;/td&gt;
					&lt;td&gt;需要精确的 Diff 控制&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;局部调试 / 补测试&lt;/td&gt;
					&lt;td&gt;L2 (Cursor Chat)&lt;/td&gt;
					&lt;td&gt;快速问答，轻量介入&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;写样板代码 / 改格式&lt;/td&gt;
					&lt;td&gt;L1 (Copilot)&lt;/td&gt;
					&lt;td&gt;Tab 补全即可&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;2-上下文管理是第一生产力&#34;&gt;&lt;a href=&#34;#2-%e4%b8%8a%e4%b8%8b%e6%96%87%e7%ae%a1%e7%90%86%e6%98%af%e7%ac%ac%e4%b8%80%e7%94%9f%e4%ba%a7%e5%8a%9b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. 上下文管理是第一生产力
&lt;/h3&gt;&lt;p&gt;不管是哪个层级的工具，&lt;strong&gt;给 AI 的上下文质量直接决定了输出质量&lt;/strong&gt;。几个实战经验：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;项目根目录放 &lt;code&gt;CLAUDE.md&lt;/code&gt; 或 &lt;code&gt;context.md&lt;/code&gt;&lt;/strong&gt;：写清楚技术栈、代码规范、项目结构、已知的坑。这相当于给 AI 一份&amp;quot;入职手册&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用 &lt;code&gt;.cursorrules&lt;/code&gt; 或 prompt 模板&lt;/strong&gt;：把编码规范、命名约定、禁止使用的库等信息固化下来&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期清理对话历史&lt;/strong&gt;：对话越长，AI 的表现越差。完成一个子任务后开新对话，而不是在一个长对话里从头做到尾&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-验证闭环不能省&#34;&gt;&lt;a href=&#34;#3-%e9%aa%8c%e8%af%81%e9%97%ad%e7%8e%af%e4%b8%8d%e8%83%bd%e7%9c%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. 验证闭环不能省
&lt;/h3&gt;&lt;p&gt;AI 生成的代码&lt;strong&gt;必须&lt;/strong&gt;经过跟人类代码一样的审查流程：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;单元测试&lt;/strong&gt;是第一道防线。AI 写的测试覆盖率往往不够，你需要自己补充边界用例&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Review 不能跳过&lt;/strong&gt;。AI 生成的 Diff 看着都&amp;quot;挺对的&amp;quot;，但隐蔽的逻辑错误只有人类审查能发现&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;集成测试&lt;/strong&gt;尤其重要。AI 擅长写单个函数，但不擅长保证模块间的接口对齐&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-用-spec-驱动替代-prompt-驱动&#34;&gt;&lt;a href=&#34;#4-%e7%94%a8-spec-%e9%a9%b1%e5%8a%a8%e6%9b%bf%e4%bb%a3-prompt-%e9%a9%b1%e5%8a%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;4. 用 Spec 驱动替代 Prompt 驱动
&lt;/h3&gt;&lt;p&gt;前面提到过一个非常重要的方法论转变：从&amp;quot;给 AI 一段 Prompt 让它猜&amp;quot;变成&amp;quot;给 AI 一份规格让它执行&amp;quot;。&lt;/p&gt;
&lt;p&gt;在 L4 级别的工作中，这个转变尤其关键。你不能给 Claude Code 一句&amp;quot;帮我写个用户系统&amp;quot;就放手不管。正确的做法是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先写规格文档&lt;/strong&gt;：输入输出是什么、错误码定义、性能要求、安全约束&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;让 AI 按规格执行&lt;/strong&gt;：每个功能点都有明确的验收标准&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用测试验证规格&lt;/strong&gt;：TDD 流程，先写测试再让 AI 实现&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这套方法论有一个成熟的工具叫 &lt;strong&gt;Spec Kit&lt;/strong&gt;，它把上述流程工具化了。核心指令是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spec&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;constitution&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;定义项目铁律&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spec&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;specify&lt;/span&gt;       &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;描述做什么和为什么&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spec&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;blueprint&lt;/span&gt;     &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;确定架构和技术路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spec&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;task&lt;/span&gt;          &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;拆解成可测试的微小任务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spec&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;implement&lt;/span&gt;     &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AI&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;逐条执行，&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;TDD&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;驱动&lt;/span&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;blockquote&gt;
&lt;p&gt;规格驱动的核心价值不是让 AI 写得更快，而是让 AI 写得&lt;strong&gt;更确定&lt;/strong&gt;。Prompt 是模糊的，规格是精确的。你用精确的规格去约束 AI 的行为，比用模糊的 Prompt 去引导它，产出质量的差距是数量级的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;成本与效率的真实数据&#34;&gt;&lt;a href=&#34;#%e6%88%90%e6%9c%ac%e4%b8%8e%e6%95%88%e7%8e%87%e7%9a%84%e7%9c%9f%e5%ae%9e%e6%95%b0%e6%8d%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;成本与效率的真实数据
&lt;/h2&gt;&lt;p&gt;说了这么多，到底值不值？这是我最想分享的结论。&lt;/p&gt;
&lt;p&gt;以这个 FastAPI 项目为基准，四种方式的时间成本对比：&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;AI 贡献比例&lt;/th&gt;
					&lt;th&gt;人工主要工作&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;纯手写（无 AI）&lt;/td&gt;
					&lt;td&gt;~16h&lt;/td&gt;
					&lt;td&gt;0%&lt;/td&gt;
					&lt;td&gt;全部&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L1 Copilot&lt;/td&gt;
					&lt;td&gt;~8h&lt;/td&gt;
					&lt;td&gt;~40%&lt;/td&gt;
					&lt;td&gt;架构、调试、集成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L3 Cursor Composer&lt;/td&gt;
					&lt;td&gt;~4h&lt;/td&gt;
					&lt;td&gt;~65%&lt;/td&gt;
					&lt;td&gt;Review、修正、测试补充&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L4 Claude Code&lt;/td&gt;
					&lt;td&gt;~2h&lt;/td&gt;
					&lt;td&gt;~85%&lt;/td&gt;
					&lt;td&gt;审查、补充边界测试&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;从时间上看，L4 是纯手写的 8 倍效率。但这里有一个被严重低估的成本：&lt;strong&gt;审查 AI 代码的心智负担&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;AI 生成的代码量大、风格一致、&amp;ldquo;看着都对&amp;rdquo;，这反而让 review 变得更难——你的大脑会不自觉地放松警惕。我的经验是，&lt;strong&gt;review AI 代码的时间和 review 人类代码差不多，但发现的 Bug 密度更高&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;所以真实的效率公式应该是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;净效率提升 = AI 节省的编码时间 - 额外的 review 时间 - 修 AI 引入的 Bug 的时间
&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;对于简单、模式化的任务，净效率提升可以达到 5-8 倍。对于复杂、需要深度理解业务逻辑的任务，可能只有 2-3 倍。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;几个容易被忽略的实战细节&#34;&gt;&lt;a href=&#34;#%e5%87%a0%e4%b8%aa%e5%ae%b9%e6%98%93%e8%a2%ab%e5%bf%bd%e7%95%a5%e7%9a%84%e5%ae%9e%e6%88%98%e7%bb%86%e8%8a%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;几个容易被忽略的实战细节
&lt;/h2&gt;&lt;h3 id=&#34;环境隔离&#34;&gt;&lt;a href=&#34;#%e7%8e%af%e5%a2%83%e9%9a%94%e7%a6%bb&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;环境隔离
&lt;/h3&gt;&lt;p&gt;L4 工具（Claude Code、Codex CLI）会直接在你的文件系统上操作。&lt;strong&gt;强烈建议在独立目录或容器里运行&lt;/strong&gt;。Claude Code 可以直接修改 &lt;code&gt;~/.bashrc&lt;/code&gt;，Codex CLI 虽然有沙箱但也不能完全放心。&lt;/p&gt;
&lt;h3 id=&#34;mcp-工具的杠杆效应&#34;&gt;&lt;a href=&#34;#mcp-%e5%b7%a5%e5%85%b7%e7%9a%84%e6%9d%a0%e6%9d%86%e6%95%88%e5%ba%94&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;MCP 工具的杠杆效应
&lt;/h3&gt;&lt;p&gt;不管是 Claude Code 还是 Codex CLI，都支持通过 MCP（Model Context Protocol）接入外部工具。比如接入数据库文档的 MCP，AI 就能直接查表结构，生成的 SQL 准确率会大幅提升。这个能力目前被大多数人忽略了，但它的杠杆效应非常大。&lt;/p&gt;
&lt;h3 id=&#34;中国用户的特殊考量&#34;&gt;&lt;a href=&#34;#%e4%b8%ad%e5%9b%bd%e7%94%a8%e6%88%b7%e7%9a%84%e7%89%b9%e6%ae%8a%e8%80%83%e9%87%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;中国用户的特殊考量
&lt;/h3&gt;&lt;p&gt;由于网络环境的限制，实际可用的方案需要做一些调整：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codex CLI 可以通过魔搭社区（ModelScope）接入国产模型作为替代方案&lt;/li&gt;
&lt;li&gt;Claude Code 需要稳定的海外网络访问&lt;/li&gt;
&lt;li&gt;Cursor 和 Copilot 的网络依赖相对较轻，但偶尔也会遇到连接问题&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;模型选择的务实建议&#34;&gt;&lt;a href=&#34;#%e6%a8%a1%e5%9e%8b%e9%80%89%e6%8b%a9%e7%9a%84%e5%8a%a1%e5%ae%9e%e5%bb%ba%e8%ae%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;模型选择的务实建议
&lt;/h3&gt;&lt;p&gt;不要被模型排行榜带偏。在编程场景下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;推理深度优先&lt;/strong&gt;：选 Claude 系列，复杂架构任务表现最好&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;速度优先&lt;/strong&gt;：选 GPT-4o 系列，简单任务够用且快&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成本优先&lt;/strong&gt;：可以用国产模型（通义千问、DeepSeek 等）通过兼容协议接入，成本大幅降低&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;从用-ai-写代码到跟-ai-协作写代码&#34;&gt;&lt;a href=&#34;#%e4%bb%8e%e7%94%a8-ai-%e5%86%99%e4%bb%a3%e7%a0%81%e5%88%b0%e8%b7%9f-ai-%e5%8d%8f%e4%bd%9c%e5%86%99%e4%bb%a3%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;从&amp;quot;用 AI 写代码&amp;quot;到&amp;quot;跟 AI 协作写代码&amp;quot;
&lt;/h2&gt;&lt;p&gt;回到最开始的问题：AI Coding Agent 到底改变了什么？&lt;/p&gt;
&lt;p&gt;它改变的不是&amp;quot;写代码&amp;quot;这个动作本身，而是&lt;strong&gt;程序员在项目中的角色&lt;/strong&gt;。在 L1 时代，你是代码的编写者，AI 是你的打字助手。在 L4 时代，你变成了&lt;strong&gt;需求的定义者和产出的审查者&lt;/strong&gt;，AI 变成了执行者。&lt;/p&gt;
&lt;p&gt;这个转变对能力的要求其实更高了，而不是更低了。你需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;更强的需求拆解能力&lt;/strong&gt;：你能把模糊的业务需求转化为精确的技术规格&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更强的架构判断力&lt;/strong&gt;：你能在 AI 给出的多个方案中选出最合适的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更强的代码审查能力&lt;/strong&gt;：你能发现 AI 代码中那些&amp;quot;看着对但实际有坑&amp;quot;的问题&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有句话说，工具的上限取决于使用它的人。在 AI Coding Agent 的时代，这句话比任何时候都准确。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;最后的选型建议&#34;&gt;&lt;a href=&#34;#%e6%9c%80%e5%90%8e%e7%9a%84%e9%80%89%e5%9e%8b%e5%bb%ba%e8%ae%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;最后的选型建议
&lt;/h2&gt;&lt;p&gt;如果你正在考虑引入 AI 编程工具，这是我的务实建议：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;个人开发者&lt;/strong&gt;：Cursor（L2+L3）+ Claude Code（L4）的组合覆盖面最广。日常用 Cursor，大任务切 Claude Code。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;小团队（3-10 人）&lt;/strong&gt;：先用 Copilot 或 Cursor 做全员覆盖，成本低、学习曲线平缓。等团队适应了 AI 辅助编程后，再引入 L4 工具给高级开发者使用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;企业团队&lt;/strong&gt;：不建议一步到位上 L4。AI 编程的引入需要配套的 Code Review 流程调整、安全审计策略、以及代码质量标准的重新定义。从 L1 开始，逐步推进，每一步都确保流程跟上了工具的能力。&lt;/p&gt;
&lt;p&gt;AI 编程不是银弹。但如果你用对了方式，它确实是目前能找到的、最大的单点效率杠杆。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
