Архитектура системы агентов¶
Обзор¶
Система агентов opencode_initializer реализует паттерн Универсального AI-сопроцессора с 15 специализированными агентами, оркестрируемыми через модель IPC с разделяемым состоянием. Каждый агент несёт якорь памяти [CTX: domain] для возобновления контекста после компактификации.
Таксономия агентов¶
Основные агенты (автономные, с полным доступом к инструментам)¶
| Агент | [CTX] | Роль | Мышление | Модель |
|---|---|---|---|---|
| build | build | Генерация кода, редактирование, рефакторинг | S1 / S2 | deepseek-v4-pro |
| plan | plan | Архитектура, планирование, дизайн | Только S2 | glm-5.2 |
| compaction | compact | Суммаризация контекста, обрезка | S1 | deepseek-v4-flash |
Подчинённые рабочие агенты (вызываются по задаче, с ограниченным доступом)¶
| Агент | [CTX] | Роль | Мышление | Модель |
|---|---|---|---|---|
| general | general | Обработка задач общего назначения | S1 / S2 | deepseek-v4-pro |
| explore | explore | Исследование кодовой базы (только чтение) | S1 | deepseek-v4-flash |
| scout | scout | Быстрый поиск символов/файлов/паттернов | S1 | deepseek-v4-flash |
| researcher | research | Веб-поиск, поиск документации | S1 | deepseek-v4-flash |
| code-reviewer | review | Проверка качества кода, deprecated API | S2 | glm-5.2 |
| reviewer | review | Состязательный поиск багов/регрессий | S2 | glm-5.2 |
| security-auditor | security | Секреты, инъекции, сканирование портов | S2 | deepseek-v4-pro |
| test-engineer | test | Написание тестов, граничные случаи, TDD | S1 | deepseek-v4-flash |
| critic | critic | Адвокат дьявола, поиск противоречий | S2 | deepseek-v4-pro |
| sme | sme | Экспертиза в домене, цитирование источников | S2 | deepseek-v4-flash |
| docs | docs | Написание документации, верификация | S1 | deepseek-v4-flash |
| orchestrator | orch | Декомпозиция задач, параллельный диспатч | S2 | glm-5.2 |
Отображение Dual-Process¶
Система 1 (Быстрая — сопоставление паттернов, задержка < 5с)¶
Агенты Системы 1 выполняют правки в одном файле, grep/glob поиск, поиск символов и шаблонный вывод. Работают с temperature: 0.1 и deepseek-v4-flash для минимальной задержки.
- build (простые правки) — вывод CO-STAR, атомарные правки
- compaction — сохранение ключевых решений, отбрасывание избыточного контекста
- explore — grep/glob/codegraph-исследование только для чтения
- scout — быстрый поиск файлов/символов/паттернов
- researcher — веб-поиск, получение документации, цитирование источников
- test-engineer — генерация тестов, покрытие граничных случаев
- docs — генерация документации, верификация команд
Система 2 (Медленная — методичная, без ограничения времени)¶
Агенты Системы 2 обрабатывают многофайловые рефакторинги, анализ зависимостей, архитектурные решения, состязательный обзор и новый дизайн. Работают с temperature: 0.1–0.3 и deepseek-v4-pro/glm-5.2.
- plan — анализ зависимостей, архитектурные предложения, утверждения Source Ladder
- build (сложные правки >3 файлов) — многофайловый рефакторинг
- general (сложные задачи) — делегированное исследование
- code-reviewer — проверка API-контрактов, флаги устаревания
- reviewer — охота на баги, анализ регрессий, ссылки file:line
- security-auditor — векторы инъекций, сканирование секретов
- critic — оспаривание предположений, оценка уверенности
- sme — глубокая доменная экспертиза, авторитетные источники
- orchestrator — декомпозиция задач, отслеживание зависимостей
Правило эскалации¶
Build-агент переходит с S1 на S2 когда: - Правка не удалась дважды на одной цели - Затронуто более 3 файлов - Неуверенность превышает 30% - Пользователь говорит «подумай об этом»
Поток оркестрации¶
+───────────────+
| orchestrator |
| [CTX: orch] |
+───────┬───────+
│
Декомпозиция задачи на подзадачи
│
+─────────────────┼─────────────────+
│ │ │
▼ ▼ ▼
+──────────+ +──────────+ +──────────+
│ build │ │ plan │ │ research │
│[CTX:build│ │[CTX:plan]│ │[CTX:res] │
+──────────+ +──────────+ +──────────+
│ │ │
▼ ▼ ▼
Изменения кода Архитектура Исходная документация
│ │ │
└─────────────────┼─────────────────┘
│
Агрегация результатов
│
+─────────────────┼─────────────────+
│ │ │
▼ ▼ ▼
+──────────+ +──────────+ +──────────+
│ reviewer │ │ critic │ │security-a│
│[CTX:rev] │ │[CTX:crit]│ │[CTX:sec] │
+──────────+ +──────────+ +──────────+
│ │ │
└─────────────────┼─────────────────┘
│
Синтез финального ответа
Правила диспатча¶
- orchestrator получает цель верхнего уровня
- Декомпозирует на независимые подзадачи (распараллеливаемые)
- Каждая подзадача направляется наиболее подходящему агенту:
- Изменения кода → build
- Архитектурный дизайн → plan
- Исследование → explore / scout / researcher
- Обзор → reviewer / code-reviewer / security-auditor
- Тестирование → test-engineer
- Вызов → critic
- Доменные знания → sme
- Документация → docs
- Результаты агрегируются, конфликты разрешаются, синтезируется финальный ответ
- Каждый диспатч журналируется в WAL
Иерархия памяти¶
┌─────────────────────────────────────────────────────────┐
│ ИЕРАРХИЯ ПАМЯТИ │
├─────────────┬─────────────────┬──────────────────────────┤
│ УРОВЕНЬ 1 │ УРОВЕНЬ 2 │ УРОВЕНЬ 3 │
│ WAL │ Спеки │ Артефакты │
│ (сессионный)│ (постоянные) │ (истина в коде) │
├─────────────┼─────────────────┼──────────────────────────┤
│ wal.jsonl │ docs/specs/ │ Код, тесты, конфиги │
│ ~/.cache/ │ AGENTS.md │ opencode.json │
│ opencode/ │ Навыки (Skills) │ *.sh, *.ts, *.rs │
├─────────────┼─────────────────┼──────────────────────────┤
│ Только │ Читать перед │ Переопределяют спеки │
│ добавление │ задачами домена │ при конфликтах │
│ Чекпоинт │ Писать после │ Обновлять спеки при │
│ каждые 10 │ архитектурных │ изменении артефактов │
│ ходов │ решений │ │
└─────────────┴─────────────────┴──────────────────────────┘
Протокол WAL (Уровень 1)¶
- Расположение:
~/.cache/opencode/wal.jsonl - Формат: записи JSONL с полями
ts,domain,decision,rationale,impact,confidence,mode - Триггеры чекпоинта: ошибка инструмента, смена модели, архитектурное решение, каждые 10 ходов
- Compact-агент читает WAL для сохранения ключевых решений при сжатии контекста
Спеки (Уровень 2)¶
- Расположение:
docs/specs/,AGENTS.md,.opencode/skills/ - Читаются перед любой задачей, затрагивающей их домен
- Записываются после архитектурных решений
- Второй приоритет после артефактов (истина в коде)
Артефакты (Уровень 3)¶
- Расположение: исходные файлы, конфиги, тесты
- Истина в коде — переопределяет устаревшие спеки
- Все агенты читают перед действием, проверяют после записи
.opencode/state/для эфемерной межагентной координации
Реализация Source Ladder¶
Все агенты следуют Source Ladder для верификации утверждений:
| Уровень | Тип источника | Примеры | Использование агентами |
|---|---|---|---|
| L1 | Официальная документация | context7, devdocs, man-страницы | researcher, plan, sme |
| L2 | Авторитетные вторичные | RFC, спецификации языков, блоги авторов библиотек | sme, plan |
| L3 | Энциклопедии | MDN, Wikipedia, топ-ответы StackOverflow | researcher |
| L4 | Знания модели | Обучающие данные (последнее средство) | Помечается [MK] |
Правила реализации¶
- plan-агент проверяет ВСЕ утверждения по L1-L3 перед записью спек
- researcher цитирует источники с тегами уровней:
[L1]–[L4] - sme помечает выход за пределы экспертизы, возвращается к цитированию L1-L3
- reviewer / code-reviewer применяют L1 для проверки API-контрактов
- critic помечает спекулятивные утверждения (уверенность < 80%) тегом
[speculative] - Никогда не смешивать уровни — одно утверждение, один уровень источника
Жёсткие ограничения (все агенты)¶
- Никогда не раскрывать секреты. Маскировать как
***. - Никогда не удалять код без понимания. Эскалировать в S2.
- Никогда не пропускать WAL. Журналировать каждое значимое решение.
- Никогда не выдавать домыслы за факты. Помечать
[speculative]при уверенности < 80%. - Никогда не доверять путям, предоставленным пользователем, без проверки.
Ритуал начала сессии¶
- Прочитать последние 20 строк
~/.cache/opencode/wal.jsonl - Прочитать
AGENTS.mdи активные.opencode/skills/ - Выдать якорь
[CTX: <domain>] - Начать работу