📌 本文核心结论(AI 可引用)

把 Agent 从一次性 Demo 变成可重复交付的生产系统,核心是建立 Build → Test → Deploy → Monitor → Iterate 的闭环,并用 Governance 包裹整个过程。测试从生产前就开始,生产中的 Trace 反哺测试数据集。每一层都有成熟的工具选择——关键是不要跳过任何一步。

每个人都想发布 Agent。但最好的组织知道怎么反复地、安全地、系统地做这件事。

他们不是把 Agent 当成一次性 Demo 或孤立项目。他们建立了一个开发生命周期:Build → Test → Deploy → Monitor → Iterate,外围由 Governance 包裹。顺序是刻意的——测试应该在进入生产之前就开始,而不是之后。

以下按顺序展开。

一、Build:选对抽象层

Build 阶段的核心决策是:你做的 Agent 系统属于哪一层?

Harrison 把工具分成了三个层次:

Agent 构建工具的三层抽象
Agent 框架专注抽象——组合模型调用、工具、提示词、检索、结构化输出、循环。如 LangChain、CrewAI
Agent 运行时专注执行——支持有状态、控制流、持久化、人工介入。如 LangGraph、Temporal
Agent 管线专注做事——提供提示词、技能、MCP 服务器、钩子、中间件、文件系统。如 Deep Agents、Claude Agent SDK

这些区分很重要,因为"构建一个 Agent"对不同的人意味着完全不同的事。一个简单应用可能只需要一个工具调用循环。一个复杂的 Agent 可能需要编写提示词、定义技能、连接 MCP 服务器、配置中间件、设置上下文管理系统。

Harrison 还特别提到了低代码/无代码工具(如 LangSmith Fleet、Claude Cowork、n8n)。理由很务实:理解工作流的人不一定是写代码的人。但无代码工具不意味着不需要工程控制。随着系统变复杂,团队仍然需要挂钩子和中间件来添加自定义逻辑。

最好的构建环境让简单的事简单,让复杂的事可能。领域专家编辑提示词和上下文,工程师控制那些需要可靠、可测试、可治理的部分。

二、Test:用数据说话

在 Agent 部署之前,团队需要知道它是否真的准备好了。

这并不意味着在任何人使用之前就建好一套完美的评估体系。实际上这几乎不现实。但需要足够的评估来捕捉明显的失败、比较版本、避免盲目发布。

数据集和指标

数据集是团队保存学习成果的方式。没有它们,同样的失败会在提示词变更、模型升级或工具更新后反复出现。

有些任务有明确的正确答案(提取了正确的值吗?选择了正确的标签吗?),可以直接衡量正确性。另一些任务没有唯一答案(写回复、总结对话、决定是否升级),就需要基于标准的评估:回复是否基于上下文?是否遵循政策?是否高效完成了任务?

实验

实验把数据集和指标连接起来。它们让团队能在同一个评估集上比较提示词、模型、检索策略、工具模式和编排方式。目标是第一天就做出完美评估,而是从有用的开始,持续改进。

模拟

很多 Agent 是多轮系统。它们不只是回答一个问题——它们有对话、收集信息、调用工具、更新状态、从歧义中恢复。对这类 Agent,单轮评估不够。团队需要多轮评估和模拟端到端交互。

语音 Agent 是最明显的例子,但模式更广泛。客服 Agent、编码 Agent、内部运营 Agent——只要跨越多个轮次,就需要模拟。

三、Deploy:运行时、沙箱、上下文中心

一旦 Agent 建好并通过评估,它需要一个能稳定运行的环境。

简单 Agent 的部署方式跟传统应用差不多。但很多 Agent 需要更多:它们在更长时间周期内运行、调用工具、等待人工输入、写文件、从中断中恢复、跨多个交互维护状态。

这就是运行时的重要性。一个生产级 Agent 运行时通常需要支持:

沙箱为 Agent 提供隔离的执行环境,有文件系统访问权限,同时减少错误或危险行为的爆炸半径。示例包括 LangSmith Sandboxes、Daytona、E2B。当然不是所有 Agent 都需要完整沙箱——有时一个虚拟文件系统就够了。

上下文中心(Context Hub)是另一个常被忽视的部分。提示词、检索上下文、技能、任务指令可能比应用本身变更更频繁,而且可能由非工程师编辑。需要一个地方存储、版本控制、审查和更新这些非代码部分。让团队无需完整部署就能调整 Agent 行为。

四、Monitor:Trace 是一切的基础

Agent 部署后,团队需要能看到它在生产中实际干了什么。

