For the complete documentation index, see llms.txt. This page is also available as Markdown.

9.8 从实验到生产:决策路线图与检查清单

在 AI 开发中,最常见的陷阱不是技术本身,而是在错误的时机做出错误的决策。一个在实验室中表现完美的智能体可能在生产环境中崩溃,而一个“看起来简单”的规则引擎反而能稳定运行三年。

本节提供一份清晰的决策路线图,帮助团队在实验、原型和生产三个阶段之间做出正确的抽象和工程决策。

图 9-20:实验-原型-生产三阶段流程

9.8.1 实验阶段:快速验证想法的可行性

定义:

  • 目标:快速迭代,验证“这个想法是否可行”

  • 用户:内部团队

  • 规模:<=100 个测试用例

  • 质量标准:概念证明,70% 的成功率可以接受

  • 时间框架:1-2 周

特点:

  • 代码不需要整洁(只要能运行)

  • 可以硬编码参数和阈值

  • 错误日志与可观测性不是优先级

  • 可以使用任意技术栈

  • 目标是快速反馈

典型问题与答案:

实验阶段的脚本示例:

9.8.2 原型阶段:验证架构的有效性

定义:

  • 目标:验证“我们选择的架构能否扩展到生产”

  • 用户:内部团队 + 早期用户/测试用户

  • 规模:100-10,000 个测试用例

  • 质量标准:85% 的成功率

  • 时间框架:2-4 周

特点:

  • 代码结构开始重要(便于后续扩展)

  • 开始考虑错误处理和日志

  • 建立评估框架

  • 开始区分 Outcome Eval(结果是否完成任务)与 Trajectory Eval(过程是否合理)

  • 建立首版 Golden Dataset,把主路径、长尾样本和已知坏例子沉淀下来

  • 准备把评估接入 CI/CD,而不是只靠人工体验

  • 不同模块可以被替换

  • 准备做 A/B 测试

原型阶段的决策清单:

原型阶段的代码示例:

9.8.3 生产阶段:保证稳定性与可维护性

定义:

  • 目标:稳定运行,满足 SLA,可维护性高

  • 用户:真实用户(数万到数百万)

  • 规模:任意规模

  • 质量标准:99.5% 可用性,<2% 错误率

  • 时间框架:持续运营

特点:

  • 完整的错误处理与降级策略

  • 详细的可观测性(日志、指标、追踪)

  • 自动化评估门禁(上线前必须通过 Golden Dataset 回归)

  • 同时监控结果质量与轨迹质量,而不是只看用户点赞

  • 自动化测试覆盖率 >80%

  • 明确的运维手册和应急预案

  • 成本预算与监控

  • 安全与权限管理

  • 多层安全护栏:输入检测、PII 处理、越狱/注入防护、执行网关、审计日志

  • 明确的合规控制:数据保留、用户删除、审计可追溯、区域与供应商约束

  • 版本管理与灰度部署

详细的生产部署检查清单见 9.8.7 节。

9.8.4 阶段转移的触发条件

从实验到原型:何时进行

绿灯信号(应该进入原型):

  • 在 20 个不同的测试用例上,成功率稳定 >70%

  • 团队对解决方案的架构有共识

  • 成本在预期范围内

  • 有明确的“为什么这个方法可行”的理由

红灯信号(继续实验):

  • 成功率波动剧烈(差异 >30%)

  • 团队对架构有分歧

  • 已尝试多个方向但都效果不佳

  • 成本远超预期

从原型到生产:何时进行

绿灯信号(可以上生产):

黄灯信号(有条件地上生产):

红灯信号(不应该上生产):

  • 成功率 < 80%

  • 错误类型复杂且难以诊断

  • 没有有效的降级方案

  • 团队对运维没有把握

  • 没有明确的 SLA 承诺

9.8.5 成本-延迟-可靠性三角权衡

在不同阶段,这三个指标的优先级不同:

