README: куб 4×4×4 — круги, тики, глубина памяти

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Simbiot Harness 2026-10-17 11:06:26 +00:00
parent d06a4e45bc
commit 8bcb4b6238

View file

@ -406,34 +406,40 @@ off — тесты герметичны), точечно `SIMBIOT_DECISION_<TASK
часу с автодоставкой: разобрать и предложить Alex правило.
- **Недельный отчёт** ядра Alex — по понедельникам (`cli.py core report`).
## Круги доверия (harness/trust.py) — вторая ось к лестнице времени
## Куб 4×4×4: круги доверия × тики × глубина памяти
Время (sec…year) — как часто и как глубоко думать; доверие — что можно
с этим человеком. Оси независимы: один код + таблица `POLICY`
(уровни × инструменты по кругу), а не 64 программы.
Одна таблица политик (`harness/trust.py` POLICY), не 64 программы.
| # | Круг | По умолчанию | Права |
|---|---|---|---|
| 0 | система | тик без внешних входов | полные |
| 1 | владелец | Alex (`SIMBIOT_OWNER_TG`), tui | полные |
| 2 | правление | Vlad, Yura | cli.py: ответы, задачи, звонки, доставка из docs/out; чтение безопасных файлов; MCP без казны/member_create |
| 3 | члены | портал | ответы, задачи, запись на звонки |
| 4 | агенты | portal:agent:* (MCP) | ответы, задачи, MCP только чтение |
| 5 | партнёры | — | ответ, запись на звонок; только min |
| 6 | знакомые без роли | прочие tg из ALLOWED | только ответ; только min |
| 7 | чужие | не в ALLOWED | не обрабатываются |
**Круги** (только по проверенной личности: tg user_id, канал MCP/портала;
меняет только человек — `cli.py trust list|set <субъект> <1-4>`):
- Круг — только по проверенной личности (tg user_id, канал MCP/портала),
не по тексту. Меняет только человек: `cli.py trust list|set <субъект> <круг>`
(из LLM-тика — отказ: страж + CLI по `SIMBIOT_TICK_CIRCLE`).
- Круг тика = самый недоверенный вход (входящие + задачи батча); задачи
наследуют круг тика; батч не смешивает круги; уровень берёт только
обслуживаемые круги.
- Страж в воркере (`cancel_tool` до исполнения): shell кругов ≥ 2 — одна
команда cli.py из белого списка, без `; && | > $() \` ${`; отказ →
`TrustDenied`; задача упёрлась в права → владельцу кнопки «Разрешить/Нет».
- Ограничение: выжимки нижних уровней в контексте часа/дня считаются
внутренними (круг 0) — косвенный канал, в планах.
| # | Круг | Кто | Shell / файлы / MCP | Уровни | Память до |
|---|---|---|---|---|---|
| 1 | владелец | Alex, tui, система (тик без входов) | полные | все | D3 |
| 2 | правление | Vlad, Yura | cli.py-белый список; чтение docs/out/sites; MCP без казны/member_create | min/hour/day | D3 |
| 3 | свои | портал, MCP-агенты, партнёры | ответы, задачи, запись на звонки | min/hour | D2 |
| 4 | остальные | прочие tg | только ответ | min | D1 |
Круг тика = самый недоверенный вход (входящие + задачи батча); задачи
наследуют круг тика; страж в воркере (`cancel_tool` до исполнения), отказ →
`TrustDenied` → владельцу кнопки «Разрешить/Нет».
**Глубина памяти** (`harness/memory.py`, `SIMBIOT_MEMORY=on`):
| D | Что в контексте | Когда |
|---|---|---|
| D0 | только текущее | «ок/спасибо» |
| D1 | + 12 реплик чата + свои сообщения 48 ч | минута по умолчанию |
| D2 | + 8 эпизодов по смыслу из своей истории | час; «помнишь/вчера/как договаривались»; задачи; reply на давнее |
| D3 | + 15 записей архива | день; «за месяц/что делал/итоги» |
Индекс `<home>/memory/index.sqlite`: разговоры, свои рассылки, итоги задач,
дайджесты (без заглушек), эмбеддинги nomic; у записи — круг приватности
(самый недоверенный участник чата); поиск отдаёт только записи круга ≥
круга тика. Пороги: 0.76 + окно 0.07 от лучшего (калибровка по прод-индексу).
`cli.py memory sync [--all] | stats | search "запрос" --circle N`.
Решение о глубине → `DepthChosen` (нехватка: rag/копание в своём сторе/
«не помню») → голова ядра `depth` (shadow).
## Модели