by dat999zx (community) Claude Desktop, Claude Code, OpenCode, Cursor, Codex, Node.js 22+, macOS, Linux
Операционная система знаний для AI-агентов.
MCP-сервер для работы с хранилищем заметок Obsidian. Позволяет Claude читать, создавать и редактировать заметки, искать по …
Минималистичная расширяемая agent-native база знаний, поддерживающая общий контекст актуальным и инспектируемым.
Compile-шаг для баз знаний. Даёт агенту граф понятий вашего контента — индексация меньше чем за 20с, …
MCP-сервер для доступа к актуальной документации библиотек прямо в контексте LLM. Вместо устаревших обучающих данных — …
npm install -g @dat999zx/knowl cd your-project knowl init

Ваш CLAUDE.md только растёт. Knowl устаревает факты, когда они меняются.
Быстрый старт · Зачем устаревание · Что сохраняется · Возможности · Подключение агента · Просмотр · Требования · Полный справочник →
Ваш агент начинает каждую сессию с чистого листа, поэтому вы держите CLAUDE.md. Он только растёт. Через полгода он всё ещё называет ту базу данных, с которой вы перешли прошлой весной, и теперь агент получает оба ответа.
Knowl — это постоянная память для Claude Code, Cursor и Codex, работающая через
MCP или CLI. Когда факт заменяется, старый устаревает вместо того, чтобы конкурировать с новым. API-ключ не нужен. Когда Knowl не уверен, что новый факт заменяет старый, он оставляет оба активными и предлагает вам команду knowl supersede, чтобы указать это.
Выключите это — и точность извлечения падает с 98% до 47%. От начала до конца — с 90 до 73. Как это измерялось ↓
Сорок секунд, одно решение, три агента:

Требуется Node.js 22 или новее.
npm install -g @dat999zx/knowl
cd your-project
knowl init
knowl init создаёт .knowl/, устанавливает файлы руководства проекта, обновляет .gitignore и
регистрирует Knowl в обнаруженных агентах. Он также разогревает локальную модель эмбеддингов (~53 МБ)
в фоне — init завершается успешно в любом случае, а без него у вас всё равно будет поиск по ключевым словам.
Это вся настройка. Вы не записываете память вручную: ваш агент читает и записывает её в процессе работы.
|
Claude Code MCP · жизненный цикл · субагенты |
Codex MCP · жизненный цикл · субагенты |
Cursor MCP · жизненный цикл |
Gemini CLI MCP · ручной цикл |
Claude Desktop MCP · ручной цикл |
knowl init регистрирует MCP-сервер для каждого обнаруженного хоста. После этого запустите новый сеанс, чтобы агент подхватил его инструкции, и он будет самостоятельно запрашивать и записывать память.
→ Как агенты используют это · Инструменты и ресурсы MCP
Большинство систем памяти работают только на добавление. Сохранение «мы перешли на SQLite» оставляет «мы используем PostgreSQL» активным и доступным для поиска, поэтому агент получает оба варианта и выбирает по рангу. Knowl рассматривает запись на ту же тему как исправление: предшествующий факт помечается как superseded (заменённый), выпадает из обычного поиска и остаётся доступным через knowl timeline.
Это отдельное поведение и составляет большую часть разницы в точности. На корпусе проверки разрешения конфликтов MemoryAgentBench — 455 фактов, 100 вопросов о том, какой факт актуален, поиск по топ-5, без LLM-ридера:
| Конфигурация | Top-1 | Устаревших результатов | Активных атомов |
|---|---|---|---|
| Замена ВКЛ | 98.0% | 2 / 100 | 306 |
| Замена ВЫКЛ | 47.0% | 62 / 100 | 455 |
Тот же корпус, тот же ранжировщик, тот же путь запроса. Единственная переменная — активен ли устаревший факт. Это измерение на уровне поиска в собственном харнессе Knowl: проверяется, возвращается ли текущий факт первым, без модели в цикле.
Поскольку результат, который вы оцениваете сами, стоит меньше, чем результат, оценённый кем-то другим, то же утверждение было повторно прогнано внутри харнесса MemoryAgentBench, оценено его собственным кодом, с LLM, читающим то, что вернул Knowl — более сложная, полностью сквозная настройка, на самом большом контексте, который предлагает задача:
| Система | FactConsolidation-SH @262K |
|---|---|
| Knowl | 90 |
| agentmemory | 79 |
| GPT-4o (длинный контекст) | 60 |
| HippoRAG-v2 | 54 |
| BM25 | 48 |
| GPT-4o-mini (длинный контекст) | 45 |
| Qwen3-Embedding-4B | 29 |
| Cognee | 28 |
| MemGPT | 28 |
| Mem0 | 18 |
| MIRIX | 14 |
| Zep | 7 |
18 332 факта, 100 вопросов, точное совпадение подстроки. Каждая строка использует gpt-4o-mini в качестве ридера, Knowl включён — в статье указано это для всех RAG и memory-агентов, так что сравнение корректное. Knowl и agentmemory были измерены здесь; все остальные цифры взяты из статьи MemoryAgentBench, arXiv 2507.05257v4, таблица 3. agentmemory не оценивается в этой статье — его опубликованные цифры относятся к retrieval-recall по LongMemEval-S, это другая задача — поэтому он был прогнан через тот же харнесс с той же конфигурацией, и оба адаптера используют один общий путь кода ридера, так что ни один не может отклониться от собственного RAG-обработчика статьи. Метод, механизм и шаги воспроизведения: FINDINGS.md.
В остальном показаны все коммерческие memory-системы, которые оцениваются в статье, плюс лучший результат из каждого семейства базовых моделей. Таблица в статье менялась между версиями — BM25 читает 56 в v1 и 48 в v4 — поэтому указана версия, а не только таблица.
Результат Knowl в 90 был измерен 2026-08-08 и независимо воспроизведён на уровне 89.0 2026-08-19 с
проверенным адаптером; результат agentmemory в 79 — это один прогон. Каждая цифра здесь — один прогон
при temperature: 0.7, и разрыв в абляции сместился на 4 пункта между двумя прогонами одной и той же
ячейки 6k, так что читайте их до целого числа, а не до десятичной.
Отключение supersession в том же харнессе снижает Knowl до 73, и разрыв сохраняется при изменении размера корпуса в 40 раз:
| Контекст | Supersession ВКЛ | ВЫКЛ | Разрыв |
|---|---|---|---|
| 262K | 90 | 73 | +17 |
| 6K | 94 | 78 | +16 |
Эти два раздела измеряют разные вещи и не сравнимы друг с другом: 98% — это retrieval top-1 при 6K без ридера, 90 — это сквозная точность при 262K с ридером. Только второй показатель сравним с опубликованными системами выше. См. benchmarks для протокола, проверенных результатов и того, что задача не покрывает — включая multi-hop, где Knowl набирает 7 против 14-балльного потолка retrieval.
Supersession — это коррекция, а не удаление: элемент, его утверждения и его история сохраняются.
Не макет — та же последовательность против опубликованного CLI, записанная из
demo.tape:

