kairn
OfficialKairn

Контекстно-зависимый движок знаний для ИИ-ассистентов.
Статус: Alpha. API и CLI работают и протестированы (см. Разработка), но интерфейсы могут меняться между релизами. Отзывы и проблемы приветствуются.
Другие инструменты дают вашему ИИ память. Kairn даёт ему граф знаний с интеллектуальной маршрутизацией контекста. Он знает, что загружать, когда загружать и сколько — чтобы ваш ИИ оставался сфокусированным, а не перегруженным.
pip install kairn-ai
kairn init ~/brain
kairn serve ~/brainДобавьте его в Claude Code одной строкой:
claude mcp add kairn -- kairn serve ~/brainИли установите как пакет в один клик, без настройки Python: скачайте
файл .mcpb из последнего релиза
и откройте его в приложении, поддерживающем пакеты, например Claude Desktop.
Для других клиентов см. Быстрый старт ниже. Новичок в Kairn? Перейдите к Первым 5 минутам.
Способы установки
Маршрут | Для кого | Команда |
PyPI | для всех, у кого есть Python, и для любого MCP-клиента |
|
MCP-пакет ( | для Claude Desktop и других приложений, поддерживающих пакеты; без установки Python | скачайте из Релизов и откройте его |
Claude Code | одна строка, использует установку через PyPI |
|
Пакет не содержит собственного исходного кода Kairn. Он объявляет kairn-ai как
зависимость, и хост разрешает её с помощью uv, поэтому установка пакета и
pip install выполняют один и тот же код. Место хранения базы данных настраивается при
установке пакета; по умолчанию это ~/.kairn, и она никогда не покидает вашу машину.
Related MCP server: Mnemosyne
Почему Kairn?
Каждый разговор с ИИ начинается с нуля. Прошлые идеи, решения и паттерны — исчезли. Существующие инструменты памяти хранят плоские пары ключ-значение, которые не могут представлять связи или показывать правильный контекст в нужное время.
Kairn отличается:
Контекстный маршрутизатор + прогрессивное раскрытие — автоматически загружает релевантные подграфы на основе ключевых слов, начиная с резюме и углубляясь в детали только при необходимости. Ни один другой инструмент этого не делает.
Граф знаний с FTS5 — не плоское хранилище. Типизированные связи (
depends-on,resolves,causes) между узлами с отслеживанием происхождения и полнотекстовым поиском по всему.Затухание опыта + автоматическое продвижение — опыт теряет актуальность со временем (биологическая модель затухания). Часто используемый опыт автоматически продвигается в постоянные знания. Ваш ИИ естественно забывает то, что не важно.
22 MCP-инструмента — работает с Claude Desktop, Cursor, VS Code, Windsurf и любым MCP-клиентом. Включает
kn_judgeдля оценок связей с 5 глаголами иkn_doctorдля диагностики здоровья только для чтения.Изоляция по рабочим областям — каждая рабочая область — это отдельное изолированное хранилище SQLite. JWT-аутентификация и управление доступом на основе ролей (владелец / сопровождающий / контрибьютор / читатель) входят в комплект для командных развертываний.
Быстрый старт
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"kairn": {
"command": "kairn",
"args": ["serve", "~/brain"]
}
}
}Cursor
Добавьте в .cursor/mcp.json:
{
"mcpServers": {
"kairn": {
"command": "kairn",
"args": ["serve", "~/brain"],
"env": {
"KAIRN_LOG_LEVEL": "WARNING"
}
}
}
}VS Code
Добавьте в .vscode/mcp.json:
{
"servers": {
"kairn": {
"type": "stdio",
"command": "kairn",
"args": ["serve", "~/brain"]
}
}
}Windsurf
Добавьте в ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"kairn": {
"command": "kairn",
"args": ["serve", "~/brain"]
}
}
}Перезапустите редактор. 22 инструмента Kairn появятся в разделе MCP.
Первые 5 минут
Пошаговое руководство по первому запуску:
pip install kairn-ai
kairn init ~/brain # creates the workspace + databaseДобавьте однострочную команду из выше (или фрагмент быстрого старта для вашего клиента), затем перезапустите клиент. После подключения попросите ассистента запомнить что-то:
«Помни, что мы выбрали Postgres вместо SQLite для аналитического сервиса, потому что нам нужны были конкурентные писатели».
Это вызывает kn_learn под капотом и возвращает JSON-конверт, подобный этому (снято с реального запуска, через kairn learn, CLI-зеркало инструмента):
{"_v": "1.0", "stored_as": "node", "node_id": "002d9c22", "experience_id": "d0710c2f", "type": "decision", "confidence": "high", "namespace": "knowledge", "candidates": []}Начните новую сессию и попросите вспомнить то же самое — это вызывает kn_recall и показывает то, что вы только что сохранили, без необходимости объяснять заново:
{"_v": "1.0", "count": 2, "results": [
{"source": "node", "id": "002d9c22", "name": "Decision: we chose Postgres over SQLite for the analytics service beca", "type": "learned_decision", "description": "we chose Postgres over SQLite for the analytics service because we needed concurrent writers", "relevance": 1.0},
{"source": "experience", "id": "d0710c2f", "type": "decision", "content": "we chose Postgres over SQLite for the analytics service because we needed concurrent writers", "confidence": "high", "relevance": 1.0}
]}kn_learn сохранил и постоянный узел графа, и затухающий опыт (высокая уверенность делает и то, и другое, см. Маршрутизация по уверенности); kn_recall нашёл оба по теме из трёх слов.
Запустите kairn status ~/brain в любое время как смоук-тест — если он выводит JSON-блок статистики (количество узлов/рёбер/опытов), рабочая область здорова. Хотите скриптовый тур по всем основным функциям вместо ручного выполнения? Запустите kairn demo ~/brain — он проведёт вас через создание узлов, запросы, сохранение опыта, обучение, вспоминание и контекст примерно за 30 секунд.
Какой инструмент когда
22 инструмента — это много для запоминания в первый день. В большинстве сессий нужны только эти:
Вы хотите... | Используйте | Почему |
Запомнить что-то новое (решение, подводный камень, паттерн, решение) |
| Точка входа по умолчанию — автоматически направляет в постоянный узел (высокая уверенность) или затухающий опыт (средняя/низкая), не нужно решать самому |
Зафиксировать высказанное предпочтение пользователя в момент его выражения |
| Выделенный путь записи предпочтений — вы (вызывающая модель) формулируете предпочтение одним явным предложением; хранится с самым длинным периодом полураспада из всех типов |
Добавить постоянное именованное понятие, которое вы уже знаете как долговечное |
| Полностью пропускает затухание — для структурных знаний, а не повседневного опыта |
Записать разовый опыт с явным контролем уверенности/затухания |
| Низкоуровневый примитив, который оборачивает |
Искать в постоянном графе знаний по тексту, типу, тегам или пространству имён |
| Вы ищете узлы, а не затухающие опыты |
Искать сохранённые опыты, отсортированные по релевантности и затуханию |
| Вы ищете содержимое опыта (решения, подводные камни, обходные пути), а не узлы графа |
Показать всё, что относится к теме, одним вызовом |
| Вы ещё не знаете, является ли ответ узлом или опытом — пусть Kairn ищет и то, и другое |
Всё остальное (kn_crossref, kn_related, kn_connect, kn_judge, kn_project/kn_projects/kn_log, kn_idea/kn_ideas, kn_promote_pending, kn_prune, kn_remove, kn_status, kn_doctor) — продвинутое использование — см. полный справочник 22 инструмента ниже, когда освоите основы.
22 инструмента (kn_ префикс)
Все инструменты следуют протоколу MCP с JSON-ответами.
Граф (6)
Инструмент | Описание |
| Добавить узел в граф знаний |
| Создать типизированное ребро между узлами (словарь в свободном режиме) |
| Записать ребро оценки с 5 глаголами (строгий режим: |
| Поиск по тексту, типу, тегам, пространству имён |
| Мягкое удаление узла или ребра (безопасно для отмены) |
| Статистика графа, здоровье, обзор системы |
Память проекта (3)
Инструмент | Описание |
| Создать или обновить проект |
| Список проектов, переключение активного |
| Записать запись о прогрессе или сбое |
Память опыта (5)
Инструмент | Описание |
| Сохранить опыт с затуханием |
| Зафиксировать высказанное предпочтение пользователя в момент высказывания (самый длинный период полураспада) |
| Поиск опыта с учётом затухания |
| Удалить истёкшие опыты |
| Продвигать часто используемые опыты в постоянные узлы |
Идеи (2)
Инструмент | Описание |
| Создать или обновить идею |
| Список/фильтрация идей по статусу, категории |
Интеллект (5)
Инструмент | Описание |
| Сохранить знания с маршрутизацией по уверенности |
| Показать релевантные прошлые знания |
| Найти похожие прошлые решения в текущей рабочей области |
| Ключевые слова → релевантный подграф с прогрессивным раскрытием |
| Обход графа (BFS) для поиска связанных узлов |
Диагностика (1)
Инструмент | Описание |
| Проверки здоровья только для чтения (режим блокировки, паритет FTS5, отставание продвижения, расползание пространств имён, осиротевшие рёбра) — возвращает структурированный конверт с вердиктами по каждой проверке и сводным итогом |
Ресурсы и подсказки
Ресурсы (контекст только для чтения для MCP-клиентов):
kn://status— обзор графа, активный проектkn://projects— все проекты с недавним прогрессомkn://memories— недавние высокорелевантные переживания
Подсказки (управление сессией):
kn_bootup— загрузить активный проект, недавний прогресс и главные воспоминания (начало сессии)kn_review— подвести итог сессии и предложить следующие шаги (конец сессии)
Как это работает
Архитектура
Any MCP Client (Claude, Cursor, VS Code)
│
▼ MCP Protocol (stdio)
FastMCP Server (22 tools)
│
┌────┼────┐
▼ ▼ ▼
Graph Memory Intelligence
Engine Engine Layer
│ │ │
└────┼──────┘
▼
SQLite + FTS5
(per-workspace)Модель затухания
Переживания теряют актуальность экспоненциально:
relevance(t) = initial_score × e^(-decay_rate × days)Тип | Период полураспада | Примечания |
solution | 120 дней | Стабильный, долговечный |
pattern | 90 дней | Архитектурные знания |
decision | 100 дней | Зависит от контекста |
workaround | 40 дней | Временные исправления исчезают быстро |
gotcha | 70 дней | Хитрые ловушки остаются актуальными |
preference | 180 дней | Долговечные предпочтения пользователя — первоначальная оценка, ещё не откалибрована по хвосту |
Периоды полураспада откалиброваны по реальному хвосту доступа к производственному хранилищу переживаний, а не угаданы (одно исключение: preference — новый тип без истории доступа, поэтому его значение — задокументированная первоначальная оценка, пока не накопятся реальные данные).
Маршрутизация уверенности через kn_learn:
high→ постоянный узел + переживание (без затухания)medium→ переживание с затуханием 2×low→ переживание с затуханием 4×Автоповышение: 5+ обращений → постоянный узел
Отслеживание обращений к узлам:
kn_recall,kn_contextиkn_crossrefзаписывают, к каким узлам обращались, питая конвейер затухания и повышения
Бенчмарки

Kairn набирает 56,2% в целом по LongMemEval-S (оценено 500/500 вопросов, ридер и судья GPT-4o, один прогон, 0 ошибок). Это реальные цифры по каждой категории, включая плохие — каждая красная ячейка ведёт к её диагнозу:
Категория | n | Точность | Диагноз |
single-session-user | 70 | 91,4% | - |
single-session-assistant | 56 | 83,9% | - |
knowledge-update | 78 | 70,5% | - |
temporal-reasoning | 133 | 42,9% | |
multi-session | 133 | 41,4% | |
single-session-preference | 30 | 10,0% |
500 вопросов включают 30 вариантов воздержания (правильный ответ — отказаться); они учтены внутри своих категорий выше и оцениваются отдельно: Kairn корректно воздерживается в 96,7% из них.
Задержка извлечения — ~1,4 мс на запрос (FTS5, в процессе, без сети). Протокол, заметки о честности и шаги воспроизведения: BENCHMARKS.md.
Эта таблица остаётся актуальной: каждый релиз, затрагивающий извлечение, переопубликовывает эти цифры, и слабая ячейка остаётся на доске, пока число действительно не изменится. Никаких выборочных прогонов, никаких скрытых категорий.
CLI
kairn init <path> # Initialize workspace
kairn serve <path> # Start MCP server (stdio)
kairn status <path> # Graph stats
kairn demo <path> # Interactive tutorial
kairn benchmark <path> # Local performance benchmarks (latency, not LongMemEval)
kairn token-audit <path> # Audit tool token usage
kairn import git <path> <repo>... # Import git commit history (zero-LLM, offline)
kairn import claude-code <path> # Import Claude Code session history (zero-LLM, offline)Импорт вашей истории
kairn import git <workspace> <repo>... заполняет хранилище Kairn из одного или
нескольких локальных git-репозиториев за $0 — без вызовов LLM, без сетевых вызовов. Префиксы
обычных коммитов сопоставляются с типами переживаний (fix: -> solution, feat:/refactor:/perf: -> pattern,
всё остальное -> decision); merge-коммиты пропускаются. Импортированные переживания попадают в
отдельное пространство имён imported-git, отдельное от ваших органических знаний, поэтому их всегда
можно отличить, а неудачный импорт полностью обратим.
kairn import git ~/brain ~/code/my-project --dry-run # Preview first
kairn import git ~/brain ~/code/my-project # Then import for real
kairn import git ~/brain ~/code/proj-a ~/code/proj-b --since 2026-01-01Идемпотентно — повторный запуск импортирует только те коммиты, которые ещё не были импортированы, так что безопасно запускать снова по мере роста истории репозитория.
Транскрипты Claude Code
kairn import claude-code <workspace> заполняет ваше хранилище Kairn из существующей
истории сессий Claude Code, также за $0 и полностью офлайн. Если --root не указан, он сканирует
~/.claude/projects (и ~/.claude-secondary/projects, если у вас есть вторая учётная запись);
--root PATH — повторяемое переопределение. Импортированные переживания попадают в собственное
пространство имён imported-claude-code, поэтому они остаются отличными от ваших органических знаний, и
неудачный импорт обратим.
kairn import claude-code ~/brain --dry-run # Review exactly what would be stored
kairn import claude-code ~/brain # Import (prompts once before writing)
kairn import claude-code ~/brain --root ~/other/projects --since 2026-01-01 --yesЧто сохраняется (грубый режим): одно переживание на сессию — заголовок сессии плюс
ваш первый запрос в этой сессии. Это намеренно краткое резюме с высокой точностью,
а не детальное извлечение по каждому решению: экстрактор на основе правил без LLM не может
надёжно отличить зафиксированное решение от обычного планирования, поэтому import claude-code
импортирует чистый указатель уровня сессии вместо шумных фрагментов. Это не полный архив
транскриптов и не разовая миграция — он идемпотентен и предназначен для повторного запуска по мере
роста вашей истории.
Конфиденциальность. Каждая сохраняемая строка сначала пропускается через детерминированный редактор секретов
(ключи API, заголовки Authorization/Bearer, присваивания password=/token=/secret=,
типичные формы ключей вендоров, блоки приватных ключей, учётные данные, встроенные в URL). Выводы инструментов и
блоки вызовов инструментов никогда не читаются, только ваш собственный текст запроса. Редактор — это защита в глубину,
а не единственный контроль: реальный (не пробный) запуск ограничен явным подтверждением, а
--dry-run показывает точный текст после редактирования до записи чего-либо. Редактирование
ограничено набором правил, поэтому перед первым реальным импортом рекомендуется просмотр --dry-run;
ничто никогда не покидает вашу машину.
Конфигурация
KAIRN_LOG_LEVEL=INFO|DEBUG|WARNING # Default: WARNING
KAIRN_DB_PATH=~/brain/.kairn # Default: {workspace}/.kairn
KAIRN_CACHE_SIZE=100 # LRU cache entries
KAIRN_JWT_SECRET=<your-secret> # Required for team featuresРазработка
git clone https://github.com/primeline-ai/kairn
cd kairn
pip install -e ".[dev,team]"
pytest tests/ -v --cov
ruff check src/ && ruff format src/Структура проекта
src/kairn/
├── server.py # FastMCP server + 22 tools
├── cli.py # CLI commands
├── config.py # Configuration
├── core/
│ ├── graph.py # GraphEngine (6 tools)
│ ├── memory.py # ProjectMemory (3 tools)
│ ├── experience.py # ExperienceEngine (4 tools)
│ ├── ideas.py # IdeaEngine (2 tools)
│ ├── intelligence.py # IntelligenceLayer (5 tools)
│ └── router.py # ContextRouter
├── storage/
│ ├── base.py # Storage interface
│ └── sqlite_store.py # SQLite + FTS5 implementation
├── models/ # Data models
├── events/ # Event bus
└── auth/ # JWT + RBAC (team feature)Производительность
Типичное время операций на современном оборудовании:
Операция | Время |
| 2-5 мс |
| 5-15 мс |
| 1-3 мс |
| 10-50 мс |
| 20-100 мс |
Используется в
Проект | Для чего используется Kairn |
Постоянное хранение инсайтов, отслеживание паттернов кросс-анализа, метрики эффективности линз | |
Память сессий, состояние проекта, устойчивость обучения |
Лицензия
MIT
Часть экосистемы PrimeLine
Инструмент | Что делает | Глубокое погружение |
Самосовершенствующийся плагин Claude Code — память, делегирование, самокоррекция | ||
Постоянный граф знаний с маршрутизацией контекста для ИИ | ||
Параллельные сессии Claude Code с мониторингом пульса | ||
Трёхэтапное планирование с состязательным усилением | ||
7 когнитивных линз для многоперспективного анализа | ||
5 производственных навыков рабочего процесса для Claude Code | ||
Лёгкая память сессий и передача дел |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to have a living memory with atomic knowledge storage, multi-factor recall, organic decay, automatic learning, and graph traversal via MCP.1MIT
- AlicenseNot gradedqualityFmaintenanceProvides persistent, graph-based memory for AI agents via MCP, enabling semantic search, wikilink traversal, reminders, and injection protection.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to have persistent long-term memory by automatically storing and retrieving important information via MCP tools.MIT
- FlicenseNot gradedqualityBmaintenanceProvides persistent, causal memory for AI agents with semantic recall, causal tracking, and importance-based forgetting through MCP tools.
Related MCP Connectors
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Shared long-term memory vault for AI agents with 20 MCP tools.
Person-owned AI memory that learns, not just stores — portable context for any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/primeline-ai/kairn'
If you have feedback or need assistance with the MCP directory API, please join our Discord server