超越沙盒:构建持久化的 AI Agent

对于生产环境中的 AI Agent 而言,仅靠沙盒是不够的。

大多数开发者将 Agent 构建为内存中的一个简单循环。LLM 进行观察、决策、行动并重复。这在实验室环境下可行,但在现实世界中会失败。

为什么内存循环会失败?

  • 长任务:如果一个 Agent 需要几天时间才能完成,或者需要等待人工审批任务,那么保持进程运行会浪费 CPU 和内存。
  • 缺乏崩溃恢复能力:如果系统崩溃或网络中断,你会丢失整个状态。你无法从中断的地方恢复。
  • 复杂性:如果没有大量的额外代码,多个 Agent 之间很难进行通信。

Orkes 的 CTO Virein Baraiya 提出了一个更好的方法:实现关注点分离(Separate your concerns)。

仅将沙盒用于执行动作。使用沙盒来安全地运行有风险的工具代码。

使用持久化运行时(durable runtime)来进行推理。LLM 提供计划,而运行时系统负责处理执行和状态。

他介绍了两个工具来解决这个问题:

  1. Netflix Conductor 这是一个工作流引擎。它充当账本的角色,在数据库中记录每一次 LLM 调用和每一次工具使用。
  • 它支持按需挂起。如果 Agent 在等待人工操作,系统会暂停工作流并释放所有内存。
  • 它可以在数月后重新唤醒以完成任务。
  1. Agent Span 这是一个构建在 Conductor 之上的运行时。它充当翻译器的角色。
  • 你可以使用现有的工具,如 LangGraph 或 OpenAI SDK。
  • Agent Span 可以将你的 Agent 代码转换为持久化的工作流,而无需你重写业务逻辑。

这种架构带来了三大优势:

  • 护栏(Guardrails):由框架而非 LLM 来控制规则。这可以防止幻觉(hallucinations)造成损害。
  • 全程审计:即使在数月之后,你也能准确看到 Agent 做出决策的原因。你甚至可以重放整个过程。
  • 更佳的测试体验:你可以更改某一次 LLM 的输出,并观察系统的其余部分如何反应。

给开发者的一点最终建议:专注于业务上下文。模型会变,框架会变,但你的业务执行任务的具体方式才是你真正的护城河。

Source: https://dev.to/cognitalk/chao-yue-sha-xiang-wei-ai-agent-gou-jian-chi-jiu-hua-yun-xing-shi-2i9i

Optional learning community: https://t.me/GyaanSetuAi