7.5 自主编码实践与案例

Agentic Coding (代理式编程) 与传统的 Code Completion (代码补全) 最大的区别在于:Agent 拥有目标感和行动力。它不是在等你敲下一个字符,而是主动去解决一个问题。

本节将展示三个不同复杂度的实战案例,带领体验 Agentic Coding 的强大。

7.5.1 案例一:全栈功能即刻实现

任务:在一个现有的 Todo List 应用(React + Node.js)中,新增一个“任务优先级”功能。

Prompt:

"请为当前应用添加任务优先级功能。需要前端支持选择高/中/低优先级(用颜色区分),后端数据库添加字段,API 支持读写该字段。"

Claude Agent 执行流:

  1. Reconnaissance (侦察):

    • 读取 package.json 确认技术栈。

    • 读取 schema.prisma (假设用 Prisma) 了解数据库结构。

    • 读取 App.tsx 了解前端组件结构。

  2. Backend Changes:

    • 修改 schema.prisma,添加 priority Enum.

    • 运行数据库迁移命令 npx prisma migrate dev.

    • 更新后端 Controller 处理新字段。

  3. Frontend Changes:

    • 修改 TodoItem 组件,根据优先级渲染不同的 Badge 颜色 (Red/Yellow/Green)。

    • 修改 TodoForm 组件,添加下拉选择框。

  4. Verification:

    • 运行 npm test,发现旧测试报错(因为缺少 priority 字段)。

    • 自动修复测试数据。

    • 再次运行测试,通过。

开发者工作: 审查 Diff,点击 Merge。耗时从 2 小时缩短到 10 分钟。

7.5.2 案例二:遗留代码的大规模重构

任务:将一个基于 Python 2.7 的老旧脚本库迁移到 Python 3.10,并添加类型注解。

Prompt:

"将 scripts/ 目录下的所有 Python 文件迁移到 Python 3。使用 typing 模块添加类型注解。确保所有 print 语句都改为使用 logger。"

Claude Agent 执行流:

  1. Analysis: 扫描目录,发现 50 个 .py 文件。

  2. Planning: 决定按依赖顺序处理,先处理底层的 utils.py

  3. Iterative Refactoring:

    • File 1: print "hello" -> logger.info("hello").

    • File 1: def add(a, b): -> def add(a: int, b: int) -> int:.

    • File 1: 修复 urlliburllib.request 的导入变化。

  4. Validation:

    • 尝试运行脚本。发现 strbytes 编码错误。

    • 自我修正:添加 .decode('utf-8')

  5. Batch Processing: 对剩余 49 个文件重复此过程。

重点: 对于这种机械性强但极易出错的体力活,Agent 是完美的人选。

7.5.3 案例三:从零构建测试套件

任务:为一个“裸奔”的电商后端 API 项目补充集成测试。

Prompt:

"分析 src/routes 下的所有 API 路由,并在 tests/ 目录下编写对应的集成测试。使用 pytesthttpx。覆盖正常路径和常见的 400/404 错误路径。"

Claude Agent 执行流:

  1. Understanding: 遍历路由文件,解析出 GET/POST 请求的参数校验逻辑 (Pydantic models)。

  2. Scaffolding: 创建 conftest.py,配置测试数据库 fixture。

  3. Writing Tests:

    • 生成 test_products.py: 测试商品列表、商品详情。

    • 生成 test_orders.py: 测试创建订单、库存扣减。

    • 亮点: 自动生成了 mock 数据(模拟的商品名、价格)。

  4. Running & Fixing:

    • 初次运行报错 401 Unauthorized。

    • Claude 意识到需要先调用 /login 获取 Token。

    • 自动在 conftest.py 中添加了一个获取 Token 的 fixture,并注入到所有测试用例中。

7.5.4 案例四:Cowork 模式——非开发者的代理编程

2026 年 1 月,Anthropic 发布了 Cowork 模式,将 Claude Code 的能力扩展到非程序员用户。

什么是 Cowork?

Cowork 是 Claude Code 的"轻量版",专为非技术用户设计:

  • 在 Claude 桌面应用中直接访问

  • 授权 Claude 访问指定文件夹

  • Claude 可以读取、编辑、创建文件

  • 支持与 Connectors (MCP) 和 Skills 配合使用

典型用例

场景
操作

整理下载文件夹

Claude 自动分类、重命名文件

从截图生成报表

识别多张收据截图,生成 Excel 汇总

笔记整理成报告

读取散乱的笔记文件,输出格式化文档

使用方式

  1. 订阅 Claude Max 计划

  2. 点击侧边栏中的 "Cowork"

  3. 选择要授权的文件夹

  4. 描述任务,让 Claude 执行

安全注意事项

Cowork 虽然强大,但需要注意以下风险:

风险
说明
缓解措施

文件误操作

Claude 可能误解指令删除文件

重要操作前 Claude 会请求确认

Prompt Injection

恶意内容可能干扰 Claude 行为

Anthropic 内置了防护,但仍需谨慎处理不可信文件

权限范围

只有授权的文件夹可被访问

最小权限原则:只授权必要的文件夹

7.5.5 成功要素总结

为什么有些人的 Agent 总是写出 Bug,而有些人的 Agent 却能通过图灵测试?

显性上下文

不要让 Agent 猜。如果有数据库 Schema,直接喂给它。如果有 UI 设计图,截图喂给它。

  • Tip: 维护一个 CLAUDE.md 文件在项目根目录(参见 7.2 节),专门写给 AI 看。

增量反馈

不要试图一次性生成整个操作系统。

  • Bad: "做一个类似 Windows 的 OS。"

  • Good: "先实现一个简单的文件系统抽象,支持 read/write。" -> "好,现在基于这个 FS 实现一个 shell。"

即时审查

Agent 就像一个手速极快但偶尔粗心的初级程序员。 Trust, but Verify (信任,但要验证)。 永远不要在不看 Diff 的情况下直接 git commit。务必运行测试。


Agentic Coding 正在重塑软件工程的每一环。它不是要取代程序员,而是要消灭重复劳动,让开发者专注于架构设计和业务价值。

到目前为止,讨论的 Agent 主要是单兵作战。但在更复杂的场景下,需要多个 Agent 协作,这就涉及到 Agent 架构设计

➡️ 第八章:Agent 架构设计

最后更新于