Архитектура памяти ИИ-агента: как поток сообщений становится проверяемой памятью
Главная›Как устроено›Архитектура памяти агента
ai-automation.llc
Проверенная схема · снимок 2026-08-21

Как агент превращает поток сообщений в проверяемую память

Не «векторная база с заметками», а связанная система чтения, записи, доказательств, предохранителей и обратной связи. Ниже — устройство живого контура: от входящего сообщения до факта, графа, ответа и повторного измерения качества.

Источник: live MCP + doctor/health/status Аудит: 20–21 августа 2026 Статус: verified with known limits Публичность: только агрегаты, без приватного текста
43 454страницы в текущем корпусе
117 893поисковых чанков
100%покрытие эмбеддингами
82 801типизированных и обычных связей
15 145записей хронологии
69опубликованных скиллов
01

Общая архитектура

Hermes — агентный слой. Memory MCP — интерфейс памяти. PostgreSQL + pgvector — операционный индекс и граф. Файловые источники, сессии и приватные документы имеют разные контуры поступления и разные границы доступа.

Общая архитектура памяти агента: агентный слой, Memory MCP, PostgreSQL, локальный поиск, приватные документы и LLM-контуры
Схема 1. Компоненты и основные потокиSVGPNGMermaidExcalidraw
Две оси

Brain ≠ source

Brain — отдельная база и граница владельца. Source — именованный репозиторий внутри базы. Slug уникален в пределах source; каждый результат обязан нести source_id.

Хранилище

Текст, индекс и граф

File-backed источники сохраняют Markdown/Git как долговечный слой. PostgreSQL хранит страницы, чанки, эмбеддинги, факты, takes, связи, хронологию, версии и задания. Для канонических takes Markdown остаётся источником истины.

Retrieval

Локальные модели поиска

bge-m3 создаёт 1024‑мерные эмбеддинги; bge-reranker-v2-m3 переупорядочивает кандидатов. Генеративные подписки не участвуют в детерминированном embedding/rerank-контуре.

Приватность

Документы отделены

Raw binary сначала попадает в локальное content-addressed storage (CAS), затем в локальный FTS5/embedding‑индекс. Доступ выдаёт непрозрачная capability, связанная с текущим сеансом и принципалом; обычный поиск памяти исключает docs/inbox/.

02

Петля дисциплины на каждом сообщении

Чтение и запись идут параллельными ветвями. Read-path улучшает текущий ответ. Write-path сохраняет только новую, разрешённую и проверенную дельту. Завершённой считается не команда записи, а повторное чтение канонического результата и проверка графа.

Цикл обработки сообщения: brain-first lookup и signal detector, объединение дельты, ingest gate, канонический slug, запись и read-back
Схема 2. READ → PULL → RESPOND и READ → ENRICH → WRITESVGPNGMermaidExcalidraw
READ

Brain-first lookup

  • entity/recall — для известной сущности или сохранённых фактов.
  • search — точные токены без LLM-expansion.
  • query — понятия, синонимы, связи и ландшафт.
  • get_page — полная каноническая страница перед выводом.
SIGNAL

Оригинальные идеи и сущности

Signal detector сохраняет оригинальное мышление пользователя дословно, а не пересказывает. Сущности проходят notability gate. Чисто операционные реплики пропускаются. Контур не должен блокировать основной ответ.

WRITE

Не «записал», а доказал

  • entity resolution и semantic dedup до записи;
  • явный taxonomy-valid slug;
  • inline [Source: …] на каждом факте;
  • обратные ссылки и датированная хронология;
  • read-back, проверка outgoing links и backlinks.
remember
Один уже сформированный долговечный факт с provenance, дедупликацией и supersession.
put_page
Структурированная страница: проект, анализ, концепт, источник или заметка.
Compiled truth
Кураторское текущее понимание страницы; выше timeline, ниже прямого слова пользователя.
Iron Law
Упомянутая сущность должна иметь обратную ссылку на страницу, где она упомянута.
03

Как информация попадает и актуализируется

