Snapshot Reader
Captured
📌 One-Sentence Summary
本教程演示了如何使用 Google 的 Agent Development Kit (ADK) 构建生产级的长时间运行 AI 智能体,这些智能体通过持久化状态机、持久会话和事件驱动恢复机制,能够在数天或数周内暂停、恢复并保持上下文。
📝 Summary
这篇来自 Google 开发者博客的文章,为构建能够应对空闲期、服务器重启和多日工作流的长时间运行 AI 智能体提供了全面的架构指南。文章以新员工入职协调智能体为例,详细阐述了将生产级智能体与无状态演示聊天机器人区分开来的三个关键架构转变:通过显式状态机(而非依赖原始对话历史)实现持久化内存模式;使用带 Webhook 的事件驱动休眠门(而非主动轮询);以及采用多智能体委派来处理专业子任务。教程提供了使用 ADK 框架的完整 Python 代码示例,包括状态模式定义、持久化 SQLite 会话存储、用于外部事件处理的 Webhook 端点,以及一个能够原子化地恢复会话并应用状态转换的恢复处理器。此外,还涵盖了用于验证多日流程的黄金评估测试以及部署到 Google Agent Runtime 的内容。核心观点是,由于提示上下文污染、Token 成本激增以及空闲期间的推理幻觉,无状态智能体无法胜任真实的企业工作流,解决方案是采用一种根本不同的架构,其中智能体状态是显式、持久化且与原始聊天历史解耦的。
💡 Main Points
- 由于上下文污染、Token 成本和空闲期间的幻觉,无状态智能体无法胜任真实的企业工作流。 标准的对话循环会将所有历史记录追加到提示中,这在数天或数周后会崩溃,因为无关的闲聊会累积,Token 预算会爆炸,并且模型会在长时间暂停期间对从未发生过的中间步骤产生幻觉。
- 持久化状态机取代原始对话历史,成为智能体进度的真实来源。 通过使用命名常量(例如 START、WELCOME_SENT、DOCUMENTS_SIGNED)定义显式状态模式,并从会话状态变量中读取当前步骤,智能体无法跳过步骤或对进度产生幻觉。
- 事件驱动的 Webhook 端点实现了真正的空闲休眠,并具备缩放到零的能力。 智能体在空闲期间完全休眠,而不是进行主动轮询或阻塞线程。外部 Webhook 唤醒智能体,恢复持久化会话,并在下一次推理调用之前通过 state_delta 原子化地应用状态转换。
- 多智能体委派通过为每个子智能体提供聚焦的提示和狭窄的工具集来保持推理的敏锐性。 将所有工具塞入单个智能体的系统提示会降低推理质量。将专业任务(例如 IT 资源分配)委派给具有针对性指令的专用子智能体,即使在经过数周的状态累积后也能保持清晰度。
💬 Key Quotes
- 解决方案不是更大的上下文窗口。而是一种根本不同的架构——其中智能体的状态是显式、持久化且与原始聊天历史解耦的。
- 空闲时间是长时间运行智能体面临的决定性挑战。智能体需要休眠——真正地休眠——并且仅在外部事件到达时被唤醒。
- 每次工具调用都会创建一个自动检查点。如果在 send_welcome_packet 运行后容器立即崩溃,状态也已经被写入。
- 无状态智能体只是智能体能力的一个子集。本教程中的模式将智能体从对话玩具转变为生产级后台进程。
📊 Article Meta
AI Screening:93
Featured:Yes
Source:Google Developers Blog
Author:Shubham Saboo, Eric Dong
Category:人工智能
Language:英文
Read Time:10 min
Word Count:2482
Tags:
Agent Development Kit, 长时间运行智能体, 状态机, 持久会话, 事件驱动架构