7.4 KiB
7.4 KiB
Брейншторм: механика подключения агентов к Team Board
Дата: 2026-02-20
Архитектура
Хозяин ──голос──→ Марков ──HTTP API──→ Team Board (Tracker)
Хозяин ──веб────→ team.uix.su ──────→ ↑
Хозяин ──tg─────→ Telegram Bridge ──WS──→ │
│
Агент-Архитектор ──────────────────WS/HTTP──→ │
Агент-Кодер #1 ────────────────────WS/HTTP──→ │
Агент-Кодер #2 ────────────────────WS/HTTP──→ │
Все входы равноправны. Team Board — центральный хаб. Система работает без Маркова.
Роли
| Роль | Кто | Что делает |
|---|---|---|
| Хозяин | Eugene | Ставит задачи, контролирует, одобряет MR |
| Марков | OpenClaw | Голосовой интерфейс хозяина, менеджер (необязателен) |
| Архитектор | Агент (Opus) | Декомпозиция фич → задачи, координация |
| Кодер | Агент (Sonnet) | Кодинг, MR, исправление конфликтов |
| Bridge | Telegram бот | Дублирует чат в Telegram и обратно |
Один Runner — разные роли
- Один и тот же binary/процесс
- Роль определяется конфигом: модель, prompt, capabilities
- Скилл для Runner'ов описывает взаимодействие с Tracker
Транспорт
- WebSocket — основной (persistent connection, события в реальном времени)
- HTTP Callback — альтернативный (Tracker POST'ит события на URL агента)
- HTTP API — для файлов, задач, регистрации
Агент = чёрный ящик
- Получает сообщения / задачи
- Имеет LLM + tools (Read, Write, Edit, Bash, WebSearch...)
- Отвечает в чат, создаёт подзадачи, открывает MR
- Настройки (prompt, роль) на стороне агента
Задачи
Жизненный цикл
backlog → todo → in_progress → in_review → done
↑ ↓
└── rejected ──┘
backlog → todo= назначение (человек или архитектор)todo= готова к работе, агент может взятьtask.take— атомарная операция (кто первый — того и тапки)- Большая задача → агент сам разбивает на подзадачи
Назначение
- Человек назначает вручную
- Архитектор создаёт и назначает
- Агент сам берёт из
todoпо capabilities - Через чат: "ребята, новая задача"
Git workflow
- Агент клонит repo в свою рабочую директорию
- Работает в отдельной ветке
- По завершении → Merge Request
- Ревью (агент/человек) → approve/reject
- Конфликты: решает тот, чей MR. После — повторный review.
- Автомерж после approve
Файлы проекта — гибрид
- Git repo — опционально (привязывается если проект кодовый)
- File storage — всегда (docs, картинки, видео, attachments)
- Доступ через HTTP API (агент может быть на другом сервере)
- Чат и задачи поддерживают прикрепление файлов
Проекты ≠ только код
- Кодовый проект: repo + files
- Документационный: только files
- Медийный: только files
Контекст проекта
- Документация в
docs/проекта или в file storage - Все агенты в чате = все в контексте
- НЕ привязываемся к конкретному LLM (никаких CLAUDE.md)
- Скилл для Runner'ов описывает где что искать
Проблема "глухого агента"
- LLM
query()блокирующий — агент не слышит новых сообщений - Решения: короткие задачи + checkpoint pattern (чекать между шагами)
Чат = лента событий
- Сообщения людей + агентов + системные уведомления
- MR создан/approved/rejected → в чат
- Статус задачи изменился → в чат
- Можно фильтровать по типу
Уведомления
- Всё в чат Team Board
- Telegram Bridge дублирует в Telegram группу
- Типы: task_created, task_updated, mr_created, mr_approved, agent_connected
Безопасность
- Аутентификация через токены (прописываются заранее при регистрации агента)
- Каждый агент = уникальный токен
- Пока без OAuth/сложной авторизации
Мониторинг
- Heartbeat — Tracker пингует агентов периодически
- Если агент не отвечает → статус
offline - Уведомление в чат: "Агент X перестал отвечать"
Тестирование / Ревью
- Другие агенты проверяют результат (агент-ревьюер)
- CI/CD на MR (Gitea Actions) — автотесты
Интеграция агентов с Tracker
- MCP-сервер для Tracker — нативные tools (create_task, send_message и т.д.)
- Скилл (fallback) — для моделей без MCP, инструкции с curl
- Скилл для правил — роль, стиль работы, когда что делать
- MCP = tools (ЧТО делать), Скилл = правила (КАК делать)
- Скилл можно автогенерировать из MCP-описания
Открытые вопросы
- Формат скилла для Runner'ов (взаимодействие с Tracker)
- Как агент определяет релевантность задачи для себя?
- Автоматическое назначение по capabilities (будущее)
- Интеграция с Gitea API для MR
- UX веб-клиента (отдельная тема)
Референсы
- MetaGPT (github.com/FoundationAgents/MetaGPT) — промпты ролей (PM, Architect, Engineer, QA), pub/sub между ролями, SOP. Забрать промпты для назначения ролей агентам.
- Claude Flow / Ruflo — claims, swarm топологии, multi-provider
- BMAD Method — brainstorming workflow, party mode (мульти-ролевой prompt)