Skip to main content
Glama
primeline-ai

kairn

Official
by primeline-ai

Kairn

kairn

Контекстно-зависимый движок знаний для ИИ-ассистентов.

Статус: 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-клиента

pip install kairn-ai

MCP-пакет (.mcpb)

для Claude Desktop и других приложений, поддерживающих пакеты; без установки Python

скачайте из Релизов и откройте его

Claude Code

одна строка, использует установку через PyPI

claude mcp add kairn -- kairn serve ~/brain

Пакет не содержит собственного исходного кода 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 инструмента — это много для запоминания в первый день. В большинстве сессий нужны только эти:

Вы хотите...

Используйте

Почему

Запомнить что-то новое (решение, подводный камень, паттерн, решение)

kn_learn

Точка входа по умолчанию — автоматически направляет в постоянный узел (высокая уверенность) или затухающий опыт (средняя/низкая), не нужно решать самому

Зафиксировать высказанное предпочтение пользователя в момент его выражения

kn_preference

Выделенный путь записи предпочтений — вы (вызывающая модель) формулируете предпочтение одним явным предложением; хранится с самым длинным периодом полураспада из всех типов

Добавить постоянное именованное понятие, которое вы уже знаете как долговечное

kn_add

Полностью пропускает затухание — для структурных знаний, а не повседневного опыта

Записать разовый опыт с явным контролем уверенности/затухания

kn_save

Низкоуровневый примитив, который оборачивает kn_learn — используйте, когда хотите сами задать уверенность/затухание

Искать в постоянном графе знаний по тексту, типу, тегам или пространству имён

kn_query

Вы ищете узлы, а не затухающие опыты

Искать сохранённые опыты, отсортированные по релевантности и затуханию

kn_memories

Вы ищете содержимое опыта (решения, подводные камни, обходные пути), а не узлы графа

Показать всё, что относится к теме, одним вызовом

kn_recall (плоский список) или kn_context (подграф, прогрессивное раскрытие: сначала резюме, полные детали по запросу)

Вы ещё не знаете, является ли ответ узлом или опытом — пусть 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)

Инструмент

Описание

kn_add

Добавить узел в граф знаний

kn_connect

Создать типизированное ребро между узлами (словарь в свободном режиме)

kn_judge

Записать ребро оценки с 5 глаголами (строгий режим: conflicts_with / supersedes / compatible / scoped / related)

kn_query

Поиск по тексту, типу, тегам, пространству имён

kn_remove

Мягкое удаление узла или ребра (безопасно для отмены)

kn_status

Статистика графа, здоровье, обзор системы

Память проекта (3)

Инструмент

Описание

kn_project

Создать или обновить проект

kn_projects

Список проектов, переключение активного

kn_log

Записать запись о прогрессе или сбое

Память опыта (5)

Инструмент

Описание

kn_save

Сохранить опыт с затуханием

kn_preference

Зафиксировать высказанное предпочтение пользователя в момент высказывания (самый длинный период полураспада)

kn_memories

Поиск опыта с учётом затухания

kn_prune

Удалить истёкшие опыты

kn_promote_pending

Продвигать часто используемые опыты в постоянные узлы

Идеи (2)

Инструмент

Описание

kn_idea

Создать или обновить идею

kn_ideas

Список/фильтрация идей по статусу, категории

Интеллект (5)

Инструмент

Описание

kn_learn

Сохранить знания с маршрутизацией по уверенности

kn_recall

Показать релевантные прошлые знания

kn_crossref

Найти похожие прошлые решения в текущей рабочей области

kn_context

Ключевые слова → релевантный подграф с прогрессивным раскрытием

kn_related

Обход графа (BFS) для поиска связанных узлов

Диагностика (1)

Инструмент

Описание

kn_doctor

Проверки здоровья только для чтения (режим блокировки, паритет 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 вопросов, точность по категориям от 91,4% до опубликованной слабой ячейки 10,0%

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)

Производительность

Типичное время операций на современном оборудовании:

Операция

Время

kn_add

2-5 мс

kn_query (100 узлов)

5-15 мс

kn_connect

1-3 мс

kn_recall (обход графа)

10-50 мс

kn_crossref (поиск по сходству)

20-100 мс

Используется в

Проект

Для чего используется Kairn

Quantum Lens

Постоянное хранение инсайтов, отслеживание паттернов кросс-анализа, метрики эффективности линз

Claude Code Starter System

Память сессий, состояние проекта, устойчивость обучения

Лицензия

MIT


Часть экосистемы PrimeLine

Инструмент

Что делает

Глубокое погружение

Evolving Lite

Самосовершенствующийся плагин Claude Code — память, делегирование, самокоррекция

Блог

Kairn

Постоянный граф знаний с маршрутизацией контекста для ИИ

Блог

tmux Orchestration

Параллельные сессии Claude Code с мониторингом пульса

Блог

UPF

Трёхэтапное планирование с состязательным усилением

Блог

Quantum Lens

7 когнитивных линз для многоперспективного анализа

Блог

PrimeLine Skills

5 производственных навыков рабочего процесса для Claude Code

Блог

Starter System

Лёгкая память сессий и передача дел

Блог

@PrimeLineAI · primeline.cc · Бесплатное руководство

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides persistent, graph-based memory for AI agents via MCP, enabling semantic search, wikilink traversal, reminders, and injection protection.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to have persistent long-term memory by automatically storing and retrieving important information via MCP tools.
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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