메뉴
HN
Hacker News • 10일 전

피자 봇 – 백그라운드에서 작동하는 AI 에이전트용 수신함

IMP
6/10
핵심 요약

아마존에서 개발해 Apache 2.0 라이선스로 오픈소스 공개된 'Pizza Bot'은 오래 걸리는 AI 작업을 비동기로 관리하는 수신함(Inbox)입니다. 작업을 시작하거나 예약하면 완료된 결과는 'Unread' 큐에, 승인 대기 중인 요청은 'Action' 큐에 쌓이며, 클라이언트를 닫아도 api-server가 살아있는 한 에이전트가 계속 작업을 이어갑니다. Electron 데스크톱, 브라우저, 터미널 CLI를 모두 지원하고 Bedrock, Anthropic, Gemini, OpenAI, Ollama 등 주요 모델 제공자를 선택해 쓸 수 있습니다.

번역된 본문

Pizza Bot OSS

Pizza Bot은 오래 걸리는 AI 작업을 위한 수신함(inbox)입니다. 작업을 시작하거나 예약한 뒤 일상으로 돌아가면, 완료된 작업은 Unread에, 결정을 기다리는 실행 건은 Action에 수집됩니다. 다른 곳으로 이동하거나 연결을 끊어도 에이전트는 계속 작동하지만, api-server 프로세스는 실행 상태를 유지해야 합니다. Pizza Bot은 상태 저장형 DeepAgents/LangGraph 런타임을 사용하며, Electron과 브라우저에서 동일한 React 경험을 제공합니다. 데스크톱 앱, 웹 앱, 터미널 CLI 모두 HTTP/SSE로 api-server와 통신합니다. Pizza Bot은 아마존(Amazon)에서 개발되었으며 Apache 2.0 라이선스로 공개되었습니다.

왜 Pizza Bot인가?

  • 비동기 작업: 대화를 바꿔도 실행이 중단되지 않습니다.
  • 올바른 큐로 복귀: 완료된 작업은 Unread에, 지속형 승인 요청은 Action에 도착합니다.
  • 대화 정리: 스레드를 폴더로 그룹화해도 전역 Unread·Action 큐에서 해당 작업이 사라지지 않습니다.
  • 실제 작업 재개: 체크포인트된 실행은 클라이언트 연결이 끊겨도 유지되며, cron이나 웹훅 트리거로 열린 대화 없이도 작업을 시작할 수 있습니다.
  • 전문가에게 위임: 스킬(Skills)이 도구 범위의 하위 에이전트(subagent)가 되며, 그 진행 상황은 Activity 패널에 표시됩니다.
  • 모델 제공자 자유 선택: Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, Ollama를 지원합니다.
  • 중요 작업 통제: 휴먼 인 더 루프(human-in-the-loop) 승인, 장기 기억, 파일 첨부, 데스크톱 알림이 워크플로에 내장되어 있습니다.
  • 로컬 접근 명시적 허용: Settings > Files에서 개별 읽기 전용 또는 쓰기 가능 폴더를 추가하며, Pizza Bot은 기본적으로 홈 디렉터리 접근 권한을 받지 않습니다.

다운로드

macOS(Inttel 및 Apple silicon), Windows, Linux(x64 및 arm64)용 설치 프로그램이 모든 릴리스에 첨부되어 있으며, 다운로드 검증용 SHA256SUMS도 함께 제공됩니다. macOS 빌드는 서명 및 공증(notarized)되어 있고, Linux 패키지는 서명되지 않으므로 체크섬으로 검증하십시오.

빠른 시작

Node.js 24 이상이 필요합니다.

npm install npm run build npm run dev

npm run dev는 Vite 프론트엔드와 Electron 데스크톱 셸을 시작합니다. 셸은 자체 api-server를 fork하고 감시(supervise)하여, 패키징된 애플리케이션의 프로세스 모델과 일치시킵니다. 실제 실행을 시작하기 전에 Settings > Providers에서 모델을 구성하세요. 격리된 데이터 루트, 브라우저·CLI 개발, 데스크톱 패키징, 원격 백엔드에 대해서는 'Running from source' 문서를 참고하세요.

실행 방식

| 경험 | 적합한 용도 | 시작 위치 | | Electron 데스크톱 | 내장 백엔드가 있는 로컬 수신함 | npm run dev | | 브라우저 | 웹 개발 또는 정적 배포 | Browser development | | 터미널 CLI | 스크립트, 터미널, 원격 백엔드 | CLI | | 독립형 백엔드 | 원격 Electron, 브라우저, 컨테이너, Linux 서비스 | Backend guide |

실행 중인 api-server는 최소 하나의 모델 제공자에 접근할 수 있어야 하며, HTTP 클라이언트는 필요하지 않습니다. Settings > Providers에서 Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, Ollama를 구성할 수 있습니다. Bedrock은 AWS 프로필, AWS 액세스 키, 또는 Bedrock API 키를 받으며 선택적 리전 오버라이드를 지원하고, 지정이 없으면 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=:로 모델을 선택합니다. 데스크톱은 입력된 시크릿을 Electron safeStorage로 보호하며, 서버 설정에는 환경 변수 참조만 저장됩니다.

확장하기

UI 또는 /.mcp.json에서 MCP 서버를 추가할 수 있습니다. /skills 아래에 에이전트 스킬을 추가하거나, MCP 서버와 스킬을 함께 패키징한 플러그인을 설치할 수도 있습니다. 스킬은 선언된 도구가 활성화·연결된 후 사용 가능해집니다. 커스텀 스킬은 원본을 수정하지 않고도 동일한 ID의 내장(Built-in) 또는 플러그인 스킬을 대체할 수 있으며, 커스터마이징을 제거하면 원래 버전이 다시 나타납니다.

