runner/README.md
Markov d978544752 Rewrite: single process, no Docker, no IPC files
- One Node.js process with Claude Agent SDK + WebSocket to Tracker
- Direct filesystem access (code, git, bash)
- Test mode (--test): interactive CLI without Tracker
- Tracker mode: WS connection, chat mentions, task handling
- Persistent sessions via Agent SDK
- Removed: Docker, IPC files, host/container split, Python runner
2026-02-17 07:00:16 +01:00

80 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)