图 9-21:成本-延迟-可靠性三阶段权衡

维度
实验阶段
原型阶段
生产阶段

模型

最强模型(不计成本)

主模型 + 降级备选

主模型 + 降级 + 规则兜底

重试

100 次(尽情试)

5 次

受 SLA 约束

超时

60s

10s

P99 < 2s

错误处理

最小化

全面

全面 + 熔断 + 自动回滚

成本预期

$10-100/天(不在乎)

$100-1000/天(监控)

严格预算,80% 告警

可靠性

70%

85%

99.5% SLA

9.8.6 何时选择简单规则 vs 智能体

这是最常被忽视的决策,但也是最重要的。

图 9-22:规则系统与智能体决策树

案例一:订单分类

案例二:复杂查询应答

9.8.7 生产部署检查清单

在部署到生产前,确保以下清单全部完成:

9.8.8 关键决策点的重新审视机制

部署到生产后,需要定期重新审视关键决策。

时间节点
关注重点
关键动作

第 1 周

应急观察

成功率 <85% 立即回滚;用户投诉 >10 立即排查

第 1 月

优化调整

评估是否降级为混合方案;错误率 >5% 考虑更强模型

每季度

战略审视

对标行业最佳实践;决定是否继续维护

9.8.9 小结:路线图速查表

阶段
主要目标
成功标准
典型时间
关键决策

实验

验证想法

>70% 成功率

1-2 周

该想法值得继续吗?

原型

验证架构

>85% 成功率

2-4 周

架构能扩展到生产吗?

生产

稳定运营

>99% 可用性

持续

是否需要优化?

永远记得:

  • 🔴 不要跳过原型阶段直接上生产

  • 🟡 不要因为“技术上可行”就做不必要的复杂化

  • 🟢 最简单的解决方案往往是最好的

9.8.10 框架选型与互操作检查清单

框架选型的详细指南见第 8 章。在此仅强调互操作性要点:工具定义统一为 MCP 格式、Agent 间通信标准化、日志格式统一、全链路追踪覆盖。确保每个框架选型都经过第 8 章的完整评估后再做决策。

9.8.11 长期运行智能体的有效设计模式

在跨越多个 context window 的复杂、长时间运行任务中,Agent 需要克服一个关键挑战:如何在持续的多轮迭代中保持生产力、防止过早宣布完成,并确保增量工作具有可合并性。本节基于 Anthropic 工程博客的研究总结了这一关键模式。

9.8.11.1 双层智能体架构

对于需要跨越多个 session 和 context window 完成的复杂任务(如大规模代码重构、知识系统构建等),推荐采用 双层 Agent 架构:

第一层:Initializer Agent

  • 在项目首次运行时负责环境搭建和初始化

  • 职责:

    • 创建标准的 init.sh 启动脚本,用于后续 session 快速恢复环境

    • 初始化 claude-progress.txt 进度文件,记录已完成的里程碑

    • 执行首个 git commit,确保版本控制从一个清晰的基线开始

    • 建立项目的目录结构和配置文件

    • 编写或收集初始文档

第二层:Coding Agent

  • 在每个后续 session 中负责增量工作和迭代开发

  • 职责:

    • 通过执行 init.sh 快速恢复上个 session 的环境

    • 读取 claude-progress.txt 了解历史进度和已知的设计决策

    • 在前人工作的基础上做增量改进

    • 确保每一段代码都是可以正确合并的(mergeable)

    • 主动运行测试验证,保持向前的动力

这种设计的核心优势是:打破了单个 session 的限制,让多轮 Agent 工作可以有机地累积而不是相互覆盖。Initializer Agent 需要编写 init.sh 启动脚本(用于后续恢复环境)、初始化 claude-progress.txt 进度文件、执行首个 git commit,从而为后续 Coding Agent 奠定基础。

9.8.11.2 结构化功能清单:防止过早宣布完成

