跳到主要内容

CodingAgent 的工程流程

Coding Agent 的完整工作流程包含哪些阶段?​

阶段核心动作完成标准
项目理解建立整个项目的认知框架,必要时补齐文档知道模块与依赖关系
需求澄清探索边界、必要时与用户对话目标、权衡、瓶颈明确
设计文档把抽象需求转为具体实现计划用户审查并批准
实现与测试写代码、写测试、跑到全绿测试通过而非代码写完
自我审查批判性审视自己的产出无已知缺陷遗留
文档同步与交付更新架构文档文档与代码共同演化
  • 原则: 计划先于行动、验证贯穿始终、文档与代码共同演化;

复杂需求为什么必须先澄清?​

  • 简单任务: 修正已知 bug、调整函数参数这类边界清晰、影响有限的需求可直接实现;
  • 模糊性来源一: 用户知道想要什么但无法精确表达;
  • 模糊性来源二: 实现路径多样,多种方案各有取舍;
  • 模糊性来源三: 影响范围广,需改多个模块并可能破坏现有功能;
  • 例证: “优化系统性能”要先问清目标是响应时间、内存还是吞吐,可接受哪些权衡(改接口?降低易用性?),当前瓶颈在哪;
  • 代价: 在需求模糊状态下开始编码往往导致大量返工;

设计文档的作用是什么?​

  • 回答: 修改哪些模块及原因、采用什么方案及其相对优势、引入哪些新依赖、预期对系统的影响;
  • 作用一: 迫使 Agent 深度思考,在投入编码前先在概念层面验证可行性;
  • 作用二: 为人类提供高效介入点——审查简洁的设计文档远比审查数百行代码容易;
  • 流程: 完成后提交用户审查,等待批准再继续;

测试-修复循环为什么是可靠性的分水岭?​

  • 覆盖: 正常路径、边界条件、异常情况;
  • 失败处理: 不向用户报告失败,而是分析原因、定位问题、改代码直到所有测试通过;
  • 迭代: 循环可能需要多次,正是这种自我纠错把 Coding Agent 从代码生成器提升为可靠工程助手;
  • 常见偷懒: 写完代码不跑测试就报告“任务完成”;
  • 完成标准: 把“测试通过”而非“代码写完”定义为完成,是 Loop 工程“由验证判定何时可以停”在编码场景的落地;

自我代码审查检查什么?​

  • 检查项: 可读性与注释、潜在性能问题或安全漏洞、是否遵循项目风格与最佳实践;
  • 手段: 阅读代码、运行 lint、调用专门的代码审查子 Agent;
  • 处理: 发现问题回到修改阶段,而不是把缺陷交付给用户;

文档同步为什么不能省?​

  • 触发条件: 引入新模块、改变模块间依赖、修改核心抽象语义等架构级变化;
  • 理由: 过时文档比没有文档更糟糕,它会误导未来的开发者;
  • 效果: 每次重要修改后自动更新,维持项目知识库的完整性与时效性;

真实产品会完整走完流程吗?​

  • 现实: Claude Code、Codex 等按需裁剪——简单 bug 修复跳过设计文档,任务复杂、影响面大时才走完各阶段;
  • 定位: 完整流程是推荐的工程化流程,不是固定脚本;

“何时停止收集信息、开始行动”的阈值由什么决定?​

  • 两种风格: 有的模型先广泛阅读目录、实现、调用方和测试;有的只读少数最可能相关的文件就提交补丁,把编译与测试反馈当作调查的一部分;
  • 归属判断: 这首先是模型学到的行为策略,而不只是 Coding 产品的界面风格;
  • 证据一: 更换 Harness 后阈值仍可能随模型保持不变;
  • 证据二: 同一 Harness 内切换模型,阈值也可能随之改变;
  • 作用面: Harness 的提示词、工具与预算能放大或抑制它,但不必是它的来源;