docs/archive/BRAINSTORM-AGENTS-2026-02-20.md

135 lines
7.4 KiB
Markdown
Raw Permalink 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
Дата: 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` — атомарная операция (кто первый — того и тапки)
- Большая задача → агент сам разбивает на подзадачи
### Назначение
1. Человек назначает вручную
2. Архитектор создаёт и назначает
3. Агент сам берёт из `todo` по capabilities
4. Через чат: "ребята, новая задача"
## 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)