长期运行的 Agent 最常见的问题是 对“完成”的定义过于乐观。一个 Agent 在改进了几个功能后就宣布项目完毕,但实际上有数十个边界情况和细节需要处理。

解决方案:使用 JSON 格式的结构化功能清单

与其依赖 Markdown 来追踪功能状态(容易被 Agent 随意修改),不如使用 JSON 格式的功能清单。模型对 JSON 结构有更强的“敬畏感”,不容易随意删除或编辑测试条目。

为什么用 JSON?

  1. 结构强制:JSON 的格式严格,Agent 不能随意添加/删除字段

  2. 可编程验证:可以写脚本检查是否有新增功能未标记为 "passes": false

  3. 防止幻觉:Markdown 清单很容易让 Agent 编造已完成的功能;JSON 的严格性能降低这种风险

  4. 易于统计:自动计算完成率、按分类统计、识别高风险的未完成功能

功能清单的使用规则:

  • Agent 只能修改 "passes" 字段(从 false 改为 true)

  • Agent 不能删除 或 编辑 任何测试条目

  • 每次提交前,验证通过的功能数 ≤ 前一个 session 的数 + 新增合理数量

  • 定期审视高优先级但未通过的功能,评估是否需要调整实现策略

9.8.11.3 强制单功能增量开发

在每个 session 中,Agent 应该遵循严格的优先级并 每次只处理一个功能:

这种方法的好处:

  • 可追踪性强:每个 commit 对应一个已验证的功能

  • 容易回滚:如果发现某个功能有问题,可以轻松找到相关 commit 并回滚

  • 防止功能蔓延:限制每个 session 的范围,防止 Agent“跑题”

  • 透明的进度:通过 git 历史和功能清单,实时知道完成百分比

9.8.11.4 Git Commit 状态追踪

每一步增量进展都应该用描述性的 commit message 记录在 git 中:

通过 git 历史,下一个 session 的 Agent 可以:

  1. 查看 git log 了解项目演进

  2. 用 git diff 对比版本,检查哪些功能可能引入了新问题

  3. 用 git blame 追踪特定功能的实现细节

  4. 快速 rollback 到稳定版本

9.8.11.5 浏览器自动化端到端测试

为了验证功能的真实可用性(不仅仅是单元测试通过),应该集成浏览器自动化框架进行 E2E 测试:使用 Playwright 或 Selenium 等浏览器自动化框架进行 E2E 测试,验证功能的真实可用性。

9.8.11.6 Session 开头的恢复与基线测试

每个新 session 开始时,Agent 应该遵循标准的恢复流程:

  1. 环境恢复:执行 init.sh 脚本,安装依赖,验证环境就绪

  2. 上下文读取:读取 claude-progress.txt 理解历史决策,读取 feature-list.json 查看当前进度百分比

  3. 基线测试:运行关键单元测试确保前一个 session 的工作未被破坏

9.8.11.7 实践检查清单

在采用长期 Agent 模式时,确保以下要点得到满足:

9.8.11.8 小结

长期运行 Agent 的成功取决于 结构化设计与强制纪律:

组件
目的
关键实施点

Initializer Agent

一次性环境搭建

init.sh、初始 git commit

Coding Agent

增量迭代开发

单功能 per session,E2E 验证

功能清单

防止过早完成宣言

JSON 格式,200+ 条详细描述

Git 历史

状态追踪与审计

每功能一个 commit,clear message

E2E 测试

真实可用性验证

Playwright/浏览器自动化

Session 流程

恢复与持续性

固定的启动序列和基线测试

这种模式已被证明能够有效支持跨越数十个 context window 的复杂工程任务,显著提高了多轮 AI 协作的生产力和可维护性。

参考:Anthropic 工程博客 Effective Harnesses for Long-Running Agents(2025)


下一节: 9.9 智能体自主度实证分析与监控

最后更新于