Путь чтения и маршрутизация
Поток чтения определяет, какую память агент увидит для данной задачи.
Поток чтения
- Engram загружает индексы рабочего пространства и необязательные глобальные индексы.
- Записи рабочего пространства имеют приоритет над глобальными дубликатами.
- Правила игнорирования и фильтры ролей скрывают нерелевантные записи.
- Маршрутизация с учётом графа выбирает компактный пакет контекста.
- Проверки хешей и безопасности выполняются до вывода содержимого.
Привязка, ранжирование и уточнение
load сначала привязывает маршрутизацию к значимым терминам запроса, игнорируя общие слова памяти, такие как rule, knowledge, и типичные стоп-слова. Затем он ранжирует кандидатов по BM25 (с лёгким стеммингом) по id, тегам, directive, краткому описанию, триггерам и терминам содержимого. Оценка масштабируется по жизненному циклу (review_due ×0.7), устареванию (×0.6), уверенности (medium ×0.9) и области (рабочее пространство ×1.1), плюс небольшой бонус воспоминаниям, которые агенты запрашивали. Воспоминания, у которых valid_until уже прошёл, исключаются с причиной пропуска lifecycle. Запросу с четырьмя и более якорями нужны два попадания по якорям или одно попадание по сильному полю (id, тег, directive или путь из applies_to). Векторные совпадения без пересечения по терминам никогда не допускают воспоминание.
Наконец, он уточняет более широкий пул кандидатов до компактного пакета контекста.
Обычная загрузка сообщает число выбранных и всех связанных воспоминаний, например loaded 8 memory files / 14 total related memories.
load --dry-runпоказывает число кандидатов, сужающие теги и причины совпадений.load --allвозвращает все видимые маршрутизированные совпадения вместо применения компактного лимита.loadпо умолчанию — компактный маршрут для агента. Используйтеload --fullдля более широкого устаревшего вывода.
Многоуровневое раскрытие
Вывод для агента по умолчанию разбит на уровни (load.disclosure: auto):
- Первые
load.expand_topсовпадений (по умолчанию 3) выводятся телами под### <id> [<type>, <authority>], сrequires: <ids>, если у воспоминания естьdepends_on. - Каждое другое выбранное совпадение, плюс до 5 пропущенных кандидатов, выводится однострочной карточкой
- <id> [<type>] <directive-or-summary>, с добавлением(stale), если его источники изменились. - Вывод завершается строкой
fetch: engram load --id <ids>, чтобы агент запрашивал полное тело только при необходимости.
Frontmatter, ## Context, ## Example и ## Origin агентам никогда не отображаются. --budget-tokens ограничивает весь вывод: Engram сначала превращает тела в карточки и только затем отбрасывает карточки с самым низким рангом. Используйте --disclosure full, --full или --all, чтобы отключить разбиение на уровни.
Дельта хуков и триггеры по путям
Хуки помнят, какие ключи памяти они уже доставили в сессии. Последующие реплики внедряют только новые тела, а остальные сворачивают в одну строку already loaded: <ids>. SessionStart и PreCompact сбрасывают этот набор. Воспоминания с glob-шаблонами applies_to также внедряются «точно вовремя» по событиям файлов PreToolUse (правки Codex apply_patch; Claude Read, Edit, Write, MultiEdit в режиме hook) и по событиям Gemini AfterTool (read_file, write_file, replace), не более 3 тел на событие. При hooks.path_rules native (по умолчанию) Claude и Cursor вместо этого загружают их из сгенерированных файлов правил в .claude/rules/engram/ и .cursor/rules/engram/, а хук Claude InstructionsLoaded передаёт набор доставленного. Субагенты Claude и Codex стартуют с маршрутизированным контекстом через SubagentStart, а вывод хуков остаётся в пределах ограничения размера payload каждого хоста (2 400 токенов в Codex, 9 500 символов в Claude): при превышении тела понижаются до карточек и никогда не обрезаются посреди текста. См. Хуки и строки подтверждения.
workflow и workflows по-прежнему маршрутизируются к воспоминаниям-навыкам, но общие слова-типы сами по себе не создают широкого совпадения.
Слои зависимостей
Используйте frontmatter depends_on, когда воспоминание должно опираться на другое воспоминание, а не повторять его:
depends_on: [release-foundation]
level: advanced
Выполните engram graph --rebuild после ручных правок. Граф сообщает о слоях зависимостей, а engram load подтягивает маршрутизируемые предварительные условия в тот же компактный пакет контекста перед более глубокими воспоминаниями. Связанные рёбра графа и векторные совпадения сами по себе не могут загрузить посторонние воспоминания; они лишь помогают переранжировать или расширить воспоминания, которые уже пересекаются со значимыми терминами запроса. Явные предварительные условия depends_on могут по-прежнему загружаться без собственного совпадения по ключевым словам.