Pizza Bot: 장기 실행 AI 에이전트를 위한 로컬 우선 인박스

Pizza Bot은 장기 실행되는 AI 에이전트 작업을 위한 로컬 우선 인박스입니다. 사용자는 작업을 시작하거나 예약하고 나중에 다시 돌아올 수 있으며, 완료된 작업은 Unread 큐에, 사람의 개입이 필요한 작업은 Action 큐에 모입니다. Amazon에서 개발되어 Apache 2.0 라이선스로 출시된 이 시스템은 사용자가 연결을 끊거나 인터페이스를 벗어나더라도 에이전트가 백그라운드에서 계속 작동하도록 보장합니다.

핵심 아키텍처 및 워크플로우

Pizza Bot은 DeepAgents와 LangGraph를 기반으로 하는 상태 유지 런타임을 활용합니다. 이 시스템은 비동기 방식으로 설계되어 사용자가 활성 실행을 중단하지 않고 대화를 전환할 수 있습니다.

작업 관리

  • Unread Queue: 완료된 AI 작업이 사용자 검토를 위해 저장되는 곳입니다.
  • Action Queue: 내구성이 있는 승인 요청 및 human-in-the-loop 결정이 필요한 작업이 저장되는 곳입니다.
  • Folders: 사용자는 스레드를 전역 Unread 및 Action 큐에서 제거하지 않고 폴더로 정리할 수 있습니다.
  • Persistence: 체크포인트가 생성된 실행은 클라이언트 연결 끊김 후에도 유지되며, 작업은 활성 대화 없이도 cron 또는 webhooks를 통해 트리거될 수 있습니다.

배포 옵션

Pizza Bot은 사용자의 요구 사항에 따라 애플리케이션을 실행하는 여러 가지 방법을 제공합니다:

  • Electron Desktop App: 백엔드가 내장된 로컬 인박스입니다.
  • 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은 기본적으로 로컬 우선입니다. api-server127.0.0.1에 바인딩되며, 스레드, 체크포인트, 메모리, 로그를 포함한 애플리케이션 상태는 <PIZZA_DATA_ROOT> (기본값 ~/.pizza-bot-oss) 아래에 로컬로 저장됩니다. 로컬 폴더 접근은 사용자가 명시적으로 허용해야 하며, 시스템은 기본적으로 홈 디렉토리에 접근할 수 없습니다.

커뮤니티 인사이트 및 피드백

Hacker News 커뮤니티의 사용자 피드백은 애플리케이션의 강점과 과제 모두를 강조합니다:

"설정, 구성 등을 위해 몇 시간씩 시간을 보내는 대신, 단일 앱을 설치하고 바로 시작할 수 있다는 사실이 앞으로 제가 이 서비스를 더 사용할 가능성을 높여줍니다."

사용자들은 설치의 용이성을 칭찬했지만, 일부는 llama.cpp와 같은 로컬 모델을 설정하는 동안의 "jankiness"를 언급하며 MCP 서버와 Skills 사이의 연결을 것을 더 직관적으로 만들기 위한 사용자 인터페이스 개선을 제안했습니다. 한 사용자는 특정 복잡한 업무를 위해 로컬(저렴하고/비공개) 모델과 고성능능력 모델(예: Claude)을 혼합하여 사용하기 위해 작업별로 모델 제공업체를 재정의할 수 있는 기능을 요청했습니다.

다른 커뮤니티 구성원들은 이메일이나 티켓 트래커(예: Linear)와 같은 기존 도구를 사용하는 대신 별도의 인박스를 사용하는 것의 필요성에 대해 의 질문문을 던졌으나, 전용 에이전트 인박스는 에이전틱 워크플로우를 위한 필수적인 진화라고 제안했습니다.

Sources

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트