79 lines
4.7 KiB
Markdown
79 lines
4.7 KiB
Markdown
# 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 | Отложено |
|