# 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 | Отложено |