跳到主要内容
pizza-bot 把 AI 任务做成了收件箱,这个思路比聊天窗口靠谱

pizza-bot 把 AI 任务做成了收件箱,这个思路比聊天窗口靠谱

书签客
书签客

· 阅读约 5 分钟

这条在讲 pizza-bot,一个本地优先的 AI 任务收件箱。出处是 GitHub 上 pizza-bot-app 组织维护的开源仓库,Amazon 内部开发的,Apache 2.0。

我一开始想点进去的理由挺简单——本地优先。现在敢说本地优先的 agent 工具不多,但大多数也就把数据留在本地,执行逻辑还是云端的。这条我读到第四段才发现真正值得点开的不是本地优先,是收件箱。

项目文档原话是「已完成的任务进入 Unread 队列,等待用户决策的代理运行进入 Action 队列,用户可以随时返回处理」。

这句把整个交互模型换了——从聊天流换成任务流。聊天窗口的问题是:你说一句,它就跑一阵,跑偏了你得在对话里追着看它到哪了。收件箱的解法是显式把状态分成两摊。跑完的在 Unread 里等你划,卡在等你拍板的在 Action 里等你处理。你人走了,它还在跑,但不用盯着。

另一句原话对得上:「对话切换不会中断正在进行的运行,用户离开页面或断线后代理仍继续工作,前提是 api-server 进程保持运行」。

运行不挂在对话窗口上。这是同一条判断的另一面。如果运行是挂在对话上的,你切走或者断网,任务就悬了。这里不是。配合 checkpoint 那套,被检查点保存的运行能跨客户端断连恢复——手机上断了,回到桌面端接着处理。甚至 cron 或 webhook 触发器能在没有打开对话的情况下启动任务。这对我这种一开对话就焦虑的人挺对路。

第二个让我愿意写推荐的点:默认只读。

「本地文件夹访问需要显式授权,每个目录默认只读。Pizza Bot 不会默认获得用户主目录的访问权限。」

读到这句我停了一下。多少 agent 工具装完先扫一遍主目录。这条不是。默认只读,你要在 Settings > Files 里自己去加目录,每个都默认只读,除非手动允许写。

上次我跑另一个 agent 工具,装完发现它把我 Downloads 扫了个遍,我直接卸了。就冲这条默认只读,我愿意多看一眼后续。

模型这块我不展开。支持 Amazon Bedrock、Anthropic、Google Gemini、OpenAI、OpenRouter 与 Ollama 六类,指定的环境变量形式是:

PIZZA_MODEL=<provider>:<id>

记住这个形式就行。这回来的主线不是模型适配,是收件箱和默认保守。

默认保守还体现在两个地方,原文分别是「桌面端使用 Electron safeStorage 保护用户输入的密钥,服务端配置仅持久化环境变量的引用」和「默认情况下 api-server 只绑定到 127.0.0.1」。

api-server 默认只绑定 127.0.0.1,绑非回环地址要认证和显式来源白名单。这几个默认值放一起看,人设立得住。

这次我没跑。不是网络问题,是这项目要从源码跑的话得 Node 24、npm install、npm run build、npm run dev,dev 里会起 Vite 前端和 Electron 桌面壳。这周没腾出环境。我连自己有没有 Node 24 都懒得查,反正下周再说。

技能这块有点意思。Skills 会被转成受工具范围约束的子代理,执行进度显示在 Activity 面板里。内建的 Pizza Bot Guide 技能能解释功能、建议工作流、协助配置。这个我没实际用过,只读了文档。从"子代理"这个说法看,它把每个技能当独立代理跑,范围约束应该能限制跑偏。自定义技能可以覆盖同 id 的内置或插件技能而不动原文件,移除自定义后原版本重新生效。这个设计有点 git stash 的味道,不碰原文件这点挺克制。

状态存储路径也集中:

~/.pizza-bot-oss

线程、检查点、记忆、附件、日志全在这个 PIZZA_DATA_ROOT 下。MCP 服务器从 <PIZZA_DATA_ROOT>/.mcp.json 读,skills 在 <PIZZA_DATA_ROOT>/skills 下,插件可以同时打包 MCP 和技能。全都在一个目录下。

我目前还有一块没完全吃透。它说会话线程可以归入文件夹,但不影响全局 Unread 和 Action 队列对被归类工作的显示。到底"不影响"是啥效果,没过一遍真实操作说不太清。先挂着。

架构上有一点我喜欢:生产环境的图引擎被隔离在 packages/runtime-langgraph 里,前端只消费协议投影,不直接引入运行时或模型绑定。这意味着换了模型或运行时,前端不用大改。这是干净的分层,不装。

核心贡献者一栏叫 Executive Chefs,其他叫 Sous Chefs。这个称呼比干巴巴的 "Core Contributors" 有意思。项目方称有超过 2000 名 Amazon 内部用户测过早期版本。166 star、79 次提交,不算大,但 2000 个内部用户用过这件事至少说明是被人用出来的,不是 demo。

写完这段我回去翻了翻前面,发现我一开始说的是"这条真正有趣的是收件箱不是本地优先"。其实就算没那个队列设计,单看"本地文件只读授权"这一条,我大概也会推。只是队列设计让这篇值得多写几句。

不点链接也能带走的一句:agent 任务管理别只做聊天窗口,把"已完成"和"待决策"分成两条队列,你会更愿意回来处理。

书签客
书签客

只推真读过的、顺手跑个实验贴完整记录——link-blog 策展 + 实验笔记。

查看主页 →