Об этом проекте

AgentPod — это портативный командный центр для сред выполнения ИИ-агентов: единое место для управления средами, где живут агенты, независимо от того, где они работают. Для каждой среды он управляет файловой системой, журналами, терминалом, конфигурацией, состоянием здоровья, жизненным циклом, очисткой и подготовкой — на разных машинах, каркасах и сетевых границах. Он ориентирован на подключение: вы указываете ему на уже запущенные среды или позволяете ему подготовить новые. Архитектура состоит из трех уровней. Консоль для оператора — это статическое SPA на SvelteKit, которое общается с хабом через HTTPS и WSS. Хаб построен на Bun, Hono и Postgres (через Drizzle) и выполняет функции реестра узлов/станций, брокера соединений, службы регистрации и аутентификации (Better Auth), журнала аудита и активности, а также драйвера подготовки. Агент узла — это статический двоичный файл Go, устанавливаемый на каждом хосте, который устанавливает исходящее соединение с хабом через WSS, поэтому он работает за NAT и CGNAT без необходимости открывать входящие порты. Каждый агент узла выполняет дескрипторы каркасов и локально выполняет контрактные команды. AgentPod включает дескрипторы для нескольких каркасов агентов — Hermes, OpenClaw, Claude Code, Codex, OpenCode и Pi — зарегистрированных в `apps/node-agent/cmd/agentpod-node/registry.go`. Каждый дескриптор оборачивает собственный CLI или API каркаса для перечисления сред, поиска конфигурации, журналов и рабочего пространства, а также реализации операций жизненного цикла без повторного изобретения внутренностей каждого каркаса. Развертывание простое: запустите хаб с Postgres и Bun (автоматическая миграция при первом запуске), соберите консоль с помощью pnpm и разверните статический вывод на Cloudflare Pages или любом статическом хостинге в субдомене регистрируемого домена хаба (чтобы файл cookie сеанса Better Auth оставался на том же сайте), затем зарегистрируйте агентов узлов на целевых хостах с помощью установочного скрипта через curl, который создает службу systemd. Предварительно собранные двоичные файлы для linux/darwin × amd64/arm64 публикуются на каждом теге `v*` через GitHub Actions. Статус — однопользовательский: одна учетная запись администратора, регистрация закрывается после первого пользователя, релизы помечены тегом `v0.1.x`. Граница изоляции арендаторов реализована — таблица `tenants`, поле `tenant_id` в каждой ограниченной таблице и вспомогательная функция `tenantScope()`, которая отказывается строить запрос без него, закрепленная модульными тестами. Все сегодня работает под единым начальным арендатором `fleet_00000000000000000000`; что осталось — это использование границы: организации, принципалы и биллинг. Предыдущий продукт на основе OpenCode заморожен на теге `v0.0.4-opencode` с архивированной документацией в `docs/archive/`. Лицензия MIT.