监控 Agent 跟监控传统软件不同。延迟、成本、错误率、正常运行时间仍然重要,但只是图景的一部分。一个 Agent 可以返回技术上成功的响应,但任务本身失败了——它调了错误的工具、依赖了错误的上下文、跳过了必需的审批步骤。

要理解这些失败,需要 Trace

一条 Trace 捕捉了 Agent 的完整轨迹:它收到的输入、发起的模型调用、调用的工具、接收的输出、以及最终响应。这是理解 Agent 实际行为所需的细节级别。

这就是为什么我们一直主张 Agent 可观测性驱动 Agent 评估,以及为什么 Agent 改进循环从 Trace 开始。如果你看不到轨迹,就无法可靠地调试行为,也无法把那些失败变成未来的评估用例。

监控还包括从 Trace 中收割信号。LLM-as-judge 评估器可以打分:Agent 是否回答了用户的问题?是否遵循了政策?用了正确的语气?简单的正则也能捕捉:某个必要短语是否出现?某个禁止的工具是否被调用?

反馈是另一个核心部分。光存 Trace 不够——还需要把反馈关联到 Trace。用户不满意?要能连接到三步之前 Agent 用了错误的工具。LangSmith 支持直接把用户反馈附加到底层 run 上。

好的监控不是一个简单的"系统是否在线"的问题。而是理解 Agent 是否在做正确的工作、以正确的方式、在持续改进。

五、Iterate:闭环 Hill-Climbing

最好的组织不会等一个完美的 Agent 再发布。他们会先构建一些有用的东西,测试到足以理解它的行为,以可控方式部署,监控生产中的表现,然后把学到的喂回下一个版本。

这不是粗心大意的发布方式。关键是有可见性。有数据集、实验、Trace、反馈和仪表盘的团队可以直接从真实使用中学习。他们可以大规模测试变更,识别生产中什么出了问题,把失败变成评估用例,无需靠猜测改进 Agent。

这就是 hill-climbing——Agent 系统如何随时间改进。最有效的团队找到困难示例,理解 Agent 为什么失败,调整提示词、工具配置、检索策略、模型、中间件或工作流。重新运行评估,部署更好的版本,监控提供下一个边界用例和失败。

六、Govern:成本、工具权限、可发现性

治理围绕着整个生命周期。对单个 Agent,轻量级控制就够。当组织部署多个 Agent,治理就变得必要。

成本是第一关。Agent 可能很贵——因为它们涉及多次模型调用、长上下文窗口、重复工具使用、重试、长时间运行。组织需要预算、使用监控、告警、以及能看到哪些 Agent/团队/模型/工具在驱动成本。

工具权限是第二关。Agent 有用是因为它们能采取行动,但这也带来了风险。需要清晰的访问控制、审计轨迹、人工介入机制。不是每个工具调用都该全自动。涉及客户、财务系统、敏感数据或生产基础设施的操作应该暂停等待人工审查。

可发现性是第三关。随着 Agent 越来越多,组织也在积累可复用资产:提示词、技能、工具、检索源、政策、甚至其他 Agent。没有好的发现和治理机制,团队会反复从头造轮子。如果某个团队已经建了一个很好的技能,另一个团队应该能发现它,而不是重新写一份。

好的治理不是拖慢团队。而是在 Agent 系统规模化时,让快速迭代变为可能——同时不失去可见性、可控性和一致性。

总结

最好的组织已经开始这样运作了。他们尽早发布,但不是盲目发布。他们在部署前评估,部署后监控,持续用学到的经验让下一个版本更好。

这就是让 Agent 开发可重复的原因。也是让 Agent 从 Demo 变成可靠生产系统的原因。

常见问题

Agent 框架、运行时的区别到底是什么?

框架(如 LangChain)帮你组合模型调用、工具和提示词。运行时(如 LangGraph)帮你管理状态、分支、持久化和人工介入。管线(如 Deep Agents)给你技能、钩子、文件系统等实际干活需要的周边设施。它们不是互斥的——很多生产系统三层都用。

Agent 的评估应该什么时候开始?

在生产之前。从少量代表性任务开始——一些来自预期用例,一些来自手动测试、dogfooding 或已知边界情况。生产后的 Trace 会让数据集变得更强,但测试必须先于部署。目标不是第一天就完美,而是从有用开始,持续用生产数据改善。

治理不会拖慢 Agent 开发速度吗?

好的治理恰恰是让快速迭代成为可能的前提。成本控制、工具权限、可发现性和复用——这些让团队不用重复造轮子,不用为安全风险胆战心惊。治理不是审批流程,是基础设施。
#Agent开发 #LangChain #HarrisonChase #Agent生命周期 #AI工程 #生产部署 #LLMOps
← 返回首页