agent-knowledge
agent-knowledge
Кросс-сессионная память и поиск для ИИ-ассистентов программирования — работает с Claude Code, Cursor, OpenCode, Cline, Continue.dev и Aider из коробки. Git-синхронизируемая база знаний, гибридный семантический + TF-IDF поиск, автоматическая дистилляция с очисткой секретов.
Бенчмарк: R@5 = 97.2% (разреженный) / 98.8% (гибридный) на longmemeval_s и 86.0% (разреженный) / 88.4% (гибридный) на более сложном разбиении longmemeval_m — публичный академический бенчмарк LongMemEval (Wu et al. 2024, ICLR 2025), полные 500 вопросов на каждое разбиение, без LLM, без API-ключа, полностью офлайн. +8.6pp до +13.2pp R@5 по сравнению с официальным базовым flat-bm25 из статьи при воспроизведении один в один. Полная таблица по категориям, инструкции по воспроизведению и детали сравнения с статьей — в bench/README.md.
Зачем
Сессии ИИ-программирования эфемерны. Когда сессия заканчивается, всё, что она узнала — архитектурные решения, инсайты по отладке, контекст проекта — исчезает. Следующая сессия начинается с нуля.
agent-knowledge решает эту проблему с помощью двух взаимодополняющих систем:
База знаний — git-синхронизируемое хранилище markdown со структурированными записями (решения, рабочие процессы, контекст проекта), которое сохраняется между сессиями и машинами.
Поиск по сессиям — TF-IDF ранжированный полнотекстовый поиск по транскриптам сессий из всех ваших инструментов программирования, чтобы агенты могли вспомнить, что происходило раньше — независимо от того, какой инструмент использовался.
Related MCP server: Doclea MCP
Поддерживаемые инструменты
Сессии всех основных ИИ-ассистентов программирования обнаруживаются автоматически — если инструмент установлен, его сессии появляются автоматически.
Инструмент | Формат | Автоопределяемый путь |
Claude Code | JSONL |
|
Cursor | JSONL |
|
Codex CLI | JSONL |
|
Aider | Markdown/JSONL |
|
Continue.dev | JSON |
|
Cline | JSON | VS Code globalStorage |
OpenCode | SQLite |
|
Никакой настройки не требуется. Дополнительные корни сессий можно добавить через переменную окружения AGENT_KNOWLEDGE_EXTRA_SESSION_ROOTS (пути через запятую).
Возможности
Независимый от хоста поиск по сессиям — унифицированный поиск по всем основным ИИ-ассистентам программирования (Claude Code, Cursor, Codex CLI, Aider, Continue.dev, Cline, OpenCode). Никакое имя хоста не зашито в конфигурацию — реестр адаптеров зондирует установленные корни хостов при запуске.
Гибридный поиск — семантическое векторное сходство, смешанное с TF-IDF ранжированием по ключевым словам.
Git-синхронизируемая база знаний — markdown-хранилище с YAML frontmatter, автоматический коммит и push при записи.
Автоматическое обнаружение устаревания —
knowledge_analyze(action: "stale_by_code_activity")перекрёстно сверяет пути файлов, упомянутые в теле каждой записи, сfilesModifiedв недавних сводках сессий. В паре с уровнем точности по наличию символов: идентификаторы, которые цитирует запись (инлайн-бэктики + блоки в кавычках), проверяются в затронутом файле; если они всё ещё существуют, уверенность понижается на ×0.3. Записи сevergreen: trueосвобождаются.Отслеживание пробелов в поиске —
knowledge_analyze(action: "search_gaps")выявляет запросы с нулевыми результатами за последниеsince_days, сгруппированные по токенному сходству Жаккара. Самый ясный сигнал для «какие записи мне написать следующими?».Упаковщик контекста с приоритетом секций —
knowledge(action: "wakeup")собирает многосекционный пакет (identity→active_tasks→recent_decisions→known_gotchas→last_session_summary→top_weighted→semantic_fallback) в рамках токенного бюджета (по умолчанию 800, переопределяется черезtoken_budgetилиAGENT_KNOWLEDGE_WAKEUP_BUDGET). Неиспользованный бюджет секции перераспределяется на последующие секции.Оценённый и ограниченный промоутер — инсайты сессий продвигаются через взвешенный скорер с 6 сигналами и тремя независимыми порогами (
minScore,minRecallCount,minUniqueQueries). Работает автоматически в фоне, по запросу черезknowledge_admin(action: "promote")или проверяем офлайн черезnpm run bench:promote. Каждый запуск создаёт аудируемый дневник.dreams/YYYY-MM-DD.md.Подключаемая система адаптеров — добавьте поддержку новых инструментов, реализовав интерфейс
SessionAdapter.Эмбеддинги — локальные (Hugging Face), OpenAI, Claude/Voyage или Gemini провайдеры.
Нечёткое сопоставление — поиск, устойчивый к опечаткам, с использованием расстояния Левенштейна.
6 областей поиска — ошибки, планы, конфигурации, инструменты, файлы, решения.
6 MCP-инструментов — консолидированный интерфейс на основе действий (
knowledge,knowledge_search,knowledge_session,knowledge_graph,knowledge_analyze,knowledge_admin).Вечнозелёные записи —
evergreen: trueв frontmatter освобождает запись от затухания в ранжировании И делает её только добавляемой при продвижении. Дашборд отображает значок-булавку на таких карточках.Авторство — необязательный
author: <string>в frontmatter отображается как приглушённый чип на каждой карточке.Разрешение графа кода — типы рёбер
calls,imports,inheritsдля структуры кода; направленный BFS-обход (outbound/inbound/both);bulk_linkдля эффективного приёма;unlink_by_originдля очистки устаревших рёбер кода перед повторным приёмом; идентификаторы узлов с префиксомcode:отличают код от знаний.Временной граф знаний — рёбра поддерживают окна валидности
valid_from/valid_to; запросыas_ofвозвращают снимки на момент времени; действиеinvalidateпомечает факты как завершённые без их удаления.Гибридные бусты скоринга — бусты для имён собственных и временной близости поверх TF-IDF + семантического смешивания, ограниченные +66.7%, с коротким замыканием, когда сигналы отсутствуют.
Категория как буст (а не фильтр) — включите
category_mode: "boost", чтобы неверное предположение категории понижало ранг вместо отбрасывания правильного ответа.Дословное индексирование сессий — чанки по сообщениям (≥30 символов) встраиваются в векторное хранилище, чтобы необработанный разговор был доступен для поиска; переключается через
AGENT_KNOWLEDGE_INDEX_VERBATIM=false.Настраиваемый git URL —
knowledge_admin(action: "config")для настройки во время выполнения, сохраняется в XDG/AppData.Кросс-машинная персистентность — знания синхронизируются через git, сессии читаются из локального хранилища каждого инструмента.
Дашборд в реальном времени — просмотр, поиск и управление на
localhost:3423.Очистка секретов — API-ключи, токены, пароли, приватные ключи автоматически редактируются перед git push.
Граф знаний — рёбра связей между записями (related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on) с BFS-обходом.
Оценка уверенности/затухания — записи оцениваются по частоте и давности доступа; автоматическое продвижение от кандидата к установленному и проверенному.
Консолидация памяти — TF-IDF обнаружение дубликатов при записи (предупреждает о похожих записях) плюс
knowledge_analyze(action: "consolidate")для пакетного сканирования дубликатов.Цикл рефлексии —
knowledge_analyze(action: "reflect")выявляет несвязанные записи и генерирует структурированные подсказки для агента по выявлению новых связей в графе.Автосвязывание при записи — новые записи автоматически связываются с топ-3 похожими существующими записями, когда косинусное сходство > 0.7.
Метаданные уверенности — записи помечаются как
extracted(написаны пользователем) илиinferred(авто-дистиллированные, множитель ранга поиска 0.85×); полеconfidence_scoreнесёт уверенность модели от 0 до 1.Анализ знаний — действия
knowledge_analyze:god_nodes(наиболее связанные записи),bridges(кросс-категорийные соединители),gaps(изолированные записи).Краткая сводка знаний —
knowledge_analyze(action: "brief")возвращает кэшированное резюме ~200 токенов (основные концепции, активные проекты, недавние решения, количество устаревших и пробелов) для ориентации в начале сессии.Происхождение рёбер — рёбра графа отслеживают
origin(manual, auto-link, distill, reflect), чтобы анализ мог отличать пользовательские суждения от автоматических эвристик.Детерминированная предварительная экстракция в дистилляции — сводки сессий теперь включают git-коммиты, паттерны ошибок, посещённые URL и изменённые пакеты, извлечённые через regex из вывода bash/инструментов (без затрат на LLM).
Метаданные свежести на каждом результате поиска — каждый результат знаний несёт
freshness: { body_age_days, last_accessed, access_count, verified_at, verification_age_days, evergreen }. Агент читает сигнал доверия и решает; мы не навязываем политику понижения.Окна затухания по категориям — фильтр «Неиспользуемые» и диаграмма по типам учитывают пороги по категориям (проекты 180д, люди 365д, решения 90д, рабочие процессы 60д, заметки 30д), чтобы контент, связанный с идентичностью, не выглядел устаревшим только потому, что его не перечитывают еженедельно.
Хуки жизненного цикла —
SessionStartавто-пробуждение + проверка свежести приёма,UserPromptSubmitцелевая инъекция первого промпта,PreCompactнапоминание о сбросе памяти + дистилляция,SessionEndдистилляция. Всего шесть скриптов хуков, все с отказоустойчивостью, каждый переключается через переменную окруженияAGENT_KNOWLEDGE_*. См.docs/HOOKS.md.Заменяет авто-память хоста — на хостах с системой памяти на сессию (память Claude Code
~/.claude/projects/*/memory/, аналогично в других IDE), направляйте долговременные факты пользователя и обратную связь в agent-knowledge вместо этого. Авто-память локальна для машины и невидима для других машин; agent-knowledge синхронизируется через git, кросс-машинна, доступна для поиска и появляется при пробуждении. См. примечание об интеграции с Claude Code вdocs/USER-MANUAL.md.
Приём кодовой базы
Навык knowledge-ingest заполняет или обновляет базу знаний из директории кодовой базы. Он использует tree-sitter для структурной экстракции без токенов (классы, функции, импорты, графы вызовов, комментарии с обоснованием), затем кластеризует файлы в подсистемы и создаёт записи знаний + рёбра графа через существующие MCP-инструменты. Последующие запуски инкрементальны — обрабатываются только изменённые файлы.
/knowledge-ingest ./my-projectИспользует стандарт Agent Skills — работает с Claude Code, OpenCode, Cursor, Codex CLI и Gemini CLI. Подробности см. в Руководстве по приёму.
Поддерживаемые языки: TypeScript, JavaScript, Python, Go, Rust, Java, C, C++.
Быстрый старт
Установка из npm
npm install -g agent-knowledgeИли клонирование из исходников
git clone https://github.com/keshrath/agent-knowledge.git
cd agent-knowledge
npm install && npm run buildВариант 1: MCP-сервер (для ИИ-агентов)
Добавьте в конфиг вашего MCP-клиента (Claude Code, Cline и т.д.):
{
"mcpServers": {
"agent-knowledge": {
"command": "npx",
"args": ["agent-knowledge"]
}
}
}Дашборд автоматически запускается на http://localhost:3423 при первом MCP-подключении.
См. Руководство по настройке для инструкций по конкретным клиентам (Claude Code, Cursor, Windsurf, OpenCode).
Вариант 2: Автономный сервер (для REST/WebSocket клиентов)
node dist/server.js --port 3423MCP-инструменты (6)
База знаний
Инструмент | Действие | Описание | Параметры |
|
| Список записей по категории и/или тегу |
|
| Чтение конкретной записи |
| |
| Создание/обновление записи (автосинхронизация с git) |
| |
| Удаление записи (автосинхронизация с git) |
| |
| Ручной git pull + push | -- | |
| Возврат идентичности L0 + L1-записей с наибольшим весом (с учётом токен-бюджета) |
|
Поиск
Инструмент | Описание | Параметры |
| Гибридный TF-IDF + семантический поиск (без |
|
Ограниченный поиск только по сессии (при заданном |
|
Форма ответа: {mode: "general" | "scoped", sessions, knowledge}. В ограниченном режиме knowledge: [] по замыслу.
Области (scopes): errors, plans, configs, tools, files, decisions, all.
Параметры поиска:
mmr: true— применяет переранжирование по принципу максимальной предельной релевантности (устраняет кластеры почти дубликатов в top-K).mmr_lambdaот 0 до 1, по умолчанию 0.7.category_mode: "boost"(по умолчанию) — записи совпадающей категории получают множитель 1.25× вместо отбрасывания несовпадающих. Укажите"filter"для жёсткой фильтрации.explain: true— добавляетscore_components: {bm25, decay, maturity, confidence, category_boost, mmr_penalty}к каждому результату поиска по знаниям.
Сессии
Инструмент | Действие | Описание | Параметры |
|
| Список сессий с метаданными |
|
| Получение полного диалога сессии |
| |
| Сводка сессии (темы, инструменты, файлы) |
|
Граф знаний
Инструмент | Действие | Описание | Параметры |
|
| Создание/обновление ребра между записями |
|
| Удаление рёбер между записями |
| |
| Пометка рёбер как истёкших (установка valid_to) |
| |
| Список рёбер |
| |
| Направленный BFS-обход от записи |
| |
| Пакетное создание рёбер (приём графа кода) |
| |
| Удаление всех рёбер по источнику |
|
Типы знаний: related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on
Типы структуры кода: calls, imports, inherits
Направления обхода: outbound (источник→цель), inbound (цель→источник), both (по умолчанию, ненаправленный)
Анализ
Инструмент | Действие | Описание | Параметры |
|
| Поиск почти дублирующихся записей |
|
| Поиск несвязанных записей для связывания |
| |
| Наиболее связанные записи (центральность по степени) |
| |
| Межкатегорийные соединители (посредничество) |
| |
| Изолированные записи (0-1 рёбер) по зрелости |
| |
| Кэшированная сводка базы знаний (~200 токенов) | -- |
Администрирование
Инструмент | Действие | Описание | Параметры |
|
| Статистика векторного хранилища | -- |
| Просмотр или обновление конфигурации |
| |
| Повторное встраивание всех записей знаний (полезно при смене провайдера) | -- | |
| Удаление встраиваний для сессий, отсутствующих на диске |
| |
| Освобождение свободных страниц в векторном хранилище | -- | |
| Продвижение с оценкой и фильтрацией |
|
Продвижение с оценкой
Каждый кандидат уровня проекта оценивается по шести сигналам (релевантность 0.30, частота 0.24, разнообразие запросов 0.15, недавность 0.15, консолидация 0.10, концептуальная насыщенность 0.06) и проходит фильтрацию по minScore ≥ 0.5, minRecallCount ≥ 2, minUniqueQueries ≥ 2. Все три условия должны выполняться. Фоновое автоматическое продвижение управляется тем же флагом конфигурации auto_distill; вызывайте по требованию через knowledge_admin(action: "promote").
promote_mode: "explain"(по умолчанию) — оценка и фильтрация кандидатов, запись в дневник, БАЗА ЗНАНИЙ НЕ ИЗМЕНЯЕТСЯ.promote_mode: "apply"— продвижение прошедших кандидатов, запись в дневник, git-коммит.Каждый запуск записывает
~/agent-knowledge/.dreams/YYYY-MM-DD.mdс разбивкой сигналов по каждому кандидату и результатами фильтрации. Каталог с префиксом.отслеживается git, но исключён из списка/поиска.Обоснованная регидратация: кандидат пропускается, если его исходный файл сессии больше не существует на диске (предотвращает продвижение удалённого контента).
Записи с frontmatter
evergreen: trueникогда не перезаписываются при продвижении — активность добавляется.
Тестовый стенд записи: npm run bench:promote — офлайн-воспроизведение с автоматической разметкой по принципу «упоминается в последующих сессиях». Сравнивает продвижение с фильтрацией с наивным базовым вариантом «продвигать всё», сообщает precision / recall / F1. Используйте его для проверки изменений весов сигналов или порогов перед развёртыванием.
REST API
Метод | Конечная точка | Описание |
GET |
| Список записей знаний |
GET |
| Поиск по базе знаний |
GET |
| Чтение конкретной записи |
GET |
| Наиболее связанные записи |
GET |
| Межкатегорийные соединители |
GET |
| Изолированные записи |
GET |
| Сводка базы знаний |
GET |
| Список сессий |
GET |
| Поиск по сессиям (TF-IDF) |
GET |
| Ограниченный поиск |
GET |
| Чтение сессии |
GET |
| Сводка сессии |
POST |
| Запись записи (HTTP-клиенты) |
GET |
| Проверка работоспособности |
Архитектура
graph LR
subgraph Storage
KB[(Knowledge Base<br/>~/agent-knowledge<br/>Git Repository)]
end
subgraph Session Sources
CC[(Claude Code<br/>JSONL)]
CU[(Cursor<br/>JSONL)]
OC[(OpenCode<br/>SQLite)]
CL[(Cline<br/>JSON)]
CD[(Continue.dev<br/>JSON)]
AI[(Aider<br/>MD / JSONL)]
end
subgraph agent-knowledge
KM[Knowledge Module<br/>store / search / git]
AD[Session Adapters<br/>auto-discovery]
SE[Search Engine<br/>TF-IDF + Fuzzy]
DS[Dashboard<br/>:3423]
MCP[MCP Server<br/>stdio]
end
subgraph Clients
AG[Agent Sessions]
WB[Web Browser]
end
KB <-->|git pull/push| KM
CC --> AD
CU --> AD
OC --> AD
CL --> AD
CD --> AD
AI --> AD
AD --> SE
KM --> MCP
SE --> MCP
KM --> DS
SE --> DS
MCP --> AG
DS --> WBГраф знаний
Записи и символы кода могут быть связаны типизированными взвешенными рёбрами, хранящимися в отдельной таблице SQLite edges. Поддерживается одиннадцать типов связей — 8 для рёбер знаний и 3 для структуры кода:
Знания: related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on
Структура кода: calls, imports, inherits
knowledge_graph(action: "link")создаёт или обновляет ребро (с необязательной силой связи 0-1)knowledge_graph(action: "unlink")удаляет рёбра (опционально фильтруемые по типу)knowledge_graph(action: "list")выводит список рёбер для записи или типа связиknowledge_graph(action: "traverse")выполняет направленный BFS-обход от начальной записи. Поддерживаетdirection(outbound,inbound,both) и фильтрrel_typeknowledge_graph(action: "bulk_link")пакетно создаёт рёбра в одной транзакции (для приёма графа кода)knowledge_graph(action: "unlink_by_origin")удаляет все рёбра с конкретным источником (для очистки устаревших рёбер кода перед повторным приёмом)
Граф кода
Рёбра структуры кода создаются навыком knowledge-ingest при приёме кодовой базы. Они используют идентификаторы узлов с префиксом code::
code:src/auth/middleware.ts # file node
code:src/auth/middleware.ts::validateToken # symbol nodeПримеры запросов:
# Who calls validateToken?
knowledge_graph({ action: "traverse", entry: "code:src/auth.ts::validateToken", direction: "inbound", rel_type: "calls", depth: 3 })
# What breaks if I change this function?
knowledge_graph({ action: "traverse", entry: "code:src/auth.ts::validateToken", direction: "inbound", rel_type: "calls", depth: 5 })
# Combined: callers + knowledge context (decisions, design rationale)
knowledge_graph({ action: "traverse", entry: "code:src/auth.ts::validateToken", depth: 2 })Автосвязывание
Когда knowledge с action: "write" создаёт или обновляет запись, он автоматически находит top-3 наиболее похожих существующих записей через косинусное сходство и создаёт рёбра related_to для любой пары с оценкой выше 0.7.
Оценка уверенности и затухания
Каждая запись знаний имеет оценку уверенности, отслеживаемую в таблице SQLite entry_scores. Результаты поиска ранжируются с использованием:
finalScore = baseRelevance * 0.5^(daysSinceLastAccess / 90) * maturityMultiplierЗаписи автоматически созревают на основе количества обращений:
Этап | Обращения | Множитель |
| < 5 | 0.5x |
| 5-19 | 1.0x |
| 20+ | 1.5x |
Часто запрашиваемые записи поднимаются в результатах поиска; устаревшие записи со временем теряют актуальность.
Возможности поиска
Ранжирование TF-IDF -- результаты оцениваются по частоте термина и обратной частоте документа. Редкие термины повышают релевантность. Глобальный индекс кэшируется на 60 секунд.
Нечёткое сопоставление -- расстояние Левенштейна со скользящим окном. Настраиваемый порог (по умолчанию 0.7).
Выборочное извлечение через knowledge_search с параметром scope:
Область | Совпадения |
| Трассировки стека, исключения, неудачные команды |
| Архитектура, TODO, шаги реализации |
| Настройки, переменные окружения, файлы конфигурации |
| Вызовы инструментов MCP, команды CLI |
| Пути к файлам, изменения |
| Компромиссы, обоснования, решения |
Интеграции
REST-эндпоинт записи
POST /api/knowledge принимает { category, filename, content } и выполняет полный конвейер записи: git pull → запись файла → индексация эмбеддингов → автолинковка → git push → проверка дубликатов. Возвращает { path, autoLinks?, duplicateWarnings?, git } со статусом 201.
Это позволяет выполнять запись по HTTP из других сервисов без MCP-подключения.
agent-tasks KnowledgeBridge
agent-tasks имеет встроенный KnowledgeBridge, который автоматически отправляет артефакты learning и decision в agent-knowledge по завершении задачи. Записи попадают в decisions/ с frontmatter-тегами (agent-tasks, имя проекта, тип артефакта), автоматически индексируются с эмбеддингами и связываются с похожими записями. Конфигурация не требуется — если agent-knowledge запущен на localhost:3423, всё работает.
Тестирование
npm test # 563 tests across 35 files
npm run test:watch # Watch mode
npm run lint # ESLint on src/ and tests/
npm run typecheck # tsc --noEmit
npm run check # typecheck + lint + format + testПеременные окружения
Все переменные окружения находятся под префиксом AGENT_KNOWLEDGE_*. Никакое имя хоста не зашито — реестр адаптеров автоматически обнаруживает установленные AI-хосты для кодинга (.claude, .cursor, .codex, .aider, .continue, OpenCode) без конфигурации.
Основные
Переменная | По умолчанию | Описание |
|
| Каталог базы знаний, синхронизируемый через Git |
| -- | URL удалённого Git-репозитория (автоклонирование, если каталог отсутствует) |
|
| Автоматическая дистилляция инсайтов сессии в базу знаний |
|
| Индексировать сырые фрагменты сообщений сессии в векторное хранилище, чтобы разговор можно было извлечь позже. Установите |
| (конфигурация платформы) | Переопределить корневой каталог данных основного хоста. В обычном случае оставьте не заданным — адаптеры автоматически обнаруживают все известные корни хостов в |
| -- | Дополнительные каталоги сессий, разделённые запятыми. Добавляются к тому, что находит автодетекция. |
|
| Порт HTTP/WebSocket дашборда |
Эмбеддинги
Переменная | По умолчанию | Описание |
|
|
|
|
| Вес смешивания TF-IDF и семантики ( |
| -- | Переопределить модель провайдера по умолчанию |
|
| Секунды до выгрузки локальной модели ( |
| (авто) | Количество потоков ONNX / OMP для локального провайдера |
API-ключи
Переопределения в рамках проекта имеют приоритет над стандартными ключами. Задайте любой из вариантов; форма с областью действия позволяет запускать agent-knowledge с другим ключом, чем остальная часть вашего окружения.
Переменная | Запасной вариант | Описание |
|
| Эмбеддинги OpenAI |
|
| Эмбеддинги Claude / Voyage |
|
| Эмбеддинги Gemini |
Хуки
Переменная | По умолчанию | Описание |
|
| Автоматически внедрять пакет |
|
| Токены для пакета пробуждения |
|
| Выполнять целевой |
|
| Токены для внедрения в первый запрос (ограничение |
|
| Максимум результатов знаний, прикрепляемых к первому запросу (ограничение |
|
| Перед предварительной компактизацией подталкивать агента сохранить контекст через |
Переопределения внешних инструментов
Переменная | По умолчанию | Описание |
|
| Переопределить расположение базы данных сессий OpenCode (собственная переменная окружения OpenCode, учитывается нашим адаптером) |
Документация
Руководство по установке — установка, настройка клиентов (Claude Code, OpenCode, Cursor, Windsurf), хуки, навыки
Руководство по импорту — навык импорта кодовой базы, извлечение tree-sitter, инкрементальные обновления
Архитектура — структура исходников, принципы проектирования, схема базы данных
Дашборд — представления и функции веб-интерфейса
Лицензия
Available Tools
6 toolsknowledgeA
Knowledge base CRUD, sync, and session-start hydration. Actions: "list" (browse entries), "read" (get entry content), "write" (create/update entry, auto git sync), "delete" (remove entry, auto git sync), "sync" (manual git pull + push), "wakeup" (return token-budgeted section-priority context bundle — identity, active_tasks, recent_decisions, known_gotchas, last_session_summary, top_weighted, semantic_fallback — call once at session start).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag (action=list) | |
| path | No | Relative path to the entry, e.g. 'projects/my-project.md' (action=read, delete) | |
| action | Yes | Action to perform | |
| content | No | Full markdown content for the entry (action=write) | |
| category | No | Category (action=list: filter; action=write: target directory). One of: projects, people, decisions, workflows, notes | |
| filename | No | Filename with or without .md extension (action=write), e.g. 'my-project.md' | |
| sections | No | [wakeup] Comma-separated, ordered section list. Valid: identity, active_tasks, recent_decisions, known_gotchas, last_session_summary, top_weighted, semantic_fallback. Default: all seven in that order. Omit to preserve v1.8.0 behaviour. | |
| token_budget | No | [wakeup] Max tokens to render (chars/4 estimate, default 800) | |
| section_budgets | No | [wakeup] Per-section token-budget overrides, e.g. {"identity": 200, "top_weighted": 400}. Unspecified sections split the remainder evenly. Unused budget redistributes to later sections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it does disclose meaningful side effects: write/delete trigger auto git sync, sync is a manual git pull+push, and wakeup returns a token-budgeted section-priority bundle. This is solid disclosure for a mutation-capable tool; it only omits reversibility (e.g., whether delete is recoverable from git history) and confirmation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the content is dense and informative, but it is presented as one long run-on sentence without line breaks or structural separation, making the six actions and their caveats harder to parse at a glance. Fewer words could be used; the parentheticals are useful but poorly delimited.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity tool (9 params, 6 actions, enums, nested objects) with no output schema, the description explains wakeup's return bundle but not the return values for the other five actions (e.g., what list returns, what read returns on success/failure). The schema covers parameter semantics well, but the absence of output descriptions for the remaining actions leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all nine parameters with action-scoped descriptions. The description adds value on top by explaining wakeup semantics — section ordering, defaults, budget behavior — but does not substantially enrich the other parameters beyond what the schema states. A baseline of 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose ('Knowledge base CRUD, sync, and session-start hydration') and enumerates six concrete actions with brief one-line definitions. It implicitly distinguishes from siblings (search, graph, analyze) by being the CRUD/sync/wakeup orchestrator, though it never names the siblings or their differing responsibilities explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is conveyed per-action ('call once at session start' for wakeup, 'auto git sync' for write/delete) and the verb definitions imply when each is appropriate. However, with five siblings present, there is no explicit when-to-use-versus-alternative guidance (e.g., when to prefer knowledge_search over this tool's list action), and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_adminB
Admin operations: view vector store stats, view/update configuration, rebuild embeddings, prune orphan session embeddings, or VACUUM the database. Use action "status" for index stats, "config" to view or update settings, "rebuild_embeddings" to re-embed all knowledge entries (useful when switching providers), "prune_orphans" to delete embeddings for sessions no longer present on disk, "vacuum" to reclaim free pages.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: status (vector store stats), config (view/update settings), rebuild_embeddings (re-embed all entries), prune_orphans (delete embeddings for missing sessions), vacuum (reclaim free pages), promote (run the scored promoter — see promote_mode) | |
| vacuum | No | Run VACUUM after pruning (action=prune_orphans, default true) | |
| git_url | No | Git remote URL (action=config). Set to empty string to remove. | |
| min_score | No | [promote] Minimum composite score to promote (default: 0.5). | |
| memory_dir | No | Local knowledge base directory (action=config). Empty to reset. | |
| auto_distill | No | Enable/disable scheduled promotion (action=config) | |
| force_vacuum | No | Run VACUUM even if no orphans were pruned (action=prune_orphans) | |
| promote_mode | No | action=promote mode (default: explain). "explain" returns score breakdowns without writing; "apply" promotes candidates that pass all gates. | |
| min_recall_count | No | [promote] Minimum recall count gate (default: 2). | |
| min_unique_queries | No | [promote] Minimum unique-query gate (default: 2). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does disclose destructive effects for prune_orphans ('delete embeddings') and vacuum ('reclaim free pages'). However, it understates rebuild_embeddings' destructive rewriting of existing embeddings, and it completely omits the 'promote' action's behavior (apply vs explain modes, write behavior vs read-only). For a tool with several destructive operations, the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core operations are front-loaded in the opening sentence, with each action's purpose expanded in a single subsequent sentence. The structure is efficient and scannable. Minor deduction for the slightly run-on single-sentence expansion and for leaving out promote, which makes the list feel incomplete rather than intentionally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex admin tool with 10 parameters, 6 actions, no output schema, and no annotations, the description should be comprehensive — but it covers only 5 of 6 actions and omits the entire promote workflow with its 4 dedicated parameters (promote_mode, min_score, min_recall_count, min_unique_queries). An agent reading only the description would never learn a whole callable mode exists, which is a significant completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 10 parameters, giving a baseline of 3. The description adds marginal value by linking rebuild_embeddings to the provider-switching use case, but it adds no semantics beyond the schema for the config params (git_url, memory_dir, auto_distill) and leaves the promote-related parameters entirely unexplained in prose despite them being a substantial cluster of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose — administrative operations on the knowledge/vector store — and enumerates five concrete actions (status, config, rebuild_embeddings, prune_orphans, vacuum) with their effects. It clearly distinguishes itself from the read/search siblings. However, it silently omits the 'promote' action that exists in the schema enum, and the umbrella phrase 'Admin operations' is vague until the action list clarifies it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable when-to-use context for rebuild_embeddings ('useful when switching providers') and explains what each action accomplishes, which implicitly routes the agent to the right action. But it provides no guidance for the 'promote' action (its dedicated params min_score, min_recall_count, min_unique_queries, promote_mode are never narrated), and it never states when NOT to use the tool or how it differs from siblings beyond 'admin' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_analyzeA
Analysis tools: find duplicates, unconnected entries, most-connected concepts (god nodes), bridge entries, knowledge gaps, zero-result search queries, stale-by-code-activity entries, or generate a compact knowledge brief. Actions: consolidate, reflect, god_nodes, bridges, gaps, brief, search_gaps, stale_by_code_activity.
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | Number of results (action=god_nodes default: 10, action=bridges default: 5) | |
| action | Yes | Action: consolidate (find duplicates), reflect (find unconnected entries), god_nodes (most-connected entries), bridges (cross-cluster connectors), gaps (entries with 0-1 edges), brief (compact knowledge base summary), search_gaps (zero-result knowledge_search queries grouped by similarity — the single best signal for "what entries should I write next?"), stale_by_code_activity (entries whose referenced file paths were modified in recent sessions after the entry body was last edited — automatic staleness signal, v1.8.1). | |
| category | No | Scan only this category (omit for all) | |
| min_count | No | [search_gaps] Minimum occurrence count per merged group (default: 1). Raise to surface only repeated misses. | |
| threshold | No | Similarity threshold 0-1 (action=consolidate, default: 0.5) | |
| since_days | No | [search_gaps] Lookback window in days (default: 30). Only queries logged within this window are considered. | |
| max_entries | No | Max unconnected entries to include (action=reflect, default: 20) | |
| group_similarity | No | [search_gaps] Jaccard token similarity threshold for merging near-duplicate queries (default: 0.35, range 0-1). Low because short queries yield low Jaccard even when topically related. | |
| min_touching_sessions | No | [stale_by_code_activity] Minimum distinct sessions that must have modified one of the entry's referenced files for it to be flagged (default: 1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full disclosure burden, yet it is internally contradictory on the consolidate action: the verb implies merging/mutation while the gloss '(find duplicates)' implies read-only discovery. There is no statement about whether any action mutates entries, what output shape results, or performance implications — a real gap for a multi-action analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the whole description runs roughly 60 words with no filler. The trailing 'Actions:' enumeration is partially redundant with the schema enum but serves as a useful name→semantic mapping, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool — 9 parameters, 8 actions, no output schema, no annotations. All action semantics are enumerated, but the description is silent on per-action return formats and on whether any action (notably consolidate) has side effects, both material for an analysis surface of this breadth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema's parameter descriptions are unusually rich (per-action defaults, the Jaccard rationale for group_similarity, min_count semantics). The tool description adds little beyond re-listing action names, so the schema-carrying baseline of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates eight distinct analyses with denotative glosses (duplicates, unconnected entries, god nodes, bridges, gaps, zero-result queries, stale-by-code-activity, brief), clearly binding the tool to knowledge-base entry analysis. This differentiates it from siblings like knowledge_search (querying) and knowledge_admin (admin actions) without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each action carries clear context, e.g., 'gaps (entries with 0-1 edges)', 'bridges (cross-cluster connectors)', and search_gaps is explicitly framed as 'the single best signal for what entries should I write next?'. Missing, however, are explicit when-not or alternative statements that route selection against sibling tools at the tool level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_graphB
Knowledge graph operations with temporal validity and code structure support. Create/remove edges, traverse via directed BFS, bulk-import code graph edges. Relationship types: related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on, calls, imports, inherits. Code structure types (calls/imports/inherits) are created by knowledge-ingest and use "code:" prefixed node IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | ISO date — only return edges valid at this date (action=list/traverse, optional) | |
| depth | No | Max traversal depth in hops (action=traverse, default: 2) | |
| edges | No | Array of edges to create (action=bulk_link). Each: { source, target, rel_type, strength?, origin? } | |
| entry | No | Entry path for filtering (action=list) or BFS start (action=traverse) | |
| action | Yes | Action: link (create edge), unlink (remove edge), invalidate (set valid_to), list (list edges), traverse (directed BFS), bulk_link (batch-create edges), unlink_by_origin (delete all edges from a specific origin) | |
| origin | No | Edge origin to delete (action=unlink_by_origin). E.g. "tree-sitter" to clear code graph before re-ingest. | |
| source | No | Source entry path (action=link/unlink/invalidate), e.g. 'projects/my-project.md' | |
| target | No | Target entry path (action=link/unlink/invalidate), e.g. 'decisions/architecture.md' | |
| rel_type | No | Relationship type (required for link, optional filter for unlink/invalidate/list) | |
| strength | No | Edge strength 0-1 (action=link, default: 0.5) | |
| valid_to | No | ISO date the fact stopped being true (action=link/invalidate). For invalidate, defaults to today. | |
| direction | No | Traversal direction (action=traverse, default: both). outbound: follow source→target (what does X call?). inbound: follow target→source (who calls X?). both: undirected (default, preserves legacy behavior). | |
| valid_from | No | ISO date the fact became true (action=link, optional). Null/omitted = unbounded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses temporal validity and that code structure edges are created by knowledge-ingest, which is useful. However, it does not warn about destructive side effects of unlink/invalidate or the scope of bulk operations, leaving behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise, using three sentences to cover operations, relationship types, and code structure nuance. It could tighten by omitting the redundant relationship list from the enum, but it remains front-loaded and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is present, and the description does not describe return values for actions like list or traverse. It also omits details about state mutations (e.g., irreversibility of unlink). Given the tool's complexity and no annotations, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal value: it re-lists relationship types (already in the enum) and notes the 'code:' prefix for node IDs. It does not explain parameter interactions beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs knowledge graph operations: create/remove edges, traverse via BFS, bulk-import code edges. It also lists relationship types and code structure specifics. However, it does not explicitly contrast with sibling tools like knowledge_search or knowledge_analyze, so differentiation relies on the implicit 'graph' focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. It does not mention when not to use it, nor does it reference alternative tools. The code structure note implies a use case, but there is no clear routing or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_searchA
Search across sessions AND knowledge entries. Returns {mode, sessions, knowledge}. General mode (no scope): hybrid TF-IDF + semantic over both sources, with optional MMR diversity and category boost. Scoped mode (scope set): sessions-only filtered recall for a specific domain (errors, plans, configs, tools, files, decisions).
| Name | Required | Description | Default |
|---|---|---|---|
| mmr | No | Apply Maximal Marginal Relevance re-ranking to knowledge results (default: false). Trades a small amount of top-1 relevance for diversity in the top-K. | |
| role | No | Filter by message role (default: all, ignored when scope is set) | |
| query | Yes | Search query -- supports keywords and phrases | |
| scope | No | Search scope (optional): errors (stack traces), plans (architecture, TODOs), configs (settings, env vars), tools (MCP tool calls), files (file paths, code refs), decisions (trade-offs, choices), all (no filter). When set, response mode switches to "scoped" and results are sessions-only. | |
| ranked | No | Use TF-IDF ranking (default: true, ignored when scope is set). Set false for regex mode. | |
| explain | No | When true, each knowledge hit carries `score_components` (bm25, decay, maturity, confidence, category_boost, mmr_penalty). | |
| project | No | Restrict search to sessions from this project | |
| category | No | Knowledge category hint (optional). By default applied as a boost (non-matching kept, matching +25%). Pass category_mode="filter" for the legacy hard-filter behavior. | |
| semantic | No | Blend semantic vector similarity with TF-IDF (default: true). Falls back to pure TF-IDF if embeddings unavailable. | |
| mmr_lambda | No | MMR tradeoff 0-1 (default: 0.7). 1.0 = pure relevance; 0.0 = pure diversity. | |
| max_results | No | Maximum number of results to return (default: 20) | |
| category_mode | No | How `category` is applied to knowledge results (default: "boost"). "boost" keeps all entries but gives matching-category entries a 25% score boost; "filter" restricts to matching category only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, and it excels. It reveals the return shape ({mode, sessions, knowledge}), explains the hybrid ranking (TF-IDF + semantic), discloses fallback behavior (pure TF-IDF if embeddings unavailable), details the boost/filter semantics of category, and even mentions the 'score_components' breakdown when explain=true. This is comprehensive transparency for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: it leads with the core action and return format, then systematically explains the two modes and key behaviors. Every sentence adds distinct information (modes, ranking, fallback, category handling) with no filler. It is long, but each phrase earns its place given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters, 4 enums, and no output schema, the description covers the critical decision points: mode selection, source scope, ranking approach, category application, and MMR parameter meaning. It explains the return envelope and the score breakdown for explain mode. No essential usage context appears missing; the schema handles parameter-level details, and the description supplies the higher-level orchestration model.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described. The description adds meaningful context beyond the schema by explaining how scope switches modes, how category boost/filter interacts with category_mode, the MMR tradeoff (lambda 1.0 = pure relevance, 0.0 = diversity), and that 'role' is ignored in scoped mode. This is valuable semantic glue, though it doesn't cover every parameter explicitly – some are only in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search across sessions AND knowledge entries.' It immediately clarifies the dual-source nature and then distinguishes two modes (general vs. scoped) with clear scope semantics. This cleanly differentiates it from sibling tools like knowledge_session or knowledge_graph, which are likely more specialized.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use general mode (no scope) vs. scoped mode ('scope' set), including that scoped mode is sessions-only and filtered by domain. It mentions the behavior of parameters like 'role' being ignored when scope is set. However, it does not name any sibling tools as alternatives or give exclusion conditions, so the guidance is strong but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_sessionA
Session operations: list sessions, get a full conversation, or get a summary. Use action "list" to browse sessions, "get" to retrieve messages, "summary" for a quick overview.
| Name | Required | Description | Default |
|---|---|---|---|
| tail | No | Only return the last N messages (action=get) | |
| limit | No | Max sessions to return (action=list, default: 20, max: 500) | |
| action | Yes | Action to perform | |
| offset | No | Skip first N sessions (action=list, default: 0) | |
| project | No | Filter by project name (substring match) | |
| session_id | No | Session UUID (required for get, summary) | |
| include_tools | No | Include tool_use and tool_result messages (action=get, default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the actions but does not mention whether operations are read-only, side effects, required permissions, error behavior (e.g., invalid session_id), or any rate limits. For a tool with three read-like actions, this is a notable gap; the agent is left to infer safety and failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with zero waste. It front-loads the core concept 'Session operations' and immediately explains the three actions. Every sentence contributes to understanding the tool, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides enough to invoke the tool correctly for the three actions, but it omits the response format entirely. Since there is no output schema, the agent is unaware of what each action returns (e.g., list returns an array, get returns messages). For a multi-action tool, this is a moderate gap, though the actions are simple enough that an agent might infer typical behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All seven parameters are fully described in the schema (100% coverage), so the schema carries the heavy lifting. The description adds context for how the action parameter drives behavior (list vs get vs summary) and clarifies the purpose of some parameters indirectly (e.g., tail for get, limit for list), but it does not add new semantic detail beyond the schema. This aligns with the coverage baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Session operations: list sessions, get a full conversation, or get a summary.' It identifies three distinct actions (list, get, summary) and explicitly differentiates from sibling tools by focusing on session operations, which none of the sibling names (knowledge, knowledge_search, knowledge_admin, knowledge_graph, knowledge_analyze) cover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides per-action guidance: 'Use action list to browse sessions, get to retrieve messages, summary for a quick overview.' This clarifies when to use each action, but it does not mention when to favor this tool over siblings such as knowledge_search or knowledge_analyze. There is no explicit exclusion or alternative routing at the tool level, though the action-level guidance is useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v1.9.7- First observed
knowledge - First observed
knowledge_admin - First observed
knowledge_analyze - First observed
knowledge_graph - First observed
knowledge_search - First observed
knowledge_session
TDQS
Each tool targets a distinct functional domain: CRUD operations, cross-source search, session management, admin/maintenance, graph relationships, and analysis/insights. The action-based sub-operations are clearly scoped, and there is no meaningful overlap between tools.
All tool names follow the consistent pattern `knowledge_<verb_noun>` using snake_case throughout. The naming convention is uniform, with descriptive suffixes (search, session, admin, graph, analyze) that clearly differentiate purposes.
Six tools is an ideal count for a knowledge-management server. Each tool encapsulates a distinct set of related operations (CRUD, search, sessions, admin, graph, analysis), providing comprehensive functionality without overwhelming the agent.
The toolset covers the full lifecycle of a knowledge base: creating/reading/updating/deleting entries, searching across sessions and entries, managing session history, performing administrative tasks (embeddings, vacuum), maintaining knowledge graph relationships, and deriving analytical insights. No obvious gaps exist; even advanced features like bulk graph import and orphan pruning are included.
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 Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
- AmberOAuthcom.ambermem
Long-term memory for AI assistants. Hybrid retrieval, query expansion, auto-topics.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.16612MIT

Doclea MCPofficial
AlicenseNot gradedqualityCmaintenanceProvides persistent memory for AI coding assistants, storing and retrieving architectural decisions, patterns, and solutions across sessions using semantic search, while also offering git integration for commit messages and code expertise mapping.MIT- AlicenseAqualityDmaintenanceProvides persistent memory for AI agents using hybrid search (vector embeddings + BM25) with neural reranking, enabling storage and retrieval of insights, debugging solutions, and patterns across coding sessions.8MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI coding assistants with persistent, context-rich memory of a codebase, including documentation and git history, enabling recall across sessions.104Apache 2.0
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/keshrath/agent-knowledge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server