У каждого входа свой idempotency key, privacy boundary и критерий завершения. Универсального «скопировать в папку мозга» нет: raw copy без dedup, provenance и schema routing считается дефектом.

Sessions

Hermes / Claude / Codex

Детерминированный ingest идёт ежечасно в :25: 45‑минутный quiet gate, редактирование секретов, versioned checkpoints, полные UUID для Codex. Parent хранит head+tail+индекс, segments делают полный хвост searchable. Live-корпус: 12 611 conversation-parent и 1 130 segment-страниц. Широкий исторический backfill намеренно заменён контролируемыми batches.

Git sources

Синхронизация репозиториев

20 файловых источников были свежими в live status. Sync индексирует изменения, пересобирает чанки и эмбеддинги, а autopilot выполняет обслуживание.

Documents

Local-only document ingress

Аудит миграции: 40 raw objects / 56 upload events, 38 индексированных документов, один oversize и один visual-only; missing raw = 0, missing derived = 0. ACL: owner-global, иначе uploader или текущий group chat. Ни содержимое, ни имена документов в эту публичную страницу не включены.

Direct capture

MCP, capture и URL

Структурированный ввод идёт через memory verbs или page operations. URL проходит exact URL/title/author/core-claim dedup и сохраняет provenance. capture без slug допустим только при явном запросе на неразобранный inbox; иначе slug обязателен.

Что сознательно не считается работающим ingress: meeting/email/calendar/X-интеграции не включены по решению владельца. Browser-history имеет server worker, но без установленного расширения и реального canary «visit → intake → archive → retrieval» это только подготовленный контур, а не доказанный поток данных.
04

Факты, takes, atoms и Chronicle

Это разные сущности и разные quality gates. Fact — доказательная строка. Take — каноническая позиция. Atom — точная цитата для последующего концептуального синтеза. Chronicle — событие во времени. Смешивать их означает потерять provenance и управляемость.

Два конвейера: извлечение фактов из сегментированных сессий и precision-first извлечение atoms с quality gates
Схема 3. LLM-bound extraction с детерминированными стоп-гейтамиSVGPNGMermaidExcalidraw
Facts · HOLD

Только bounded runs

Автоматический brain-wide backfill выключен: массовые операции идут только ограниченными проверяемыми запусками. Pre-insert gate проверяет чувствительность, опору, атомарность, self-containedness, entity attribution, causation и generalization.

Atoms · HOLD

Body равен доказательству

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 ещё должен пройти свежую независимую выборку.

Concepts · GATED

Синтез не включён

В аудите было 3 320 повторяющихся concept labels и 0 синтезированных concept-страниц. synthesize_concepts реализован, но pack-gated. Разрешён только прогрессивный маршрут: 10 clusters → review → 100 clusters → решение о recurring phase.

Chronicle

Детерминированный pre-gate

До исправления 192 задания за 24 часа дали 191 no_events; единственная полезная 809-turn сессия дала 25 событий. Теперь conversation с явным message_count < 100 не ставится в LLM-очередь; meetings/calendar и legacy без поля остаются eligible.

Take proposals: почему нет auto-promote

Снимок очереди: 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.

05

Поиск и петля оценки

Поиск объединяет независимые recall-arms, затем переранжирует кандидатов. Оценка разделяет техническую воспроизводимость и смысловую полезность: exact slug служит canary стабильности, а semantic hit измеряет, было ли в выдаче нужное доказательство — даже на другой кураторской странице.

Контур поиска и оценки: keyword, vector и graph arms, RRF, reranker, audit hard gate, deterministic benchmark и blinded semantic judging
Схема 4. Retrieval → hard gates → blinded evaluation → fresh rerunSVGPNGMermaidExcalidraw
Recall

Три основных arm

Лексический поиск ловит точные токены. bge-m3 даёт семантическую близость. Relational arm обходит типизированный граф. Reciprocal Rank Fusion (RRF) объединяет ранги, расширенный candidate pool поступает в локальный реранкер, затем autocut отсекает хвост по падению confidence.

Hard gate

Fail-open должен быть видим

