4.7 KiB
Pegas — архитектурные решения
ADR-формат. Основано на спецификации Alicorn, с вырезкой избыточного.
1. Runtime = dsh, не свой Rust-выполнитель
Решение: Pegas использует DeepSeek Harness как agent runtime. Своего детерминированного Rust-выполнителя и DSL-плана нет.
Почему:
- dsh уже даёт ReAct-цикл, инструменты (bash/fs/subagent/goal/todo), песочницу, approval.
- dsh пишет журнал сессий и умеет replay — это закрывает ADR-2/ADR-3 Alicorn без своего кода.
- Rust-выполнитель Alicorn решал проблему «локальная LLM слабая и ошибается». На практике a2000 12GB не тянет параллельно ещё и DSL-интерпретатор + World Model; выигрыш не окупает сложность.
Что остаётся от принципа «модель предлагает — runtime располагает»: модель предлагает план в виде todo/шагов, dsh исполняет инструменты детерминированно.
2. Anvil — вырезан
Решение: прав нет, только sandbox dsh (workspace-write) + approval policy.
Почему: Anvil (PermissionRegistry, ReputationOracle, BudgetController, смарт-контракты) нужен для переносимой on-chain репутации. Локальному агенту-исследователю на одной машине это не требуется; прозрачность даёт журнал dsh.
3. World Model — вырезан
Решение: планирование через ReAct + память (Pegas Memory), без V-JEPA 2.
Почему: V-JEPA 2 — тяжёлая модель, не помещается параллельно с LLM на 12GB. ReAct + богатая память (атомы + граф + инференция) дают достаточно «представления о мире» для исследования.
4. Одна-две модели вместо четырёх ролей
Решение:
- Основная: lfm25-24b-a2b:128k — reasoning, дистилляция, планирование.
- Быстрая (опционально): qwen3.5:4b-131k — рутинные операции.
Почему: Alicorn делил роли (Planner/Executor/Researcher/Decision) = 4 модели. На a2000 они конкурируют за VRAM. Одна сильная модель + одна быстрая покрывают всё.
5. Pegas Memory — как есть
Решение: PostgreSQL (источник истины) + Qdrant (вектора EmbeddingGemma 2, dim=768) + Memgraph (граф). Подключено через MCP (mcp-pegas-memory), 14 инструментов.
Типы знаний: text | definition | logical_rule | code | table | fact. Код: tree-sitter символы + граф зависимостей (calls/imports/inherits). Логика: forward-chaining правила в Memgraph. Верификация: self-critique + кросс-подтверждение.
6. Исследование
Решение: замкнутый цикл пробелов через существующие инструменты dsh:
- detect — memory_list_gaps / memory_search (низкое покрытие).
- acquire — SearXNG (поиск), Playwright (сложные страницы), trafilatura (извлечение).
- extract — LLM-дистилляция в атомы (memory_ingest).
- verify — memory_verify (self-critique + кросс-подтверждение).
- commit — атомы в PG → Qdrant + Memgraph.
7. Observability — отложено
Решение: OTEL + ClickHouse + Grafana не в MVP. Журнал dsh + memory_stats достаточно. Добавим, когда понадобится аудит стоимости/качества на реальной нагрузке.
Статус решений
| # | Решение | Статус |
|---|---|---|
| 1 | dsh как runtime (без Rust) | Принято |
| 2 | Anvil вырезан | Принято |
| 3 | World Model вырезан | Принято |
| 4 | 1–2 модели (не 4 роли) | Принято |
| 5 | Pegas Memory (PG+Qdrant+Memgraph) | Реализовано |
| 6 | Цикл исследования через инструменты dsh | Реализовано (частично — прокси) |
| 7 | Observability | Отложено |