AWS 正式开源了 Pizza Bot,这是一个专为长运行、异步 AI 代理工作流设计的自托管应用。它不仅仅是一个聊天界面,更是一个任务管理中心,将 AI 在后台默默完成的工作和需要人类决策的请求,像电子邮件一样组织进一个清晰的收件箱中。

Pizza Bot 最初在 Amazon 内部服务了超过 2,000 名员工,用于处理会议准备、邮件起草、Slack 摘要、CRM 更新及深度研究等复杂任务。现在,它以 Apache 2.0 许可证向公众开放,支持 macOS、Windows、Linux 桌面端以及浏览器和终端客户端。
核心理念:异步工作的收件箱
传统的 AI 对话是同步的:你问,它答,断开即停止。Pizza Bot 改变了这一范式,让 AI 代理成为真正的“后台员工”:
- 启动即忘 (Fire and Forget):你可以启动一个耗时数小时的研究任务或数据整理工作,然后关闭应用或切换去做其他事。只要后端的
api-server 在运行,代理就会继续工作。 - 智能分类队列:
- Unread (未读):代理已完成的工作成果,等待你审查。
- Action (待办):代理在执行过程中遇到需要人类批准、提供额外信息或做出决策的地方,暂停并等待你的介入。
- All (全部):完整的线程历史记录。
- 持久化状态:基于 LangGraph 的检查点机制,即使客户端断开连接,线程状态和审批暂停点也会被保留。重新连接后,你可以无缝继续之前的工作。
技术架构与运行时
- 有状态执行引擎:底层使用 DeepAgents 和 LangGraph,确保代理能够维护长期记忆、处理复杂的多步逻辑并在中断后恢复。
- 前后端分离:
- 后端:Hono API 服务器负责运行时执行、存储和调度。
- 前端:Electron 桌面应用、Web 应用和 CLI 终端共享同一套 React 界面,通过 HTTP/SSE (Server-Sent Events) 与后端通信。
- 灵活部署:
- 桌面版:内置嵌入式服务器,适合个人单机使用(注意:退出应用会停止服务器)。
- 独立后端:可部署在服务器或 NAS 上,实现 24/7 不间断运行,支持多客户端接入。
技能、工具与安全控制
Pizza Bot 强调人在环路 (Human-in-the-Loop) 的安全性和可控性:
- 多模型支持:兼容 Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter 以及本地 Ollama 模型。
- 技能系统 (Skills):
- 通过
SKILL.md 定义专家工作者(如“代码审查员”、“数据分析师”)。 - 支持 MCP (Model Context Protocol) 服务器,暴露外部工具给代理使用。
- 技能仅在依赖项满足时才可被调用。
- 细粒度审批:
- 作者可在技能中配置
interruptOn 和 allowedDecisions。 - 当代理尝试执行敏感操作(如删除文件、发送外部请求)时,会暂停并请求用户批准、编辑参数或拒绝。
- 沙箱化文件系统:
- 默认零信任:Pizza Bot 默认无法访问任何本地文件。
- 显式授权:用户需在设置中手动添加只读或可写文件夹,确保数据安全。
触发与调度
- 手动触发:随时在界面中启动新任务。
- Cron 计划:设置定时任务(如“每周一早上生成周报”)。如果服务器停机错过了执行时间,重启后会自动进行一次“追赶运行”,而不是重复执行所有错过的间隔。
- Webhook 触发:接收外部事件(如 GitHub Push、Slack 消息)自动启动代理工作流。
关键要点
| 特性 | 说明 |
|---|
| 异步优先 | 任务在后台运行,结果存入 Unread,决策请求存入 Action。 |
| 持久化 | LangGraph 检查点确保断线重连后状态不丢失。 |
| 安全可控 | 显式文件夹授权、工具级审批拦截、沙箱化执行环境。 |
| 生态兼容 | 支持主流 LLM 提供商及 MCP 协议,兼容 Claude Code 技能配置。 |
| 自托管 | Apache 2.0 开源,支持桌面嵌入或独立后端部署。 |