Реранкер сохраняет поиск при ошибке, возвращая RRF-порядок, поэтому «получили результаты» недостаточно. Валидный benchmark требует: 0 новых rerank-audit rows, rerank_score у каждого непустого результата и конфигурацию ctx=4096, b=4096, ub=4096, np=1.

Semantic eval

Что именно измерено

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. Скрытый ответ в другом месте страницы не засчитывался.

Baseline · 20 Aug

До remediation

  • semantic hit@5: 82/113 = 72,57%
  • MRR (Mean Reciprocal Rank): 0,6947
  • precision@returned: 0,4916
  • sessions: 8/16; code: 15/20; large docs: 16/20
Final · 21 Aug

После remediation

  • semantic hit@5: 84/113 = 74,34% (+1,77 п.п.)
  • MRR: 0,7124 (+0,0177)
  • precision@returned: 0,4858 (−0,58 п.п.)
  • 226/226 valid, top‑1 stability 100%, mean top‑5 Jaccard 99,41%
  • sessions: 9/16; code: 14/20; large docs: 17/20
Ограничение методики: это corpus-authored benchmark, не blind holdout реальных пользовательских вопросов. Он хорошо измеряет воспроизводимость и регрессии, но может быть оптимистичен из-за общей лексики с исходным корпусом. Один известный miss остаётся вне top‑5 примерно на rank 12.
06

Скиллы как исполняемая дисциплина

Скилл — не функция и не магический агент. Это versioned prose-contract: триггеры, разрешённые инструменты, фазы, hard fails, формат результата и проверка. Resolver выбирает нужную дисциплину по намерению; runtime‑enforcement используется там, где одного промпта недостаточно.

Маршрутизация 69 скиллов: brain-ops, ingest-специалисты, maintain/eval, независимое измерение и согласие владельца
Схема 5. Resolver → skills → измерение → policy gateSVGPNGMermaidExcalidraw
Always-on

brain-ops + signal-detector

Первый задаёт READ/WRITE контракт, memory verbs, источник и back-linking. Второй ловит оригинальные идеи и сущности. Их ценность — не «автоматизация ради автоматизации», а предсказуемый повторяемый порядок действий.

Ingest

Gate + specialist

brain-ingest-gate решает, должна ли страница существовать. brain-taxonomist читает активный schema pack. Затем article/media/meeting/bulk skills выполняют специализированную обработку и финальный read-back.

Eval

Skillify и autobench

Skillify требует eval contract и no-regression. Skill-autobench строит кейсы из реальной истории использования и пользовательских исправлений. Cross-model review даёт независимый взгляд, а deterministic tests фиксируют доказанное поведение.

Граница prompt discipline

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.

07

Главная дисциплина: доверять не обещанию, а свежему read-back

Аудит — это состояние реализации, а не архитектурный принцип. Принцип в другом: зрелая память использует многослойную проверку: статус → независимое измерение → bounded canary → read-back → только потом масштабирование.

Почему doctor нельзя исполнять как приказ

extract_health раньше интерпретировал длинный backlog как halt; type-proliferation сравнивал не с тем фактически загруженным pack; «spent $» отражал quota-equivalent accounting, а не обязательно денежный bill. Правило: каждое предупреждение сначала воспроизводится другим путём, затем меняется система.

Почему auto-drain остаётся выключенным

Технически успешная генерация не доказывает качество. Для 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 и явного согласия владельца.

Итоговая модель

  1. Память начинается с дисциплины чтения: текущий ответ сначала питается из известных страниц, фактов, графа и хронологии.
  2. Запись — это не копирование: entity resolution, dedup, schema routing, provenance, backlinks и read-back образуют единый commit protocol.
  3. LLM не является источником истины: он предлагает extraction/synthesis, а deterministic scanners, semantic gates, bounded batches и owner approval решают, что может стать каноническим.
  4. Оценка замыкает петлю: regression benchmark, blinded judging, calibration, overlap и hard operational gates превращают «кажется, лучше» в проверяемое изменение.

Опишите задачу — вернём план за рабочий день

Что автоматизируем, срок и цена — до старта.

Описать задачу