亚马逊内部两千人在用的 Pizza Bot:把 AI 任务当邮件收件箱处理
AIAI Summary (BLUF)
Pizza Bot 是一个异步 AI 工作收件箱,让你启动或安排任务后离开,完成的工作会出现在 Unread 中,待决策事项出现在 Action 中。它支持多种模型提供商,提供桌面、浏览器和 CLI 三种运行方式,并强调本地优先和安全性。
核心洞察
这个项目最让我意外的地方是它来自亚马逊内部,而且已经有两千多人在用。它的思路挺特别:把 AI 任务当成邮件来处理,跑完的丢进收件箱,需要你拍板的放进待办。如果你受够了盯着对话框等 AI 回复,这东西值得看看。
核心结论
Pizza Bot一个异步 AI 工作收件箱,用于管理长时间运行的 AI 任务。 来自亚马逊内部,已有超过两千名内部用户使用,采用 Apache-2.0 许可证开源。
核心设计思路是把 AI 任务当作邮件处理:完成的任务进入未读收件箱,需要人工审批的进入待办队列,支持异步执行、断点续跑和定时/webhook 触发。
支持多种模型供应商,包括 Amazon Bedrock亚马逊Bedrock;AWS上的一项托管服务,通过统一API提供多种基础模型(如Anthropic Claude、Meta Llama等),无需自行管理基础设施。、AnthropicAn AI research and safety company known for developing large language models like Claude.、Google GeminiA generative AI model and search engine developed by Google.、OpenAIAn AI research and deployment company whose top models were used as a performance benchmark by DeepSeek.、OpenRouter统一的AI模型API平台,提供对GPT、Claude、Gemini等多种AI模型的访问接口 和 OllamaA tool for running and managing AI models locally, supporting DeepSeek and other models.,可通过 PIZZA_MODEL=
: 指定模型。 运行需 Node.js 24 或更新版本,提供 Electron 桌面、浏览器、终端 CLI 和独立后端四种运行方式。
安全设计上默认本地优先,api-server 绑定 127.0.0.1,本地文件夹需在设置中显式授权(默认只读),数据默认存储在 ~/.pizza-bot-oss。
为什么叫 Pizza Bot
一句话说清楚:给长时间运行的 AI 任务一个收件箱。
启动一个任务或者排个定时,然后该干嘛干嘛去。回来的时候,完成的工作已经在未读里等着你,需要做决定的都在待办里排好了。
它解决什么问题
- 异步干活。切换对话不会中断正在跑的任务。
- 回到正确的队列。完成的工作进未读,需要审批的进待办。
- 整理对话。可以把线程分组到文件夹里,但不影响全局的未读和待办队列。
- 断点续跑。客户端断开了也不怕,检查点机制保证任务能接着跑。定时任务和 webhook 触发不需要你开着对话窗口。
- 派活给专家。技能可以变成独立的子代理,进度会显示在活动面板里。
- 自带模型。支持 Amazon Bedrock、Anthropic、Google Gemini、OpenAI、OpenRouter 和 Ollama。
- 关键操作要你点头。人工审批、长期记忆、文件附件、桌面通知都内置在工作流里。
- 本地访问要显式授权。在设置的文件页面里逐个添加只读或可写文件夹,默认情况下 Pizza Bot 拿不到你的主目录。
下载
每个 release 都附带了安装包,还有一个 SHA256SUMS 文件可以校验。
| 平台 | 包格式 | 备注 |
|---|---|---|
| macOS(Apple 芯片、Intel) | .dmg、.zip | 已签名和公证 |
| Windows(x64) | -setup.exe | |
| Linux(x64、arm64) | .deb、.rpm | 未签名,用 SHA256SUMS 校验 |
快速开始
需要 Node.js 24 或更新版本。
npm install
npm run build
npm run dev
npm run dev 会启动 Vite 前端和 Electron 桌面壳。桌面壳会自己 fork 并管理 api-server,跟打包后的应用进程模型一致。开始跑任务之前,先去设置的模型供应商页面配好模型。
想了解隔离数据根目录、浏览器和 CLI 开发、桌面打包、远程后端这些,看从源码运行那篇文档。
运行方式
| 方式 | 适合场景 | 入口 |
|---|---|---|
| Electron 桌面 | 本地收件箱,内嵌后端 | npm run dev |
| 浏览器 | Web 开发或静态部署 | 浏览器开发文档 |
| 终端 CLI | 脚本、终端、远程后端 | CLI 文档 |
| 独立后端 | 远程 Electron、浏览器、容器、Linux 服务 | 后端指南 |
运行中的 api-server 至少需要接入一个模型供应商,HTTP 客户端不需要。在设置的供应商页面配置 Amazon Bedrock、Anthropic、Google Gemini、OpenAI、OpenRouter 或 Ollama。Bedrock 支持 AWS profile、AWS access key 或 Bedrock API key,可以覆盖区域,否则用 AWS_REGION 或 us-west-2。Bedrock 会把原生目录和区域 Mantle 目录合并,根据模型声明的 API 族走 Converse、OpenAI Responses 或 Chat Completions、Anthropic Messages。OpenAI 和 Anthropic 也支持自定义 base URL 来对接兼容端点;OpenAI 可以显式选 Responses 还是 Chat Completions,Anthropic 支持 x-api-key 或 bearer 认证。用 PIZZA_MODEL=<provider>:<id> 选模型。桌面端用 Electron safeStorage 保护输入的密钥;服务端配置只持久化环境变量引用。
扩展
从界面或者 <PIZZA_DATA_ROOT>/.mcpModel Context Protocol - a protocol that enables AI models to access external tools, data sources, and services to enhance their capabilities and context awareness..json 添加 MCP 服务器。在 <PIZZA_DATA_ROOT>/skills 下添加 Agent Skills在AI Agent环境中可调用的技能模块,能够增强大模型的写作能力(如arxiv翻译技能)。,或者安装把 MCP 服务器和技能打包在一起的插件。技能在声明的工具启用并连接后才会生效。自定义技能可以用相同的 id 替换内置或插件技能,不需要改原始文件;删掉自定义的就会恢复显示内置或插件版本。内置的 Pizza Bot 指南可以解释功能、推荐工作流、帮忙做设置、指向项目文档。
配置细节、环境变量参考、技能编写、审批门控、插件安装这些看扩展 Pizza Bot 那篇。
项目结构
apps/ api-server (Hono) | cli | desktop-shell (Electron) | web (React)
packages/ core | runtime-langgraph | inference-providers | plugin-api | plugin-sdk | storage | logging
plugins/ 打包的插件包和它们的打包工作区
skills/ 可选的内置 Agent Skills
tests/ LangGraph 兼容性和协议一致性
生产环境的图引擎隔离在 packages/runtime-langgraphA framework within the LangChain ecosystem for building stateful, multi-actor applications with language models. 里;前端消费的是协议投影,不直接导入运行时或模型绑定。
文档
- 运行 - 桌面、浏览器、CLI 和打包命令。
- 扩展 - MCP 服务器、技能和插件。
- 架构 - 系统边界、事件模型、持久化、传输和设计决策。
- 独立后端 - 认证、远程 Electron、静态浏览器部署、Docker、Compose 和 Kubernetes。
- 贡献 - 开发环境搭建、CI 检查、worktree、发布和分层规则。
- 安全 - 网络默认值、凭据、本地数据和插件信任。
- 日志 - 诊断、保留、查看和脱敏。
- 路线图 - 探索方向和评估原则。
- 行为准则 - 社区参与期望。
安全和数据
- 默认本地优先。api-server 绑定到 127.0.0.1;非回环绑定需要认证和明确的来源白名单。
- 应用状态留在本地。线程、检查点、记忆、附件和日志都在 <PIZZA_DATA_ROOT> 下(默认是 ~/.pizza-bot-oss)。模型和工具请求发往你配置的供应商和端点。
- 本地文件夹需要显式授权。在设置的文件页面添加的每个文件夹默认只读,除非你允许写入。远程授权指定的是后端主机上的路径。
- MCP 服务器和插件是受信任的。它们的命令和物化器可以以你的用户账户权限执行。只安装你信任的来源。
完整的安全模型和漏洞报告流程看 SECURITY.md。
贡献者
Pizza Bot 由它的行政主厨和副主厨设计、构建并开源。
行政主厨
Joseph Dolivo (@JoeDo)、Igor Fil (@igorfil)
副主厨
Flávio Schuindt (@flavioschuindt)、Jacob Wert (@jwert-aws)、Michael Karachewski (@michaelkarachewski)、Itzik Paz (@spideron)
Pizza Bot 还得到了亚马逊内部两千多名用户的反馈和打磨。他们的 bug 报告、想法和直言不讳的反馈帮助 Pizza Bot 做好了面向更广泛社区的准备。感谢每一位贡献者。
许可证
Apache-2.0。署名声明见 NOTICE。
常见问题(FAQ)
Pizza Bot 是什么?它和普通 AI 对话工具有什么区别?
Pizza Bot 是一个异步 AI 工作收件箱,启动或安排任务后即可离开,完成的工作进入 Unread,待决策事项进入 Action。它把 AI 任务当邮件处理,支持多模型提供商和桌面、浏览器、CLI 三种运行方式,强调本地优先与安全。
Pizza Bot 支持哪些模型提供商?怎么配置?
支持 Amazon Bedrock、Anthropic、Google Gemini、OpenAI、OpenRouter 和 Ollama。在设置的模型供应商页面配置即可,用 PIZZA_MODEL=
Pizza Bot 如何保证本地数据安全?
默认本地优先,api-server 绑定 127.0.0.1,非回环绑定需认证和来源白名单。线程、检查点、记忆、附件和日志都留在 PIZZA_DATA_ROOT 下。本地文件夹需在设置的文件页面显式授权,默认只读,MCP 服务器和插件则视为受信任。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



