Brain ≠ source
Brain — отдельная база и граница владельца. Source — именованный репозиторий внутри базы. Slug уникален в пределах source; каждый результат обязан нести source_id.
Не «векторная база с заметками», а связанная система чтения, записи, доказательств, предохранителей и обратной связи. Ниже — устройство живого контура: от входящего сообщения до факта, графа, ответа и повторного измерения качества.
Hermes — агентный слой. Memory MCP — интерфейс памяти. PostgreSQL + pgvector — операционный индекс и граф. Файловые источники, сессии и приватные документы имеют разные контуры поступления и разные границы доступа.
Brain — отдельная база и граница владельца. Source — именованный репозиторий внутри базы. Slug уникален в пределах source; каждый результат обязан нести source_id.
File-backed источники сохраняют Markdown/Git как долговечный слой. PostgreSQL хранит страницы, чанки, эмбеддинги, факты, takes, связи, хронологию, версии и задания. Для канонических takes Markdown остаётся источником истины.
bge-m3 создаёт 1024‑мерные эмбеддинги; bge-reranker-v2-m3 переупорядочивает кандидатов. Генеративные подписки не участвуют в детерминированном embedding/rerank-контуре.
Raw binary сначала попадает в локальное content-addressed storage (CAS), затем в локальный FTS5/embedding‑индекс. Доступ выдаёт непрозрачная capability, связанная с текущим сеансом и принципалом; обычный поиск памяти исключает docs/inbox/.
Чтение и запись идут параллельными ветвями. Read-path улучшает текущий ответ. Write-path сохраняет только новую, разрешённую и проверенную дельту. Завершённой считается не команда записи, а повторное чтение канонического результата и проверка графа.
entity/recall — для известной сущности или сохранённых фактов.search — точные токены без LLM-expansion.query — понятия, синонимы, связи и ландшафт.get_page — полная каноническая страница перед выводом.Signal detector сохраняет оригинальное мышление пользователя дословно, а не пересказывает. Сущности проходят notability gate. Чисто операционные реплики пропускаются. Контур не должен блокировать основной ответ.
[Source: …] на каждом факте;У каждого входа свой idempotency key, privacy boundary и критерий завершения. Универсального «скопировать в папку мозга» нет: raw copy без dedup, provenance и schema routing считается дефектом.
Детерминированный ingest идёт ежечасно в :25: 45‑минутный quiet gate, редактирование секретов, versioned checkpoints, полные UUID для Codex. Parent хранит head+tail+индекс, segments делают полный хвост searchable. Live-корпус: 12 611 conversation-parent и 1 130 segment-страниц. Широкий исторический backfill намеренно заменён контролируемыми batches.
20 файловых источников были свежими в live status. Sync индексирует изменения, пересобирает чанки и эмбеддинги, а autopilot выполняет обслуживание.
Аудит миграции: 40 raw objects / 56 upload events, 38 индексированных документов, один oversize и один visual-only; missing raw = 0, missing derived = 0. ACL: owner-global, иначе uploader или текущий group chat. Ни содержимое, ни имена документов в эту публичную страницу не включены.
Структурированный ввод идёт через memory verbs или page operations. URL проходит exact URL/title/author/core-claim dedup и сохраняет provenance. capture без slug допустим только при явном запросе на неразобранный inbox; иначе slug обязателен.
Это разные сущности и разные quality gates. Fact — доказательная строка. Take — каноническая позиция. Atom — точная цитата для последующего концептуального синтеза. Chronicle — событие во времени. Смешивать их означает потерять provenance и управляемость.
Автоматический brain-wide backfill выключен: массовые операции идут только ограниченными проверяемыми запусками. Pre-insert gate проверяет чувствительность, опору, атомарность, self-containedness, entity attribution, causation и generalization.
Live count — 8 591 atom-страница. Для substantive source требуется точная непрерывная цитата ≤200 символов; canonical body равен цитате. Последний blinded sample: support 10/10, atomic 8/10, один sensitive leak. Поэтому autopilot.auto_drain.enabled=false; текущий усиленный scanner ещё должен пройти свежую независимую выборку.
В аудите было 3 320 повторяющихся concept labels и 0 синтезированных concept-страниц. synthesize_concepts реализован, но pack-gated. Разрешён только прогрессивный маршрут: 10 clusters → review → 100 clusters → решение о recurring phase.
До исправления 192 задания за 24 часа дали 191 no_events; единственная полезная 809-turn сессия дала 25 событий. Теперь conversation с явным message_count < 100 не ставится в LLM-очередь; meetings/calendar и legacy без поля остаются eligible.
Снимок очереди: 8 951 pending, 0 accepted; 6 612 строк (73,87%) пришли от atoms. В слепой выборке из 100 предложений 92% были полностью поддержаны источником, но только 50% безопасны для принятия без редактирования. Producer теперь default-off, page-bounded и транзакционный; текущий consumer — только read-only. Acceptance/rejection/promotion остаются NO-GO до fault-injection, source-hash, atomic lock, Markdown/DB read-back и одного явно одобренного canary.
Поиск объединяет независимые recall-arms, затем переранжирует кандидатов. Оценка разделяет техническую воспроизводимость и смысловую полезность: exact slug служит canary стабильности, а semantic hit измеряет, было ли в выдаче нужное доказательство — даже на другой кураторской странице.
Лексический поиск ловит точные токены. bge-m3 даёт семантическую близость. Relational arm обходит типизированный граф. Reciprocal Rank Fusion (RRF) объединяет ранги, расширенный candidate pool поступает в локальный реранкер, затем autocut отсекает хвост по падению confidence.
Реранкер сохраняет поиск при ошибке, возвращая RRF-порядок, поэтому «получили результаты» недостаточно. Валидный benchmark требует: 0 новых rerank-audit rows, rerank_score у каждого непустого результата и конфигурацию ctx=4096, b=4096, ub=4096, np=1.
396/396 кандидатов получили verdict; hidden calibration 15/15; independent overlap 11/12, Cohen’s κ=0,833; uncertain 3/396 (0,76%). Судья видел answer gist, page head и полный найденный chunk. Скрытый ответ в другом месте страницы не засчитывался.
Скилл — не функция и не магический агент. Это versioned prose-contract: триггеры, разрешённые инструменты, фазы, hard fails, формат результата и проверка. Resolver выбирает нужную дисциплину по намерению; runtime‑enforcement используется там, где одного промпта недостаточно.
Первый задаёт READ/WRITE контракт, memory verbs, источник и back-linking. Второй ловит оригинальные идеи и сущности. Их ценность — не «автоматизация ради автоматизации», а предсказуемый повторяемый порядок действий.
brain-ingest-gate решает, должна ли страница существовать. brain-taxonomist читает активный schema pack. Затем article/media/meeting/bulk skills выполняют специализированную обработку и финальный read-back.
Skillify требует eval contract и no-regression. Skill-autobench строит кейсы из реальной истории использования и пользовательских исправлений. Cross-model review даёт независимый взгляд, а deterministic tests фиксируют доказанное поведение.
Ingest gate и Iron Law — routing conventions: если агент не загрузил skill, runtime сам не гарантирует идеальную семантическую дедупликацию. Поэтому критические границы вынесены в код: capability ACL документов, hard-exclude приватных префиксов, trusted-local migration mode, default-off producer gates, sensitive scanners и fail-closed model walker.
Аудит — это состояние реализации, а не архитектурный принцип. Принцип в другом: зрелая память использует многослойную проверку: статус → независимое измерение → bounded canary → read-back → только потом масштабирование.
extract_health раньше интерпретировал длинный backlog как halt; type-proliferation сравнивал не с тем фактически загруженным pack; «spent $» отражал quota-equivalent accounting, а не обязательно денежный bill. Правило: каждое предупреждение сначала воспроизводится другим путём, затем меняется система.
Технически успешная генерация не доказывает качество. Для facts и atoms нужны source support, атомарность, отсутствие утечек, дедупликация и supersession. Один провал threshold удерживает recurring phase независимо от числа пройденных unit tests.
Prompt discipline полезна, но не является границей безопасности. Поэтому documents используют capability ACL, local-only store и hard-exclude ordinary search; remote caller не получает host filesystem/browser/process bypass.
Сессии с legacy collisions, старые proposals и audit rows сохраняются как история. Исправления additive: новые канонические slugs, quarantine/search policy, terminal receipts и supersession. Delete/purge/source removal требуют отдельного data-loss gate и явного согласия владельца.
Что автоматизируем, срок и цена — до старта.
Описать задачу