Pizza Bot: 針對長時間運行 AI Agents 的 Local-First 收件匣
Pizza Bot 是一個針對長時間運行 AI agent 工作所設計的 local-first 收件匣。它允許使用者啟動或排程任務,並在稍後返回查看,完成的工作會收集在 Unread 佇列中,而需要人工介入的任務則會收集在 Action 佇列中。此系統由 Amazon 開發並以 Apache 2.0 授權發布,確保即使使用者斷開連接或離開介面,Agent 仍能在背景持續工作。
核心架構與工作流程
Pizza Bot 使用基於 DeepAgents 和 LangGraph 的有狀態執行環境 (stateful runtime)。該系統設計為非同步,這意味著使用者可以在不停止活動執行中的情況下切換對話。
任務管理
- Unread Queue: 存放已完成 AI 工作以供使用者審查的位址。
- Action Queue: 存放持久性核准請求以及需要人機協作 (human-in-the-loop) 決策的任務。
- Folders: 使用者可以將執行緒 (threads) 整理到資料夾中,而不會將其從全域的 Unread 和 Action 佇列中移除。
- Persistence: 檢查點 (checkpointed) 的執行會在客戶端斷開連接後依然存在,且任務可以透過 cron 或 webhooks 觸發,無需活動中的對話。
部署選項
Pizza Bot 提供多種運行應用程式的方式,取決於使用者的需求:
- Electron Desktop App: 帶有嵌入式後端的 local inbox。
- Browser: 用於網頁開發或靜態部署。
- Terminal CLI: 用於腳本、終端機和遠端後端。
- Standalone Backend: 用於遠端 Electron 客戶端、容器或 Linux 服務。
技術規格與擴充性
模型供應商支援
Pizza Bot 支援廣泛的模型供應商,包括 Amazon Bedrock、Anthropic、Google Gemini、OpenAI、OpenRouter 和 Ollama。桌面應用程式使用 Electron safeStorage 來保護金鑰,而伺服器配置僅持久化環境變數的引用。
透過 MCP 與 Skills 進行擴充
該平台可透過 Model Context Protocol (MCP) 伺服器和 "Skills" 進行擴充。
- MCP Servers: 可以透過 UI 或設定檔新增。
- Skills: 定義在特定的資料根目錄下,一旦其宣告的工具被啟用,它們就會變得可用。自定義 Skills 可以透過相同的 ID 覆蓋內建或插件的 Skills。
- Plugins: 將 MCP 伺服器和 Skills 組合在一起的套件。
安全性與數據隱私
Pizza Bot 預設為 local-first。api-server 綁定到 127.0.0.1,且應用程式狀態——包括執行緒、檢查點、記憶與日誌——都儲存在本地的 <PIZZA_DATA_ROOT> 下(預設為 ~/.pizza-bot-oss)。使用者必須明確授予本地資料夾存取權限,且系統預設不具備家目錄存取權限。
社群洞察與回饋
來自 Hacker News 社群的使用者回饋突顯了應用程式的優點與挑戰:
"我可以直接安裝一個應用程式並開始使用,而不是花費好幾個小時進行設定、配置等,這讓我未來更有可能使用它。"
雖然使用者稱讚了安裝的便利性,但有些人注意到在使用 llama.cpp 等本地模型時,設定過程存在「不流暢 (jankiness)」的問題,並建議改進使用者介面,使 MCP 伺服器與 Skills 之間的連接更加直觀。一位使用者要求能夠針對每個任務覆蓋模型供應商,以便在特定複雜任務中使用本地模型(便宜/私密)與高能力模型(例如 Claude)的混合模式。
其他社群成員質疑了使用獨立收件匣而非使用現有的工具(如電子郵件或工單追蹤器,例如 Linear)的必要性,並建議專用的 Agent 收件匣是 Agentic 工作流程的必然演進。
Sources
相關
- 專案
- 專案
- 專案
- Dispatch
- 專案