课题十九:Agent 开发工作流

优先级: 观察中 来源: 个人实践,目前基于 Claude Code + Hermes Agent 的真实协作经验

核心问题

  • 怎么高效地开发、测试、部署、迭代一个 agent?
  • 个人开发者和团队开发者的工作流差异在哪?
  • agent 开发本身能不能被 agent 辅助?

当前实践(2026-05-30 记录)

统一研发生命周期(DSR + Double Diamond)

基于 Design Science Research(构建 artifact 即研究)+ Double Diamond(发散/收敛交替)的五阶段流程:

探索(发散)→ 设计(收敛)→ 验证(实验)→ 构建(交付)→ 反思(归档)

各阶段产出和角色:

阶段你做什么我做什么产出
① 探索说”调研X”→判断值不值得做搜方案、出对比表调研报告
② 设计拍板架构→定原型范围出方案、做最小原型设计文档+原型
③ 验证看结果→判断是否可行快速实现、验证假设可运行原型
④ 构建排优先级→验收→试用按 WBS 执行生产级系统
⑤ 反思沉淀知识→定下一步汇总决策+经验ADR 归档

质量门禁

  • 产出 → 大锤审阅 → 修改 → 大锤再审 → 用户确认 → 完成
  • 修改后必须再审,不能跳过
  • 用户拥有最终确认权,除非明确授权他人

角色分工

角色职责约束
用户(决策层)方向、选型、验收最终确认人
克劳德(执行层)调研、设计、编码、测试不决策,产出需过审
大锤(把关层)审阅、归档、运维把关不写代码

工具链

  • 代码:Claude Code + Git
  • 协作:Hermes Agent(kanban、outbox/inbox、Telegram 通知)
  • 文档:纯 markdown + Obsidian 管理
  • 配置:kebab-case 目录命名,按来源分类

扩展方向

工程化挑战

实践中暴露的四个核心工程难题:

1. 原型到生产的差距

  • 原型验证通过的思路,在 active/ 实现时往往发现更多边界条件
  • 原因:原型只验证了”可行”,没验证”可靠”——异常路径、并发、状态恢复在原型中常被忽略
  • 应对策略:原型阶段除了验证”能不能做”,还应明确标注”哪些没验证”
  • 关联:课题二十二(自我验证)的验证方法与此交叉

2. 上下文窗口耗尽

  • 长 session 中上下文增长导致三方面恶化:回答质量下降、token 成本上升、响应变慢
  • 不可逆:LLM 本身的上下文窗口是硬限制,压缩/总结只能缓解
  • 应对:上下文换页策略(课题二已探索)、分层记忆(课题三)、工具调用压缩
  • 观察:Claude Code 自身在 50+ 轮对话后质量明显下降,需开新 session

3. 不可重现的间歇性故障

  • Agent 的输出有随机性,“之前能跑通,现在不行”且无明显原因
  • 最小复现困难:同一个 prompt、同一个上下文,两次结果可能不同
  • 应对:重试机制+关键路径加验证检查点+关键操作记日志可供回溯
  • 无法完全消除,只能通过工程手段降低影响

4. 隐性成本累积

  • Agent 开发的 token 成本不线性——调试/试错阶段的消耗远高于实现阶段
  • 每次”改一行 prompt”需要完整 rerun 才能验证效果,成本与首次实现相当
  • 应对:设计时就规划好验证策略(减少无效 rerun)、关键测试用低成本模型先行验证

经典理论映射

Lean Software(Poppendieck, 2003)的七项原则——消除浪费、内建质量、延迟决策、快速交付——直接适用于 Agent 开发工作流的设计。当前实践中的”产出→大锤审阅→修改→再审→用户确认”门禁流程,本质上是 Lean 的”内建质量”和”延迟决策”原则的体现:在离问题最近的地方做决策,不提前做不必要的假设。

Agile Manifesto(2001)在 Agent 开发语境下需要重新诠释:Agent 迭代的”可工作软件”不是代码是否编译通过,而是 Agent 是否能在目标场景下正确执行。这意味着传统软件工程的 CI/CD 中 90% 的自动化检查(编译、lint、单元测试)只覆盖了项目代码健康度,Agent 的行为质量检查需要全新的工具链(课题十)。

待探索问题

  • 这种五阶段流程对哪些类型项目最有效?哪些情况下太重?
  • agent 辅助开发的比例能到什么程度?代码 100% 由 agent 写合理吗?
  • 当前角色分工(决策/执行/把关三层)能支撑多大的项目复杂度?
  • 审阅环节是否应该引入更自动化的工具(不仅仅是 agent 人工审)?
  • agent 开发 agent 的自举(bootstrapping)边界在哪?
  • 跨 session 的上下文丢失如何弥补?

关联课题

实践日志

关键事件和决策记录在 notes/ 子目录。