From 49aadf9c1d2fe4e0fb6a47a9f511e0e637a27ad9 Mon Sep 17 00:00:00 2001 From: Markov Date: Fri, 20 Feb 2026 23:37:43 +0100 Subject: [PATCH] Brainstorm: agent architecture, roles, MCP/skills, git workflow, file storage, references --- BRAINSTORM-AGENTS-2026-02-20.md | 134 ++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 BRAINSTORM-AGENTS-2026-02-20.md diff --git a/BRAINSTORM-AGENTS-2026-02-20.md b/BRAINSTORM-AGENTS-2026-02-20.md new file mode 100644 index 0000000..6ad7180 --- /dev/null +++ b/BRAINSTORM-AGENTS-2026-02-20.md @@ -0,0 +1,134 @@ +# Брейншторм: механика подключения агентов к 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)