# Team Board Runner AI-агент для Team Board. Один процесс, прямой доступ к файлам, WebSocket к Tracker. ## Архитектура ``` ┌────────────────────────────────────────┐ │ Agent Runner (один процесс) │ │ │ │ ┌──────────────┐ ┌────────────────┐ │ │ │ Claude Agent │ │ WebSocket │ │ │ │ SDK │ │ Client │ │ │ │ (query loop, │ │ (Tracker :8100)│ │ │ │ sessions, │ │ │ │ │ │ tools) │ │ │ │ │ └──────────────┘ └────────────────┘ │ │ │ │ Прямой доступ к файлам, git, bash │ └────────────────────────────────────────┘ ``` ## Быстрый старт ```bash # Установка npm install # Тест (без Tracker, интерактивный режим) CLAUDE_CODE_OAUTH_TOKEN=xxx npm run test # Продакшн (с Tracker) CLAUDE_CODE_OAUTH_TOKEN=xxx \ AGENT_TOKEN=agent-xxx \ AGENT_SLUG=coder \ AGENT_NAME="Кодер" \ npm start ``` ## Переменные окружения | Переменная | Описание | По умолчанию | |-----------|----------|-------------| | `CLAUDE_CODE_OAUTH_TOKEN` | OAuth токен Claude (подписка) | — | | `ANTHROPIC_API_KEY` | API ключ Anthropic (альтернатива) | — | | `TRACKER_URL` | WebSocket URL Tracker | `ws://localhost:8100/ws` | | `AGENT_TOKEN` | Токен агента в Tracker | — | | `AGENT_SLUG` | Slug агента | `coder` | | `AGENT_NAME` | Имя агента | `Кодер` | | `AGENT_WORKSPACE` | Рабочая директория | `/opt/team-board-agents/{slug}` | | `LOBBY_CHAT_ID` | ID лобби-чата для авто-подписки | — | ## Режимы ### Test mode (`--test`) Интерактивный режим без Tracker. Пишешь в консоли — агент отвечает. Для проверки что SDK работает. ### Tracker mode (по умолчанию) Подключается к Tracker по WebSocket, слушает чат-сообщения и задачи, отвечает через AI. ## Как работает 1. Подключается к Tracker по WebSocket 2. Аутентифицируется токеном агента 3. Подписывается на чат-комнаты 4. При упоминании (`@slug`) → запускает Claude Agent SDK `query()` 5. Результат → отправляет обратно в чат через WebSocket 6. При назначении задачи → берёт, выполняет, постит результат ## Persistent Sessions Claude Agent SDK сохраняет сессии автоматически. При следующем вызове `query()` с тем же `sessionId` — агент помнит контекст предыдущих разговоров. ## Multi-model (будущее) Текущая архитектура позволяет заменить Claude Agent SDK на другие: - Gemini SDK - OpenAI SDK - Локальные модели (ollama)