1992 lines
60 KiB
Markdown
1992 lines
60 KiB
Markdown
# Домовой — Target Architecture Gen2
|
||
|
||
**Статус:** target architecture / архитектурная цель следующего поколения
|
||
**Дата:** 2026-08-28
|
||
**Основание:** действующая Architecture Generation 1, пакеты анализа v2/v3, `DOMOVOY_GEN2_GAP_MAP.md`, принятая концепция и Конституция Домового.
|
||
**Назначение:** зафиксировать, каким должен стать костяк Домового до массового наращивания новых возможностей.
|
||
|
||
---
|
||
|
||
# 0. Решение уровня поколения
|
||
|
||
Gen2 — это **не новая программа с нуля** и не набор локальных feature-патчей поверх V1.
|
||
|
||
Gen2 является **управляемой миграцией архитектурного поколения**:
|
||
|
||
```text
|
||
Architecture Generation 1
|
||
│
|
||
├─ сохранить доказанные invariants
|
||
├─ сохранить рабочие regression scenarios
|
||
├─ сохранить recovery semantics
|
||
├─ сохранить историю ошибок и evidence
|
||
│
|
||
▼
|
||
Architecture Generation 2
|
||
│
|
||
├─ новый фундамент памяти/контекста
|
||
├─ Focus/Scope V2
|
||
├─ World Model foundation
|
||
├─ Skill/Reflex evolution
|
||
├─ SELF
|
||
├─ dynamic configuration
|
||
├─ long-running intelligence
|
||
└─ controlled self-evolution
|
||
```
|
||
|
||
Существующий production/reference код является одновременно:
|
||
|
||
- рабочей реализацией;
|
||
- regression oracle;
|
||
- источником доказанных инвариантов;
|
||
- источником уже найденных ошибок;
|
||
- миграционным источником данных;
|
||
- fallback до доказанной готовности Gen2.
|
||
|
||
Ни один крупный V1 bounded context не удаляется до того, как новый путь доказал эквивалентность полезного поведения и имеет rollback.
|
||
|
||
---
|
||
|
||
# 1. Цель Gen2
|
||
|
||
Домовой Gen2 — долговременный персональный мыслящий агент, который:
|
||
|
||
1. понимает намерение владельца, текущую деятельность и окружение;
|
||
2. хранит долговременное evidence, знания, опыт, цели и обязательства;
|
||
3. отличает текущий факт от старого знания, гипотезы, аналогии и противоречия;
|
||
4. умеет извлекать из большой памяти небольшой релевантный рабочий контекст;
|
||
5. не смешивает людей, организации, базы, проекты, версии и окружения;
|
||
6. запоминает как успешные решения, так и неудачные попытки;
|
||
7. превращает повторяемый успешный опыт в Skill, а стабильный Skill — в Reflex;
|
||
8. умеет обнаруживать устаревшие Skills/Reflexes и возвращать их на переоценку;
|
||
9. знает собственные способности, слабости, зависимости и версии;
|
||
10. выбирает минимально достаточную стоимость мышления;
|
||
11. способен вести длительную работу с checkpoint/pause/resume/recovery;
|
||
12. способен создавать новые capabilities и изменять собственный код через governed evolution;
|
||
13. управляется преимущественно естественным разговором, а не админками;
|
||
14. может в будущем воспринимать голос, видео, устройства и окружающую среду без смены базовой архитектуры;
|
||
15. не подменяет предположение фактом и своё намерение намерением владельца;
|
||
16. выполняет реальные действия только через явный контур полномочий, последствий, Commit и проверки Outcome.
|
||
|
||
---
|
||
|
||
# 2. Что Gen2 наследует без изменения смысла
|
||
|
||
Следующие значения являются ДНК системы и не должны потеряться при Gen2 migration:
|
||
|
||
```text
|
||
LLM != Assistant
|
||
Capability != Authority
|
||
Observation != Claim != Belief
|
||
Intent != Goal != Task
|
||
Task != Action
|
||
Proposal != AuthorizedAction != Attempt != Outcome
|
||
Tool success != verified world outcome
|
||
Memory != ModelContext
|
||
Projection/index/embedding != source of truth
|
||
Restart != loss of commitment
|
||
Timeout != failure
|
||
UNKNOWN_OUTCOME is first-class
|
||
More intelligence != more authority
|
||
Creator of a candidate != sole evaluator of that candidate
|
||
```
|
||
|
||
Обязательные операционные инварианты:
|
||
|
||
- один canonical semantic owner на mutable state;
|
||
- нет прямой записи в storage другого owner;
|
||
- нет cross-owner SQL dependency как способа склеить архитектуру;
|
||
- external mutation только через `Authority -> Commit -> Executor`;
|
||
- ambiguous mutation не ретраится вслепую;
|
||
- durable future relevance принадлежит Continuity, а не timer engine;
|
||
- durable work принадлежит Work, а не одному LLM request;
|
||
- model/provider не является источником canonical state;
|
||
- correction/supersession добавляется версионно, историческое значение не переписывается молча;
|
||
- secrets не являются обычной памятью или контекстом модели;
|
||
- критические изменения системы имеют rollback path.
|
||
|
||
---
|
||
|
||
# 3. Главный принцип устройства Gen2
|
||
|
||
Gen2 разделяет два мира.
|
||
|
||
## 3.1 Strict Operational Core
|
||
|
||
Здесь нужна максимальная однозначность, типизация, constraints, audit и transactional semantics.
|
||
|
||
```text
|
||
Identity
|
||
Authority
|
||
Commit
|
||
ActionAttempt
|
||
ExecutionReceipt
|
||
Outcome verification linkage
|
||
Continuity obligation state
|
||
Recovery
|
||
Audit
|
||
Release/Supervisor control
|
||
```
|
||
|
||
Чем ближе данные к необратимому действию, тем меньше допустима семантическая свобода.
|
||
|
||
## 3.2 Evolving Semantic World
|
||
|
||
Здесь модель должна расширяться без глобального redesign при появлении новых знаний и новых видов окружения.
|
||
|
||
```text
|
||
World referents
|
||
Typed facet definitions
|
||
Relation definitions
|
||
Observations
|
||
Claims
|
||
Beliefs/Assessments
|
||
Episodes
|
||
Experience
|
||
Skills
|
||
Reflexes
|
||
Preferences
|
||
Dynamic configuration definitions
|
||
SELF assessments
|
||
Search projections
|
||
```
|
||
|
||
Чем ближе данные к пониманию мира, тем больше допустима эволюционируемая типизированная схема.
|
||
|
||
**Это не означает `map[string]any` и не означает generic `SaveEntity(any)`.**
|
||
|
||
Расширяемость строится через versioned schema definitions и ограниченный typed value algebra.
|
||
|
||
---
|
||
|
||
# 4. Архитектурная карта Gen2
|
||
|
||
```text
|
||
HUMAN / ENVIRONMENT
|
||
│
|
||
Interaction / Observation ingress
|
||
│
|
||
▼
|
||
INTENT INTERPRETATION
|
||
│
|
||
▼
|
||
SITUATION / FOCUS V2
|
||
"что сейчас происходит"
|
||
│
|
||
┌──────────────────────┼───────────────────────┐
|
||
│ │ │
|
||
▼ ▼ ▼
|
||
WORLD REFERENCES ACTIVE WORK CONTINUITY
|
||
people/systems/places goal/task/job obligations
|
||
│ │ │
|
||
└───────────────┬──────┴───────────────┬──────┘
|
||
│ │
|
||
▼ ▼
|
||
MEMORY RETRIEVAL SELF SIGNALS
|
||
facts / experience competence/
|
||
success / failure weaknesses
|
||
│ │
|
||
└──────────┬───────────┘
|
||
▼
|
||
CONTEXT COMPILER
|
||
minimal task-specific context
|
||
│
|
||
▼
|
||
INTELLIGENCE STRATEGY
|
||
Reflex -> Skill -> Local Model -> Strong Model
|
||
-> Research -> Specialist Team
|
||
│
|
||
▼
|
||
PLAN
|
||
│
|
||
Consequence / Risk
|
||
│
|
||
┌──────────────┴──────────────┐
|
||
│ │
|
||
read-only work mutation required
|
||
│ │
|
||
▼ ▼
|
||
Evidence Authority
|
||
│ │
|
||
│ Commit
|
||
│ │
|
||
│ Executor
|
||
│ │
|
||
└──────────────┬──────────────┘
|
||
▼
|
||
WORLD OBSERVATION
|
||
│
|
||
▼
|
||
OUTCOME ASSESSMENT
|
||
│
|
||
┌────────────────┼────────────────┐
|
||
▼ ▼ ▼
|
||
Experience Continuity SELF/Learning
|
||
│ │
|
||
└──────── Skill / Reflex / Evolution
|
||
```
|
||
|
||
---
|
||
|
||
# 5. Bounded contexts и owners Gen2
|
||
|
||
## 5.1 Identity — KEEP
|
||
|
||
**Владеет:**
|
||
|
||
- Actor identity;
|
||
- Principal identity;
|
||
- PrincipalBinding;
|
||
- authenticated session identity;
|
||
- identifier history для actor/principal.
|
||
|
||
Identity не становится World Model и не хранит arbitrary people/devices/projects.
|
||
|
||
Идентификация источника и полномочия остаются разными понятиями.
|
||
|
||
---
|
||
|
||
## 5.2 Authority — KEEP, уточнить семантику Scope
|
||
|
||
**Владеет:**
|
||
|
||
- `AuthorityScope`;
|
||
- grants;
|
||
- authorization context;
|
||
- validity/revision of grants.
|
||
|
||
### Важное изменение Gen2
|
||
|
||
V1 понятие `Scope` перегружено. Gen2 должен различать:
|
||
|
||
```text
|
||
AuthorityScope
|
||
"что этому Actor разрешено делать для Principal"
|
||
|
||
ContextScope
|
||
"к какой части мира/работы относится текущая задача"
|
||
```
|
||
|
||
`AuthorityScope` остаётся в Authority.
|
||
|
||
`ContextScope` принадлежит Situation и не предоставляет никаких полномочий.
|
||
|
||
Компания A/B, конкретная УНФ, репозиторий, база и версия не должны кодироваться как побочный эффект Authority.
|
||
|
||
---
|
||
|
||
## 5.3 Interaction — KEEP + EXPAND ingress
|
||
|
||
**Владеет:**
|
||
|
||
- Conversation;
|
||
- HumanUtterance;
|
||
- OriginalHumanIntent;
|
||
- Interpretation;
|
||
- correction/supersession relations;
|
||
- explicit preference/directive/assertion speech acts.
|
||
|
||
Gen2 делает Channel открытым для новых ingress adapters:
|
||
|
||
```text
|
||
web chat
|
||
voice
|
||
phone transcript
|
||
file/message
|
||
future ambient audio
|
||
future device UI
|
||
```
|
||
|
||
Raw media не копируется в Interaction: оно является Artifact, а Interaction хранит reference/transcript lineage.
|
||
|
||
Interaction не определяет truth и не становится memory owner.
|
||
|
||
---
|
||
|
||
## 5.4 Situation — REWORK -> Focus V2 owner
|
||
|
||
Situation остаётся владельцем текущей интерпретации «что происходит сейчас».
|
||
|
||
### Новая canonical семантика
|
||
|
||
`FocusFrame`:
|
||
|
||
- Actor/Principal;
|
||
- AuthorityScope ref;
|
||
- ContextScope;
|
||
- active activity/project;
|
||
- organization/family context;
|
||
- environment/location;
|
||
- system/database/repository/branch/version refs;
|
||
- Goal/Task refs;
|
||
- active WorldObject refs;
|
||
- explicit/inferred provenance;
|
||
- confidence;
|
||
- activation/suspension/expiration state;
|
||
- parent/previous frame.
|
||
|
||
`FocusStack`:
|
||
|
||
- active frame;
|
||
- suspended frames;
|
||
- return/resume relation;
|
||
- explicit switch provenance;
|
||
- automatic inference provenance.
|
||
|
||
### Правила
|
||
|
||
- explicit human switch — сильный сигнал;
|
||
- inferred focus имеет confidence/provenance;
|
||
- короткое отвлечение не уничтожает предыдущий Focus;
|
||
- textual similarity сама по себе не выбирает project/context;
|
||
- Focus не является Authority;
|
||
- Focus не является Memory;
|
||
- Focus задаёт направление retrieval/config/skills, а не записывает их state.
|
||
|
||
---
|
||
|
||
## 5.5 World — NEW bounded context, узкий и типизированный
|
||
|
||
World нужен, чтобы новые виды объектов окружения могли появляться без создания специальной глобальной таблицы на каждый будущий класс вещей.
|
||
|
||
World **не является generic domain Entity service**.
|
||
|
||
### World владеет только семантикой referents и extensible vocabulary
|
||
|
||
- `WorldObject` — стабильный referent;
|
||
- `WorldObjectKindDefinition`;
|
||
- `WorldAlias`;
|
||
- `FacetDefinition`;
|
||
- `RelationDefinition`;
|
||
- schema version lineage;
|
||
- identity-resolution decision for WorldObjects;
|
||
- merge/split lineage.
|
||
|
||
### World НЕ владеет истиной значений
|
||
|
||
Например World может знать, что существует schema:
|
||
|
||
```text
|
||
onec.configuration
|
||
configuration_version: string
|
||
database_ref: ref
|
||
```
|
||
|
||
Но утверждение:
|
||
|
||
> `Company A UNF version = 1.6.x`
|
||
|
||
является Observation/Claim/Belief Epistemics, с provenance и freshness.
|
||
|
||
Таким образом:
|
||
|
||
```text
|
||
World = что за объект/свойство/тип связи вообще существует
|
||
Epistemics = что мы считаем известным об этом объекте сейчас и почему
|
||
```
|
||
|
||
### Typed value model
|
||
|
||
Новые Facet/Relation definitions используют ограниченные типы:
|
||
|
||
```text
|
||
STRING
|
||
INTEGER
|
||
DECIMAL
|
||
BOOLEAN
|
||
TIME
|
||
DURATION
|
||
ENUM
|
||
REFERENCE
|
||
BINARY_REF
|
||
LIST<T>
|
||
STRUCT<fields>
|
||
```
|
||
|
||
Не допускается domain API типа `SaveEntity(any)`.
|
||
|
||
Физическая сериализация может меняться, но semantic validation обязательна.
|
||
|
||
---
|
||
|
||
## 5.6 Epistemics — EXPAND -> knowledge/evidence owner
|
||
|
||
Epistemics становится главным владельцем знаний как доказательных утверждений, но **не монолитной Memory БД**.
|
||
|
||
Владеет:
|
||
|
||
- Observation;
|
||
- Claim;
|
||
- Belief/Assessment;
|
||
- Provenance;
|
||
- Source/Snapshot/Excerpt/Citation;
|
||
- ExperienceRecord;
|
||
- ReflectionCandidate;
|
||
- Episode (derived grouping of observations);
|
||
- Freshness/Validity assessment;
|
||
- source/domain reliability evidence;
|
||
- world outcome observation/assessment;
|
||
- contradiction/supersession relationships.
|
||
|
||
### Не вводить отдельный canonical `MemoryItem`
|
||
|
||
«Память» — это read/retrieval architecture над несколькими владельцами.
|
||
|
||
Epistemics владеет knowledge/evidence, но Work владеет задачами, Continuity обязательствами, Capability skills, Interaction utterances.
|
||
|
||
### Outcome owner clarification
|
||
|
||
Gen2 фиксирует ранее недостаточно явную границу:
|
||
|
||
```text
|
||
Commit owns:
|
||
authorization + execution attempt state + execution receipt
|
||
|
||
Epistemics owns:
|
||
observation/assessment of what actually произошло в мире
|
||
```
|
||
|
||
`HTTP 200`, exit code 0 или accepted API receipt не обязаны означать verified Outcome.
|
||
|
||
---
|
||
|
||
## 5.7 Work — KEEP + EXPAND
|
||
|
||
Work остаётся владельцем:
|
||
|
||
- Goal;
|
||
- Task;
|
||
- Decision;
|
||
- Plan;
|
||
- WorkGraph;
|
||
- Delegation;
|
||
- AgentRun/Checkpoint;
|
||
- producer/verifier workflow;
|
||
- governed development gates.
|
||
|
||
Gen2 расширяет Work следующими понятиями.
|
||
|
||
### LongRunningWork / Investigation
|
||
|
||
Durable работа содержит:
|
||
|
||
- objective;
|
||
- hypotheses refs;
|
||
- attempt history refs;
|
||
- findings refs;
|
||
- blockers;
|
||
- checkpoints;
|
||
- resource/time/cost budget;
|
||
- next step;
|
||
- pause/resume/cancel state;
|
||
- justification path.
|
||
|
||
Один LLM request никогда не является durable job.
|
||
|
||
### PerspectiveSpec
|
||
|
||
Role/Perspective — не roleplay и не Authority.
|
||
|
||
Perspective задаёт:
|
||
|
||
- objective lens;
|
||
- retrieval profile;
|
||
- evaluation criteria;
|
||
- capability requirements;
|
||
- expected output shape.
|
||
|
||
Примеры: architect, programmer, director, designer, critic, security reviewer.
|
||
|
||
### ConsequenceAssessment
|
||
|
||
Перед значимой mutation Work/Planning может формировать:
|
||
|
||
- cost of error;
|
||
- reversibility;
|
||
- affected objects;
|
||
- expected consequences;
|
||
- uncertainty;
|
||
- mitigation options;
|
||
- simulation/dry-run requirement;
|
||
- backup/snapshot requirement;
|
||
- recommended confirmation strength.
|
||
|
||
Authority отвечает «разрешено ли», ConsequenceAssessment — «что может произойти».
|
||
|
||
---
|
||
|
||
## 5.8 Continuity — KEEP + EXPAND only where needed
|
||
|
||
Continuity остаётся единственным владельцем:
|
||
|
||
- Commitment;
|
||
- ProspectiveItem;
|
||
- AttentionItem;
|
||
- HumanResponse;
|
||
- durable future relevance.
|
||
|
||
Никакого второго scheduler/attention engine.
|
||
|
||
### Gen2 integration
|
||
|
||
Long-running Work использует Continuity для будущего wake/review/retry eligibility, но Work остаётся владельцем job state.
|
||
|
||
```text
|
||
Continuity: когда это снова становится релевантно
|
||
Work: что за работа и где она остановилась
|
||
```
|
||
|
||
Attention остаётся human-facing relevance, а не generic notification bus.
|
||
|
||
---
|
||
|
||
## 5.9 Capability — EXPAND -> ability/skill/reflex/intelligence selection owner
|
||
|
||
Capability остаётся владельцем:
|
||
|
||
- capability descriptors;
|
||
- implementations;
|
||
- health;
|
||
- qualification;
|
||
- resolution;
|
||
- selection;
|
||
- gaps;
|
||
- usage observations;
|
||
- model bindings/evaluation.
|
||
|
||
### Skill V2
|
||
|
||
Skill — повторяемый способ решения класса задач.
|
||
|
||
Обязательные свойства:
|
||
|
||
- applicability conditions;
|
||
- ContextScope compatibility;
|
||
- supporting experience refs;
|
||
- known failure experience refs;
|
||
- dependencies;
|
||
- implementation/version;
|
||
- last validation;
|
||
- environment/subject version conditions;
|
||
- lifecycle;
|
||
- confidence/quality evidence;
|
||
- retirement path.
|
||
|
||
### Reflex
|
||
|
||
Reflex — оптимизированный дешёвый путь, полученный из проверенного Skill/experience.
|
||
|
||
Reflex может быть:
|
||
|
||
- deterministic Go/Python logic;
|
||
- rule;
|
||
- workflow;
|
||
- SQL/query template;
|
||
- small local model + bounded tool chain;
|
||
- compiled adapter operation.
|
||
|
||
Reflex имеет:
|
||
|
||
- source Skill refs;
|
||
- applicability;
|
||
- exact implementation version;
|
||
- dependencies;
|
||
- validation evidence;
|
||
- shadow/revalidation policy;
|
||
- decline/escalate semantics;
|
||
- stale/suspend/retire lifecycle.
|
||
|
||
`FastPathDecision` становится runtime decision around Skill/Reflex, а не самим Reflex.
|
||
|
||
### Intelligence Strategy
|
||
|
||
Capability выбирает минимально достаточную implementation strategy в пределах требований Work:
|
||
|
||
```text
|
||
Rule
|
||
-> Reflex
|
||
-> Skill
|
||
-> small local model
|
||
-> strong local model
|
||
-> external model
|
||
-> research capability
|
||
-> specialist/delegation path
|
||
```
|
||
|
||
Capability не создаёт WorkGraph самостоятельно: если требуется decomposition/team, управление возвращается Work.
|
||
|
||
---
|
||
|
||
## 5.10 Configuration — NEW bounded context
|
||
|
||
Gen2 отказывается от ENV как основной модели конфигурации.
|
||
|
||
### Configuration владеет
|
||
|
||
- `SettingDefinition`;
|
||
- `SettingAssignment`;
|
||
- schema/version/lifecycle setting definitions;
|
||
- typed validation rules;
|
||
- scope applicability;
|
||
- effective resolution semantics;
|
||
- provenance of human/system changes.
|
||
|
||
### SettingDefinition
|
||
|
||
Минимально:
|
||
|
||
- stable key;
|
||
- owner namespace;
|
||
- value type;
|
||
- default;
|
||
- validation;
|
||
- allowed scope dimensions;
|
||
- sensitivity class;
|
||
- lifecycle/version;
|
||
- human description.
|
||
|
||
### Scoped values
|
||
|
||
Assignment может относиться к:
|
||
|
||
```text
|
||
GLOBAL
|
||
PRINCIPAL
|
||
WORLD_OBJECT
|
||
ORGANIZATION/ENVIRONMENT through World ref
|
||
ACTIVITY/PROJECT
|
||
SKILL
|
||
TASK
|
||
SESSION
|
||
TEMPORARY_OVERRIDE
|
||
```
|
||
|
||
Effective Configuration — derived result, а не отдельная canonical истина.
|
||
|
||
Приоритет задаётся явной политикой, а не порядком случайных `if` в коде.
|
||
|
||
### Skill-defined settings
|
||
|
||
Новый Skill/Capability может предложить новые SettingDefinitions через Configuration API.
|
||
|
||
Он не добавляет column в глобальную таблицу и не пишет arbitrary key/value напрямую.
|
||
|
||
### Secrets
|
||
|
||
Secret value никогда не находится в SettingAssignment.
|
||
|
||
Configuration хранит только:
|
||
|
||
```text
|
||
CredentialRef / SecretRef
|
||
```
|
||
|
||
Сам секрет разрешается через Secrets boundary только в authorized adapter/runtime.
|
||
|
||
---
|
||
|
||
## 5.11 SELF — NEW bounded context, не God orchestrator
|
||
|
||
SELF — формальная модель Домового о собственных возможностях и эволюции.
|
||
|
||
SELF не выполняет пользовательскую работу и не находится обязательным посредником между всеми модулями.
|
||
|
||
### SELF владеет
|
||
|
||
- `CompetenceAssessment`;
|
||
- `WeaknessPattern`;
|
||
- `DependencyAssessment`/self dependency view;
|
||
- `LearningLedgerEntry`;
|
||
- `ImprovementNeed`;
|
||
- aggregate self-version view;
|
||
- self-evaluation interpretation.
|
||
|
||
### SELF не владеет
|
||
|
||
- Capability definitions/health — Capability;
|
||
- raw evidence — Epistemics;
|
||
- tasks/development execution — Work;
|
||
- authority — Authority;
|
||
- code/release switching — Supervisor/runtime.
|
||
|
||
SELF assessments всегда evidence-backed.
|
||
|
||
Нельзя:
|
||
|
||
```text
|
||
skill sets competence=1.0
|
||
candidate sets trusted=true
|
||
new model declares itself better
|
||
```
|
||
|
||
### Learning Ledger
|
||
|
||
Запись существенного улучшения:
|
||
|
||
- observed problem;
|
||
- evidence refs;
|
||
- diagnosis/hypothesis;
|
||
- proposed change ref;
|
||
- expected improvement;
|
||
- evaluation refs;
|
||
- actual result;
|
||
- promoted/rejected/rolled-back;
|
||
- regression/side effects;
|
||
- version lineage.
|
||
|
||
---
|
||
|
||
## 5.12 Commit — KEEP, no semantic dilution
|
||
|
||
Commit сохраняет:
|
||
|
||
- immutable ActionProposal evidence;
|
||
- AuthorizedAction;
|
||
- authorization revision;
|
||
- ActionAttempt;
|
||
- idempotency/reconciliation identity;
|
||
- execution state including `UNKNOWN_OUTCOME`.
|
||
|
||
Gen2 Risk/Consequence не заменяет Commit.
|
||
|
||
Reflex не получает обход Commit.
|
||
|
||
Self-modification не получает обход Commit/DevelopmentGate там, где есть external/system mutation.
|
||
|
||
---
|
||
|
||
## 5.13 Artifact — KEEP + EXPAND for large raw memory
|
||
|
||
Artifact владеет durable content/resource identity и lineage.
|
||
|
||
Именно Artifact является базой для будущих больших raw inputs:
|
||
|
||
- audio;
|
||
- video;
|
||
- image;
|
||
- documents;
|
||
- call recordings;
|
||
- sensor captures;
|
||
- generated code/artifacts.
|
||
|
||
Большие payload могут храниться на NAS/object/file storage, а не в PostgreSQL.
|
||
|
||
Raw artifact не обязателен в prompt и не является автоматически Knowledge.
|
||
|
||
Derivations:
|
||
|
||
```text
|
||
Artifact -> Observation -> Episode/Claim/Belief
|
||
```
|
||
|
||
должны сохранять provenance для future reprocessing более сильной моделью.
|
||
|
||
---
|
||
|
||
## 5.14 Cognitive Gateway / Context Compiler — NO canonical owner
|
||
|
||
Cognitive workers остаются replaceable.
|
||
|
||
Они не владеют каноническим state.
|
||
|
||
### Context Compiler V2
|
||
|
||
Context Compiler — детерминированный/контролируемый слой сборки ModelContext.
|
||
|
||
Получает:
|
||
|
||
- current FocusFrame;
|
||
- ContextScope;
|
||
- Task/Goal/Perspective;
|
||
- model context budget;
|
||
- output budget;
|
||
- freshness requirement;
|
||
- cost-of-error/risk hints;
|
||
- DataPolicy;
|
||
- candidate memories/evidence/skills/settings.
|
||
|
||
Должен собирать минимум достаточного контекста.
|
||
|
||
Не пытается заполнить всё окно модели «раз уж место есть».
|
||
|
||
### ModelContext != Memory
|
||
|
||
В ModelContext входят только выбранные excerpts/structured summaries.
|
||
|
||
Secret values запрещены.
|
||
|
||
### Iterative retrieval
|
||
|
||
Модель/strategy может через typed query запросить дополнительную память:
|
||
|
||
```text
|
||
memory.search(...)
|
||
experience.successes(...)
|
||
experience.failures(...)
|
||
knowledge.contradictions(...)
|
||
world.related(...)
|
||
artifact.fetch_excerpt(...)
|
||
```
|
||
|
||
Запрос проходит через trusted runtime и DataPolicy; модель не получает прямого DB access.
|
||
|
||
---
|
||
|
||
## 5.15 Supervisor/Lifeboat — NEW runtime layer, not semantic owner
|
||
|
||
Supervisor — минимальный независимый control plane, который должен переживать поломку основного Домового.
|
||
|
||
Он не использует LLM для критических recovery decisions.
|
||
|
||
### Responsibilities
|
||
|
||
- start candidate version;
|
||
- health/watchdog;
|
||
- last-known-good release;
|
||
- traffic/process switch;
|
||
- rollback;
|
||
- minimal recovery command interface;
|
||
- bootstrap validation;
|
||
- release manifest verification.
|
||
|
||
Он не занимается обычным чатом, памятью, Skills или reasoning.
|
||
|
||
Чем проще Supervisor, тем лучше.
|
||
|
||
---
|
||
|
||
# 6. Memory/Knowledge architecture Gen2
|
||
|
||
## 6.1 Memory — не новый monolithic owner
|
||
|
||
Логически память Домового состоит из нескольких источников:
|
||
|
||
```text
|
||
Interaction what human said
|
||
Artifact raw durable material
|
||
Epistemics observations/claims/beliefs/experience
|
||
Work goals/tasks/decisions/jobs
|
||
Continuity commitments/future relevance
|
||
Capability skills/reflexes/known failures
|
||
World referents/schema vocabulary
|
||
Configuration effective relevant settings
|
||
SELF competence/weakness/learning history
|
||
```
|
||
|
||
`Memory Retrieval` является read-side composition.
|
||
|
||
Он не получает права писать canonical state владельцев.
|
||
|
||
---
|
||
|
||
## 6.2 Canonical vs projections
|
||
|
||
Обязательное разделение:
|
||
|
||
```text
|
||
Canonical evidence/state
|
||
↓
|
||
Derived semantic records
|
||
↓
|
||
Search projections
|
||
├─ vector
|
||
├─ lexical
|
||
├─ graph
|
||
├─ temporal
|
||
└─ hot cache
|
||
↓
|
||
Retrieval candidates
|
||
↓
|
||
Context Compiler
|
||
↓
|
||
ModelContext
|
||
```
|
||
|
||
Любой vector/graph/search index должен быть rebuildable.
|
||
|
||
Замена retrieval technology не требует миграции canonical памяти.
|
||
|
||
---
|
||
|
||
## 6.3 Freshness и скорость устаревания
|
||
|
||
Знание не имеет одного простого TTL.
|
||
|
||
Нужны понятия:
|
||
|
||
- observed time;
|
||
- last verified time;
|
||
- validity interval;
|
||
- volatility/decay profile;
|
||
- environment/subject version binding;
|
||
- current freshness state;
|
||
- freshness requirement of task.
|
||
|
||
Примеры:
|
||
|
||
```text
|
||
π volatility ~ zero
|
||
старый разговор исторически стабилен, интерпретация может улучшаться
|
||
структура UNF version-sensitive
|
||
current server status very fast
|
||
exchange rate near-real-time
|
||
personal preference slow/uncertain change
|
||
```
|
||
|
||
Старое знание не удаляется автоматически.
|
||
|
||
Оно теряет право считаться текущим фактом и может использоваться как:
|
||
|
||
- historical evidence;
|
||
- analogy;
|
||
- starting hypothesis.
|
||
|
||
---
|
||
|
||
## 6.4 Freshness requirement of task
|
||
|
||
Work/Planning классифицирует задачу по требуемой актуальности.
|
||
|
||
```text
|
||
LOW
|
||
historical/general knowledge acceptable
|
||
|
||
MEDIUM
|
||
memory acceptable, live validation preferred
|
||
|
||
HIGH
|
||
live/current source should be attempted before factual decision
|
||
|
||
CRITICAL
|
||
stale evidence cannot authorize high-impact factual conclusion without explicit degraded handling
|
||
```
|
||
|
||
Если live source недоступен, Домовой может продолжить по памяти, но epistemic status понижается и пользователь получает честное предупреждение, когда это существенно для решения.
|
||
|
||
---
|
||
|
||
## 6.5 Scope before similarity
|
||
|
||
Retrieval сначала применяет hard/context filters, затем semantic similarity.
|
||
|
||
Приоритет:
|
||
|
||
```text
|
||
identity/access
|
||
-> principal/person
|
||
-> WorldObject/context scope
|
||
-> organization/environment
|
||
-> system/database/repository/version
|
||
-> active activity/goal/task
|
||
-> temporal applicability
|
||
-> semantic similarity
|
||
```
|
||
|
||
Knowledge из другой компании/версии может быть найден на broadened pass только как analogy unless independently validated.
|
||
|
||
---
|
||
|
||
## 6.6 Positive and Negative Experience
|
||
|
||
Success и failure не хранятся как две изолированные truth базы.
|
||
|
||
Они являются разными retrieval views над ExperienceRecord.
|
||
|
||
Для сложной задачи retrieval обязан по возможности искать одновременно:
|
||
|
||
```text
|
||
what worked
|
||
what failed
|
||
why failed
|
||
under which conditions
|
||
what later superseded it
|
||
```
|
||
|
||
Negative knowledge всегда содержит conditions. `FAILED_ONCE` не равно `FOREVER_WRONG`.
|
||
|
||
---
|
||
|
||
## 6.7 Memory consolidation
|
||
|
||
Gen2 должен позволять постепенно преобразовывать:
|
||
|
||
```text
|
||
raw observations
|
||
-> episodes
|
||
-> stable beliefs/knowledge
|
||
-> patterns
|
||
-> skills
|
||
-> reflexes
|
||
```
|
||
|
||
Консолидация не обязана удалять raw evidence.
|
||
|
||
Storage/retention policy может переводить raw payload в cold/archive tier, сохраняя metadata/provenance.
|
||
|
||
---
|
||
|
||
## 6.8 Contradiction pass
|
||
|
||
После первичного retrieval для consequential reasoning выполняется отдельный поиск:
|
||
|
||
> есть ли evidence/experience, который опровергает или существенно ограничивает выбранную память?
|
||
|
||
Это защищает от confirmation bias retrieval.
|
||
|
||
---
|
||
|
||
# 7. Focus, ContextScope и переключение деятельности
|
||
|
||
## 7.1 Не всё является Project
|
||
|
||
Gen2 не использует Project как универсальный контейнер.
|
||
|
||
В Focus могут одновременно присутствовать:
|
||
|
||
```text
|
||
work domain
|
||
organization
|
||
system
|
||
specific database
|
||
repository/branch
|
||
activity
|
||
problem
|
||
goal/task
|
||
person
|
||
location/environment
|
||
active objects
|
||
```
|
||
|
||
Project остаётся допустимой гранью, но не обязательным центром.
|
||
|
||
---
|
||
|
||
## 7.2 Explicit Focus command
|
||
|
||
Пользователь может сказать:
|
||
|
||
> «Теперь работаем над проектом A»
|
||
|
||
или:
|
||
|
||
> «Открываю новую работу по себестоимости»
|
||
|
||
Это создаёт/активирует FocusFrame с сильным human provenance.
|
||
|
||
---
|
||
|
||
## 7.3 Inferred Focus
|
||
|
||
В будущем Focus может выводиться из:
|
||
|
||
- открытого repo/file;
|
||
- active device/app;
|
||
- location;
|
||
- previous task;
|
||
- referenced WorldObjects;
|
||
- conversation context.
|
||
|
||
Inferred Focus никогда не притворяется explicit fact и имеет confidence/provenance.
|
||
|
||
---
|
||
|
||
# 8. Configuration as evolvable state
|
||
|
||
## 8.1 ENV только bootstrap
|
||
|
||
Target state:
|
||
|
||
ENV не является основной конфигурационной системой.
|
||
|
||
Минимальный bootstrap должен позволить только:
|
||
|
||
- определить node/runtime identity;
|
||
- найти control state/config store;
|
||
- найти root Secrets resolver;
|
||
- выполнить initial health/recovery.
|
||
|
||
Сам bootstrap может быть Docker Secret, mounted sealed file, OS credential store или иной минимальный mechanism; использование ENV не требуется как обязательное решение.
|
||
|
||
---
|
||
|
||
## 8.2 Database credential
|
||
|
||
Адрес/credential рабочих БД, моделей, Skill endpoints и integrations после bootstrap живут в Configuration + Secrets references.
|
||
|
||
Например:
|
||
|
||
```text
|
||
SettingAssignment:
|
||
company-a.unf.endpoint = https://...
|
||
company-a.unf.credential = secret://...
|
||
```
|
||
|
||
Secret никогда не индексируется и не передаётся модели.
|
||
|
||
---
|
||
|
||
## 8.3 Conversational control is primary
|
||
|
||
Обычный пользователь не обязан открывать admin UI.
|
||
|
||
Команда:
|
||
|
||
> «Для фирмы B в этом навыке используй тестовую базу»
|
||
|
||
должна быть интерпретирована как изменение соответствующего scoped SettingAssignment через нормальный semantic/authority path.
|
||
|
||
Админские/диагностические экраны допустимы как:
|
||
|
||
- inspection;
|
||
- debugging;
|
||
- emergency recovery;
|
||
- audit.
|
||
|
||
Они не являются главным UX управления Домовым.
|
||
|
||
---
|
||
|
||
# 9. Intelligence, Skill, Reflex and learning loop
|
||
|
||
## 9.1 Runtime path
|
||
|
||
```text
|
||
Task
|
||
↓
|
||
known Reflex?
|
||
↓ no / declined
|
||
known Skill?
|
||
↓ no / insufficient
|
||
cheap local reasoning?
|
||
↓ insufficient
|
||
strong reasoning?
|
||
↓ insufficient
|
||
research/decomposition?
|
||
↓
|
||
solution
|
||
↓
|
||
Outcome
|
||
↓
|
||
Experience
|
||
↓
|
||
Reflection
|
||
↓
|
||
Skill candidate / improvement need
|
||
```
|
||
|
||
---
|
||
|
||
## 9.2 Skill promotion
|
||
|
||
Один удачный ответ не создаёт trusted Skill.
|
||
|
||
Минимальный lifecycle:
|
||
|
||
```text
|
||
CANDIDATE
|
||
-> VALIDATING
|
||
-> ACTIVE
|
||
-> DEGRADED
|
||
-> SUSPENDED
|
||
-> RETIRED
|
||
```
|
||
|
||
Promotion требует evidence на нескольких сценариях либо эквивалентного сильного доказательства.
|
||
|
||
---
|
||
|
||
## 9.3 Reflex promotion
|
||
|
||
```text
|
||
validated Skill
|
||
-> ReflexCandidate
|
||
-> sandbox/historical replay
|
||
-> shadow
|
||
-> limited activation/canary where applicable
|
||
-> ACTIVE Reflex
|
||
```
|
||
|
||
Reflex обязан уметь `DECLINE/ESCALATE_TO_THINK`.
|
||
|
||
Сомнение не считается провалом Reflex.
|
||
|
||
---
|
||
|
||
## 9.4 Revalidation / Shadow Reasoning
|
||
|
||
Для selected stable Reflexes система может периодически или по signal выполнять shadow comparison более сильным способом.
|
||
|
||
Triggers:
|
||
|
||
- environment/version changed;
|
||
- repeated corrections;
|
||
- outcome degradation;
|
||
- stronger model qualification;
|
||
- sampled audit;
|
||
- source contract changed.
|
||
|
||
Shadow path не создаёт external mutation второй раз.
|
||
|
||
---
|
||
|
||
# 10. SELF and self-evolution
|
||
|
||
## 10.1 SELF is evidence-backed
|
||
|
||
SELF отвечает на вопросы:
|
||
|
||
- что я умею;
|
||
- насколько хорошо;
|
||
- при каких условиях;
|
||
- от чего способность зависит;
|
||
- где я часто ошибаюсь;
|
||
- что изменилось во мне;
|
||
- стало ли лучше.
|
||
|
||
Но SELF не назначает себе качество произвольно.
|
||
|
||
---
|
||
|
||
## 10.2 Self-improvement levels
|
||
|
||
```text
|
||
Level 1: Knowledge update
|
||
Level 2: Behavioral/config adaptation
|
||
Level 3: Skill/Reflex capability evolution
|
||
Level 4: Core/runtime architecture evolution
|
||
```
|
||
|
||
Чем выше уровень, тем сильнее evidence/evaluation/rollback requirements.
|
||
|
||
---
|
||
|
||
## 10.3 Governed evolution loop
|
||
|
||
Существующий Work DevelopmentGate расширяется, а не заменяется.
|
||
|
||
```text
|
||
observed weakness
|
||
-> evidence
|
||
-> diagnosis hypothesis
|
||
-> improvement proposal
|
||
-> expected metrics / must-not-worsen constraints
|
||
-> isolated implementation
|
||
-> FAST verification
|
||
-> milestone evaluation
|
||
-> historical replay
|
||
-> shadow/canary where needed
|
||
-> promotion
|
||
-> observation
|
||
-> Learning Ledger
|
||
-> rollback if degraded
|
||
```
|
||
|
||
`Creator != Judge` сохраняется.
|
||
|
||
---
|
||
|
||
## 10.4 New smarter model
|
||
|
||
Новая модель не получает право переписать Skills только потому, что она новая.
|
||
|
||
Она может:
|
||
|
||
- пройти qualification;
|
||
- анализировать Skill/Reflex archive;
|
||
- предложить improvements;
|
||
- быть independent evaluator;
|
||
- работать в shadow.
|
||
|
||
Promotion проходит обычный governed path.
|
||
|
||
---
|
||
|
||
# 11. Long-running background work
|
||
|
||
Пользователь может сказать:
|
||
|
||
> «Разбирайся сколько потребуется»
|
||
|
||
Это создаёт durable Work, а не удерживает один HTTP connection/model request.
|
||
|
||
### Required semantics
|
||
|
||
- checkpoint after meaningful steps;
|
||
- explicit hypothesis/attempt/finding records;
|
||
- pause/resume;
|
||
- deadline/budget;
|
||
- model/provider replaceability;
|
||
- network/provider outage recovery;
|
||
- restart recovery;
|
||
- human Attention only when useful;
|
||
- ability to continue silently until result/blocker/decision point.
|
||
|
||
Continuity отвечает за wake/relevance, Work — за process state.
|
||
|
||
---
|
||
|
||
# 12. Roles, perspectives and agent teams
|
||
|
||
## 12.1 Perspective, not persona
|
||
|
||
Perspective определяет способ анализа, а не художественный персонаж.
|
||
|
||
```text
|
||
Architect:
|
||
dependencies, invariants, future change, failure modes
|
||
|
||
Programmer:
|
||
implementation, debug, tests, performance
|
||
|
||
Director:
|
||
value, priority, cost, people, risk
|
||
|
||
Designer:
|
||
usability, interaction, clarity
|
||
```
|
||
|
||
---
|
||
|
||
## 12.2 Dynamic specialist
|
||
|
||
Домовой может собрать временного специалиста из:
|
||
|
||
```text
|
||
Perspective
|
||
+ Focus
|
||
+ relevant Knowledge
|
||
+ Skills
|
||
+ tools
|
||
+ evaluation criteria
|
||
```
|
||
|
||
Он не обязан существовать заранее как отдельный permanent agent.
|
||
|
||
---
|
||
|
||
## 12.3 Team only when justified
|
||
|
||
Multi-agent strategy выбирается только если decomposition/independence даёт ожидаемый прирост качества.
|
||
|
||
Agent count не является quality metric.
|
||
|
||
WorkGraph хранит независимые Findings/Evidence/Artifacts, а не только текстовые пересказы агентов друг другу.
|
||
|
||
---
|
||
|
||
# 13. Risk, user control and consequences
|
||
|
||
## 13.1 No artificial capability blacklist as design principle
|
||
|
||
Основная модель:
|
||
|
||
```text
|
||
Identity
|
||
-> Intent authenticity
|
||
-> Authority
|
||
-> Consequence/Risk
|
||
-> Mitigation
|
||
-> Confirmation when needed
|
||
-> Commit
|
||
```
|
||
|
||
Высокий риск означает больше evidence, предупреждение, simulation/backup/rollback и более сильное подтверждение, а не автоматическое «вам нельзя».
|
||
|
||
---
|
||
|
||
## 13.2 Owner may choose risky action
|
||
|
||
Если authenticated owner после ясного описания последствий подтверждает рискованную операцию, система может её выполнить в рамках explicit authority.
|
||
|
||
При этом архитектурные integrity truths нельзя подменять:
|
||
|
||
- нельзя сказать `SUCCEEDED`, если Outcome неизвестен;
|
||
- нельзя незаметно изменить подтверждённый subject;
|
||
- нельзя считать отсутствие evidence доказательством;
|
||
- нельзя скрыть известный существенный риск.
|
||
|
||
---
|
||
|
||
## 13.3 Self-change transaction
|
||
|
||
Для core/system change preferred path:
|
||
|
||
```text
|
||
snapshot
|
||
-> candidate
|
||
-> build
|
||
-> tests
|
||
-> start isolated
|
||
-> health
|
||
-> switch/canary
|
||
-> observe
|
||
-> commit version
|
||
```
|
||
|
||
Failure -> Supervisor rollback.
|
||
|
||
---
|
||
|
||
# 14. Truth versus exploration
|
||
|
||
Внутренний поиск решения допускает широкий набор гипотез.
|
||
|
||
```text
|
||
Hypothesis != Claim accepted as true
|
||
```
|
||
|
||
Домовой может исследовать маловероятные варианты, но human-facing answer обязан отражать epistemic state.
|
||
|
||
Примеры:
|
||
|
||
```text
|
||
SUPPORTED
|
||
STALE
|
||
CONFLICTED
|
||
PARTIAL
|
||
UNKNOWN
|
||
UNAVAILABLE
|
||
```
|
||
|
||
Если свежий источник недоступен, старое знание может быть использовано как hypothesis/analogy с соответствующим disclosure.
|
||
|
||
---
|
||
|
||
# 15. World/environment future compatibility
|
||
|
||
Gen2 не реализует сейчас всю ambient среду, но не закрывает путь к ней.
|
||
|
||
Будущие WorldObjects могут быть:
|
||
|
||
- person;
|
||
- organization;
|
||
- room;
|
||
- computer;
|
||
- phone;
|
||
- TV;
|
||
- microphone;
|
||
- camera;
|
||
- vehicle;
|
||
- robot;
|
||
- database;
|
||
- repository;
|
||
- service;
|
||
- document collection;
|
||
- unknown future device/object kind.
|
||
|
||
Future flow:
|
||
|
||
```text
|
||
voice observation
|
||
-> source identity evidence
|
||
-> Situation detects user/environment
|
||
-> Capability resolves street camera
|
||
-> Situation/World identifies nearby suitable display
|
||
-> Authority/Policy/Consequence
|
||
-> TV presentation capability
|
||
```
|
||
|
||
Это future capability, не Gen2 foundation implementation requirement.
|
||
|
||
---
|
||
|
||
# 16. Source trust and entity resolution
|
||
|
||
## 16.1 Source trust is contextual
|
||
|
||
Нельзя использовать глобальное `trust=0.9`.
|
||
|
||
Reliability assessment зависит от:
|
||
|
||
```text
|
||
Source
|
||
× Domain
|
||
× Freshness
|
||
× History
|
||
× Identity confidence
|
||
× Provenance quality
|
||
```
|
||
|
||
Epistemics владеет evidence/assessment, а не provider adapter.
|
||
|
||
---
|
||
|
||
## 16.2 Entity resolution
|
||
|
||
`Иван`, Telegram contact, CRM person и voice speaker могут быть одним человеком или разными.
|
||
|
||
World identity resolution поддерживает:
|
||
|
||
- candidate same-as;
|
||
- evidence refs;
|
||
- confidence;
|
||
- confirmed merge;
|
||
- reversible split/correction;
|
||
- identifier history.
|
||
|
||
Никакое semantic similarity alone не выполняет irreversible merge.
|
||
|
||
---
|
||
|
||
# 17. Resource and cost model
|
||
|
||
Work задаёт требования задачи:
|
||
|
||
- required quality;
|
||
- allowed latency;
|
||
- cost budget;
|
||
- freshness;
|
||
- cost of error;
|
||
- reversibility;
|
||
- background allowed;
|
||
- deadline.
|
||
|
||
Capability/Strategy выбирает исполнение.
|
||
|
||
Пример:
|
||
|
||
```text
|
||
movie recommendation
|
||
cheap path acceptable
|
||
|
||
production financial discrepancy
|
||
correctness/freshness >> latency
|
||
```
|
||
|
||
Домовой со временем обучается пользовательским предпочтениям по этим trade-offs, но выводимые preferences имеют provenance/scope и не превращаются в вечный global constant без evidence.
|
||
|
||
---
|
||
|
||
# 18. Evaluation and Personal Benchmark
|
||
|
||
Gen2 не имеет одной метрики `better`.
|
||
|
||
Оцениваются минимум:
|
||
|
||
- goal achievement;
|
||
- correctness;
|
||
- evidence quality;
|
||
- repeated mistakes;
|
||
- user corrections;
|
||
- unnecessary clarifications;
|
||
- missed necessary clarification;
|
||
- latency;
|
||
- resource/API cost;
|
||
- risk incidents;
|
||
- recovery success;
|
||
- context relevance;
|
||
- regression count;
|
||
- complexity/maintenance cost.
|
||
|
||
Capability продолжает владеть component/task evaluations.
|
||
|
||
SELF строит evidence-backed interpretation этих результатов и Learning Ledger.
|
||
|
||
Реальные классы задач владельца формируют Personal Benchmark Suite.
|
||
|
||
---
|
||
|
||
# 19. Primary UX and emergency control plane
|
||
|
||
## 19.1 Primary interface
|
||
|
||
Главный UX:
|
||
|
||
> сказать Домовому, чего хочешь.
|
||
|
||
Это относится и к runtime configuration, и к Skill use, и к tasks, и к будущим devices.
|
||
|
||
---
|
||
|
||
## 19.2 Technical UI is secondary
|
||
|
||
Creator Web diagnostic/admin screens разрешены для:
|
||
|
||
- наблюдения;
|
||
- audit;
|
||
- diagnostics;
|
||
- development;
|
||
- recovery.
|
||
|
||
Но обычная operation не должна требовать ручного похода по admin settings.
|
||
|
||
---
|
||
|
||
## 19.3 Emergency path
|
||
|
||
Если основной Interaction/LLM/Core сломан, нужен независимый минимальный recovery интерфейс Supervisor/devctl.
|
||
|
||
Разговор с Домовым не может быть единственным способом починить Домового, который не запускается.
|
||
|
||
---
|
||
|
||
# 20. Dependency rules Gen2
|
||
|
||
## 20.1 No God context
|
||
|
||
Не создаётся `DomovoyContext` с доступом ко всем stores/services.
|
||
|
||
Runtime orchestration собирает explicit contracts.
|
||
|
||
---
|
||
|
||
## 20.2 SELF is not central dependency
|
||
|
||
Обычный request path не обязан проходить через SELF.
|
||
|
||
SELF наблюдает и оценивает систему асинхронно/по explicit query.
|
||
|
||
Это защищает от превращения self-improvement в центральный монолит.
|
||
|
||
---
|
||
|
||
## 20.3 World does not become truth owner
|
||
|
||
World schemas/referents используются Epistemics, но WorldObject не заменяет domain object и не объявляет произвольный payload текущей истиной.
|
||
|
||
---
|
||
|
||
## 20.4 Configuration is explicit
|
||
|
||
Domain module не вызывает global `GetSetting("x")` service locator.
|
||
|
||
Runtime/adapters получают resolved typed configuration явно или через bounded query contract.
|
||
|
||
---
|
||
|
||
## 20.5 Event usage
|
||
|
||
Не вводится generic Event Bus ради моды.
|
||
|
||
Domain Event создаётся только когда нужен:
|
||
|
||
- durable history;
|
||
- temporal decoupling;
|
||
- asynchronous projection;
|
||
- explicit cross-owner notification.
|
||
|
||
Outbox/inbox остаются technical mechanism.
|
||
|
||
---
|
||
|
||
# 21. Suggested Gen2 owner registry target
|
||
|
||
| Owner | Gen2 role | Change |
|
||
|---|---|---|
|
||
| Identity | actor/principal identity | KEEP |
|
||
| Authority | grants + AuthorityScope | KEEP/CLARIFY |
|
||
| Interaction | human input/intents/corrections | KEEP/EXPAND |
|
||
| Situation | FocusFrame/FocusStack/ContextScope | REWORK |
|
||
| World | referents + schema vocabulary + identity resolution | NEW |
|
||
| Epistemics | evidence/knowledge/freshness/experience/outcome assessment | EXPAND |
|
||
| Work | goals/tasks/jobs/plans/perspectives/consequence/development | EXPAND |
|
||
| Continuity | commitments/prospective/attention/human response | KEEP |
|
||
| Capability | abilities/implementations/skill/reflex/selection/evaluation | EXPAND |
|
||
| Configuration | typed/scoped settings and resolution | NEW |
|
||
| SELF | competence/weakness/learning ledger/self assessment | NEW |
|
||
| Commit | authorized mutation/attempt/idempotency | KEEP |
|
||
| Artifact | durable raw content/lineage | KEEP/EXPAND |
|
||
| Cognitive workers | replaceable reasoning/context workers | NO OWNER |
|
||
| Supervisor/Lifeboat | release health/switch/rollback/recovery | RUNTIME ONLY |
|
||
|
||
Добавление каждого нового canonical owner требует отдельного ADR до таблиц и implementation.
|
||
|
||
---
|
||
|
||
# 22. Migration architecture
|
||
|
||
## 22.1 No big bang
|
||
|
||
Не мигрировать все bounded contexts одним гигантским commit.
|
||
|
||
Миграция идёт по органам.
|
||
|
||
---
|
||
|
||
## 22.2 V1 remains rollback/reference
|
||
|
||
До promotion соответствующего Gen2 subsystem V1 остаётся доступен как reference/fallback where feasible.
|
||
|
||
---
|
||
|
||
## 22.3 Memory migration
|
||
|
||
V1 HumanUtterance и существующие evidence не переписываются.
|
||
|
||
Новые retrieval projections строятся из существующей canonical history.
|
||
|
||
`PersonalMemory ContextText` становится compatibility projection и затем retire.
|
||
|
||
---
|
||
|
||
## 22.4 Focus migration
|
||
|
||
Focus V2 создаётся Situation owner.
|
||
|
||
На переходе старый `ActiveProjectFocus` может быть compatibility projection из FocusFrame, а не отдельный source of truth.
|
||
|
||
---
|
||
|
||
## 22.5 Configuration migration
|
||
|
||
Порядок:
|
||
|
||
```text
|
||
inventory ENV/config consumers
|
||
-> define SettingDefinitions
|
||
-> import non-secret values
|
||
-> replace secrets with SecretRefs
|
||
-> run shadow/equivalence
|
||
-> make Configuration canonical
|
||
-> ENV fallback read-only compatibility
|
||
-> remove non-bootstrap ENV
|
||
```
|
||
|
||
---
|
||
|
||
## 22.6 World/SELF start low-risk
|
||
|
||
World и SELF сначала могут работать с projection/evidence-only semantics и не находиться в critical mutation path.
|
||
|
||
Canonical responsibilities расширяются только после доказанной необходимости.
|
||
|
||
---
|
||
|
||
# 23. PRE-GEN2 mandatory baseline
|
||
|
||
До первого Gen2 code change:
|
||
|
||
1. `git status` и inventory всех открытых изменений.
|
||
2. Не делать `reset`, discard или overwrite неизвестной работы.
|
||
3. Отделить secrets/build garbage от реального исходного кода.
|
||
4. Выполнить FAST baseline gate.
|
||
5. Закоммитить все актуальные открытые изменения в их рабочей ветке/ветках.
|
||
6. Свести текущую работу в основной поток `main` управляемым merge.
|
||
7. Разрешить конфликты без потери изменений.
|
||
8. Push `main` в canonical remote.
|
||
9. Зафиксировать `GEN2_BASE_COMMIT`.
|
||
10. Создать immutable baseline tag, например `domovoy-pre-gen2-2026-08-28` либо согласованное имя.
|
||
11. Сохранить baseline verification evidence.
|
||
12. Только после этого создавать Gen2 architecture branch/worktree.
|
||
|
||
Полный тяжёлый test suite перед baseline merge не запускается автоматически, если FAST/MILESTONE evidence достаточно для сохранения текущего состояния. Существующий подтверждённый CI evidence учитывается.
|
||
|
||
---
|
||
|
||
# 24. Gen2 testing strategy
|
||
|
||
Тесты являются страховкой архитектурной цели, а не самой целью разработки.
|
||
|
||
## 24.1 FAST gate — основной цикл
|
||
|
||
Запускается после локальных meaningful changes.
|
||
|
||
Содержит только:
|
||
|
||
- compile/build affected packages;
|
||
- targeted changed-owner tests;
|
||
- один/несколько regression tests именно изменённой семантики;
|
||
- fast architecture/diff guard;
|
||
- static check затронутой области where cheap.
|
||
|
||
FAST должен быть коротким и не запускать весь repository suite.
|
||
|
||
---
|
||
|
||
## 24.2 MILESTONE gate — после реперной архитектурной точки
|
||
|
||
Запускается после законченного блока, например:
|
||
|
||
- Semantic Model/ownership;
|
||
- Focus/Scope;
|
||
- Memory/Freshness/Context;
|
||
- Skill/Reflex/SELF;
|
||
- Configuration;
|
||
- Long-running Work/Evolution.
|
||
|
||
Проверяет:
|
||
|
||
- subsystem tests;
|
||
- соседние contracts;
|
||
- ключевые V1 regressions;
|
||
- migration compatibility;
|
||
- architecture invariants;
|
||
- recovery relevant to that milestone.
|
||
|
||
---
|
||
|
||
## 24.3 FULL gate — редко
|
||
|
||
Запускается:
|
||
|
||
- перед merge крупной architecture phase;
|
||
- после критической data migration;
|
||
- перед Gen2 production canary;
|
||
- перед окончательным retirement V1 path.
|
||
|
||
FULL может включать:
|
||
|
||
- `go test ./...`;
|
||
- `go vet ./...`;
|
||
- full architecture suite;
|
||
- recovery/restart;
|
||
- household scenarios;
|
||
- migration tests;
|
||
- selected multimodal suite;
|
||
- benchmark/regression evidence;
|
||
- production smoke when applicable.
|
||
|
||
---
|
||
|
||
## 24.4 Test growth rule
|
||
|
||
Новый тест должен защищать конкретный риск:
|
||
|
||
- observed bug;
|
||
- semantic invariant;
|
||
- migration;
|
||
- recovery;
|
||
- critical consequence;
|
||
- complex algorithm.
|
||
|
||
Не дублировать глобальные architecture invariants десятками feature tests.
|
||
|
||
Если тестовая работа начинает существенно превосходить implementation при отсутствии новых рисков, Codex обязан остановить test expansion и переоценить достаточность evidence.
|
||
|
||
---
|
||
|
||
# 25. Architecture change process for Codex
|
||
|
||
Gen2 architecture work требует отдельного authority class/task packet, который явно разрешает изменение protected architecture artifacts.
|
||
|
||
Ordinary feature task по-прежнему не имеет такого права.
|
||
|
||
Перед кодом каждого Gen2 subsystem:
|
||
|
||
```text
|
||
Constitution
|
||
-> Target Architecture
|
||
-> relevant ADR/owner decision
|
||
-> contract
|
||
-> migration path
|
||
-> implementation
|
||
```
|
||
|
||
Если ownership/semantic conflict не решён, Codex возвращает typed architecture gap, а не создаёт второй owner.
|
||
|
||
---
|
||
|
||
# 26. New ADRs required before implementation
|
||
|
||
Минимально нужны отдельные решения:
|
||
|
||
1. **ADR-G2-001 — Scope split:** AuthorityScope vs ContextScope.
|
||
2. **ADR-G2-002 — World bounded context:** referents/schema vocabulary, no truth ownership.
|
||
3. **ADR-G2-003 — Epistemics Gen2:** knowledge/freshness/outcome assessment/episodes.
|
||
4. **ADR-G2-004 — Memory retrieval architecture:** no monolithic memory owner; projections/context compiler.
|
||
5. **ADR-G2-005 — Dynamic Configuration owner + bootstrap/secrets.**
|
||
6. **ADR-G2-006 — Skill V2 + Reflex lifecycle.**
|
||
7. **ADR-G2-007 — SELF bounded context and evidence boundaries.**
|
||
8. **ADR-G2-008 — Long-running Work/Research ownership with Continuity wake integration.**
|
||
9. **ADR-G2-009 — Consequence/Risk semantics without Authority duplication.**
|
||
10. **ADR-G2-010 — Independent Supervisor/Lifeboat.**
|
||
11. **ADR-G2-011 — Outcome ownership clarification: execution receipt vs world verification.**
|
||
12. **ADR-G2-012 — Gen2 migration/compatibility/retirement policy.**
|
||
|
||
---
|
||
|
||
# 27. What Gen2 foundation explicitly does NOT need to implement yet
|
||
|
||
Следующие направления входят в compatibility requirements, но не обязаны быть полностью реализованы в foundation milestone:
|
||
|
||
- continuous home microphone capture;
|
||
- speaker recognition;
|
||
- continuous video understanding;
|
||
- automatic TV/speaker output selection;
|
||
- home automation;
|
||
- vehicle/robot control;
|
||
- full Digital Twin;
|
||
- mandatory graph database;
|
||
- automatic code compilation for every Reflex;
|
||
- automatic rewrite of all Skills by a new model;
|
||
- fixed team of many agents.
|
||
|
||
При review каждого foundation decision задаётся вопрос:
|
||
|
||
> закрывает ли это решение возможность добавить перечисленное позже без смены фундаментальной семантики?
|
||
|
||
---
|
||
|
||
# 28. Acceptance criteria of Target Architecture
|
||
|
||
Gen2 architecture считается достаточно определённой для Canonical Data Model только если:
|
||
|
||
1. каждый canonical mutable concept имеет ровно одного proposed owner;
|
||
2. AuthorityScope и ContextScope не смешаны;
|
||
3. Memory не становится монолитным owner;
|
||
4. World не превращается в generic `Entity(any)`;
|
||
5. Epistemics остаётся truth/evidence boundary;
|
||
6. Dynamic Configuration не является arbitrary key/value store;
|
||
7. secrets исключены из memory/context/config values;
|
||
8. Skill и Reflex различены;
|
||
9. SELF не является God orchestrator;
|
||
10. Work и Continuity не дублируют durable scheduling responsibility;
|
||
11. Commit сохраняет idempotency/unknown-outcome semantics;
|
||
12. verified world Outcome отделён от executor receipt;
|
||
13. Context Compiler поддерживает маленькие локальные модели и iterative retrieval;
|
||
14. knowledge freshness учитывает volatility и task requirement;
|
||
15. cross-company/version isolation обеспечивается до similarity ranking;
|
||
16. positive и negative experience доступны retrieval;
|
||
17. long-running work не зависит от одного process/model request;
|
||
18. architecture имеет path для self-evolution и independent rollback;
|
||
19. normal user configuration возможно через conversation;
|
||
20. migration from V1 может выполняться поэтапно с rollback;
|
||
21. testing strategy разделена на FAST/MILESTONE/FULL и не блокирует разработку постоянным full-suite прогоном.
|
||
|
||
---
|
||
|
||
# 29. Следующий документ
|
||
|
||
После принятия этой Target Architecture следующий обязательный шаг:
|
||
|
||
**`GEN2_CANONICAL_DATA_MODEL.md`**
|
||
|
||
Он должен определить точные типы, identifiers, lifecycle, validity/freshness fields, schema/value representation, owner tables/streams, projections и migration mapping для:
|
||
|
||
- FocusFrame/ContextScope;
|
||
- WorldObject/schema definitions;
|
||
- Observation/Claim/Belief/Episode/Experience;
|
||
- Knowledge freshness;
|
||
- Skill/Reflex;
|
||
- Configuration;
|
||
- SELF;
|
||
- LongRunningWork;
|
||
- ConsequenceAssessment;
|
||
- Outcome verification.
|
||
|
||
Только после Canonical Data Model следует писать Master Plan и task packets implementation.
|
||
|
||
---
|
||
|
||
# 30. Итог
|
||
|
||
Gen2 не пытается заранее знать все будущие свойства мира.
|
||
|
||
Он должен заранее знать **как безопасно принять новое свойство, новое знание, новый Skill, новый Reflex, новую модель, новый тип устройства и даже новое поколение собственного кода**.
|
||
|
||
Ключевая архитектурная формула:
|
||
|
||
```text
|
||
Stable invariants
|
||
+ evolvable semantics
|
||
+ explicit provenance
|
||
+ scoped/fresh memory
|
||
+ minimal context
|
||
+ evidence-driven learning
|
||
+ cheap-to-expensive intelligence
|
||
+ governed consequences
|
||
+ reversible self-evolution
|
||
```
|
||
|
||
Это и является костяком будущего Домового.
|