592 lines
29 KiB
Markdown
592 lines
29 KiB
Markdown
# Session: 2026-05-19 10:57:28 UTC
|
||
|
||
- **Session Key**: agent:main:telegram:direct:126472752
|
||
- **Session ID**: 7417786c-414e-4e51-a80b-cd7f7a269634
|
||
- **Source**: telegram
|
||
|
||
## Conversation Summary
|
||
|
||
assistant: Хороший вопрос. Вот что я нашла:
|
||
|
||
**Да, можно сделать Analyst как отдельного агента в OpenClaw с использованием Claude CLI.** Есть два пути:
|
||
|
||
---
|
||
|
||
**Вариант 1: Полноценный агент OpenClaw (`agents.list[]`) + Claude CLI backend**
|
||
|
||
```json5
|
||
{
|
||
agents: {
|
||
list: [
|
||
{ id: "main", default: true, workspace: "~/.openclaw/workspace" },
|
||
{
|
||
id: "analyst",
|
||
name: "Analyst",
|
||
workspace: "~/.openclaw/workspace-analyst",
|
||
model: "claude-cli/claude-sonnet-4-6",
|
||
sandbox: { mode: "off" },
|
||
tools: {
|
||
profile: "coding",
|
||
allow: ["read", "write", "edit", "exec"],
|
||
},
|
||
},
|
||
],
|
||
},
|
||
}
|
||
```
|
||
|
||
**Плюсы:**
|
||
- Полноценный агент OpenClaw со своим workspace, AGENTS.md, памятью, скиллами
|
||
- Может получать сообщения через bindings (Plane webhook → канал → агент)
|
||
- Может использовать OpenClaw tools (filesystem, exec, memory)
|
||
- Claude CLI как backend = нативная работа с Claude Code (сессии, resume)
|
||
- Можно общаться с ним через `sessions_send` из Стрим или Orchestrator
|
||
|
||
**Минусы:**
|
||
- Claude CLI backend — это "text-only fallback", не primary path (по доке)
|
||
- Но с `bundleMcp: true` получает доступ к OpenClaw tools через MCP bridge
|
||
|
||
---
|
||
|
||
**Вариант 2: Полноценный агент OpenClaw + обычный API model (не CLI)**
|
||
|
||
```json5
|
||
{
|
||
id: "analyst",
|
||
model: "anthropic/claude-sonnet-4-6",
|
||
workspace: "~/.openclaw/workspace-analyst",
|
||
}
|
||
```
|
||
|
||
**Плюсы:**
|
||
- Стабильнее (API, не CLI)
|
||
- Полный доступ к OpenClaw tools нативно
|
||
- Проще в настройке
|
||
|
||
**Минусы:**
|
||
- Не использует Claude Code CLI (а ты спрашивал именно про него)
|
||
|
||
---
|
||
|
||
**Вариант 3: Гибрид — агент OpenClaw, но запускает Claude CLI через exec/subagent для тяжёлой работы**
|
||
|
||
Агент `analyst` живёт в OpenClaw как обычный API-агент, но когда нужно — вызывает `claude -p "..."` через exec на mva154 для специфических задач (работа с git repo, чтение большого контекста).
|
||
|
||
---
|
||
|
||
**Моя рекомендация:**
|
||
|
||
**Вариант 2** (обычный OpenClaw агент на API) — самый надёжный и функциональный. Claude CLI backend задуман как fallback, а не как primary runtime для агента. Для Analyst'а важнее стабильность и доступ к Plane MCP / filesystem, чем фичи Claude Code.
|
||
|
||
Claude CLI имеет смысл для **Developer/Architect/Reviewer** — им нужна нативная работа с git repo, длинные сессии кодинга, `--resume`. Analyst'у это не нужно — он пишет документы.
|
||
|
||
Что думаешь? Или у тебя конкретная причина хотеть именно CLI для Analyst'а?
|
||
user: Conversation info (untrusted metadata):
|
||
```json
|
||
{
|
||
"chat_id": "telegram:126472752",
|
||
"message_id": "14541",
|
||
"sender_id": "126472752",
|
||
"sender": "Слава",
|
||
"timestamp": "Tue 2026-05-19 10:28 UTC"
|
||
}
|
||
```
|
||
|
||
Sender (untrusted metadata):
|
||
```json
|
||
{
|
||
"label": "Слава (126472752)",
|
||
"id": "126472752",
|
||
"name": "Слава",
|
||
"username": "SlavaMel"
|
||
}
|
||
```
|
||
|
||
Conversation context (untrusted, chronological, selected for current message):
|
||
#14528 Mon 2026-05-18 20:22 UTC Слава: Вспомни проект мультиагенты
|
||
#14530 Mon 2026-05-18 20:52 UTC Слава: Что готово из этого?
|
||
#14533 Mon 2026-05-18 21:58 UTC ->#14531 Слава: Проверь глубокий анализ и ревью mva154, а также всей документации по проекту. Дай заключение
|
||
#14535 Tue 2026-05-19 05:01 UTC ->#14534 Слава: Claude code cli установлен на mva154
|
||
#14537 Tue 2026-05-19 05:02 UTC Слава: Почитай proposal , есть данные для роли аналитик?
|
||
#14539 Tue 2026-05-19 05:12 UTC Слава: Да, хоче пересмотреть решение. При этом, ответь на вопрос, можно ли его сделать не как субагента, а как отдельного агента в openclaw, но с использованием claude cli?
|
||
|
||
Давай проговорим поведение и правила этого агента , на базе openclaw
|
||
assistant: Давай проговорим. Вот как я вижу Analyst-агента на базе OpenClaw:
|
||
|
||
---
|
||
|
||
**Analyst — отдельный агент OpenClaw**
|
||
|
||
**Идентичность:**
|
||
- `id: "analyst"`
|
||
- Свой workspace: `~/.openclaw/workspace-analyst`
|
||
- Свой AGENTS.md с системным промптом из proposal
|
||
- Модель: `anthropic/claude-sonnet-4-6` (API, не CLI — для Analyst'а стабильность важнее)
|
||
|
||
---
|
||
|
||
**Триггеры запуска (когда он работает):**
|
||
|
||
1. **Стрим вызывает через `sessions_spawn(agentId: "analyst")`** — передаёт task с plane_id и контекстом
|
||
2. **Или Orchestrator (когда будет)** — через webhook при создании Work Item в Plane
|
||
|
||
---
|
||
|
||
**Что он делает (поведение):**
|
||
|
||
1. Читает `00-business-request.md` из git-репо проекта
|
||
2. Читает `CLAUDE.md` проекта для контекста
|
||
3. Если неясности — формирует список вопросов, пишет `01-questions.md`, **останавливается**
|
||
4. После получения ответов — пишет:
|
||
- `01-brd.md`
|
||
- `02-trz.md`
|
||
- `03-acceptance-criteria.md`
|
||
- `04-test-plan.yaml`
|
||
5. Коммитит в ветку `feature/<plane-id>-*`
|
||
6. Запрашивает approve у стейкхолдера (через Plane или через сообщение Стрим)
|
||
|
||
---
|
||
|
||
**Правила (constraints):**
|
||
|
||
- ❌ Не пишет код
|
||
- ❌ Не трогает архитектуру, дизайн, ADR
|
||
- ❌ Не закрывает задачу без `:approved:` от Славы
|
||
- ❌ Не угадывает — если неясно, спрашивает
|
||
- ✅ Может читать весь репо (для контекста)
|
||
- ✅ Может писать только в `docs/work-items/<id>/`
|
||
- ✅ Может коммитить в feature-ветку
|
||
- ✅ Может общаться через Plane (комментарии) или через OpenClaw (sessions_send обратно к Стрим)
|
||
|
||
---
|
||
|
||
**Открытые вопросы для обсуждения:**
|
||
|
||
1. **Как он получает ответы на вопросы?** Варианты:
|
||
- Через Plane (комментарий → webhook → повторный запуск)
|
||
- Через Стрим (я передаю ответы Славы через sessions_send)
|
||
- Ждёт в сессии (long-running session, не one-shot)
|
||
|
||
2. **Доступ к Plane** — через MCP, через API напрямую (exec curl), или через Стрим как прокси?
|
||
|
||
3. **Доступ к Git** — exec `git` на mva154 через SSH, или клонирует локально в свой workspace?
|
||
|
||
4. **Кто контролирует flow?** Пока нет Orchestrator'а:
|
||
- Стрим запускает Analyst вручную
|
||
- Analyst отчитывается Стрим
|
||
- Стрим передаёт Славе на approve
|
||
|
||
5. **Итерации** — если Слава говорит "переделай BRD" — это новый spawn или resume сессии?
|
||
|
||
Что из этого хочешь зафиксировать, что поменять?
|
||
user: Conversation info (untrusted metadata):
|
||
```json
|
||
{
|
||
"chat_id": "telegram:126472752",
|
||
"message_id": "14543",
|
||
"sender_id": "126472752",
|
||
"sender": "Слава",
|
||
"timestamp": "Tue 2026-05-19 10:31 UTC"
|
||
}
|
||
```
|
||
|
||
Sender (untrusted metadata):
|
||
```json
|
||
{
|
||
"label": "Слава (126472752)",
|
||
"id": "126472752",
|
||
"name": "Слава",
|
||
"username": "SlavaMel"
|
||
}
|
||
```
|
||
|
||
Conversation context (untrusted, chronological, selected for current message):
|
||
#14528 Mon 2026-05-18 20:22 UTC Слава: Вспомни проект мультиагенты
|
||
#14530 Mon 2026-05-18 20:52 UTC Слава: Что готово из этого?
|
||
#14533 Mon 2026-05-18 21:58 UTC ->#14531 Слава: Проверь глубокий анализ и ревью mva154, а также всей документации по проекту. Дай заключение
|
||
#14535 Tue 2026-05-19 05:01 UTC ->#14534 Слава: Claude code cli установлен на mva154
|
||
#14537 Tue 2026-05-19 05:02 UTC Слава: Почитай proposal , есть данные для роли аналитик?
|
||
#14539 Tue 2026-05-19 05:12 UTC Слава: Да, хоче пересмотреть решение. При этом, ответь на вопрос, можно ли его сделать не как субагента, а как отдельного агента в openclaw, но с использованием claude cli?
|
||
#14541 Tue 2026-05-19 10:28 UTC Слава: Давай проговорим поведение и правила этого агента , на базе openclaw
|
||
|
||
Может рассматреть вариант не суб агента а агента?
|
||
assistant: Да, именно это я и описала — **полноценный агент**, не субагент. Разница:
|
||
|
||
**Субагент** (`sessions_spawn`) — одноразовый child-процесс внутри сессии Стрим. Умер — и нет его. Нет своего workspace, нет памяти между запусками.
|
||
|
||
**Агент** (`agents.list[]`) — первоклассный гражданин OpenClaw. Равноправен со Стрим. Имеет:
|
||
- Свой `id` в конфиге
|
||
- Свой workspace с AGENTS.md, памятью, скиллами
|
||
- Свои сессии (persistent, с историей)
|
||
- Может быть привязан к каналу через bindings
|
||
- Может получать сообщения напрямую (не через Стрим)
|
||
|
||
---
|
||
|
||
**Что это меняет для Analyst'а:**
|
||
|
||
1. **Слава может писать Analyst'у напрямую** — через отдельный чат/канал, без Стрим как посредника
|
||
2. **Analyst помнит контекст между сессиями** — свой workspace, свои daily notes
|
||
3. **Analyst может быть привязан к Plane** — webhook приходит → binding направляет на analyst → он сам начинает работу
|
||
4. **Итерации нативные** — Слава пишет "переделай" → Analyst видит в своей сессии, правит
|
||
|
||
---
|
||
|
||
**Как это выглядит в конфиге:**
|
||
|
||
```json5
|
||
{
|
||
agents: {
|
||
list: [
|
||
{ id: "main", default: true, workspace: "~/.openclaw/workspace" },
|
||
{
|
||
id: "analyst",
|
||
name: "Analyst",
|
||
workspace: "~/.openclaw/workspace-analyst",
|
||
model: "anthropic/claude-sonnet-4-6",
|
||
identity: { name: "Analyst", emoji: "📋" },
|
||
sandbox: { mode: "off" },
|
||
},
|
||
],
|
||
},
|
||
bindings: [
|
||
// Analyst получает сообщения из определённого канала/чата
|
||
{ agentId: "analyst", match: { channel: "telegram", peer: { kind: "group", id: "<analyst-group-id>" } } },
|
||
],
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
**Вопрос маршрутизации — как Слава общается с Analyst'ом:**
|
||
|
||
Варианты:
|
||
- **Отдельный Telegram-чат/группа** — binding направляет туда Analyst'а
|
||
- **Через Plane** (комментарии → webhook → канал Analyst'а)
|
||
- **Через Стрим** — я передаю задачу через `sessions_send`, но Analyst живёт в своей сессии
|
||
|
||
Какой вариант ближе? И ещё вопрос — хочешь ли ты общаться с Analyst'ом напрямую, или всегда через Стрим как координатора?
|
||
user: Conversation info (untrusted metadata):
|
||
```json
|
||
{
|
||
"chat_id": "telegram:126472752",
|
||
"message_id": "14545",
|
||
"sender_id": "126472752",
|
||
"sender": "Слава",
|
||
"timestamp": "Tue 2026-05-19 10:35 UTC"
|
||
}
|
||
```
|
||
|
||
Sender (untrusted metadata):
|
||
```json
|
||
{
|
||
"label": "Слава (126472752)",
|
||
"id": "126472752",
|
||
"name": "Слава",
|
||
"username": "SlavaMel"
|
||
}
|
||
```
|
||
|
||
Conversation context (untrusted, chronological, selected for current message):
|
||
#14528 Mon 2026-05-18 20:22 UTC Слава: Вспомни проект мультиагенты
|
||
#14530 Mon 2026-05-18 20:52 UTC Слава: Что готово из этого?
|
||
#14533 Mon 2026-05-18 21:58 UTC ->#14531 Слава: Проверь глубокий анализ и ревью mva154, а также всей документации по проекту. Дай заключение
|
||
#14535 Tue 2026-05-19 05:01 UTC ->#14534 Слава: Claude code cli установлен на mva154
|
||
#14537 Tue 2026-05-19 05:02 UTC Слава: Почитай proposal , есть данные для роли аналитик?
|
||
#14539 Tue 2026-05-19 05:12 UTC Слава: Да, хоче пересмотреть решение. При этом, ответь на вопрос, можно ли его сделать не как субагента, а как отдельного агента в openclaw, но с использованием claude cli?
|
||
#14541 Tue 2026-05-19 10:28 UTC Слава: Давай проговорим поведение и правила этого агента , на базе openclaw
|
||
#14543 Tue 2026-05-19 10:31 UTC Слава: Может рассматреть вариант не суб агента а агента?
|
||
|
||
Хочу общаться напрямую через отдельную телегу и plane
|
||
assistant: Отлично. Тогда вот схема:
|
||
|
||
---
|
||
|
||
**Analyst — полноценный агент OpenClaw, доступен через:**
|
||
1. **Отдельный Telegram-чат** (direct с ботом или отдельный бот)
|
||
2. **Plane** (комментарии на Work Item → webhook → агент)
|
||
|
||
---
|
||
|
||
**Поток работы:**
|
||
|
||
```
|
||
Слава (Telegram) ──────► Analyst agent
|
||
Слава (Plane comment) ──► Analyst agent (через webhook)
|
||
Analyst ──► Git (коммит в feature-ветку)
|
||
Analyst ──► Plane (обновление статуса, комментарии)
|
||
Analyst ──► Слава (ответ в Telegram / Plane)
|
||
```
|
||
|
||
Стрим в этой цепочке **не участвует** — Analyst автономен.
|
||
|
||
---
|
||
|
||
**Технические вопросы, которые нужно решить:**
|
||
|
||
1. **Telegram-бот** — тот же бот OpenClaw (второй аккаунт/чат) или отдельный бот?
|
||
- Если тот же бот → binding по `peer.id` (отдельная группа или direct)
|
||
- Если отдельный бот → второй Telegram channel в OpenClaw
|
||
|
||
2. **Plane webhook** — куда приходит?
|
||
- Вариант А: напрямую в OpenClaw (нужен endpoint, который маршрутизирует на analyst)
|
||
- Вариант Б: через Orchestrator (когда будет)
|
||
- Вариант В: пока без webhook — Слава пишет в Telegram, Analyst сам смотрит Plane
|
||
|
||
3. **Доступ к Git-репо** — Analyst должен:
|
||
- Клонировать репо в свой workspace
|
||
- Коммитить и пушить в feature-ветку
|
||
- Нужен git credentials (SSH key или token для Gitea)
|
||
|
||
4. **Доступ к Plane API** — через exec curl или через MCP?
|
||
- Пока нет Plane MCP → exec curl с `PLANE_API_TOKEN`
|
||
- Или написать простой скилл `plane-api`
|
||
|
||
5. **Память между сессиями** — Analyst помнит контекст проекта:
|
||
- Свой workspace с `AGENTS.md` (системный промпт из proposal)
|
||
- `memory/` для заметок между сессиями
|
||
- Клон репо для доступа к `CLAUDE.md` и `docs/`
|
||
|
||
---
|
||
|
||
**Что нужно для запуска (минимум):**
|
||
|
||
- [ ] Добавить `analyst` в `agents.list[]` в openclaw.json
|
||
- [ ] Создать workspace `~/.openclaw/workspace-analyst/` с AGENTS.md
|
||
- [ ] Настроить binding на Telegram (отдельный чат/группа)
|
||
- [ ] Дать доступ к Gitea (SSH key или token)
|
||
- [ ] Дать `PLANE_API_TOKEN` в env
|
||
|
||
---
|
||
|
||
**Что решить сейчас:**
|
||
|
||
1. Тот же Telegram-бот или отдельный?
|
||
2. Plane webhook сразу или пока руками (Слава пишет в Telegram)?
|
||
3. Какой проект первый — enduro-trails?
|
||
user: Conversation info (untrusted metadata):
|
||
```json
|
||
{
|
||
"chat_id": "telegram:126472752",
|
||
"message_id": "14547",
|
||
"sender_id": "126472752",
|
||
"sender": "Слава",
|
||
"timestamp": "Tue 2026-05-19 10:37 UTC"
|
||
}
|
||
```
|
||
|
||
Sender (untrusted metadata):
|
||
```json
|
||
{
|
||
"label": "Слава (126472752)",
|
||
"id": "126472752",
|
||
"name": "Слава",
|
||
"username": "SlavaMel"
|
||
}
|
||
```
|
||
|
||
Conversation context (untrusted, chronological, selected for current message):
|
||
#14528 Mon 2026-05-18 20:22 UTC Слава: Вспомни проект мультиагенты
|
||
#14530 Mon 2026-05-18 20:52 UTC Слава: Что готово из этого?
|
||
#14533 Mon 2026-05-18 21:58 UTC ->#14531 Слава: Проверь глубокий анализ и ревью mva154, а также всей документации по проекту. Дай заключение
|
||
#14535 Tue 2026-05-19 05:01 UTC ->#14534 Слава: Claude code cli установлен на mva154
|
||
#14537 Tue 2026-05-19 05:02 UTC Слава: Почитай proposal , есть данные для роли аналитик?
|
||
#14539 Tue 2026-05-19 05:12 UTC Слава: Да, хоче пересмотреть решение. При этом, ответь на вопрос, можно ли его сделать не как субагента, а как отдельного агента в openclaw, но с использованием claude cli?
|
||
#14541 Tue 2026-05-19 10:28 UTC Слава: Давай проговорим поведение и правила этого агента , на базе openclaw
|
||
#14543 Tue 2026-05-19 10:31 UTC Слава: Может рассматреть вариант не суб агента а агента?
|
||
#14545 Tue 2026-05-19 10:35 UTC Слава: Хочу общаться напрямую через отдельную телегу и plane
|
||
|
||
Пока запиши это в бэклог проекта мульти агента.
|
||
assistant: (empty)
|
||
assistant: Записала в `tasks/multi-agent/BACKLOG.md`. Там зафиксировано:
|
||
|
||
- Решение: Analyst = отдельный агент OpenClaw (не субагент, не Стрим)
|
||
- Каналы: отдельный Telegram + Plane напрямую
|
||
- Поведение и правила
|
||
- TODO-лист для запуска
|
||
- Статус инфраструктуры
|
||
|
||
Когда будешь готов двигать дальше — начнём с открытых вопросов: какой Telegram-бот и какой проект первый.
|
||
user: Conversation info (untrusted metadata):
|
||
```json
|
||
{
|
||
"chat_id": "telegram:126472752",
|
||
"message_id": "14551",
|
||
"sender_id": "126472752",
|
||
"sender": "Слава",
|
||
"timestamp": "Tue 2026-05-19 10:54 UTC"
|
||
}
|
||
```
|
||
|
||
Sender (untrusted metadata):
|
||
```json
|
||
{
|
||
"label": "Слава (126472752)",
|
||
"id": "126472752",
|
||
"name": "Слава",
|
||
"username": "SlavaMel"
|
||
}
|
||
```
|
||
|
||
Conversation context (untrusted, chronological, selected for current message):
|
||
#14528 Mon 2026-05-18 20:22 UTC Слава: Вспомни проект мультиагенты
|
||
#14530 Mon 2026-05-18 20:52 UTC Слава: Что готово из этого?
|
||
#14533 Mon 2026-05-18 21:58 UTC ->#14531 Слава: Проверь глубокий анализ и ревью mva154, а также всей документации по проекту. Дай заключение
|
||
#14535 Tue 2026-05-19 05:01 UTC ->#14534 Слава: Claude code cli установлен на mva154
|
||
#14537 Tue 2026-05-19 05:02 UTC Слава: Почитай proposal , есть данные для роли аналитик?
|
||
#14539 Tue 2026-05-19 05:12 UTC Слава: Да, хоче пересмотреть решение. При этом, ответь на вопрос, можно ли его сделать не как субагента, а как отдельного агента в openclaw, но с использованием claude cli?
|
||
#14541 Tue 2026-05-19 10:28 UTC Слава: Давай проговорим поведение и правила этого агента , на базе openclaw
|
||
#14543 Tue 2026-05-19 10:31 UTC Слава: Может рассматреть вариант не суб агента а агента?
|
||
#14545 Tue 2026-05-19 10:35 UTC Слава: Хочу общаться напрямую через отдельную телегу и plane
|
||
#14547 Tue 2026-05-19 10:37 UTC Слава: Пока запиши это в бэклог проекта мульти агента.
|
||
|
||
Я хочу, чтобы процесс запустился уже с учётом агента аналитика, plane и оркестратора, предложи как сделать
|
||
assistant: Окей, давай подумаем как запустить **весь процесс** сразу, а не по кусочкам.
|
||
|
||
---
|
||
|
||
**Минимальный жизнеспособный конвейер (MVP):**
|
||
|
||
```
|
||
Слава (Telegram/Plane) → Analyst → Git → Orchestrator → Developer (Claude CLI)
|
||
```
|
||
|
||
Без Architect, Reviewer, Tester, Deployer на старте. Добавим их потом. Но Analyst + Orchestrator + Developer — это уже рабочий цикл "задача → код".
|
||
|
||
---
|
||
|
||
**Что нужно поднять одновременно (параллельно):**
|
||
|
||
**Трек 1: Analyst agent**
|
||
- Создать workspace + AGENTS.md
|
||
- Добавить в openclaw.json
|
||
- Создать отдельного Telegram-бота (или группу)
|
||
- Binding на Telegram
|
||
- Доступ к Gitea + Plane API
|
||
|
||
**Трек 2: Orchestrator**
|
||
- FastAPI-сервис (минимум):
|
||
- `POST /webhook/plane` — слушает events от Plane
|
||
- `POST /webhook/gitea` — слушает push/PR events
|
||
- `GET /health`
|
||
- Логика MVP:
|
||
- Plane: Work Item создан → создать ветку + уведомить Analyst
|
||
- Plane: `:approved:` на подзадаче «Анализ» → QG-1 check → запустить Developer
|
||
- Gitea: PR создан + CI green → уведомить Славу
|
||
- Деплой: Docker на mva154, endpoint за Nginx
|
||
|
||
**Трек 3: Developer agent (Claude CLI)**
|
||
- Настроить `claude-cli` backend в OpenClaw **или** Orchestrator запускает `claude -p` через SSH
|
||
- Доступ к git-репо на mva154
|
||
- Системный промпт из proposal
|
||
|
||
**Трек 4: Plane настройка**
|
||
- Webhooks → Orchestrator endpoint
|
||
- Custom fields (qg_status, stage)
|
||
- Лейблы (stage:*, back-to:*)
|
||
- Шаблон Work Item с 7 подзадачами (или пока 3: Анализ, Разработка, Внедрение)
|
||
|
||
---
|
||
|
||
**Упрощения для MVP (чтобы запустить быстро):**
|
||
|
||
| Полная версия | MVP |
|
||
|---|---|
|
||
| 7 агентов | 2: Analyst + Developer |
|
||
| 7 подзадач | 3: Анализ → Разработка → Done |
|
||
| QG-0..QG-7 | QG-1 (ТЗ готово + approved) → QG-4 (CI green) |
|
||
| Plane MCP | exec curl к Plane API |
|
||
| Ephemeral preview | Нет |
|
||
| Reviewer + Tester | Слава смотрит PR руками |
|
||
| Auto-deploy | Ручной merge + deploy |
|
||
|
||
---
|
||
|
||
**Порядок действий (2-3 дня):**
|
||
|
||
**День 1:**
|
||
1. Создать Telegram-бота для Analyst (или решить про группу)
|
||
2. Настроить Analyst agent в OpenClaw (workspace, config, binding)
|
||
3. Настроить Plane webhooks (endpoint пока заглушка)
|
||
|
||
**День 2:**
|
||
4. Написать Orchestrator MVP (FastAPI, ~200 строк)
|
||
5. Задеплоить за Nginx на mva154
|
||
6. Подключить Plane webhooks к Orchestrator
|
||
|
||
**День 3:**
|
||
7. Настроить Developer через Claude CLI (auth, доступ к репо)
|
||
8. Связать: Orchestrator → запуск Developer при QG-1 pass
|
||
9. **Тестовый прогон end-to-end** на enduro-trails
|
||
|
||
---
|
||
|
||
**Вопросы для старта:**
|
||
|
||
1. **Telegram-бот** — создать нового или использовать текущего OpenClaw бота с отдельной группой?
|
||
2. **Orchestrator** — писать через Dev-агента или это как раз первая задача для нового конвейера (курица и яйцо)?
|
||
3. **Пилотная задача** — какую фичу enduro-trails прогнать первой?
|
||
user: Conversation info (untrusted metadata):
|
||
```json
|
||
{
|
||
"chat_id": "telegram:126472752",
|
||
"message_id": "14553",
|
||
"sender_id": "126472752",
|
||
"sender": "Слава",
|
||
"timestamp": "Tue 2026-05-19 10:55 UTC"
|
||
}
|
||
```
|
||
|
||
Sender (untrusted metadata):
|
||
```json
|
||
{
|
||
"label": "Слава (126472752)",
|
||
"id": "126472752",
|
||
"name": "Слава",
|
||
"username": "SlavaMel"
|
||
}
|
||
```
|
||
|
||
Conversation context (untrusted, chronological, selected for current message):
|
||
#14530 Mon 2026-05-18 20:52 UTC Слава: Что готово из этого?
|
||
#14533 Mon 2026-05-18 21:58 UTC ->#14531 Слава: Проверь глубокий анализ и ревью mva154, а также всей документации по проекту. Дай заключение
|
||
#14535 Tue 2026-05-19 05:01 UTC ->#14534 Слава: Claude code cli установлен на mva154
|
||
#14537 Tue 2026-05-19 05:02 UTC Слава: Почитай proposal , есть данные для роли аналитик?
|
||
#14539 Tue 2026-05-19 05:12 UTC Слава: Да, хоче пересмотреть решение. При этом, ответь на вопрос, можно ли его сделать не как субагента, а как отдельного агента в openclaw, но с использованием claude cli?
|
||
#14541 Tue 2026-05-19 10:28 UTC Слава: Давай проговорим поведение и правила этого агента , на базе openclaw
|
||
#14543 Tue 2026-05-19 10:31 UTC Слава: Может рассматреть вариант не суб агента а агента?
|
||
#14545 Tue 2026-05-19 10:35 UTC Слава: Хочу общаться напрямую через отдельную телегу и plane
|
||
#14547 Tue 2026-05-19 10:37 UTC Слава: Пока запиши это в бэклог проекта мульти агента.
|
||
#14551 Tue 2026-05-19 10:54 UTC Слава: Я хочу, чтобы процесс запустился уже с учётом агента аналитика, plane и оркестратора, предложи как сделать
|
||
|
||
Не, посмотри какие субагенты уже естт
|
||
assistant: (empty)
|
||
assistant: Вот что уже есть:
|
||
|
||
| id | name | model | workspace |
|
||
|---|---|---|---|
|
||
| `main` | (Стрим) | vibecode/claude-opus-4.7 | default |
|
||
| `dev` | Dev | vibecode/claude-sonnet-4.6 | workspace-dev |
|
||
| `legal` | Юрист | openrouter/claude-sonnet-4.6 | workspace-legal |
|
||
| `feda` | Федя | gigachat/GigaChat-2-Max | workspace-fedia |
|
||
| `kids` | Детский | qwen/qwen3.6-plus | workspace-kids |
|
||
| `bytik` | Байтик | qwen/qwen3.6-plus | workspace-bytik |
|
||
|
||
---
|
||
|
||
**Ключевое:** `dev` уже есть как отдельный агент. Это меняет картину.
|
||
|
||
Вопрос — ты имеешь в виду, что **Dev уже может быть Developer'ом** в мультиагентном конвейере? То есть:
|
||
|
||
- **Analyst** — новый агент (добавить)
|
||
- **Developer** — уже есть (`dev`), нужно только дать ему правильный промпт и доступ к git
|
||
- **Orchestrator** — новый сервис (написать)
|
||
|
||
И тогда MVP ещё проще:
|
||
|
||
```
|
||
Слава → Analyst (новый) → Git → Orchestrator → Dev (уже есть) → PR
|
||
```
|
||
|
||
Или ты хотел показать что-то другое? Какой из существующих агентов ты видишь в роли участника конвейера?
|