API и сервер
Запуск без интерфейса.
Наблюдение вживую.
HTTP-сервер на Axum с аутентификацией, rate limiting, SSE-стримингом событий, управлением в процессе выполнения и встроенным веб-дашбордом — всё в одном бинарнике.
Аутентификация
API-ключи + rate limiting
Установите FATHOM_API_KEYS (через запятую) — и каждый запрос /api/v1/* требует ключ: Bearer-токен или заголовок X-Api-Key. Скользящее окно rate limiting возвращает 429 при превышении. Не задано = открытый доступ для разработки.
curl -H "Authorization: Bearer $KEY" \
http://localhost:8080/api/v1/sessions
curl -H "X-Api-Key: $KEY" \
http://localhost:8080/api/v1/memories/statsЭндпоинты
Всё — это эндпоинт
Сессии
/api/v1/sessionsЗапустить сессию (запрос, профиль, модель, бюджет)/api/v1/sessionsСписок сессий со статусом и прогрессом/api/v1/sessions/:idСостояние сессии, дерево агентов, расход токенов/api/v1/sessions/:id/resultsРезультаты, контакты, экспорты/api/v1/sessions/:idОтменить выполняемую сессиюАгенты
/api/v1/agentsВсе агенты по сессиям (дерево)/api/v1/agents/:idДетали агента, сообщения, tool-callКонтрольная панель
/api/v1/sessions/:id/steerУправление mid-run — перенаправить сессию/api/v1/sessions/:id/answerОтветить на `question` tool-call агента/api/v1/sessions/:id/approveОдобрить/отклонить сайд-эффект инструмент (approval)События
/api/v1/eventsГлобальный SSE-поток событий агентов/api/v1/sessions/:id/eventsSSE-поток по сессии (дельты, tool-call, результаты)Память
/api/v1/memoriesПоиск по семантической памяти/api/v1/memories/absorbПоглотить факт (дедуп + supersedes)/api/v1/memories/statsРазмер хранилища, области, статистика графа/api/v1/memories/distillПерегнать run-факты в долгосрочные знания/api/v1/memories/gcАрхивировать устаревшие факты, уплотнить области/api/v1/memories/:idПросмотр/удаление записи памятиЗадачи
/api/v1/jobsОтправить долгосрочную фоновую задачу (task, attempts)/api/v1/jobsСписок задач/api/v1/jobs/:idСтатус задачи/api/v1/jobs/:id/logstdout + stderr всех попыток/api/v1/jobs/:idОтменить активную задачу/api/v1/jobs/:id/rerunПерезапустить завершённую/застрявшую задачуУправление и совместная работа
/api/v1/governance/policyRead or replace the governance policy/api/v1/governance/decideEvaluate a governed action/api/v1/governance/auditRead governance audit events/api/v1/coworkersList or create persistent coworker profiles/api/v1/coworkers/:idInspect or update a coworker profile/api/v1/channelsList or create collaboration channels/api/v1/channels/:idUpdate or remove a channel/api/v1/schedulesList or create cron-like coworker schedules/api/v1/schedules/:idInspect, update, or remove a schedule/api/v1/schedules/claimAtomically claim due schedules for a scheduler tick/api/v1/ag-ui/eventsStream the Fathom AG-UI-compatible event subset over SSE/api/v1/ag-ui/healthProbe AG-UI bridge and advertised event-only capabilitiesСекреты и аудит
/api/v1/credentialsList redacted credential metadata or store a secret/api/v1/credentials/:idDelete a stored credential/api/v1/replayList redacted governed actions; filter by session or agent/api/v1/observability/summaryRead bounded live metrics and audit counts/api/v1/notifications/testOperator-triggered bounded test through one configured webhook, email or Telegram channelОпциональный компьютерный ретранслятор
/api/v1/computers/sessionStart a session on a configured computer relay/api/v1/computers/healthCheck whether the configured computer relay is reachable/api/v1/computers/snapshotRead the current snapshot from a configured relay/api/v1/computers/navigateNavigate the configured computer relay/api/v1/computers/clickClick through the configured computer relay/api/v1/computers/typeType through the configured computer relay/api/v1/computers/keySend a keyboard action through a configured relay/api/v1/computers/secretEnter a secret through a configured relay without returning or logging its value/api/v1/computers/screenshotCapture a screenshot from a configured relay/api/v1/computers/tabs*List, open, activate, or close tabs on a configured browser relay/api/v1/computers/control/take|releaseTake or release operator control of the configured relay/api/v1/computers/files*List, read, write, or delete confined workspace files on the relay/api/v1/computersList configured computers; supervisor lifecycle requires COMPUTER_TOKENСистема
/healthПроверка живости/metricsМетрики Prometheus/dashboardWeb-дашборд в одном файле: сессии, дерево агентов, память, задачи, живой SSEПример
Запустите сессию и управляйте mid-run
Сессии стартуют асинхронно. Следите за прогрессом в SSE-потоке, затем управляйте или отвечайте на вопросы, пока агенты ещё работают.
curl -X POST localhost:8080/api/v1/sessions \
-H "Content-Type: application/json" \
-d '{"query":"Find VPs of Engineering
at Series B fintech startups in SF"}'
# follow the live event stream
curl -N localhost:8080/api/v1/sessions/abc/events
# redirect mid-run
curl -X POST localhost:8080/api/v1/sessions/abc/steer \
-d '{"message":"Focus on Berlin instead"}'Наблюдаемость
Метрики Prometheus
Собирайте /metrics с вашего селф-хостед рантайма для телеметрии запросов, сессий и инструментов. Аутентифицированный API также предоставляет /api/v1/observability/summary для живых счетчиков и аудита безопасности.
| Метрика | Тип | Что считает |
|---|---|---|
| pr_http_requests_total | counter | requests by route and status |
| pr_request_duration_seconds | histogram | latency distribution |
| pr_sessions_total | counter | sessions started |
| pr_sessions_active | gauge | sessions running right now |
| pr_agents_spawned_total | counter | sub-agents across all trees |
| pr_tool_calls_total | counter | tool executions by name |
| pr_tokens_used_total | counter | LLM tokens consumed |
/metrics отдаёт счётчики запросов, задержки, метрики сессий и инструментов для дашбордов Grafana.
Дельта-токены, вызовы инструментов, запуск/завершение агентов и находки приходят как server-sent events — без поллинга.
GET /dashboard отдаёт одностраничный HTML-дашборд: сессии, дерево агентов, память, джобы, живая лента событий.
Доступ между origin настраивается через [server]-конфиг — ограничьте origin в продакшене.