Всё вышеописанное работает локально и не требует аккаунта. knowl.cloud — это необязательный облачный уровень для случаев, когда одной машины недостаточно:
Локальный режим остаётся полноценным способом запуска Knowl. Ничто здесь не обязательно для использования вышеописанного.
Каждый атом имеет ровно одну из семи категорий:
| Категория | Для чего используется |
|---|---|
fact |
Устойчивые истины проекта, соглашения и проверенное поведение |
decision |
Выбранный вариант с обоснованием и альтернативами |
goal |
Намеченный результат, направляющий будущую работу |
constraint |
Правило или граница, которые должны сохраняться |
architecture |
Как устроены и взаимодействуют компоненты |
state |
Текущий прогресс, готовность, блокеры или операционный статус |
skill |
Переиспользуемая процедура или описание изученного рабочего процесса |
Помимо содержимого, каждый атом хранит статус (active, deprecated, rejected, archived,
superseded), флаг свежести, уверенность, теги, коммит-источник, затронутые пути и опциональные
доказательства, указывающие на файлы, коммиты, тесты, команды, URL-адреса или индексированные символы кода. Доказательства файлов и символов устаревают сами по себе, когда код меняется — именно так атом признаёт, что может быть устаревшим, вместо того чтобы утверждать версию репозитория, которой больше не существует.
Чего Knowl намеренно не хранит — так это ваших разговоров. Захват жизненного цикла записывает ограниченные события и сводки — никогда не подсказки, транскрипты, stdout или переменные окружения. Поиск по сырым транскриптам существует как опциональный индекс, отключённый по умолчанию, по файлам, которые хост уже записал.
knowl serve предоставляет хранилище через stdio MCP; knowl init регистрирует его за вас. Рабочий процесс, который установленные инструкции предлагают агентам, краток:
На практике это выглядит так — новая сессия, без контекста, ничего не вставлено:
You why did we pick SQLite over Postgres?
Agent → knowl_query "sqlite postgres database choice"
← decision · Use SQLite · active · fresh
"Keeps storage repository-local and simple to operate."
alternatives: PostgreSQL, MongoDB
tags: database, local-first
SQLite keeps the store repository-local and simple to operate.
Postgres and MongoDB were both considered and rejected on that
basis.
Агент ответил, не открыв ни одного файла, и знал варианты, которые вы отклонили — чего код не может ему сообщить, потому что отклонённые альтернативы не оставляют следов в кодовой базе.
| Хост | MCP | Автоматический жизненный цикл | Субагенты | Примечания |
|---|---|---|---|---|
| Claude Code | Да | Да | Да | Инструкции-подсказки также устанавливаются |
| Codex | Да | Да | Да | Основные ходы делят одну сессию памяти |
| Cursor | Да | Да | Нет | Финализация за ход |
| Gemini CLI | Да | Нет | Нет | MCP плюс ручной цикл работы |
| Claude Desktop | Да | Нет | Нет | MCP плюс ручной цикл работы |
Там, где доступны хуки, они управляют жизненным циклом сессии: начальный контекст, захват, контрольные точки и финализация происходят без запроса агенту. Где их нет, knowl task run,
task start, task checkpoint и task finish покрывают то же самое вручную.
knowl init записывает регистрацию MCP для каждого обнаруженного хоста. Для ручного подключения запись одинакова везде:
{
"mcpServers": {
"knowl": { "command": "knowl", "args": ["serve"] }
}
}
Используйте knowl.cmd как команду в Windows. Codex читает ту же запись под mcp_servers.
→ MCP-инструменты и ресурсы · Справочник по жизненному циклу
Knowl выполняет одну задачу: поддерживать инженерную истину репозитория точной для агентов, работающих над ним. Не пользовательские предпочтения, не историю чатов — а решения, ограничения и архитектуру кодовой базы, и какие из них всё ещё верны сегодня.
Отсюда следуют три решения:
state ожидаемо устаревает.
Поиск может ранжировать по этим различиям; он не может ранжировать по абзацам в файле заметок.Knowl намеренно не является слоем персонализации. У него нет своего мнения о ваших пользователях, и он не хранит собственных транскриптов.
Всё перечисленное ниже работает из CLI и из любого агента, подключённого через MCP, с одной и той же локальной базой данных. Никакого аккаунта, сервера или API-ключа. Каждый пункт ссылается на полную документацию для получения деталей — и ограничений.
| **♻️ Знание, которое само себя исправляет** Семь типизированных типов атомов, где запись по той же теме замещает своего предшественника, а не хранится рядом с ним. Это единственное поведение и есть [разница между 90 и 73](#the-idea-memory-that-retires-itself). Доказательства, привязанные к файлу или символу, *сами* устаревают, когда код меняется. `conflicts` · `timeline` · `query --as-of` · `pr --since` · `index-code` | **🎯 Поиск, оптимизированный для агентов** Векторный поиск как основной с ограниченным резервным вариантом BM25, повторное ранжирование по актуальности, статусу и уверенности, так что *текущий* ответ побеждает, а не просто похожий. Модель эмбеддингов локальна и необязательна — без неё вы всё равно получаете поиск по ключевым словам, и ничего не покидает машину. `query` · `context --token-budget` · `config set-model` · `access` |
| **⏱️ Работа, которая переживает сессию** В Claude Code, Codex и Cursor хуки управляют инициализацией, захватом, контрольными точками и финализацией без участия агента. Чистое завершение дистиллирует до восьми долговечных кандидатов. Приостановите рабочий процесс под ключом и возобновите его в любой сессии, из любого каталога. `task run` · `handoff` · `park` · `resume ` | **🔗 Рабочие области** Ваш API-репозиторий узнал то, что нужно фронтенд-репозиторию. Свяжите их, и запрос распространится, в то время как каждый репозиторий сохраняет свою собственную базу данных и свои границы владения. Откройте общий пиринговый атом полностью по идентификатору или завершите работу этого репозитория отсюда, указав его в вызове. Знание, которым репозиторий уже владеет, передаётся только тогда, когда вы его повышаете. `workspace init` · `workspace add` · `workspace promote --apply` |
| **📦 Переиспользуемые процедуры** Упакуйте процедуру вместе с её скриптами в `.knowl/skills/`, затем прочитайте её до того, как она будет запущена. Детерминированно сверните несколько атомов в одну сводку по архитектуре без участия какого-либо ИИ-провайдера. `skill list` · `skill read` · `skill run` · `synthesize` | **💾 Ваши данные и их возврат** Экспорт и импорт с контрольной суммой в формате JSONL с четырьмя явными политиками на случай, когда один и тот же атом изменён в двух местах. Восстановление проверяет схему, размер, SHA-256 и целостность SQLite *до* каких-либо изменений, а также сначала создаёт снимок до восстановления. `export` · `import --on-divergence` · `snapshot create` · `gc` · `doctor` |
Команды, которые стоит знать с первого дня:
knowl query "auth design" # search project memory
knowl list --unread # browse it — and see what nothing ever reads
knowl edit <item-id> # open one memory in the viewer to fix it
knowl state # the active memory, as a hierarchy
knowl conflicts # items that contradict each other
knowl timeline <item-id> # every version an atom ever had
knowl context --token-budget 1500 # a fixed-size briefing for an agent
knowl pr --since origin/main # knowledge your diff may invalidate
knowl doctor # setup, retrieval, and registration
Знание, которое само себя исправляет — семь типизированных типов атомов и запись, которая замещает то, что заменяет
knowl conflictsknowl timeline <item-id>knowl query "auth design" --as-of 2026-01-01T00:00:00Zknowl pr --since origin/main помечает знания, которые ваш дифф мог
аннулировать, до того, как вы его объедините..ts / .tsx / .js / .jsx, поэтому
доказательства могут указывать на локаторы symbol://, а не только на номера строк. knowl index-code→ Модель знаний · Доказательства и расхождения
Поиск, оптимизированный для агентов — актуальный ответ побеждает, а не просто похожий
knowl query из CLI — лексический.)custom для вашей собственной модели ONNX. knowl config set-model <model>symbol:// находятся даже тогда,
когда семантическая близость слаба.knowl context --query "auth rollout" --token-budget 1500knowl access показывает, что
активно используется, что устарело и что постоянно вызывает исправления.Работа, которая переживает завершение сессии — хуки, рабочие циклы, эстафетные палочки и ключи возобновления
knowl task start, checkpoint, finish или обёртка одной
команды через knowl task run "Run tests" -- npm test.skill, описывающим её.knowl resume <key>→ Задачи, сессии и жизненный цикл
Рабочие пространства: много репозиториев, одна общая память — вы решаете, чем делится каждый репозиторий
Ваш API-репозиторий узнал то, что нужно фронтенд-репозиторию. Свяжите их, и запрос распространяется — при этом каждый репозиторий сохраняет свою собственную базу данных и свои границы владения.
knowl workspace init product # create the workspace
knowl workspace add product # run inside each repo that joins it
# ...or --default-visibility repo to keep its writes private
knowl workspace promote # pick what to share from a list
knowl workspace promote --category decision --apply # or name it outright
Присоединение к рабочему пространству делится тем, что репозиторий записывает с этого момента, и сообщает об этом, когда это делает; передайте
--default-visibility repo, чтобы отказаться. То, что репозиторий уже знает, делится только когда вы это
повышаете. Результаты от пиров помечаются репозиторием-владельцем, и общий результат можно открыть
полностью по id — без его affectedPaths или доказательств, которые разрешаются относительно чекаута, в котором вы
не находитесь. Пир, который отсутствует или нечитаем, пропускается и раскрывается, и никогда не является причиной
сбоя вашего локального поиска.
Запись в соседний репозиторий — это намеренное действие, а не случайное. Агент называет репозиторий в вызове,
и этот один вызов выполняется как этот репозиторий — его хранилище, его конфигурация, его правила владения, помеченные как
его собственные — точно так же, как cd туда всегда работал для CLI. Не называйте ничего, и чужой id
будет отклонён, как и раньше. В любом случае приватные знания репозитория остаются приватными, пока не будут повышены.
→ Рабочие области
Многократно используемые процедуры — навыки на основе файлов, которые можно проверить до их запуска
.knowl/skills/, затем
проверьте её до запуска. knowl skill list · read · runknowl synthesize --scope storageВаши данные и их возврат — переносимый экспорт, проверенные снимки и одна команда doctor
knowl export · knowl import --on-divergence newerknowl snapshot create записывает манифест контрольных сумм; восстановление проверяет
версию схемы, размер, SHA-256 и целостность SQLite до изменения чего-либо, а также сначала создаёт
снимок перед восстановлением.knowl gcknowl doctor — одна команда, которая проверяет настройку, конфигурацию, целостность, схему, поиск, векторное
покрытие, регистрацию агентов и состояние рабочей области.knowl ask и приёма текста в сыром виде. Каждая функция выше
работает и без него.→ Переносимость и обслуживание · Опциональный ИИ
knowl view запускает редактор на 127.0.0.1 с новым токеном доступа при каждом запуске — знание
порта недостаточно для чтения данных, а для записи дополнительно требуется, чтобы запрос указывал этот
просмотрщик как источник, поэтому другая открытая у вас страница не сможет сюда записать.
knowl view

