runner/README.md
Markov 8b6ea6c462 Initial runner: agent container + host runner + IPC
- agent/: Claude Agent SDK inside Docker container
  - Persistent sessions (resume/checkpoint)
  - MCP tools for Tracker (chat, tasks)
  - File-based IPC protocol
- runner.py: Host-side container manager
  - Docker lifecycle management
  - IPC file processing → Tracker REST API
  - Interactive CLI for testing
- Dockerfile: node:22-slim + Claude Agent SDK
- Based on NanoClaw architecture, stripped to essentials
2026-02-16 22:31:30 +01:00

57 lines
2.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
Универсальный 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 sessions
- `mcp.ts` — MCP tools для работы с Tracker (chat, tasks)
### runner.py — код на хосте
- Запускает Docker контейнеры
- Маршрутизирует IPC файлы → Tracker REST API
- Будущее: WebSocket к Tracker для real-time событий
## Использование
```bash
# Собрать 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 внутри контейнера.