AWS выложила в открытый доступ Pizza Bot — self-hosted приложение для ИИ-задач, которые выполняются, пока пользователь занимается другими делами. Результаты и решения, ждущие подтверждения, складываются в инбокс в стиле почтового клиента. Внутри Amazon более ранние версии обслуживали свыше 2000 человек: подготовка к встречам, черновики писем, сводки Slack, записи в CRM и исследования. Публичная версия собрана заново как открытый проект.
Код распространяется под лицензией Apache 2.0. Есть сборки для macOS, Windows и Linux, а также браузерный и терминальный клиенты, подключающиеся к локальному или отдельному бэкенду.
Три очереди: история, готовое, требующее решения
Задачи разложены по вкладкам. All — вся история тредов, Unread — завершённая работа, ждущая просмотра, Action — задачи, приостановленные для согласования или ответа. Треды можно раскладывать по папкам, а делегированных исполнителей — смотреть в панели Activity.
Запуск бывает трёх видов: вручную, по расписанию cron или через вебхук. Планировщиком владеет сервер. После простоя пропущенные интервалы cron дают один догоняющий запуск, а не воспроизведение каждого пропуска; факты срабатывания триггеров записываются надёжно.
DeepAgents и LangGraph: как устроено выполнение
Приложение использует DeepAgents и LangGraph для исполнения с сохранением состояния. API-сервер на Hono отвечает за выполнение и хранение. Клиенты Electron и браузерный делят интерфейс на React, а общаются с сервером по HTTP и server-sent events. Контрольные точки LangGraph сохраняют состояние треда и паузы согласования; отдельные хранилища SQLite держат память между тредами и метаданные приложения. Переподключившийся клиент может воспроизвести буферизованные события.
Закрытие треда или отключение клиента не останавливает работающий сервер. Но выход из настольного приложения гасит встроенный сервер и завершает активные запуски: контрольные точки сохраняют тред, а шаг, находившийся в работе, может потеряться. Чтобы задачи продолжались после закрытия десктопного клиента, нужен постоянно включённый бэкенд.
Провайдеры, навыки и согласования
Поддерживаются Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter и Ollama. Провайдера настраивают в Settings > Providers до запуска задач.
У агента есть операции с черновыми файлами и изолированный интерпретатор JavaScript без доступа к сети и файловой системе хоста. Он может делегировать работу через task, когда доступны готовые исполнители-навыки. Файловый слой отдельно поддерживает явные разрешения на папки и постоянную память.
Внешние инструменты открывают серверы MCP. Каждый файл SKILL.md задаёт инструкции исполнителя и его ограниченный доступ к инструментам. Навык становится вызываемым только тогда, когда доступны все объявленные зависимости. Поддерживаются существующие конфигурации .mcp.json, совместимые с Claude Code, а плагины упаковывают навыки вместе с серверами MCP.
Авторы навыков настраивают interruptOn и allowedDecisions, чтобы требовать подтверждения для конкретных инструментов. По этой политике пользователь может одобрить действие, отредактировать предложенные аргументы или отклонить его. Такие правила нужно задать для нужных инструментов — по умолчанию они не появляются.
Что это значит для небольшой команды
Pizza Bot — это не готовый сервис, а конструкция для самостоятельного развёртывания: код, десктопные сборки и вариант с отдельным бэкендом. Одно ограничение важно учесть при планировании: на каждый каталог данных SQLite приходится один процесс бэкенда. То есть горизонтально масштабировать хранилище простым добавлением процессов не получится.
По духу проект близок к другим открытым агентным рантаймам: Shepherd даёт форк и откат агентных запусков, а AgentENV от Kimi AI и kvcache-ai — платформу для агентного обучения на микро-VM Firecracker. Pizza Bot решает другую задачу — интерфейс и очередь для уже работающих агентов.
Частые вопросы
Что такое Pizza Bot?
Self-hosted приложение от AWS для фоновых ИИ-задач: оно собирает историю, готовые результаты и запросы на согласование в инбокс в стиле почты. Код открыт под Apache 2.0.
Кого это касается?
Тех, кто хочет запускать агентные задачи на своём железе и не отдавать данные внешнему сервису. Внутри Amazon ранние версии использовали более 2000 сотрудников.
Какие модели поддерживаются?
Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter и локальные модели через Ollama. Провайдера выбирают в Settings > Providers перед запуском задач.
Что будет, если закрыть приложение во время работы?
Отключение клиента или закрытие треда сервер не останавливает. Но выход из десктопного приложения гасит встроенный сервер и завершает активные запуски — шаг в работе может потеряться, хотя контрольная точка сохранит тред. Для непрерывной работы нужен постоянно включённый бэкенд.
Как запускаются задачи?
Вручную, по расписанию cron или через вебхук. Планированием занимается сервер: после простоя пропущенные интервалы дают один догоняющий запуск.
Как устроены согласования?
Автор навыка задаёт interruptOn и allowedDecisions для конкретных инструментов. Тогда пользователь может одобрить действие, отредактировать аргументы или отклонить его. Без такой настройки для нужного инструмента согласование не сработает.
Что такое SKILL.md?
Файл, который описывает инструкции исполнителя-навыка и его ограниченный доступ к инструментам. Навык вызывается только при наличии всех объявленных зависимостей.
Можно ли переиспользовать конфигурации Claude Code?
Да, поддерживаются существующие .mcp.json, совместимые с Claude Code. Плагины при этом упаковывают навыки вместе с серверами MCP.
Сколько процессов бэкенда можно поднять на одну базу?
Один. Каждый каталог данных SQLite рассчитан на один процесс бэкенда.
Источник: marktechpost.com