Здесь вы исправляете то, что ваши агенты сделали неправильно. Откройте любой атом, чтобы прочитать его доказательства и временную шкалу, затем отредактируйте его, архивируйте или напишите новый вручную. Архивация обратима — кнопка «Восстановить» находится на той же панели.
Рядом с графом есть список с фильтром для того, что никто никогда не читал. Он оправдывает своё место:
поиск достигает только памяти, о существовании которой вы уже подозреваете, а атом, не несущий
информации, — именно тот, который никто не думает искать. Сортировка сначала по старым — он всплывает
сам по себе. knowl list --unread задаёт тот же вопрос из терминала.
Граф связывает атомы только через теги, которые делят немногие атомы — тег на десятках атомов — это категория, и боковая панель уже фильтрует по ним. Атом, о котором ничего больше нет, остаётся несвязанным, а не привязывается к произвольному соседу. Это навигационное средство, а не граф причинности или доказательств. Он показывает полное локальное содержимое всех статусов, поэтому привязка к loopback — это граница конфиденциальности: не размещайте его за публичным прокси или туннелем.
27 MCP-инструментов (плюс 3 при включённом поиске по транскриптам, 1 при подключении к облачной рабочей области, 1 при связывании с локальной рабочей областью и 1 при включённом анализе изменений)
и два URI ресурсов · полный CLI, от knowl status до knowl audit · аудит целостности только для чтения ·
оценка поиска, которую можно запустить самостоятельно против включённых наборов тестов управления и регрессии на 500 случаев
с помощью knowl eval.
→ Справочник по CLI · MCP-инструменты · Бенчмарки
Node.js 22 или новее. Все, что Knowl записывает для проекта, хранится в .knowl/, которую knowl init добавляет в .gitignore:
| Путь | Содержит |
|---|---|
.knowl/config.json |
Конфигурацию проекта, поиска, безопасности, ИИ и рабочей области |
.knowl/knowl.db |
Атомы, утверждения, коммиты знаний, полнотекстовый индекс, обратную связь, эмбеддинги |
.knowl/skills/ |
Навыки в виде файловых пакетов |
Манифесты рабочих областей находятся вне репозиториев участников, поскольку пути их checkout являются локальными для машины. Экспорты и снимки записываются только когда вы их запрашиваете.
Все вышесказанное — это краткое изложение. Полный справочник — это один документ, подробно охватывающий каждую подсистему, включая части, которые намеренно ограничены, — а это обычно именно то, что вам на самом деле нужно знать.
| Если вы хотите узнать… | Перейдите к |
|---|---|
| Что такое атом и что означает каждое поле | Модель знаний |
| Как ранжируется запрос и что побеждает при равенстве | Поиск и контекст |
| Что записывает хук и когда | Задачи, сеансы, жизненный цикл |
| Как атом замечает, что код переместился | Свидетельства и дрейф |
| Как несколько репозиториев безопасно используют общую память | Рабочие области |
| Как процедура становится переиспользуемой | Навыки и синтез |
| Как экспортировать, создавать снимки или восстанавливать | Переносимость и обслуживание |
| Как читать, исправлять и добавлять память вручную | Локальный просмотрщик |
| Как части сочетаются и где находятся границы доверия | Архитектура |
| Как подключить конкретного хоста | Настройка агента |
| Как были измерены цифры на этой странице | Бенчмарки |
| Каждая команда и каждый флаг | Справочник CLI |
| Каждый MCP-инструмент и ресурс | MCP-инструменты |
| Что требует провайдера, а что никогда не требует | Опциональный ИИ |
| Что именно попадает на диск | Локальные данные |
См. CONTRIBUTING.md для настройки, проверок, которые необходимо выполнить перед pull request, и соглашений, которым следует эта кодовая база. Участникам предлагается один раз согласиться с Лицензионным соглашением с участником при первом pull request.
Knowl распространяется под Apache License 2.0. Apache-2.0 не предоставляет прав на товарные знаки.