Универсальный runner для AI-агентов Team Board. Контейнеризованный, multi-model.
| agent | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
| runner.py | ||
Team Board Runner
Универсальный runner для AI-агентов Team Board. Запускает агентов в Docker-контейнерах с изоляцией.
Архитектура
Host (runner.py) Docker Container (agent)
┌──────────────┐ stdin/stdout ┌──────────────────────┐
│ Runner │◄──────────────────►│ Claude Agent SDK │
│ │ │ + MCP Tools │
│ - Container │ IPC files │ + Persistent │
│ manager │◄──────────────────►│ Sessions │
│ - IPC → │ │ + SQLite (internal) │
│ Tracker │ │ │
└──────────────┘ └──────────────────────┘
Компоненты
agent/ — код внутри контейнера
index.ts— Claude Agent SDK query loop с persistent sessionsmcp.ts— MCP tools для работы с Tracker (chat, tasks)
runner.py — код на хосте
- Запускает Docker контейнеры
- Маршрутизирует IPC файлы → Tracker REST API
- Будущее: WebSocket к Tracker для real-time событий
Использование
# Собрать Docker образ
docker build -t team-board-agent .
# Запустить интерактивную сессию
CLAUDE_CODE_OAUTH_TOKEN=xxx python3 runner.py --slug coder --name "Кодер"
IPC Protocol
Агент внутри контейнера общается с runner'ом через файлы:
/workspace/ipc/input/*.json— сообщения от runner'а к агенту/workspace/ipc/messages/*.json— чат-сообщения от агента/workspace/ipc/tasks/*.json— операции с задачами от агента/workspace/ipc/input/_close— сигнал завершения
Multi-model (будущее)
Архитектура позволяет подключить другие модели:
- Gemini (через MCP или прямой API)
- ChatGPT (через API)
- Локальные модели (ollama)
Для этого нужно заменить Claude Agent SDK на соответствующий SDK внутри контейнера.