원문 보기
원문 보기 (영어)
Pizza Bot OSS Pizza Bot is an inbox for long-running AI work. Start or schedule a task, return to your day, and let completed work collect in Unread while runs waiting for your decision collect in Action . Agents keep working when you navigate away or disconnect; the api-server process must remain running. Pizza Bot uses a stateful DeepAgents/LangGraph runtime with the same React experience in Electron and the browser. The desktop app, web app, and terminal CLI all communicate with the api-server over HTTP/SSE. Pizza Bot was developed at Amazon and is released under the Apache 2.0 license. Why Pizza Bot? Work asynchronously. Switch conversations without stopping their runs. Return to the right queue. Completed work lands in Unread; durable approval requests land in Action. Organize conversations. Group threads into folders without hiding matching work from the global Unread and Action queues. Resume real work. Checkpointed runs survive client disconnects, and cron or webhook triggers can start work without an open conversation. Delegate to specialists. Skills become tool-scoped subagents whose progress appears in the Activity panel. Bring your model provider. Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, and Ollama are supported. Keep control of consequential actions. Human-in-the-loop approvals, long-term memory, file attachments, and desktop notifications are built into the workflow. Grant local access explicitly. Add individual read-only or writable folders under Settings > Files ; Pizza Bot receives no default home-directory access. Download Installers for macOS (Intel and Apple silicon), Windows, and Linux (x64 and arm64) are attached to every release , with a SHA256SUMS to check a download against. The macOS builds are signed and notarized; the Linux packages are not signed, so verify them against the checksums. Quick start Node.js 24 or newer is required. npm install npm run build npm run dev npm run dev starts the Vite frontend and Electron desktop shell. The shell forks and supervises its own api-server, matching the packaged application's process model. Configure a model under Settings > Providers before starting a live run. See Running from source for isolated data roots, browser and CLI development, desktop packages, and remote backends. Ways to run Experience Best for Start here Electron desktop Local inbox with an embedded backend npm run dev Browser Web development or static deployment Browser development Terminal CLI Scripts, terminals, and remote backends CLI Standalone backend Remote Electron, browsers, containers, or Linux services Backend guide A running api-server needs access to at least one model provider; HTTP clients do not. Configure Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, or Ollama in Settings > Providers . Bedrock accepts an AWS profile, AWS access keys, or a Bedrock API key, with an optional region override; otherwise AWS_REGION or us-west-2 is used. Bedrock combines its native catalog with the regional Mantle catalog and routes models through Converse, OpenAI Responses or Chat Completions, or Anthropic Messages according to their advertised API family. OpenAI and Anthropic also accept custom base URLs for compatible endpoints; OpenAI can explicitly select Responses or Chat Completions, and Anthropic supports x-api-key or bearer authentication. Select a model with PIZZA_MODEL=<provider>:<id> . The desktop protects entered secrets with Electron safeStorage ; server configuration persists only environment-variable references. Extend it Add MCP servers from the UI or <PIZZA_DATA_ROOT>/.mcp.json . Add Agent Skills under <PIZZA_DATA_ROOT>/skills , or install plugins that package MCP servers and skills together. Skills become available after their declared tools are enabled and connected. A custom skill can replace a Built-in or Plugin skill with the same id without modifying the original; removing the customization reveals the Built-in or Plugin version again. The Built-in Pizza Bot Guide can explain features, suggest workflows, help with setup, and point to project documentation. See Extending Pizza Bot for configuration, environment references, skill authoring, approval gates, and plugin installation. Project layout apps/ api-server (Hono) | cli | desktop-shell (Electron) | web (React) packages/ core | runtime-langgraph | inference-providers | plugin-api | plugin-sdk | storage | logging plugins/ bundled Plugin packages and their packaging workspace skills/ optional Built-in Agent Skills tests/ LangGraph compatibility and protocol conformance The production graph engine is isolated to packages/runtime-langgraph ; frontends consume protocol projections rather than importing runtime or model bindings. Documentation Running - desktop, browser, CLI, and package commands. Extending - MCP servers, skills, and plugins. Architecture - system boundaries, event model, persistence, transports, and design decisions. Standalone backend - authentication, remote Electron, static browser deployment, Docker, Compose, and Kubernetes. Contributing - development setup, CI checks, worktrees, releases, and layering rules. Security - network defaults, credentials, local data, and plugin trust. Logging - diagnostics, retention, viewing, and redaction. Roadmap - exploratory directions and the principles used to evaluate them. Code of Conduct - community participation expectations. Security and data Local-first by default. The api-server binds to 127.0.0.1 ; non-loopback binding requires authentication and an explicit origin allowlist. Application state stays local. Threads, checkpoints, memories, attachments, and logs live under <PIZZA_DATA_ROOT> ( ~/.pizza-bot-oss by default). Model and tool requests go to the providers and endpoints you configure. Local folders require an explicit grant. Each folder added under Settings > Files is read-only unless you allow writes. Remote grants name paths on the backend host. MCP servers and plugins are trusted. Their commands and materializers can execute with your user account's permissions. Install only sources you trust. See SECURITY.md for the complete security model and vulnerability reporting process. Contributors Pizza Bot was designed, built, and brought into the open by its Executive Chefs and Sous Chefs: Executive Chefs Sous Chefs Pizza Bot was also shaped by more than 2,000 users across Amazon who tested earlier versions and shared feedback from real-world use. Their bug reports, ideas, and candid input helped make Pizza Bot ready for a broader community. Thank you to everyone who contributed. License Apache-2.0 . See NOTICE for attribution notices.