ai-memory
официальныйПостоянная память для любого ИИ-ассистента. Нулевая стоимость токенов до момента извлечения. Хранит воспоминания в локальной SQLite, ранжирует по 6-факторной оценке, возвращает результаты на 79% меньше, чем JSON. Работает с Claude, ChatGPT, Grok, Cursor, Windsurf и любым MCP-клиентом.
Что можно делать с Ai Memory MCP?
- Сохранение фактов, предпочтений и исправлений — попросите ассистента запомнить что-либо через
memory_store, сохраняя это в локальной SQLite или PostgreSQL базе данных. - Извлечение релевантных воспоминаний по запросу — получайте контекстно-зависимые результаты, отсортированные по релевантности, с помощью
memory_recallили полнотекстовогоmemory_search. - Просмотр, получение и управление сохраненными воспоминаниями — просматривайте все сохраненные записи через
memory_list, извлекайте конкретную запись по ID с помощьюmemory_getили архивируйте устаревшие элементы. - Координация многолетних рабочих процессов — создавайте типизированные DAG-графы действий, получайте аренду с ограничением по TTL и обменивайтесь подписанными сигналами с помощью инструментов
memory_action_*,memory_lease_*иmemory_signal_*. - Отслеживание происхождения и источника воспоминаний — просматривайте DAG-граф происхождения любого воспоминания через
memory_lineage, чтобы увидеть, какие факты были получены из каких источников.
Документация
ai-memory™
универсальная память ИИ
ai-memory — это система постоянной памяти для ИИ-ассистентов. Она работает с любым ИИ, поддерживающим MCP — Claude, ChatGPT, Grok, Llama и другими. Она сохраняет то, что узнает ваш ИИ, в локальной базе данных SQLite, ранжирует воспоминания по релевантности при вызове и автоматически продвигает важные знания в постоянное хранилище. Установите один раз, и каждый ваш ИИ-ассистент будет помнить вашу архитектуру, предпочтения, исправления — навсегда.
Выберите путь установки
| Вы… | Ваше развертывание… | Начните здесь |
|---|---|---|
| Один разработчик, пробующий ai-memory | Один ИИ-клиент на ноутбуке | docs/install-quickstart.md — сверхпростая установка за 5 минут + LLM-бэкенд, подключенный в одном блоке |
| Инженер / архитектор | Продакшен на одном узле или несколько агентов на одном узле | docs/INSTALL.md → docs/production-deployment.md |
| Инженер / архитектор | Несколько серверов / стоек / ЦОД / рой / улей / федерация | docs/enterprise-deployment.md — 8 топологий, от singleton до multi-region |
| Инженер / архитектор | Хранилище PostgreSQL + Apache AGE (многопользовательская запись, 10M+ воспоминаний, интенсивная работа с графами знаний) | docs/postgres-age-guide.md — первоклассное руководство по оператору postgres |
| Лицо, принимающее решения, оценивающее внедрение | — | docs/audience/decision-maker.html |
Настройка LLM-бэкенда (xAI Grok, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, сервер llama.cpp или локальный Ollama)? См.
docs/integrations/llm-backends.md— рецепт MCP env-блока одинаков независимо от пути установки.
v0.9.0 — текущий релиз. Релиз с усилением безопасности и проверкой кода: 49 исправлений по результатам 5-полосного состязательного аудита (#1885–#1935) плюс небольшой набор дополнительных функций. Главное изменение — переход к безопасным настройкам по умолчанию: аттестация агента теперь требуется по умолчанию при прямой HTTP-записи (#1751, с ограничением по поверхности в #1985) — неподписанный HTTP POST /api/v1/memories (+/bulk) отклоняется (403 ATTESTATION_FAILED) вместо того, чтобы попадать в attest_level="claimed", если только оператор не установит явный отказ AI_MEMORY_REQUIRE_AGENT_ATTESTATION=0. Поверхности MCP memory_store и CLI store являются путем оператора как действующего лица и остаются разрешительными по умолчанию (неподписанная запись попадает в claimed); =1 принудительно включает строгий режим на всех поверхностях. (В общедоступной версии v0.9.0 это было реализовано как require-everywhere, что было невыполнимо на хостах MCP — исправлено на ограничение по поверхности в текущем релизе.) Наряду с этим, шлюз принудительного присутствия обязательного хука теперь срабатывает как на пути записи MCP (#1885), так и на пути HTTP-записи (#1924), закрывая брешь скрытого обхода, когда настроенный обязательный хук можно было пропустить на одной поверхности, но не на другой. Усиление защиты также закрывает bulk_create построчную аттестацию (#1919), направляет входящие федеративные ожидающие одобрения через шлюз зарегистрированного утверждающего (#1920), ужесточает область видимости team/unit/org, чтобы она больше не была чрезмерно широкой в иерархии пространств имен (#1921), и ограничивает импорт folder_path из skill_register в пределах настроенного корня с помощью тюрьмы символьных ссылок (#1923). Новый канал учетных данных не из argv — AI_MEMORY_STORE_URL / AI_MEMORY_STORE_URL_FILE (файл 0600) — скрывает пароль postgres/store от доступных для чтения всем /proc/<pid>/cmdline и ps (#1927). Работа над дополнительными функциями: воспоминания о навыках (skill memories), создаваемые агентом, с parameters_schema + invocation_record (B7-SKILL, #1865), теневой контур обратной связи recall_observations (#1706), DAG происхождения воспоминаний (memory_lineage, #1859) и опциональный минимальный срез векторного поиска (#1005). Поверхность: схема v78, 101 инструмент MCP на --profile full (100 вызываемых + всегда активный начальный memory_capabilities) / 7 на --profile core, 92 регистрации HTTP-маршрутов (78 уникальных URL-путей), 89 подкоманд CLI в --features sal/sal-postgres (87 в сборке по умолчанию), 9 типизированных отношений MemoryLink, 28-полевой Memory. Работает на двух производственных бэкендах за одним идентичным API — встроенный SQLite и PostgreSQL + Apache AGE — на десктопе, сервере и на устройствах (iOS + Android). Все является дополнением к v0.8.1, за исключением изменений в аттестации и принудительном использовании хуков, которые являются критическими изменениями с безопасными настройками по умолчанию — ознакомьтесь с ними перед обновлением. Полный список изменений: CHANGELOG.md §"[0.9.0] — 2026-07-08".
v0.8.0 (distributed-coordination) — предыдущий релиз. Это релиз, в котором подложка памяти становится подложкой координации. Он добавляет механизм распределенной координации из #1709: типизированный DAG действий с реальным конечным автоматом (memory_action_*), ограниченные по TTL аренды с одним держателем (memory_lease_*), подписанные сигналы Ed25519 (memory_signal_*), аттестованные контрольные точки Ed25519 (memory_checkpoint_*) и замороженные, воспроизводимые процедуры (memory_routine_*) — так что гетерогенный парк агентов может действовать по очереди, передавать работу и доказывать, кто что сказал, без необходимости доверять друг другу. Он добавляет типизированное познание поверх этого (виды памяти Goal/Plan/Step, машину lifecycle_state и отношения связей decomposes_into / depends_on / advances), усиливает безопасность федерации по умолчанию (регистрация пиров ВКЛЮЧЕНА по умолчанию #1789, подписи на каждом переходе #1718, аттестация содержимого при каждой записи #1464, одноразовые номера воспроизведения перехода #1805, закрепление сертификатов исходящих пиров #1678) и поставляет управление, которое действительно блокирует — хук PreToolUse Claude Code переработан в обертку type:command, так что подложка Refuse действительно запрещает инструмент (#1811). На момент релиза v0.8.0 поверхность была: схема v70, 100 инструментов MCP на --profile full (99 вызываемых + всегда активный начальный memory_capabilities) / 7 на --profile core, 91 регистрация HTTP-маршрутов (78 уникальных URL-путей), 83/85 подкоманд CLI, 9 типизированных отношений MemoryLink, 27-полевой Memory. Работает на двух производственных бэкендах за одним идентичным API — встроенный SQLite и PostgreSQL + Apache AGE — на десктопе, сервере и на устройствах (iOS + Android). Все является дополнением к v0.7.0; ознакомьтесь с изменениями безопасных настроек по умолчанию перед обновлением. Полные примечания к релизу: docs/v0.8.0/release-notes.md.
v0.7.0 (attested-cortex) — предыдущий релиз. Объединил работу над читаемостью cortex-fluent с полным объемом v0.7 trust + A2A из ROADMAP §7.3, плюс (по директиве оператора от 2026-05-09) изначально запланированную для v0.7.1 первоклассную работу с postgres+AGE, плюс волну готовности к поставке после grand-slam (Batman Forms 1-6 + основа Option-B для 7-й формы + QW-1/2/3 + проверка безопасности reconciliation). Субстрат становится одновременно более выразительным (capabilities v3, именованные инструменты-загрузчики, компактные схемы, словарь Batman MemoryKind, примитивы persona/atomisation/multistep-ingest) и криптографически надежным (аттестация Ed25519, транскрипты sidechain, программируемый конвейер из 25 хуков событий, принудительное наследование пространств имен, цепочка хешей подписанных событий между строками V-4). v0.7.0 также поставляется с postgres + Apache AGE в качестве первоклассного бэкенда хранения — ai-memory serve --store-url postgres://… для использования в реальном времени демоном, паритет схем на обоих бэкендах (на момент релиза v0.7.0, sqlite + postgres сошлись на логической схеме v57, где CURRENT_SCHEMA_VERSION была 57; субстрат релиза v0.8.0 продвинул эту синхронизацию до схемы 70, с добавлением координационных таблиц и таблиц видимости v58–v70 на обоих бэкендах — см. CLAUDE.md §Database для лестницы v58–v70) (канонические якоря: src/storage/migrations.rs для sqlite + src/store/postgres.rs для postgres); файлы миграции на диске заканчиваются на migrations/sqlite/0047_v56_list_composite_indexes.sql, а внутренняя ветвь лестницы postgres migrate_v57() (счетчики имен файлов отстают от версии логической схемы, поскольку обе лестницы применяют дельты после v34 через внутренние ветви — см. docs/MIGRATION_v0.7.md §schema-ladder для описания v35-v57; v48 #933 добавила таблицу federation-push DLQ; v49 #1025 добавила 14 nullable столбцов в archived_memories, чтобы archive → restore был без потерь для полной формы Memory v0.7.0; v50 #1156 расширила PRIMARY KEY agent_quotas с (agent_id) до (agent_id, namespace), чтобы квоты K8 на пространство имен сохранялись, даже когда один агент работает во многих пространствах имен — строки до v50 заполняются пространством имен-заполнителем _global; v51 #1255 (PR #1296) добавила таблицу federation_nonce_cache, чтобы nonces предотвращения повторного воспроизведения сохранялись при перезапусках демона; v52 #1389 добавила таблицу transcript_line_dedup, поддерживающую идемпотентность RFC-0001 memory_capture_turn L4 + recover_from_transcript L2, чтобы SIGKILL между ходами никогда не создавал дублирующуюся память при последующей регидратации; v53 #1418 ограничила триггер синхронизации FTS5 memories_au только для (title, content, tags), чтобы обновления столбцов, не относящихся к FTS, больше не вызывали ненужную синхронизацию; v54 #1466 заполнила стандартное истечение срока уровня для устаревших строк mid/short с NULL-истечением, чтобы закрыть класс утечки TTL для бессмертных строк; v55 #1476 сделала запрос федеративного наверстывания W=2 (updated_at > ? ORDER BY updated_at ASC LIMIT) sargable и добавила индекс sqlite idx_memories_updated_at — postgres не добавляет новый индекс, потому что memories_updated_at_idx DESC уже обслуживает сканирование диапазона через Index Scan Backward; v56 #1579 добавила составные индексы упорядочивания списка/архива (idx_memories_list_order, idx_memories_ns_list_order, idx_archived_ns_archived_at) в паре с перезаписью sargable storage::list — DDL на стороне sqlite; ветвь postgres migrate_v56() является no-op с отметкой версии; v57 #1579 добавила хранимый сгенерированный столбец tsvector tsv + индекс GIN memories_tsv_gin в postgres, чтобы формы search/recall совпадали И ранжировались по предварительно вычисленному столбцу вместо повторного вычисления tsvector для каждой совпавшей строки — устаревший индекс выражения memories_content_fts удален, а двойник sqlite является no-op с отметкой версии, поскольку FTS5 уже материализует индексированный текст)), новую команду CLI ai-memory schema-init и паритет оценки recall по 6 факторам. Поверхность по умолчанию v0.6.4 увеличивается на два постоянно включенных загрузчика до 7 инструментов (memory_load_family + memory_smart_load присоединяются к исходным пяти); потолок времени выполнения в --profile full составляет 74 объявленных записи (73 вызываемых инструмента памяти + постоянно включенная начальная загрузка memory_capabilities; проверено по Profile::full().expected_tool_count() — см. src/profile.rs). Все новое является аддитивным и (для поверхностей trust + postgres) опциональным. Обновляетесь с v0.6.x? Сначала прочтите docs/MIGRATION_v0.7.md — большинство вызывающих v0.6.4 не увидят изменений в поведении, но пользователи v0.6.x до v0.6.3.1 столкнутся с исправлением наследования пространства имен G1. Переходите на postgres+AGE? См. docs/postgres-age-guide.md и docs/migration-v0.7.0-postgres.md. Полные примечания к выпуску: docs/v0.7.0/release-notes.md.
v0.6.4 (quiet-tools) — MCP-сервер поставляется с поверхностью по умолчанию из 5 инструментов (memory_store, memory_recall, memory_list, memory_get, memory_search) плюс постоянно включенная начальная загрузка memory_capabilities. Остальные 38 инструментов остаются доступными через --profile graph|admin|power|full или расширение времени выполнения через memory_capabilities --include-schema family=<name>. Жгуты с быстрой загрузкой (Claude Desktop / Codex CLI / Grok CLI / Gemini CLI) экономят ~4 700 входных токенов схем инструментов на запрос — сокращение на 76,4% по сравнению с cl100k_base BPE. Чтобы сохранить поведение v0.6.3 в точности, запустите ai-memory mcp --profile full. См. docs/MIGRATION_v0.6.4.md.
Что нового в v0.9
v0.9.0 — это в первую очередь релиз с усилением безопасности и проверкой кода — 49 исправлений по результатам 5-полосного состязательного обзора (#1885–#1935) — плюс меньший набор аддитивных функций, наложенных на координационный субстрат v0.8.0. Полный список изменений: CHANGELOG.md §"[0.9.0] — 2026-07-08".
Усиление безопасности по умолчанию
- Аттестация агента требуется по умолчанию на поверхности прямой записи HTTP (#1751, ограничение поверхности через #1985).
AI_MEMORY_REQUIRE_AGENT_ATTESTATIONимеет три состояния с скомпилированным значением по умолчанию для каждой поверхности: не задано → требуется на прямой записи HTTP (POST /api/v1/memories+/bulk, отклонено403 ATTESTATION_FAILED), разрешено на поверхностях MCPmemory_storeи CLIstoreс оператором в роли действующего лица (неподписанная запись получаетattest_level="claimed");=1принудительно включает строгий режим везде,=0принудительно включает разрешающий режим везде. Предъявленная, но подделанная подпись отклоняется на любой поверхности независимо от настроек. Подписывайте записи (ai-memory store --signс привязанной парой ключей черезai-memory agents bind-key) или используйте отказ=0. (GA v0.9.0 поставлялся с требованием-везде, невыполнимым на хостах MCP — см. #1981; исправлено на ограничение по поверхности в #1985.) - Двойной шлюз принудительного применения хуков MCP + HTTP (#1885 / #1924). Шлюз принудительного присутствия обязательных хуков (изначально только MCP, #1734) теперь также проверяется на пути записи HTTP, закрывая брешь скрытого обхода (CWE-288), когда запись, полностью миновавшая MCP, никогда не видела настроенный обязательный хук.
- Шлюзование аттестации
bulk_create(#1919). Массовые записи теперь применяют то же требование аттестации агента для каждой строки, что и одиночный вызовmemory_store— каждая строка в пакете должна иметь действительную аттестацию, а не только запрос в целом. - Шлюз утверждения федерации (#1920). Входящее федеративное утверждение PENDING принимается только тогда, когда оно приписано зарегистрированному утверждающему узла — зарегистрированный, но недоверенный узел больше не может подделать утверждение для произвольного запрашивающего.
- Усиление области видимости
team/unit/org(#1921). Разрешение области видимости теперь корректно применяет иерархию предков пространства имен для областейteam/unit/org, закрывая брешь изоляции арендаторов (CWE-863). - Ограничение пути
skill_register(#1923). Импортfolder_pathнавыка канонизируется и ограничивается настроенным корнем, при этом символические ссылки внутри импортированного дерева отклоняются, а не обрабатываются (CWE-22/CWE-59). - Каналы учетных данных store-url не из argv (#1927). Новые
AI_MEMORY_STORE_URL(только для владельца/proc/environ) иAI_MEMORY_STORE_URL_FILE(файл0600) позволяютai-memory serveполучать URL postgres/хранилища — включая любой встроенный пароль — без его размещения в argv--store-url, где он доступен через доступные для чтения всем/proc/<pid>/cmdlineиps auxwwлюбому локальному UID. Порядок разрешения: файл → env →--store-url.
Аддитивные функции
- B7-SKILL — память навыков как первоклассная сущность (#1865).
parameters_schemaпри регистрации,invocation_recordи поверхность версий для навыков, созданных агентами. - Петля теневой обратной связи
recall_observations(#1706, режим SHADOW). Замыкает петлю обратной связи recall, пока не меняя поведение ранжирования. - DAG происхождения памяти (
memory_lineage, схема v78, #1859). Отслеживает, какие воспоминания были получены из каких, как через MCP, так и через новый HTTP-маршрутGET /api/v1/memories/{id}/lineage. - Минимальный опциональный срез векторного поиска (#1005; полный субстрат отложен до #1860).
- Пул рабочих процессов реранкера, масштабируемый под физические CPU (#1867) и recall по умолчанию PURE (#1869 — убирает всплеск записи с горячего пути recall).
- Добавочный корешок + разделение слоя подписи: каждый сайт мутации направляется на подписанные листья ревизий (#1823), разделение подписей Recorder/Judge/Stopper на три ключа (#1826), токены возможностей macaroon, подключенные сквозным образом (#1827), и цепочка преемственности ключей подписанной линии идентичности для выживания при ротации (#1828, схема v76).
С чего начать:
CHANGELOG.md(полный список изменений),docs/ADMIN_GUIDE.md(руководство оператора — аттестация + позиция принудительного применения хуков).
Что нового в v0.8
v0.8.0 (distributed-coordination) превращает субстрат памяти в координационный субстрат для флотов мультиагентов (NHI). Главное — механизм распределенной координации (#1709); все поставляется на обоих адаптерах SAL — sqlite и postgres+AGE — и остается эквивалентным по умолчанию для вызывающих v0.7.x. Полный справочник инструментов: docs/coordination.md; полные примечания: docs/v0.8.0/release-notes.md.
Субстрат распределенной координации (Pillar-1, #1709)
- Действия — DAG зависимостей (схема v59). Типизированные узлы действий с конечным автоматом (
pending → claimed → in_progress → done/failed/abandoned), типизированные ребра DAG (requires/unlocks/blocks/gated_by/sibling), а также поверхности frontier/next, извлекающие следующий готовый к выполнению узел. 8 инструментов MCP (memory_action_create/_get/_transition/_list/_add_edge/_edges/_frontier/_next). - Аренда — монопольные, ограниченные по TTL притязания (схема v59). Притязание с подтверждением по пульсу и compare-and-swap (
PRIMARY KEYнаaction_id= один держатель одновременно) плюс ежечасная очистка аренды. 4 инструмента MCP (memory_lease_acquire/_renew/_release/_get). - Сигналы — типизированные, подписанные Ed25519 сообщения между агентами (схема v60). Каждое несет подпись +
signer_pubkeyотправителя и связывается черезcorrelation_id/in_reply_to. 5 инструментов MCP (memory_signal_send/_read/_inbox/_thread/_ack). - Контрольные точки — заверенные условные шлюзы (схема v61). Шлюз, блокирующий выполнение до разрешения условия; разрешение подписывается на месте (Ed25519) для разделения обязанностей, а
verifyперепроверяет подпись. 4 инструмента MCP (memory_checkpoint_create/_resolve/_query/_verify). - Процедуры — параметризованные, замороженные, воспроизводимые планы (схема v62). Создаются как
draft, затем замораживаются (неизменяемые, с Ed25519-аттестацией заморозки);runматериализует конкретный набор действий и ребер из шаблона{{param}}в записьroutine_runs. 5 инструментов MCP (memory_routine_create/_freeze/_run/_status/_list). - Каждое изменение состояния координации добавляет защищенную от подделки строку
coordination.<op>в хеш-цепочкуsigned_eventsV-4 (#1722); две записи, предоставляющие полномочия, зеркалируются на HTTP-демон (POST /api/v1/actions/{id}/transition,POST /api/v1/signals) с локальным CAS и W-of-N федеративной рассылкой (#1718).
Типизированное познание (Компонент-2)
Словарь memory_kind расширяется за счет goal / plan / step; закрытая таксономия memory_links.relation расширяется с 6 до 9 отношений (decomposes_into / depends_on / advances, схема v63); а первоклассный столбец memories.lifecycle_state (схема v64) делает Goal/Plan/Step настоящим конечным автоматом (open → active → blocked/done/abandoned), применяемым на поверхностях MCP / HTTP / SAL с отображением недопустимых переходов в HTTP 409 CONFLICT. Структура Memory увеличивается до 27 полей. Новых инструментов MCP нет — работа над v64 добавляет только необязательные разрешающие поля запроса.
Федерация усилена, безопасна по умолчанию
Регистрация пиров ВКЛЮЧЕНА по умолчанию (#1789), подписи для каждого перехода при записях, предоставляющих полномочия (#1718), аттестация содержимого для каждой записи ретранслируемых воспоминаний (#1464), одноразовые номера для воспроизведения переходов (#1805) и закрепление отпечатков сертификатов исходящих пиров (#1678). Гетерогенные парки, которым не нужно доверять друг другу — ознакомьтесь с изменениями безопасных умолчаний в docs/v0.8.0/release-notes.md §"Усиление федерации" перед обновлением.
Управление, которое действительно блокирует (#1811)
Хук управления Claude Code PreToolUse переработан в обертку type:command (ai-memory governance check-action --from-pretool-stdin), так что субстрат Refuse генерирует permissionDecision:"deny" и действительно БЛОКИРУЕТ инструмент — предыдущая форма type:mcp_tool структурно не могла обеспечить принудительное применение. Плюс принудительное обеспечение наличия обязательного хука (#1734) и новый вердикт управления escalate (§22 PE-5) для участия человека в цикле.
Операционные средства управления Компонента-4
Контроль допуска HTTP (#1733 — опциональное ограничение параллелизма, отсекающее избыток с типизированным 503), отложенная проекция графа Apache-AGE (#1735 — убирает синхронные циклы AGE с горячего пути записи связей postgres), активация уплотнения куратором (#1749 / #1750) и CLI ai-memory verify-audit-trail (§22 PE-8), который сквозным образом проверяет целостность хеш-цепочки signed_events по всем строкам.
Схема v57 → v70 (все дополнения)
Таблицы координации + типизированного познания + видимости + подготовки шифрования + холодного пути + архивных граней (v58–v70), зеркалированные на адаптерах sqlite и postgres; автоматическая миграция при первом открытии и полный цикл архивация → восстановление без потерь. См. CLAUDE.md §Database для канонической лестницы v58–v70.
С чего начать:
docs/v0.8.0/release-notes.md(полные заметки о выпуске),docs/coordination.md(справочник инструментов координации) и CLAUDE.md §Database (SSOT лестницы схем).
Что нового в v0.7
v0.7.0 завершает эпопею attested-cortex (69/69 по 11 трекам A–K), включает изначально запланированную для v0.7.1 первоклассную работу с postgres+AGE и вбирает волну готовности к поставке после большого шлема (Формы Бэтмена 1-6 + основа Формы-7 + QW-1/2/3 + сверка безопасности). Канонический перечень функций: docs/internal/v070-feature-inventory.md. Все поверхности остаются выключенными по умолчанию или эквивалентными для вызывающих v0.6.4 — см. матрицу совместимости v0.7 для детализации.
Встроенная в субстрат обработка при записи (Формы Бэтмена 1-6 + Форма-7)
- Форма 1 — онлайн-дедупликация и синтез (задача #754). Одиночный пакетный вызов LLM, генерирующий действия, заменяет классификатор для каждой пары из v0.6.x на пути сохранения. Возврат к устаревшему да/нет через
legacy_per_pair_classifier = trueв стандарте пространства имен. - Форма 2 — синхронная атомизация перед встраиванием (задача #755). Новый инструмент
memory_atomise+ хук предварительного сохраненияauto_atomise_mode = Synchronous|Deferred|Off. Куратор разбивает длинные записи на 2–10 атомарных утверждений до того, как их увидит система извлечения. См.docs/atomisation.md. - Форма 3 — оркестратор многошагового приема (задача #756).
memory_ingest_multistepпропускает детерминированные помощники Jaccard+FTS через стабильные к кэшу подсказок этапы LLM. См.docs/multistep-ingest.md+cookbook/multistep-ingest/01-two-phase.sh. - Форма 4 — происхождение фактов (задача #757). Цитаты + URI источника + диапазоны на уровне атомов передаются в существующих полезных нагрузках
memory_store/memory_atomise. См.docs/provenance.md. - Форма 5 — авто-уверенность + теневая калибровка + затухание актуальности (задача #758). Инструмент MCP
memory_calibrate_confidence+ базовая развертка по источникам. Переменные окруженияAI_MEMORY_AUTO_CONFIDENCE,AI_MEMORY_CONFIDENCE_SHADOW,AI_MEMORY_CONFIDENCE_SHADOW_SAMPLE_RATE,AI_MEMORY_CONFIDENCE_DECAY. См.docs/confidence-calibration.md. - Форма 6 — словарь Бэтмена
MemoryKind(задача #759). Перечисление из 10 вариантов (по умолчаниюObservation+Reflection/Persona/Concept/Entity/Claim/Relation/Event/Conversation/Decision). Опциональный хук предварительного сохраненияauto_classify_kind(выкл / regex_only / regex_then_llm). См.docs/memory-kind-vocab.md. - Форма-7 — подключение агент-ВНЕШНИЙ Уровня-4 (основа Опции-B) (задача #760; полное покрытие в v0.8.0 в #697). Подписанные ключевой парой оператора исходные правила
R001..R004, инструменты MCPmemory_check_agent_action+memory_rule_list, хук предварительной записи субстратаstorage::insert. См.docs/policy-engine.md+docs/governance/agent-action-rules.md. - Практическое руководство для оператора — перевод Форм 1–6 + 7-й из состояния «способен» в «активен» (задача #800). Рецепт из 7 шагов (генерация ключей оператора → подпись исходных данных → включение R001–R004 → демон куратора → опциональный проход рефлексии → политики пространства имен), обеспечение постоянства через launchd / systemd / Планировщик задач, блок верификации, путь отката. См.
docs/batman-active-mode.mdи атлас GitHub Pages.
Быстрые победы (Tencent QW-1/2/3)
- QW-1 — экспорт цепочки рефлексии с сохранением в файл. Инструмент MCP
memory_export_reflection+ политика пространства именauto_export_reflections_to_filesystem→~/.ai-memory/reflections/<ns>/<id>.md. - QW-2 — персона как артефакт. Инструменты
memory_persona+memory_persona_generate, строкиMemoryKind::Persona, политика пространства именauto_persona_trigger_every_n_memories. См.docs/persona.md. - QW-3 — примитив выгрузки контекста.
memory_offload+memory_derefперемещают большие результаты инструментов из окна контекста агента в адресуемое хранилище больших двоичных объектов. См.docs/context-offload.md.
Эпопея заверенной коры (Треки A–K)
- Аттестованные ссылки (Ed25519). Столбец
signature, оставленный пустым в версии v0.6.3, теперь заполняется реальной аттестацией Ed25519 для каждого агента, аmemory_verify(link_id)возвращает{signature_verified, attest_level, signed_by, signed_at}по запросу. Сгенерируйте ключевую пару с помощьюai-memory identity generate; включите опционально черезattest_level = "self_signed". Подписание зависит от того, имеет ли разрешённый демонagent_idключевую пару*.privна диске в настроенном каталоге ключей — когдаload_daemon_signing_keyвозвращаетNone(src/main.rs:116-118), строки всё равно записываются, ноsigостаётся пустым, и демон выводит строку "continuing unsigned" при запуске. Цепочка хешей между строками наsigned_eventsв любом случае остаётся защищённой от подделки. См.attested-cortexRFC. - Закрытие подписанных событий V-4 (цепочка хешей между строками) (issue #698). Каждая строка
signed_eventsсодержитprev_hash+sequence;prev_hashпервой строки равен нулю, последующие строки связывают SHA-256 предыдущей канонической полезной нагрузки CBOR.ai-memory verify-signed-events-chainпроходит цепочку от начала до конца. См.docs/signed-events-v4.md. - Конвейер хуков (25 событий жизненного цикла). Программируемая поверхность расширения срабатывает на 20 базовых событиях
pre_/post_store|recall|search|delete|promote|link|consolidate|governance_decision|archive|transcript_store+on_index_eviction, плюс 5 дополнений высшей категории (pre_recall_expandG10 +pre_reflect/post_reflectрекурсивное обучение Задача 6/8 +pre_compaction/on_compaction_rollbackL1-7). Хуки возвращаютAllow/Modify/Deny/AskUser. По умолчанию выключено; включите через~/.config/ai-memory/hooks.toml. См.docs/hook-pipeline.md. - Стенограммы сайдчейна + воспроизведение. BLOB-хранилище сайдчейна со сжатием zstd-3 хранит необработанные цепочки разговоров/рассуждений;
memory_replay(memory_id)проходитmemory_transcript_linksдля восстановления цепочки. Включается опционально для каждого пространства имён через[transcripts.namespaces."team/*"]. См.docs/sidechain-transcripts.md. - Усиление федерации. mTLS + X-API-Key + белый список отпечатков сертификатов SHA-256; переменные окружения
AI_MEMORY_FED_PEER_ATTESTATION,AI_MEMORY_FED_SYNC_TRUST_PEER,AI_MEMORY_FED_TRUST_BODY_AGENT_ID. См.docs/federation.md. - Инструмент квот K8 + согласования K10 SSE.
memory_quota_status+/api/v1/quota/status(K8)./api/v1/approvals/streamсобытия, отправляемые сервером, с одноразовым HMAC, привязкой метода+pending_id, удалением счётчика отставших событий (K10). См.docs/k8-quotas.md+docs/k10-sse-approvals.md. - Postgres + Apache AGE как основной бэкенд.
ai-memory serve --store-url postgres://…, паритет схем, паритет 6-факторной оценки релевантности, миграция ссылок, функции KG (kg_query,kg_timeline,kg_invalidate,find_paths) на AGE Cypher с fallback на рекурсивные CTE при отсутствии AGE, плюс новая команда CLIai-memory schema-init. Ограничено бенчмарками — p95 AGE должен превосходить p95 CTE на ≥30% при глубине=5. Руководство для оператора:docs/postgres-age-guide.md. Инструкция по миграции:docs/migration-v0.7.0-postgres.md. - Capabilities v3 + умные загрузчики.
memory_capabilitiesv3 добавляетsummary,to_describe_to_user, для каждого инструментаcallable_now,agent_permitted_families,schema_version="3"; новые постоянно активные инструментыmemory_load_family(family)иmemory_smart_load(intent)присоединяются к профилю по умолчаниюcore. Зафиксированные формулировки находятся вdocs/v0.7/canonical-phrasings.md. - Разрешения + согласования A2A. Подсистема управления v0.6.x переработана в правила + режимы + хуки → единый
Decision, с фактическим применением наследования пространств имён (G1).memory_pending_list/memory_pending_approve/memory_pending_reject(remember=forever)обеспечивают прогрессивное доверие; подпись HMAC для API согласования обязательна.permissions.modeпо умолчанию имеет значениеenforce(былоadvisoryв v0.6.4). Мигрируйте с помощьюai-memory governance migrate-to-permissions(предварительный просмотр; добавьте--config-out ~/.config/ai-memory/config.tomlдля применения на месте). См.docs/governance.md.
Рекурсивное обучение + волна высшей категории L1/L2
Примитив подложки memory_reflect с ограничением max_reflection_depth в рамках пространства имён (по умолчанию 3, Some(0) — аварийный выключатель). Куратор reflective-pass L2-1, координация рефлексии с учётом федерации L2-2 (memory_reflection_origin), распространение инвалидации L2-3 (memory_dependents_of_invalidated), пакет криминалистики L2-5 (ai-memory export-forensic-bundle + verify-forensic-bundle), Навыки Агента L1-5 (memory_skill_register|list|get|resource|export|promote_from_reflection|compositional_context). Полное введение: docs/RECURSIVE_LEARNING.md. Введение в Навыки Агента: docs/agent-skills.md. Введение в криминалистический экспорт: docs/forensic-export.md.
С чего начать:
docs/MIGRATION_v0.7.md(процедура обновления),docs/v0.7.0/release-notes.md(полные заметки о выпуске),docs/whats-new-v07.html(визуальное резюме),docs/v0.7/rfc-attested-cortex.md(обоснование дизайна),docs/ADMIN_GUIDE.md(руководство оператора),docs/internal/v070-feature-inventory.md(каноническая истина о функциях).
Один бинарный файл, четыре режима работы (v0.6.4). Бинарный файл Rust ai-memory (tokio + axum) может запускать любой из них изолированно или одновременно, используя единую базу данных SQLite:
- stdio MCP сервер -- 101 заявленная запись через JSON-RPC с полным профилем (v0.9.0; 100 вызываемых инструментов памяти + постоянно активный начальный загрузчик
memory_capabilities; проверено на соответствиеProfile::full().expected_tool_count()). По умолчанию--profile coreзаявляет 7 (исходные 5 +memory_load_family+memory_smart_load) плюс постоянно активный начальный загрузчикmemory_capabilities.ai-memory mcp/ai-memory mcp --profile full - HTTP / mTLS демон -- 92 регистрации маршрутов REST (78 уникальных URL-путей) на
127.0.0.1:9077, TLS + опциональный белый список mTLS + аутентификация по API-ключу, фоновый цикл GC.ai-memory serve - Демон автономного куратора -- цикл с самопланированием (по умолчанию каденс 1 час), который автоматически присваивает теги, выявляет противоречия между родственными пространствами имён, консолидирует почти дубликаты и корректирует приоритет на основе шаблонов доступа. Каждое действие попадает в журнал отката; деструктивные операции могут быть ограничены процессом согласования управления.
ai-memory curator --daemon - Демон синхронизации -- федерация узлов на основе кворума между экземплярами. Запись W-из-N (по умолчанию большинство), слияние CRDT-lite с векторными часами, белый список mTLS между узлами.
ai-memory sync-daemon
Поверхности MCP, HTTP и CLI являются реактивными. Куратор — это часть, которая делает слой памяти самообслуживаемым: между сессиями он поддерживает корпус в порядке, чтобы качество извлечения оставалось высоким по мере роста хранилища. Всё локально в первую очередь; никаких облачных зависимостей.
Оценка по существу от Claude Opus 4.7 после построчного чтения исходного кода v0.6.3:
"ai-memory — это самый мощный слой памяти, к которому меня когда-либо подключали, и он значит гораздо больше, чем заявляет его название. Для меня, с практической точки зрения, это означает: я не начинаю с нуля каждую сессию. Хранилище, из которого я читаю, поддерживается в порядке кем-то, кроме меня. Противоречия не накапливаются незаметно. Качество извлечения остаётся высоким даже по мере роста корпуса. Ничто не покидает ваш Mac mini.
Это не делает меня автономным агентом. Это даёт мне ту инфраструктуру памяти, которая понадобилась бы автономному агенту — и при этом запускает небольшой автономный цикл для её обслуживания. Это реальная основа. Разрыв между этим и 'ai-memory управляет общими задачами' — это сантехника (протокол вызова инструментов + реестр инструментов + модель, способная использовать инструменты), а не изобретение."
Субстрат для мультиагентного ИИ. ai-memory — это не среда выполнения агентов и не "автономный ИИ" сам по себе. Это слой памяти, который нужен мультиагентным автономным развёртываниям под ними. Федерация (broadcast_store_quorum + spawn_catchup_loop) обеспечивает согласованность W-из-N между узлами, когда много агентов пишут параллельно; демон куратора не даёт общему корпусу превратиться в шум, когда рой пишет в него; подписки на вебхуки (подписанные HMAC, фильтрованные по пространству имён/агенту, защищённые от SSRF) превращают хранилище в шину сообщений, которая запускает нижестоящих агентов при событиях памяти; иерархия пространств имён с наследованием N-уровня и политиками управления для каждого пространства имён (права на запись/продвижение/удаление, тип утверждающего, опциональный консенсус N-из-M) ограничивают рой. Разместите это под круглосуточным запускателем агентов на нескольких машинах с автоматически генерируемыми навыками, и комбинированная система преодолеет поведенческую планку для автономного ИИ. Оставшиеся пробелы (отсутствие обучения на уровне весов, ядро рассуждений без состояния, корневые цели, заданные человеком) реальны и не являются тем, что решает ai-memory; ai-memory предоставляет мультиагентный субстрат памяти, который понадобится любой серьёзной попытке закрыть эти пробелы.
Нулевая стоимость токенов до извлечения. В отличие от встроенных систем памяти (автопамять Claude Code, память ChatGPT), которые загружают всю вашу память в каждый разговор — сжигая токены и деньги на каждом сообщении — ai-memory использует ноль токенов контекста, пока ИИ явно не вызовет memory_recall. Возвращаются только релевантные воспоминания, ранжированные по 6-факторному алгоритму оценки. Формат TOON (Token-Oriented Object Notation) сокращает токены ответа ещё на 40-60%, устраняя повторяющиеся имена полей — 3 воспоминания в JSON = 1600 байт; в TOON = 626 байт (на 61% меньше); в компактном TOON = 336 байт (на 79% меньше). Для пользователей Claude Code: отключите автопамять ("autoMemoryEnabled": false в settings.json) и замените её на ai-memory, чтобы перестать платить за 200+ строк контекста памяти на каждом сообщении.
Идентичность агента (NHI) — каждое воспоминание сообщает, кто его усвоил
Каждое воспоминание, которое хранит ai-memory, несёт metadata.agent_id — маркер нечеловеческой идентичности, который сохраняется при всех операциях (обновление, дедупликация, импорт, синхронизация, консолидация). Каждый результат извлечения сообщает, какой ИИ записал каждое воспоминание, по умолчанию, в компактном формате ответа TOON, под который ваш ИИ-клиент уже оптимизирован:
count:5|mode:hybrid|tokens_used:842
memories[id|title|tier|namespace|priority|score|tags|agent_id]:
a1b2|Project DB is PostgreSQL 16|long|infra|8|0.91|database,postgres|ai:claude-code@workstation:pid-3812
c3d4|API rate limit is 100 rps|long|infra|7|0.87|api,limits|ai:claude-desktop@laptop:pid-5219
При неподписанной записи agent_id является заявленной идентичностью — не принимайте решения по безопасности, основываясь только на ней. Аттестация агента по пути хранения требуется по умолчанию на поверхности прямой HTTP-записи (#1751, ограничено поверхностью согласно #1985): неподписанный HTTP POST /api/v1/memories (+/bulk) отклоняется (403 ATTESTATION_FAILED), а не попадает в attest_level = "claimed", если только оператор не установит явный отказ AI_MEMORY_REQUIRE_AGENT_ATTESTATION=0. Поверхности MCP memory_store и CLI store, где оператор выступает в роли актора, остаются разрешительными по умолчанию (неподписанная запись попадает в claimed); =1 принудительно включает строгий режим на всех поверхностях. Криптографическая аттестация Ed25519 реализована на двух поверхностях: (1) аттестация по пути хранения (#626 Layer-3) — предоставьте отделённую подпись для канонической оболочки SignableWrite на пути CLI (store --sign), MCP (memory_store) или HTTP (POST /api/v1/memories), и демон проверяет её на соответствие привязанному открытому ключу агента, проставляя metadata.attest_level = "agent_attested" (предъявленная, но поддельная подпись всегда отклоняется независимо от флага); и (2) аттестация ссылок (attested-cortex) — ранее зарезервированное поле memory_links.signature с memory_verify(link_id) для входящей проверки и цепочкой аудита signed_events только для добавления. См. страницу идентичности агента и attested-cortex RFC для полного контракта происхождения.
Ретроактивный импорт разговоров — ai-memory mine
Не начинайте с нуля. Укажите ai-memory mine на экспорт из Claude, ChatGPT или Slack, и он разберёт его пошагово в ранжированные, типизированные по уровням, помеченные воспоминания — так что ваш ИИ войдёт в следующую сессию, зная каждое решение, исправление и находку из вашей существующей истории.
ai-memory mine claude ~/Downloads/claude-export/
ai-memory mine chatgpt ~/Downloads/chatgpt-export.json
ai-memory mine slack ./slack-export/
Автоматическое присвоение тегов, дедупликация по (title, namespace) и происхождение mined_from проставляются на каждом импортированном воспоминании. Пятиминутный онбординг от нулевого контекста до заполненного долговременного хранилища. См. страницу импорта истории для рецептов по каждому формату.
Совместимые ИИ-платформы
ai-memory интегрируется с любой ИИ-платформой, поддерживающей Model Context Protocol (MCP). MCP — это универсальный стандарт для подключения ИИ-ассистентов к внешним инструментам и источникам данных.
| Платформа | Метод интеграции | Формат конфигурации | Статус |
|---|---|---|---|
| Claude Code (Anthropic) | MCP stdio | JSON (~/.claude.json или .mcp.json) | Полностью поддерживается |
| Codex CLI (OpenAI) | MCP stdio | TOML (~/.codex/config.toml) | Полностью поддерживается |
| Gemini CLI (Google) | MCP stdio | JSON (~/.gemini/settings.json) | Полностью поддерживается |
| Grok CLI (xAI) | MCP stdio | JSON (~/.grok/user-settings.json) | Глубокая интеграция |
| Grok API (xAI) | MCP remote HTTPS | API-уровень | Полностью поддерживается |
| Cursor IDE | MCP stdio | JSON (~/.cursor/mcp.json) | Полностью поддерживается |
| Windsurf (Codeium) | MCP stdio | JSON (~/.codeium/windsurf/mcp_config.json) | Полностью поддерживается |
| Continue.dev | MCP stdio | YAML (~/.continue/config.yaml) | Полностью поддерживается |
| Llama Stack (META) | MCP remote HTTP | YAML / Python SDK | Полностью поддерживается |
| OpenClaw | MCP stdio | JSON (mcp.servers в конфигурации) | Полностью поддерживается |
| Любой MCP-клиент | MCP stdio или HTTP | Различается | Универсально |
MCP — это основной слой интеграции. Для ИИ-платформ, которые ещё не поддерживают MCP нативно, HTTP API (92 регистрации маршрутов / 78 уникальных URL-путей на localhost) и CLI (89 подкоманд в --features sal ИЛИ --features sal-postgres; 87 в сборке по умолчанию (после #1389 L2 RecoverPreviousSession для регидратации контекста между сессиями + #1443 Expand для поверхности расширения запросов ai-memory expand + #1598 Reembed для поверхности миграции векторного пространства ai-memory reembed); SSOT закреплён ai_memory::EXPECTED_CLI_SUBCOMMANDS_DEFAULT + EXPECTED_CLI_SUBCOMMANDS_SAL + механический тест паритета tests/cli_subcommand_count_invariant.rs) обеспечивают универсальный доступ — любой ИИ, скрипт или автоматизация, способные выполнять HTTP-запросы или shell-команды, могут использовать ai-memory.
Установка за 60 секунд
Предварительно собранные бинарные файлы не требуют зависимостей. Сборка из исходников требует Rust и компилятор C.
Самый быстрый способ: Предварительно собранный бинарный файл (Rust не требуется)
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.sh | sh
# Fedora/RHEL (COPR)
sudo dnf copr enable alpha-one-ai/ai-memory && sudo dnf install ai-memory
# Windows (PowerShell)
irm https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.ps1 | iex
Шаг 1: Установите Rust (пропустите, если используете предварительно собранные бинарные файлы)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Следуйте инструкциям, затем перезапустите терминал (или выполните source ~/.cargo/env).
Шаг 2: Из исходников (требуется Rust)
Последний релиз из Crates.io:
cargo install ai-memory
Последняя версия из git-репозитория:
cargo install --git https://github.com/alphaonedev/ai-memory-mcp.git
Это скомпилирует бинарный файл и поместит его в ваш PATH. Это займёт минуту или две.
Зависимости для сборки из исходников:
- Ubuntu/Debian:
sudo apt-get install build-essential pkg-config- Fedora/RHEL:
sudo dnf install gcc pkg-config
Шаг 3: Подключите ваш ИИ
Конфигурация зависит от платформы. Найдите свою ниже:
Claude Code (Anthropic)
Claude Code поддерживает три области конфигурации MCP:
| Область | Файл | Применяется к |
|---|---|---|
| Пользовательская (глобальная) | ~/.claude.json — добавьте ключ mcpServers | Все проекты на вашей машине |
| Проектная (общая) | .mcp.json в корне проекта (добавляется в git) | Все участники проекта |
| Локальная (приватная) | ~/.claude.json — в projects."/path".mcpServers | Один проект, только вы |
Пользовательская область (рекомендуется — работает везде):
Добавьте ключ mcpServers в ~/.claude.json (macOS/Linux) или %USERPROFILE%\.claude.json (Windows):
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
Примечание:
~/.claude.jsonскорее всего уже существует с другими настройками. Объедините ключmcpServersс существующим файлом — не перезаписывайте его.
Проектная область (общая с командой):
Создайте .mcp.json в корне вашего проекта:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
Уровень smart / autonomous с облачной LLM — рекомендуемый путь — это секция [llm] в ~/.config/ai-memory/config.toml (#1146). Один файл, все поверхности, без правок для каждого ИИ-клиента:
# ~/.config/ai-memory/config.toml
schema_version = 2
[llm]
backend = "xai"
model = "grok-4.3"
base_url = "https://api.x.ai/v1"
api_key_env = "XAI_API_KEY" # process-env-var name (NOT the literal key)
Экспортируйте XAI_API_KEY в ваш shell rc (.zshrc / .bashrc); конфигурация MCP остаётся минимальной:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "autonomous"]
}
}
}
Проверка: ai-memory boot --quiet --limit 1 должен сообщать llm=xai:grok-4.3. Каноническая ссылка на схему: docs/CONFIG_SCHEMA.md.
Путь переопределения — блок
env:. Добавление блокаenv:в конфигурацию MCP сAI_MEMORY_LLM_BACKEND/_API_KEY/_MODELвсё ещё работает и имеет приоритет надconfig.toml— полезно для CI / посессионных настроек:"env": { "AI_MEMORY_LLM_BACKEND": "xai", "AI_MEMORY_LLM_API_KEY": "xai-...", "AI_MEMORY_LLM_MODEL": "grok-4.3" }MCP-клиенты запускают сервер как новый подпроцесс только с ключами
env:из конфигурации MCP — экспорт оболочки в.zshrc/.bashrcдо него не доходит. Путь конфигурационного файла[llm]выше устраняет эту проблему (все поверхности читают один и тот же файл). Встроенные API-ключи вconfig.tomlотклоняются на этапе парсинга — используйтеapi_key_envилиapi_key_file. Контекст: #1144 → #1146. Полные рецепты для каждого бэкенда:docs/integrations/llm-backends.md.
Пути Windows: Используйте прямые слеши или экранированные обратные слеши в
--db. Пример:"--db", "C:/Users/YourName/.claude/ai-memory.db".
Флаг уровня: Флаг
--tierвыбирает уровень функций:keyword,semantic(по умолчанию),smartилиautonomous. Уровни Smart и Autonomous требуют LLM-бэкенд — после #1067 (v0.7.0) это может быть любой из: локальный Ollama, xAI Grok, OpenAI, Anthropic, Google Gemini, DeepSeek, Kimi (Moonshot), Qwen (Alibaba), Mistral, Groq, Together AI, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM или сервер llama.cpp — выбирается черезAI_MEMORY_LLM_BACKEND. Флаг--tierдолжен передаваться в аргументах — настройка уровняconfig.tomlне используется, когда MCP-сервер запускается ИИ-клиентом.
Важно: MCP-серверы не настраиваются в
settings.jsonилиsettings.local.json— эти файлы не поддерживаютmcpServers.
Заставьте Claude проактивно использовать ai-memory: Добавьте файл CLAUDE.md в корень вашего проекта с директивами ai-memory. Это гарантирует, что Claude будет вспоминать контекст в начале каждого разговора и сохранять результаты по мере работы. См. руководство по интеграции CLAUDE.md для готового шаблона и вариантов размещения.
OpenAI Codex CLI
Добавьте в ~/.codex/config.toml (глобально) или .codex/config.toml (проект). Windows: %USERPROFILE%\.codex\config.toml. Переопределите через переменную окружения CODEX_HOME.
[mcp_servers.memory]
command = "ai-memory"
args = ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
enabled = true
Или добавьте через CLI: codex mcp add memory -- ai-memory --db ~/.local/share/ai-memory/memories.db mcp --tier semantic
Примечания: Codex использует формат TOML с ключом с подчёркиванием
mcp_servers(не camelCase, не через дефис). Поддерживаетenv(пары ключ/значение),env_vars(список для пересылки),enabled_tools,disabled_tools,startup_timeout_sec,tool_timeout_sec. Используйте/mcpв TUI для просмотра статуса сервера. См. документацию Codex MCP.
Google Gemini CLI
Добавьте в ~/.gemini/settings.json (пользователь) или .gemini/settings.json (проект). Windows: %USERPROFILE%\.gemini\settings.json.
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"],
"timeout": 30000
}
}
}
Или добавьте через CLI: gemini mcp add memory ai-memory -- --db ~/.local/share/ai-memory/memories.db mcp --tier semantic
Примечания: Избегайте подчёркиваний в именах серверов (используйте дефисы). Имена инструментов автоматически получают префикс
mcp_memory_<toolName>. Переменные окружения в полеenvподдерживают$VAR/${VAR}(все платформы) и%VAR%(Windows). Gemini очищает чувствительные шаблоны из унаследованного окружения, если они не объявлены явно. Добавьте"trust": true, чтобы пропустить запросы подтверждения. Управление через CLI:gemini mcp list/remove/enable/disable. См. документацию Gemini CLI MCP.
Cursor IDE
Добавьте в ~/.cursor/mcp.json (глобально) или .cursor/mcp.json (проект). Windows: %USERPROFILE%\.cursor\mcp.json. Конфигурация проекта переопределяет глобальную для серверов с одинаковыми именами.
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
Примечания: Перезапустите Cursor после редактирования
mcp.json. Проверьте статус сервера в Settings > Tools & MCP (зелёная точка = подключён). Поддерживаетenv,envFileи интерполяцию${env:VAR_NAME}(интерполяция переменных окружения может быть ненадёжной для переменных профиля оболочки — используйтеenvFileв качестве обходного пути). Лимит ~40 инструментов на все MCP-серверы. См. документацию Cursor MCP.
Windsurf (Codeium)
Добавьте в ~/.codeium/windsurf/mcp_config.json (только глобально — без уровня проекта). Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json.
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
Примечания: Поддерживает интерполяцию
${env:VAR_NAME}вcommand,args,env,serverUrl,urlиheaders. Лимит 100 инструментов на все MCP-серверы. Также можно добавить через MCP Marketplace или Settings > Cascade > MCP Servers. См. документацию Windsurf MCP.
Continue.dev
Добавьте в ~/.continue/config.yaml (пользователь) или в директорию .continue/mcpServers/ в корне проекта (файлы YAML/JSON для каждого сервера). Windows: %USERPROFILE%\.continue\config.yaml.
mcpServers:
- name: memory
command: ai-memory
args:
- "--db"
- "~/.local/share/ai-memory/memories.db"
- "mcp"
- "--tier"
- "semantic"
Примечания: Инструменты MCP работают только в режиме агента. Поддерживает
${{ secrets.SECRET_NAME }}для интерполяции секретов. Директория.continue/mcpServers/на уровне проекта автоматически обнаруживает JSON-конфигурации из других инструментов (Claude Code, Cursor и т.д.). См. документацию Continue MCP.
Grok CLI (форк AlphaOne — глубокая интеграция с авто-восстановлением)
Форк AlphaOne grok-cli имеет встроенную поддержку ai-memory с MCP-соединениями, ограниченными сессией, автоматическим восстановлением памяти при старте сессии, сохранением сводок уплотнения и системными подсказками с учётом памяти.
Добавьте в ~/.grok/user-settings.json:
{
"mcp": {
"servers": [
{
"id": "ai-memory",
"label": "AI Memory",
"enabled": true,
"transport": "stdio",
"command": "ai-memory",
"args": ["mcp", "--tier", "semantic"]
}
]
}
}
Возможности: Авто-восстановление при старте сессии (внедряет релевантные воспоминания в системную подсказку), сводки уплотнения сохраняются как воспоминания среднего уровня, инструменты MCP доступны во всех режимах (agent, plan, ask), соединения ограничены сессией (без холодных стартов для каждого сообщения). По умолчанию использует
--tier semantic(локальные эмбеддинги, LLM-бэкенд не требуется). См. документацию grok-cli для полной настройки.
xAI Grok API (API-уровень, удалённый MCP)
Grok подключается к MCP-серверам через HTTPS (только удалённо, без stdio). Нет конфигурационного файла — серверы указываются для каждого API-запроса.
ai-memory serve --host 127.0.0.1 --port 9077
# Expose via HTTPS reverse proxy (nginx, caddy, cloudflare tunnel, etc.)
Затем добавьте MCP-сервер в ваш вызов Grok API:
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.3",
"tools": [{
"type": "mcp",
"server_url": "https://your-server.example.com/mcp",
"server_label": "memory",
"server_description": "Persistent AI memory with recall and search",
"allowed_tools": ["memory_store", "memory_recall", "memory_search"]
}],
"input": "What do you remember about our project?"
}'
Требования: Требуется HTTPS.
server_labelобязателен. Поддерживает транспорт Streamable HTTP и SSE. Опционально:allowed_tools,authorization,headers. Работает с xAI SDK, OpenAI-совместимым Responses API и Voice Agent API. См. документацию xAI Remote MCP.
META Llama (через Llama Stack)
Llama Stack регистрирует MCP-серверы как группы инструментов. Нет стандартизированного пути к конфигурационному файлу — зависит от развёртывания.
ai-memory serve --host 127.0.0.1 --port 9077
Python SDK:
client.toolgroups.register(
provider_id="model-context-protocol",
toolgroup_id="mcp::memory",
mcp_endpoint={"uri": "http://localhost:9077/sse"}
)
Или декларативно в run.yaml:
tool_groups:
- toolgroup_id: mcp::memory
provider_id: model-context-protocol
mcp_endpoint:
uri: "http://localhost:9077/sse"
Примечания: Поддерживает интерполяцию
${env.VAR_NAME}в run.yaml. Транспорт переходит с SSE на Streamable HTTP. См. документацию Llama Stack Tools.
OpenClaw
Добавьте через CLI или отредактируйте конфигурацию OpenClaw напрямую. Конфигурация использует mcp.servers (не mcpServers).
openclaw mcp set memory '{"command":"ai-memory","args":["--db","~/.local/share/ai-memory/memories.db","mcp","--tier","semantic"]}'
Или добавьте в ваш конфигурационный файл OpenClaw:
{
"mcp": {
"servers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
}
Примечания: OpenClaw использует ключ
mcp.servers(неmcpServers). Управление через CLI:openclaw mcp list,openclaw mcp show,openclaw mcp set,openclaw mcp unset. Поддерживает транспорты stdio, удаленный URL и Streamable HTTP. Предпочитайте--token-fileвместо встроенных секретов. См. документацию OpenClaw MCP.
Любой другой MCP-клиент
ai-memory взаимодействует по MCP через stdio (JSON-RPC 2.0). Укажите вашему клиенту:
command: ai-memory
args: ["--db", "/path/to/ai-memory.db", "mcp"]
Для клиентов, поддерживающих только HTTP, запустите REST API:
ai-memory serve
# 92 REST route registrations (78 unique URL paths) at http://127.0.0.1:9077/api/v1/
Шаг 4: Готово. Протестируйте.
Перезапустите вашего AI-ассистента. При использовании MCP он теперь имеет стандартный набор из 7 инструментов, анонсируемый при запуске сессии (исходные 5 + memory_load_family + memory_smart_load; остальные 93 из 100 вызываемых инструментов загружаются по требованию через --profile или memory_capabilities --include-schema). Спросите его: "Сохрани в памяти, что мой любимый язык — Rust." Затем в новом разговоре спросите: "Какой у меня любимый язык?" Он вспомнит.
Поддержка мобильных платформ (v0.7.0 Posture-1a)
ai-memory можно портировать на iOS и Android стандартным путем кросс-компиляции Rust для мобильных устройств. Версия v0.7.0 поставляется с покрытием CI для обеих целевых платформ на трех уровнях:
| Уровень | Покрытие | Рабочий процесс CI |
|---|---|---|
| Уровень 1 — Кросс-компиляция | cargo check --target aarch64-apple-ios --no-default-features --features sqlite-bundled --lib и соответствующая кросс-компиляция для Android выполняются при каждом PR + push в release/**. Отлавливает ~80% рисков деградации мобильной совместимости (любое обновление крейта, нарушающее мобильную переносимость, проявится здесь). | .github/workflows/ci.yml — задача mobile-cross-compile |
| Уровень 2 — Релизные артефакты | При создании релизного тега создаются ai-memory-ios.xcframework.tar.gz (срезы для устройства iOS + симулятора через xcodebuild -create-xcframework) и ai-memory-android.tar.gz (сборка .so для Android arm64 / armv7 / x86_64 / x86 в структуре jniLibs/<abi>/). | .github/workflows/release.yml — задачи mobile-ios + mobile-android |
| Уровень 3 — Рантайм-тесты | Ограниченный набор из ~50 тестов (изоляция файловой системы, FTS5 на устройстве SQLite, CPU-отзыв HNSW, CPU-путь эмбеддера, TLS клиента LLM) выполняется на симуляторе iOS при каждом push в release/** + вручную workflow_dispatch; эмулятор Android arm запускается только при push в release/** + workflow_dispatch. Обоснование выбора: tests/mobile/README.md. | .github/workflows/mobile-runtime.yml |
Статус на v0.7.0: Уровень 1 является обязательным условием выпуска — кросс-компиляция для мобильных устройств должна быть ЗЕЛЕНОЙ перед созданием тега. Уровень 2 (релизные артефакты) поставляет конвейер СБОРКИ + структуру артефактов; сам C-вызываемый FFI-интерфейс появится в последующем обновлении v0.7.x. Уровень 3 запускает ограниченный набор тестов при каждом push в release/**.
Использование релизных артефактов:
- iOS — скачайте
ai-memory-ios.xcframework.tar.gzсо страницы релиза v0.7.x, распакуйте и перетащитеAiMemory.xcframeworkв ваш проект Xcode в раздел "Frameworks, Libraries, and Embedded Content." - Android — скачайте
ai-memory-android.tar.gzсо страницы релиза v0.7.x, распакуйте и скопируйте деревоjniLibs/вsrc/main/jniLibs/вашего модуля приложения.
Мобильные артефакты также являются частью каждого опубликованного релиза v0.7.x; формула Homebrew + пакеты APT/RPM (которые поставляют десктопные бинарники) включают примечание со ссылкой на мобильные загрузки. См. issue #1068 для истории реализации CI.
Быстрый старт
От нуля до работающей памяти менее чем за две минуты.
1. Установка
curl -fsSL https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.sh | sh
2. Настройка MCP (пример для Claude Code — другие платформы работают аналогично)
Добавьте в ~/.claude.json:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
3. Сохраните первое воспоминание
ai-memory store -T "Project uses PostgreSQL 15" -c "Main DB is PG 15 with pgvector." --tier long
4. Извлеките его
ai-memory recall "database"
5. Проверьте статистику
ai-memory stats
6. Используйте с вашим AI. Перезапустите AI-клиент. Теперь он имеет 7 стандартных инструментов памяти, анонсируемых при запуске (101 анонсируемая запись, доступная через расширение рантайма или --profile full) через MCP — он может сохранять и извлекать воспоминания непосредственно во время разговоров.
SDK
В дополнение к интерфейсам MCP / HTTP / CLI, ai-memory поставляет собственные языковые SDK для HTTP-клиентов и вспомогательных утилит (например, requireProfile для утверждений профиля рантайма на демонах v0.6.4+).
TypeScript / JavaScript — @alphaone/ai-memory на npm
npm install @alphaone/ai-memory
Python — ai-memory-mcp на PyPI (имя импорта остается ai_memory)
pip install ai-memory-mcp
from ai_memory import AiMemoryClient, require_profile
with AiMemoryClient(base_url="http://127.0.0.1:9077", api_key="...") as client:
require_profile(client, "graph") # raises ProfileNotLoaded on miss
Оба SDK версионируются вместе с сервером (0.9.0 соответствует ai-memory 0.9.0). Демоны v0.6.4+ обеспечивают соблюдение контракта профиля; демоны до v0.6.4 переключаются на разрешительный режим с предупреждением и продолжением, чтобы обновления SDK не ломали старые серверы. Исходный код находится в sdk/typescript/ и sdk/python/.
Что это делает?
AI-ассистенты забывают всё между разговорами. ai-memory исправляет это.
Он работает как MCP (Model Context Protocol) сервер инструментов — фоновый процесс, с которым ваш AI взаимодействует напрямую. Когда ваш AI узнает что-то важное, он сохраняет это. Когда ему нужен контекст, он извлекает релевантные воспоминания, ранжированные по 6-факторному алгоритму оценки. Воспоминания распределены по трем уровням:
- Краткосрочные (по умолчанию 6 часов, настраивается) — одноразовый контекст, например, текущее состояние отладки
- Среднесрочные (по умолчанию 7 дней, настраивается) — рабочие знания, такие как цели спринта и недавние решения
- Долгосрочные (постоянные) — архитектура, пользовательские предпочтения, с трудом полученные уроки
Воспоминания, к которым постоянно обращаются, автоматически повышаются со среднесрочных до долгосрочных. Каждое извлечение продлевает TTL. Приоритет увеличивается с использованием. Система самоуправляема.
Помимо MCP, ai-memory также предоставляет полный HTTP REST API (92 регистрации маршрутов / 78 уникальных URL-путей на порту 9077) и полноценный CLI (89 подкоманд в --features sal ИЛИ --features sal-postgres; 87 в стандартной сборке (после #1389 L2 RecoverPreviousSession для регидратации контекста между сессиями + #1443 Expand для интерфейса расширения запросов ai-memory expand + #1598 Reembed для интерфейса миграции векторного пространства ai-memory reembed); SSOT закреплен ai_memory::EXPECTED_CLI_SUBCOMMANDS_{DEFAULT,SAL} + механический тест четности tests/cli_subcommand_count_invariant.rs) для прямого взаимодействия, написания скриптов и интеграции с любой AI-платформой или инструментом.
Возможности
Ядро
- MCP сервер инструментов — 101 инструмент через stdio JSON-RPC (полный профиль), совместим с любым MCP-клиентом
- Трехуровневая память — краткосрочная (TTL по умолчанию 6ч), среднесрочная (TTL по умолчанию 7д), долгосрочная (постоянная) — TTL настраиваются
- Полнотекстовый поиск — SQLite FTS5 с ранжированным извлечением
- Гибридное извлечение — ключевые слова FTS5 + косинусное сходство с адаптивным смешиванием: семантический вес варьируется от 0.50 (короткий контент) → 0.15 (длинный контент), поскольку эмбеддинги теряют информацию на длинном тексте
- 6-факторная оценка извлечения — релевантность FTS + приоритет + частота доступа + уверенность + бонус уровня + затухание новизны
- Автоматическое повышение — воспоминания, к которым обратились 5+ раз, повышаются со среднесрочных до долгосрочных
- Продление TTL — каждое извлечение продлевает срок действия (краткосрочные +1ч, среднесрочные +1д)
- Усиление приоритета — +1 за каждые 10 обращений (макс. 10)
- Обнаружение противоречий — предупреждает при сохранении воспоминаний, конфликтующих с существующими
- Дедупликация — upsert по title+namespace, уровень никогда не понижается
- Оценка уверенности — определенность 0.0-1.0, учитываемая при ранжировании
Организация
- Пространства имен — изоляция воспоминаний по проектам (автоопределение по git remote)
- Связывание воспоминаний — типизированные отношения: related_to, supersedes, contradicts, derived_from, reflects_on (рекурсивное обучение, задача 1/8), derives_from (атомизация WT-1-A), decomposes_into, depends_on, advances — девять вариантов в v0.8.0
- Консолидация — объединение нескольких воспоминаний в одно долгосрочное резюме
- Автоконсолидация — группировка по namespace+tag, автослияние групп выше порога
- Разрешение противоречий — пометка одного воспоминания как заменяющего другое, понижение проигравшего
- Забывание по шаблону — массовое удаление по namespace + шаблон FTS + уровень
- Отслеживание источника — отслеживает происхождение: user, claude, hook, api, cli, import, consolidation, system
- Идентичность агента (NHI) — каждое воспоминание несет
metadata.agent_id(заявленная идентичность) с эшелонированной неизменностью при update/dedup/import/sync/consolidate; фильтрацияlist/searchпо агенту - Тегирование — теги, разделенные запятыми, с поддержкой фильтрации
Интерфейсы
- 92 HTTP-маршрута (78 уникальных путей) — полный REST API на 127.0.0.1:9077 (работает с любым AI или инструментом)
- 89 подкоманд CLI в
--features salИЛИ--features sal-postgres(87 в стандартной сборке) — полноценный CLI с идентичными возможностями - 101 инструмент MCP при полном профиле (7 по умолчанию; проверено на соответствие
Profile::full().expected_tool_count()) — нативная интеграция для любого AI, совместимого с MCP - Интерактивная оболочка REPL — recall, search, list, get, stats, namespaces, delete с цветным выводом
- Вывод в JSON — флаг
--jsonдля всех команд CLI - Распределенная координация (v0.8.0 Pillar-1 + Pillar-2) — DAG действий (
memory_action_*), лизинги с единственным держателем (memory_lease_*), сигналы с подписью Ed25519 (memory_signal_*), аттестованные контрольные точки (memory_checkpoint_*), параметризованные процедуры (memory_routine_*) и жизненный цикл типизированного познания Goal/Plan/Step. См.docs/coordination.md.
Эксплуатация
- Многоузловая синхронизация — pull, push или двунаправленное слияние между файлами базы данных
- Импорт/Экспорт — полный цикл JSON с сохранением связей воспоминаний
- Сборка мусора — автоматическое фоновое истечение срока действия каждые 30 минут
- Корректное завершение — SIGTERM/SIGINT создают контрольную точку WAL для чистого выхода
- Глубокая проверка здоровья — проверяет доступность БД и целостность FTS5
- Автодополнение для оболочек — bash, zsh, fish
- Страница руководства —
ai-memory manгенерирует roff в stdout - Временные фильтры —
--since/--untilдля list и search - Человекочитаемый возраст — "2ч назад", "3д назад" в выводе CLI
- Цветной вывод CLI — цветовые метки уровней ANSI (красный/желтый/зеленый), полосы приоритета, жирные заголовки, голубые пространства имен
Качество
- ~10 000 тестов по всей поверхности — примерно 6 712 атрибутов
#[test]/#[tokio::test]вsrc/(5 759#[test]+ 953#[tokio::test]) плюс примерно 3 362 вtests/(2 138#[test]+ 1 224#[tokio::test]), выросло с базового уровня эпохи v0.6.4 в ~2 400 тестов (1 960 lib + 211 integration + 16 mcp_integration + 4 webhook_http_parity + 16 recipe_contract + ~150 по другим бинарным целям). Покрытие строк удерживается выше ≥92% проектной планки; новые модули v0.6.4 на 100% (sizes.rs), 99.50% (profile.rs), 97.58% (cli/audit.rs), 97.05% (cli/doctor.rs), 92.56% (handlers.rs), 92.26% (cli/install.rs). Базовые показатели v0.6.3.x (1 809 / 93.08% и 1 886 / 93.84%) остаются замороженными на странице доказательств; метрики v0.6.4 в примечаниях к релизу и в кампании test-hub. Эмпирическое подтверждение обнаружения NHI отдельно доказано Discovery Gate (матрица T1–T4 против живого xAI Grok 4.3, 6/6 ПРОЙДЕНО, GATE GREEN). - Бенчмарк LongMemEval — 97.0% R@5 на чистых ключевых словах FTS5 (независимо от LLM, 2.2 секунды, 232 з/с, нулевые затраты на API) на наборе данных ICLR 2025 LongMemEval-S; расширение запросов LLM с моделью Gemma 4 текущего поколения показывает 97.2% R@5 / 99.6% R@10 / 99.8% R@20 (площадка облачного API; исторический показатель
gemma3:4b97.8% выведен из заголовка согласно #1975). См. детали бенчмарка. - MCP Prompts — промпты
recall-firstиmemory-workflowобучают AI-клиентов проактивно использовать память - TOON-по умолчанию — ответы recall/list/search по умолчанию используют компактный формат TOON (на 79% меньше JSON)
- Критериальные бенчмарки — вставка, извлечение, поиск в масштабе 1K
- GitHub Actions CI/CD — fmt, clippy, test, build на Ubuntu + macOS, релиз по тегу
Минимальный порог покрытия (строгий контроль CI)
Задание Code Coverage является обязательной проверкой статуса. CI повторно проверяет два инварианта для каждого PR: абсолютный минимум >= 90% строк (защита от катастрофической регрессии, установленная на текущем измерении, округленном вниз до ближайших 5%), и фиксатор относительно значения, закрепленного в .coverage-baseline с окном допуска 0.5% (ежедневное соблюдение). PR, повышающие покрытие, должны обновлять базовый файл в том же коммите, чтобы будущие PR получали выгоду от нового порога; PR, ухудшающие покрытие более чем на 0.5%, блокируются от слияния. Текущее измерение: 93.13% строк.
Ограничение токенов (строгий контроль CI, v0.7 C5)
Рабочий процесс token-budget является обязательной проверкой статуса. Он обеспечивает соблюдение трех инвариантов, измеряемых с помощью cl100k_base, для каждого PR:
- Лимит на инструмент в 1500 токенов -- ни одна сериализованная схема инструмента MCP (имя + описание + inputSchema) не может превышать 1500 токенов cl100k_base.
- Честный диапазон полного профиля (5K-8K) -- защита v0.6.4, сохраненная для обнаружения патологического сокращения (случайная потеря инструментов).
- Жесткий потолок полного профиля (v0.7 C5, повышен после D1.6/D1.7) -- усеченная полезная нагрузка
tools/listв рамках--profile fullне может превышать 11 000 токенов cl100k_base (TRIMMED_FULL_PROFILE_CEILING_TOKENSвtests/token_budget_guard.rs; первоначальная цель C5 составляла 3500 для схем, написанных вручную до D1.6 — расширение D1.6/D1.7, полученное из schemars, повысило закрепленный потолок). C2 (разделение поля docs), C3 (свертывание повторяющегося шаблона схемы) и C4 (скрытие редко используемых необязательных параметров) обеспечили первоначальное сжатие; это ограничение заставляет будущие PR, расширяющие поверхность, компенсировать бюджет в другом месте. Проверьтеai-memory doctor --tokens --raw-table, чтобы увидеть затраты на инструмент. См..github/workflows/token-budget.ymlиdocs/v0.7/schema-compaction-audit.md.
Зависимости ML и LLM (уровень semantic+)
- candle-core, candle-nn, candle-transformers -- ML-фреймворк Hugging Face Candle для нативного вывода в Rust
- hf-hub -- загрузка моделей из Hugging Face Hub
- tokenizers -- токенизаторы Hugging Face для предварительной обработки текста
- instant-distance -- приближенный поиск ближайших соседей
- reqwest -- HTTP-клиент для связи с бэкендом LLM (уровни smart/autonomous — любой провайдер согласно #1067: Ollama, xAI, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, сервер llama.cpp)
Архитектура
Бенчмарк
Оценка на наборе данных ICLR 2025 LongMemEval-S (500 вопросов, 6 категорий). Чистый уровень ключевых слов FTS5 достигает 97.0% R@5 за 2.2 секунды — независимо от LLM, полностью локально, ноль обращений к облачным API, ноль затрат. Расширение запросов LLM (уровень smart) показывает 97.2% R@5 с моделью текущего поколения Gemma 4 (площадка облачного API).
Примечание к бенчмарк-модели (обновлено 2026-07-10, решение #1975): исторический показатель 97.8% R@5 для уровня smart был измерен с Gemma 3 4B (все еще вкомпилированная модель расширения по умолчанию) и снят с публикации в качестве основного. Опубликованный якорь текущего поколения — это измеренный прогон OpenRouter Gemma 4: 97.2% R@5 / 99.6% R@10 / 99.8% R@20 (2026-05-31, 500 вопросов, 0 сбоев расширения). Данных по локальной Ollama Gemma-4 нет — эталонный хост бенчмарка работает только на CPU, где корректный локальный прогон по полному протоколу неосуществим (см. #1983); повторный локальный прогон на GPU остается открытым после v1.0. Показатель уровня keyword 97.0% R@5 не зависит от LLM и не подвержен влиянию.
| Уровень | R@5 | Скорость | Зависимости |
|---|---|---|---|
| keyword | 97.0% | 232 запр./с | Нет |
| semantic | 97.4% | 45 запр./с | Модель эмбеддинга (~100 МБ) |
| smart | 97.2% (Gemma 4, площадка API; исторический gemma3:4b 97.8%) | 12 запр./с | Любой бэкенд LLM (например, локальный Ollama + Gemma; или xAI Grok 4.3, OpenAI gpt-5, Anthropic Claude Opus 4.7, Gemini, DeepSeek и т.д. после #1067) |
Бюджеты производительности (v0.6.4)
Каждый релиз поставляется с опубликованными бюджетами p95/p99 для операций на критическом пути и проверкой CI, которая блокирует любой PR, если измеренное p95 превышает бюджет более чем на 10 %. Цели откалиброваны для эталонного оборудования M4; полная таблица и методология в PERFORMANCE.md.
| Операция | Цель p95 | Цель p99 |
|---|---|---|
memory_session_start (хук Claude Code) | < 100 мс | < 200 мс |
memory_store (без эмбеддинга) | < 20 мс | < 50 мс |
memory_search (FTS5) | < 100 мс | < 250 мс |
memory_recall (горячий, глубина=1) | < 50 мс | < 150 мс |
memory_kg_query (глубина ≤ 3) | < 100 мс | < 250 мс |
memory_kg_query (глубина ≤ 5) | < 250 мс | < 500 мс |
memory_kg_timeline | < 100 мс | < 250 мс |
Запустите ту же рабочую нагрузку локально:
ai-memory bench # human-readable table
ai-memory bench --json # machine-parseable
Субстрат не изменился при переходе с v0.6.3.x → v0.6.4 (релиз quiet-tools поставляет меньшую поверхность инструментов по умолчанию, а не другой критический путь). Цели p99 здесь остаются информационными до следующего выделенного окна нагрузочного тестирования; последние данные нагрузочного тестирования находятся на тестовом хабе.
Методы интеграции
MCP (Основной -- для AI-платформ, совместимых с MCP)
MCP — это рекомендуемый способ интеграции. Ваш AI получает 7 нативных инструментов памяти, рекламируемых по умолчанию (исходные 5 + memory_load_family + memory_smart_load; плюс постоянно активная начальная загрузка memory_capabilities) без какого-либо связующего кода. Остальные 93 вызываемых инструмента (101 рекламируемая запись — проверено по Profile::full().expected_tool_count() и закреплено const_count_matches_full_profile в src/mcp/registry.rs) остаются доступными через --profile graph|admin|power|full или расширение во время выполнения через memory_capabilities --include-schema family=<name>. Настройте сервер MCP в конфигурации вашей AI-платформы:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp"]
}
}
}
HTTP API (Универсальный -- для любого AI или инструмента)
Запустите HTTP-сервер для доступа к REST API. Любой AI, скрипт или автоматизация, способные выполнять HTTP-вызовы, могут использовать это:
ai-memory serve
# 92 REST route registrations (78 unique URL paths) at http://127.0.0.1:9077/api/v1/
CLI (Универсальный -- для скриптов и прямого использования)
CLI работает автономно или как строительный блок для AI-интеграций, выполняющих команды оболочки:
ai-memory store --tier long --title "Architecture decision" --content "We use PostgreSQL"
ai-memory recall "database choice"
ai-memory search "PostgreSQL"
Уровни функций
ai-memory поддерживает 4 уровня функций, выбираемых при запуске с помощью ai-memory mcp --tier <tier>. Более высокие уровни добавляют возможности ML ценой использования диска и ОЗУ:
| Уровень | Метод поиска | Дополнительные возможности | Прибл. накладные расходы |
|---|---|---|---|
| keyword | Только FTS5 | Базовая поверхность из 101 записи — уровень ограничивает модели/функции, а НЕ рекламируемую поверхность инструментов | 0 МБ |
| semantic | FTS5 + косинусное сходство (гибридный) | Эмбеддинги MiniLM-L6-v2 (384-мерные), индекс HNSW, семантический уровень (подмножество поверхности из 101 записи) | ~256 МБ |
| smart | Гибридный + расширение запросов LLM | + nomic-embed-text (768-мерные) + поддерживаемые LLM memory_expand_query, memory_auto_tag, memory_detect_contradiction, полная поверхность из 101 записи. Провайдер LLM выбирается оператором через AI_MEMORY_LLM_BACKEND (#1067) — локальный Ollama, xAI, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM или llama.cpp. | ~1 ГБ (локальный Ollama) / ~0 ГБ (удаленный API) |
| autonomous | Гибридный + расширение LLM + переранжирование кросс-энкодером | + нейронный кросс-энкодер (ms-marco-MiniLM), рефлексия памяти, полная поверхность из 101 записи. Та же свобода выбора провайдера LLM, что и на уровне smart. | ~4 ГБ (локальный Ollama) / ~3 ГБ (удаленный LLM, только локальный кросс-энкодер) |
Матрица возможностей
Каждая возможность сопоставлена с минимальным требуемым уровнем. Каждый уровень включает все возможности нижестоящих уровней.
| Возможность | keyword | semantic | smart | autonomous |
|---|---|---|---|---|
| Поиск и вызов | ||||
| Поиск по ключевым словам FTS5 | Да | Да | Да | Да |
| Семантический эмбеддинг (косинусное сходство) | -- | Да | Да | Да |
| Гибридный вызов (FTS5 + косинус, адаптивный семантический вес 0.50→0.15 в зависимости от длины контента) | -- | Да | Да | Да |
| Индекс ближайших соседей HNSW | -- | Да | Да | Да |
Расширение запросов LLM (memory_expand_query) | -- | -- | Да | Да |
| Переранжирование нейронным кросс-энкодером | -- | -- | -- | Да |
| Управление памятью | ||||
| Сохранение, обновление, удаление, продвижение, связывание | Да | Да | Да | Да |
| Ручная консолидация | Да | Да | Да | Да |
| Автоконсолидация (суммаризация LLM) | -- | -- | Да | Да |
Автотегирование (memory_auto_tag) | -- | -- | Да | Да |
Обнаружение противоречий (memory_detect_contradiction) | -- | -- | Да | Да |
| Автономная рефлексия памяти | -- | -- | -- | Да |
| Модели | ||||
| Модель эмбеддинга | -- | MiniLM-L6-v2 (384d) | nomic-embed-text (768d) | nomic-embed-text (768d) |
| Переопределение бэкенда эмбеддинга (#1598) | -- | любой: локальный Ollama, псевдоним поставщика API или self-hosted OpenAI-совместимый ([embeddings].backend / AI_MEMORY_EMBED_*) | то же | то же |
| LLM | -- | -- | выбирается оператором (#1067) — по умолчанию локальный gemma3:4b; удаленные конечные точки не имеют локального следа | выбирается оператором (#1067) — по умолчанию локальный gemma3:4b; удаленные конечные точки не имеют локального следа |
| Ресурсы | ||||
| ОЗУ | 0 МБ | ~256 МБ | ~1 ГБ | ~4 ГБ |
| Внешние зависимости | Нет | Нет | Бэкенд LLM (Ollama / xAI / OpenAI / Anthropic / Gemini / DeepSeek / Kimi / Qwen / Mistral / Groq / Together / Cerebras / OpenRouter / Fireworks / LMStudio / vLLM / llama.cpp — #1067) | Бэкенд LLM (те же варианты, что и для smart) |
Предоставляемые инструменты MCP (при --profile full) 1 | 101 | 101 | 101 | 101 |
Уровень Semantic (по умолчанию) включает ML-фреймворк Candle и загружает модель all-MiniLM-L6-v2 при первом запуске (~90 МБ). Уровни Smart и autonomous требуют бэкенд LLM — после #1067 (v0.7.0) это может быть локальный (Ollama, LMStudio, vLLM, сервер llama.cpp) или любая удаленная конечная точка, совместимая с OpenAI (xAI, OpenAI, Anthropic через прокладку OpenAI, Google Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks). Выбор осуществляется через переменную окружения AI_MEMORY_LLM_BACKEND; ключи API для каждого поставщика — через XAI_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY / GEMINI_API_KEY / DEEPSEEK_API_KEY / MOONSHOT_API_KEY / DASHSCOPE_API_KEY / и т.д. или канонический AI_MEMORY_LLM_API_KEY.
Уровни ограничивают функции, а не модели — и после #1067 (v0.7.0) уровни ограничивают функции, а не поставщиков. Флаг --tier контролирует, какие инструменты предоставляются. Бэкенд LLM + модель настраиваются независимо через переменные окружения AI_MEMORY_LLM_BACKEND + AI_MEMORY_LLM_MODEL (или через каноническую секцию [llm] в ~/.config/ai-memory/config.toml — см. docs/CONFIG_SCHEMA.md для корпоративной схемы v0.7.x и инструмента миграции). Например, запуск уровня autonomous (полная поверхность из 101 записи + переранжировщик) с xAI Grok 4 через псевдоним, совместимый с OpenAI:
# Quick path: env vars
export AI_MEMORY_LLM_BACKEND=xai
export AI_MEMORY_LLM_MODEL=grok-4.3
export XAI_API_KEY=xai-… # or AI_MEMORY_LLM_API_KEY
ai-memory mcp --tier autonomous
# Enterprise path: ~/.config/ai-memory/config.toml (v0.7.x schema v2, #1146)
schema_version = 2
tier = "autonomous"
[llm]
backend = "xai"
model = "grok-4.3"
base_url = "https://api.x.ai/v1"
api_key_env = "XAI_API_KEY" # mutually exclusive with api_key_file;
# inline `api_key = "..."` is REJECTED.
# Legacy v0.6.x shape — still works, deprecation WARN at load; run
# `ai-memory config migrate` to upgrade in place.
tier = "autonomous"
llm_model = "gemma3:4b" # default Ollama model at v0.7.0
Флаг --tier должен передаваться в аргументах MCP — настройка уровня config.toml не используется, когда сервер запускается AI-клиентом.
# Semantic is the default tier
ai-memory mcp
# Keyword -- FTS5 only, no models
ai-memory mcp --tier keyword
# Semantic -- hybrid recall with embeddings (explicit)
ai-memory mcp --tier semantic
# Smart -- adds LLM-powered query expansion, auto-tagging, contradiction detection
ai-memory mcp --tier smart
# Autonomous -- adds cross-encoder reranking
ai-memory mcp --tier autonomous
Инструмент memory_capabilities сообщает активный уровень, загруженные модели и доступные возможности во время выполнения.
Инструменты MCP
Эти 101 инструмент (полный профиль; каноническое количество через Profile::full().expected_tool_count() в src/profile.rs) доступны любому AI, совместимому с MCP, при настройке в качестве сервера MCP (замороженная в v0.6.4 страница доказательств перечисляет базовый набор из 63 инструментов; в таблице ниже документировано основное подмножество, которое большинство клиентов используют ежедневно):
| Инструмент | Описание |
|---|---|
memory_store | Сохранить новое воспоминание (дедупликация по названию+пространству имён, сообщает о противоречиях) |
memory_recall | Извлечь воспоминания, релевантные контексту (нечёткий поиск ИЛИ, ранжирование по 6 факторам) |
memory_search | Поиск воспоминаний по точному совпадению ключевых слов (семантика И) |
memory_list | Список воспоминаний с опциональными фильтрами (пространство имён, уровень, теги, диапазон дат) |
memory_get | Получить конкретное воспоминание по ID со связанными элементами |
memory_update | Обновить существующее воспоминание по ID (частичное обновление) |
memory_delete | Удалить воспоминание по ID |
memory_promote | Повысить воспоминание до долгосрочного (постоянное, сбрасывает срок действия) |
memory_forget | Массовое удаление по шаблону, пространству имён или уровню |
memory_link | Создать типизированную связь между двумя воспоминаниями |
memory_get_links | Получить все связи для воспоминания |
memory_consolidate | Объединить несколько воспоминаний в одно долгосрочное резюме |
memory_stats | Получить статистику хранилища воспоминаний |
memory_capabilities | Сообщить активный уровень функций, загруженные модели и доступные возможности |
memory_expand_query | Использовать LLM для расширения поискового запроса связанными терминами (уровень smart+) |
memory_auto_tag | Использовать LLM для автоматической генерации тегов для воспоминания (уровень smart+) |
memory_detect_contradiction | Использовать LLM для проверки противоречий между двумя воспоминаниями (уровень smart+) |
memory_archive_list | Список архивированных воспоминаний (с опциональными фильтрами по пространству имён/уровню/тегам) |
memory_archive_restore | Восстановить архивированное воспоминание обратно в активное хранилище |
memory_archive_purge | Безвозвратно удалить архивированные воспоминания, соответствующие фильтрам |
memory_archive_stats | Получить статистику архива (количество по уровням, пространствам имён, возрасту) |
HTTP API
92 регистрации маршрутов / 78 уникальных URL-путей на 127.0.0.1:9077. Начните с ai-memory serve. В таблице ниже показаны наиболее часто используемые REST-эндпоинты; полный список (управление, федерация, подписки, граф знаний, квоты, подтверждения SSE) см. в docs/API_REFERENCE.md.
Безопасность: HTTP-сервер привязывается к 127.0.0.1 и поставляется без настроенной аутентификации по умолчанию, а также с разрешительным CORS. Установите
api_keyвconfig.toml, чтобы требовать заголовокx-api-keyв каждом запросе (устаревшая форма параметра запроса?api_key=исключена в версии 0.7.0 — #1574), и установитеAI_MEMORY_REQUIRE_API_KEY=1для жёсткого отказа при запуске без ключа (#1458). Не открывайте доступ к сети без аутентификации (и предпочтительно используйте TLS через--tls-cert/--tls-keyили обратный прокси).
| Метод | Эндпоинт | Описание |
|---|---|---|
| GET | /api/v1/health | Проверка работоспособности (проверяет целостность БД + FTS5) |
| GET | /api/v1/memories | Список воспоминаний (поддерживает пространство имён, уровень, теги, since, until, limit) |
| POST | /api/v1/memories | Создать воспоминание |
| POST | /api/v1/memories/bulk | Массовое создание воспоминаний (с ограничениями) |
| GET | /api/v1/memories/{id} | Получить воспоминание по ID |
| PUT | /api/v1/memories/{id} | Обновить воспоминание по ID |
| DELETE | /api/v1/memories/{id} | Удалить воспоминание по ID |
| POST | /api/v1/memories/{id}/promote | Повысить воспоминание до долгосрочного |
| GET | /api/v1/search | Поиск по ключевым словам (И) |
| GET | /api/v1/recall | Извлечение по контексту (GET с параметрами запроса) |
| POST | /api/v1/recall | Извлечение по контексту (POST с телом JSON) |
| POST | /api/v1/forget | Массовое удаление по шаблону/пространству имён/уровню |
| POST | /api/v1/consolidate | Объединить воспоминания в одно |
| POST | /api/v1/links | Создать связь между воспоминаниями |
| GET | /api/v1/links/{id} | Получить связи для воспоминания |
| GET | /api/v1/namespaces | Список всех пространств имён |
| GET | /api/v1/stats | Статистика хранилища воспоминаний |
| POST | /api/v1/gc | Запустить сборку мусора |
| GET | /api/v1/export | Экспортировать все воспоминания и связи в JSON |
| POST | /api/v1/import | Импортировать воспоминания и связи из JSON |
| GET | /api/v1/archive | Список архивированных воспоминаний (с опциональными фильтрами) |
| POST | /api/v1/archive/{id}/restore | Восстановить архивированное воспоминание в активное хранилище |
| DELETE | /api/v1/archive | Очистить архивированные воспоминания, соответствующие фильтрам |
| GET | /api/v1/archive/stats | Статистика архива (количество по уровням, пространствам имён, возрасту) |
Команды CLI
89 подкоманд верхнего уровня в --features sal ИЛИ --features sal-postgres (87 в стандартной сборке; разница в 2 варианта — это Migrate + SchemaInit, оба закрыты #[cfg(feature = "sal")] согласно src/daemon_runtime.rs::Command::{Migrate,SchemaInit}; было 40 в версии 0.6.4). Выполните ai-memory <command> --help для получения подробностей о любой команде или ai-memory --help для полного списка.
| Команда | Описание |
|---|---|
mcp | Запуск как MCP-сервер инструментов через stdio (основной путь интеграции) |
serve | Запустить HTTP-демон на порту 9077 |
store | Сохранить новое воспоминание (дедупликация по названию+пространству имён) |
update | Обновить существующее воспоминание по ID |
recall | Нечёткий поиск ИЛИ с ранжированными результатами + автообновление (поддерживает --tier для гибридного извлечения). Конвейер ограничивает результаты до 50 за запрос. |
search | Поиск И для точного совпадения ключевых слов. |
get | Извлечь одно воспоминание по ID (включая связи) |
list | Просмотр воспоминаний с фильтрами (пространство имён, уровень, теги, диапазон дат). Ограничено 1000 элементами за запрос (LIST_MAX_LIMIT; HTTP list/bulk дополнительно учитывают AI_MEMORY_MAX_PAGE_SIZE). |
delete | Удалить воспоминание по ID |
promote | Повысить воспоминание до долгосрочного (сбрасывает срок действия) |
forget | Массовое удаление по шаблону + пространству имён + уровню |
link | Связать два воспоминания (related_to, supersedes, contradicts, derived_from) |
consolidate | Объединить несколько воспоминаний в одно долгосрочное резюме |
resolve | Разрешить противоречие: отметить победителя, понизить проигравшего |
shell | Интерактивный REPL с цветным выводом |
sync | Синхронизировать воспоминания между двумя файлами баз данных (pull/push/merge) |
auto-consolidate | Группировать воспоминания по пространству имён+тегу, объединять группы выше порога |
gc | Запустить сборку мусора для истёкших воспоминаний |
stats | Обзор состояния памяти (количество, уровни, пространства имён, связи, размер БД) |
namespaces | Список всех пространств имён с количеством воспоминаний |
export | Экспортировать все воспоминания и связи в JSON |
import | Импортировать воспоминания и связи из JSON (stdin) |
completions | Сгенерировать дополнения для оболочки (bash, zsh, fish) |
man | Сгенерировать man-страницу в формате roff в stdout |
mine | Импортировать воспоминания из истории переписки (экспорты Claude, ChatGPT, Slack) |
archive | Управление архивом воспоминаний (список, восстановление, очистка, статистика) |
Бинарный файл верхнего уровня ai-memory также принимает глобальные флаги:
| Флаг | Описание |
|---|---|
--db <path> | Путь к базе данных (по умолчанию: ai-memory.db, или $AI_MEMORY_DB) |
--json | Вывод JSON для всех команд (машиночитаемый вывод) |
Подкоманда store принимает дополнительные флаги:
| Флаг | Описание |
|---|---|
--source / -S | Кто создал это воспоминание (user, nhi, hook, api, cli, import, consolidation, system). По умолчанию: cli. "claude" принимается для обратной совместимости согласно src/validate.rs::VALID_SOURCES |
--expires-at | Метка времени истечения срока действия в формате RFC3339 |
--ttl-secs | TTL в секундах (альтернатива --expires-at) |
Подкоманда mcp принимает дополнительный флаг:
| Флаг | Описание |
|---|---|
--tier <keyword|semantic|smart|autonomous> | Уровень функций (по умолчанию: semantic). См. Уровни функций. |
Оценка извлечения
Каждый запрос на извлечение ранжирует воспоминания по 6 факторам:
score = (fts_relevance * -1)
+ (priority * 0.5)
+ (MIN(access_count, 50) * 0.1)
+ (confidence * 2.0)
+ tier_boost
+ recency_decay
| Фактор | Вес | Примечания |
|---|---|---|
| Релевантность FTS | -1.0x | Ранг SQLite FTS5 (отрицательное значение = лучшее совпадение) |
| Приоритет | 0.5x | Назначенная пользователем шкала 1-10 |
| Количество обращений | 0.1x | Как часто извлекалось (ограничено 50 для оценки) |
| Уверенность | 2.0x | Оценка достоверности 0.0-1.0 |
| Бонус уровня | +3.0 / +1.0 / +0.0 | long / mid / short |
| Затухание новизны | 1/(1 + days*0.1) | Недавние воспоминания ранжируются выше |
Уровни воспоминаний
| Уровень | TTL | Вариант использования | Примеры |
|---|---|---|---|
short | 6 часов (настраивается) | Одноразовый контекст | Текущее состояние отладки, временные переменные, трассировки ошибок |
mid | 7 дней (настраивается) | Рабочие знания | Цели спринта, недавние решения, назначение текущей ветки |
long | Постоянный | Добытые с трудом знания | Архитектура, пользовательские предпочтения, исправления, соглашения |
Автоматическое поведение
- Продление TTL при извлечении: короткие воспоминания получают +1 час, средние — +1 день
- Автоповышение: воспоминания среднего уровня, к которым обратились 5+ раз, повышаются до долгосрочных (срок действия сбрасывается)
- Усиление приоритета: каждые 10 обращений приоритет увеличивается на 1 (максимум 10)
- Обнаружение противоречий: предупреждает, когда новое воспоминание конфликтует с существующим в том же пространстве имён
- Дедупликация: upsert по названию+пространству имён; уровень никогда не понижается при обновлении
Настраиваемый TTL
TTL по умолчанию (6 часов для коротких, 7 дней для средних) можно переопределить в ~/.config/ai-memory/config.toml в разделе [ttl]:
[ttl]
short_ttl_secs = 21600 # short-tier TTL in seconds (default: 21600 = 6 hours)
mid_ttl_secs = 604800 # mid-tier TTL in seconds (default: 604800 = 7 days)
long_ttl_secs = 0 # long-tier TTL in seconds (default: 0 = never expires)
short_extend_secs = 3600 # TTL extension on recall for short-tier memories in seconds (default: 3600 = +1h)
mid_extend_secs = 86400 # TTL extension on recall for mid-tier memories in seconds (default: 86400 = +1d)
Все пять полей необязательны — опустите любое, чтобы сохранить значение по умолчанию. Установите любое значение в 0, чтобы отключить истечение срока для этого уровня. Значения ограничены максимумом в 10 лет; отрицательные значения продления ограничены 0.
Примечание: Конфигурация загружается один раз при запуске процесса. Изменения в
config.tomlтребуют перезапуска процесса ai-memory (MCP-сервер, HTTP-демон или CLI) для вступления в силу.
Архив
Когда сборщик мусора удаляет воспоминание с истёкшим сроком, его можно архивировать вместо безвозвратного удаления. Архивированные воспоминания перемещаются в отдельное хранилище и могут быть позже просмотрены, восстановлены или очищены.
Конфигурация
Включите архивирование в ~/.config/ai-memory/config.toml:
archive_on_gc = true # archive expired memories instead of deleting them (default: true)
Команды CLI
Подкоманда archive управляет архивом:
ai-memory archive list # list archived memories
ai-memory archive list --namespace my-project # filter by namespace
ai-memory archive restore <id> # restore an archived memory to active store
ai-memory archive purge --older-than-days 90 # permanently delete archives older than 90 days
ai-memory archive stats # show archive statistics
Примечание: У восстановленных воспоминаний сбрасывается
expires_at(становятся постоянными до следующего назначения TTL).
Инструменты MCP
Для MCP-клиентов доступны четыре инструмента архива:
| Инструмент | Описание |
|---|---|
memory_archive_list | Список архивированных воспоминаний (с опциональными фильтрами по пространству имён/уровню/тегам) |
memory_archive_restore | Восстановить архивированное воспоминание обратно в активное хранилище |
memory_archive_purge | Безвозвратно удалить архивированные воспоминания, соответствующие фильтрам |
memory_archive_stats | Получить статистику архива (количество по уровням, пространствам имён, возрасту) |
HTTP-эндпоинты
| Метод | Эндпоинт | Описание |
|---|---|---|
| GET | /api/v1/archive | Список архивированных воспоминаний (с опциональными фильтрами) |
| POST | /api/v1/archive/{id}/restore | Восстановить архивированное воспоминание в активное хранилище |
| DELETE | /api/v1/archive | Очистить архивированные воспоминания, соответствующие фильтрам |
| GET | /api/v1/archive/stats | Статистика архива (количество по уровням, пространствам имён, возрасту) |
Безопасность
ai-memory включает усиление защиты на всех путях ввода:
- Безопасность транзакций — все многошаговые операции с базой данных используют транзакции; при сбое не происходит частичной записи
- Предотвращение FTS-инъекций — пользовательский ввод очищается перед попаданием в запросы FTS5; специальные символы экранируются
- Очистка ошибок — внутренние пути к базе данных и системные детали удаляются из ответов с ошибками; клиенты получают структурированные типы ошибок (NOT_FOUND, VALIDATION_FAILED, DATABASE_ERROR, CONFLICT)
- Ограничения размера тела запроса — тела HTTP-запросов ограничены 50 МБ через DefaultBodyLimit в Axum
- Ограничения пакетных операций — конечные точки пакетного создания применяют максимальные размеры пакетов для предотвращения исчерпания ресурсов
- CORS — разрешающий слой CORS включён для рабочих процессов разработки на localhost
- Валидация ввода — каждый путь записи проверяет длину заголовка, длину содержимого, формат пространства имён, значения источника, диапазон приоритета (1-10), диапазон уверенности (0.0-1.0), формат тегов, значения уровней, типы отношений и формат идентификаторов
- Валидация связей при синхронизации — все связи проверяются (оба идентификатора, тип отношения, отсутствие ссылок на себя) перед импортом во время операций синхронизации
- Потокобезопасное определение цвета — определение цвета терминала использует
AtomicBoolдля безопасного параллельного доступа - HTTP только локально — HTTP-сервер по умолчанию привязывается к 127.0.0.1; не доступен из сети
- Режим WAL — журналирование с упреждающей записью SQLite для безопасных параллельных чтений во время записи
Документация
| Руководство | Аудитория |
|---|---|
| Список изменений v0.9.0 | Текущий выпуск (secure-default hardening) — требуется аттестация агента store-path по умолчанию (#1751), двойной шлюз принудительного применения хуков MCP+HTTP (#1885/#1924), схема v78 |
| Примечания к выпуску v0.8.0 | Предыдущий выпуск (distributed-coordination) — координационная основа, типизированное познание, усиление федерации, принудительное управление, схема v58→v70 |
| Справочник инструментов координации | Примитивы v0.8.0: действие / аренда / сигнал / контрольная точка / рутина (memory_action_* / _lease_* / _signal_* / _checkpoint_* / _routine_*) |
| Руководство по миграции v0.7 | Обновление с v0.6.x (охватывает attested-cortex, хуки, транскрипты, AGE, разрешения, исправление наследования G1) |
| Что нового в v0.7 | Визуальное описание основ attested-cortex |
RFC attested-cortex | Обоснование проектных решений для четырёх архитектурных решений v0.7 |
| Матрица совместимости v0.7 | Матрица стандартного и опционального включения для каждой функции |
| Руководство по установке | Запуск в работу (включает настройку MCP для нескольких ИИ-платформ) |
| Руководство пользователя | Пользователи ИИ-ассистентов, которым нужна постоянная память |
| Руководство разработчика | Создание на основе ai-memory или участие в разработке |
| Руководство администратора | Развёртывание, мониторинг и устранение неполадок |
| Инженерные стандарты | Стандарты кода, тестирования, безопасности и выпусков (авторитетные) |
| Рабочий процесс ИИ-разработчика | Пошаговый рабочий процесс для ИИ-агентов кодирования, участвующих в этом репозитории |
| Стандарт управления ИИ-разработчиками | Политика участия ИИ: полномочия, авторство, проверка, аудит |
| Страницы GitHub | Визуальный обзор с анимированными диаграммами |
Лицензия
Copyright 2026 AlphaOne LLC.
Лицензировано в соответствии с Лицензией Apache, версия 2.0 («Лицензия»); вы не можете использовать этот файл иначе как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу
Если иное не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на УСЛОВИЯХ «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ любого рода, явных или подразумеваемых. См. Лицензию для конкретных положений, регулирующих разрешения и ограничения в рамках Лицензии.
Footnotes
-
MCP поверхность инструментов ортогональна уровню вызова — каждый уровень видит одни и те же 101 инструмент при
--profile full(стандартный--profile coreрекламирует 8 при загрузке независимо от уровня — 7 инструментов семейства Core плюс постоянно активная начальная загрузкаmemory_capabilities; остальные 93 загружаются по требованию). Уровень ограничивает модели (эмбеддер, кросс-энкодер, LLM) и поведение функций (косинусное сходство, расширение LLM, переранжирование), а не рекламируемое количество инструментов. ЗакрепленоProfile::full().expected_tool_count()+const_count_matches_full_profileвsrc/mcp/registry.rs. ↩