Skip to main content
Glama
keshrath

agent-knowledge

by keshrath

agent-knowledge

License: MIT Node >= 20 Tests: 563 passing MCP Tools: 6 LongMemEval R@5: 98.8%

Кросс-сессионная память и поиск для ИИ-ассистентов программирования — работает с 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 решает эту проблему с помощью двух взаимодополняющих систем:

  1. База знаний — git-синхронизируемое хранилище markdown со структурированными записями (решения, рабочие процессы, контекст проекта), которое сохраняется между сессиями и машинами.

  2. Поиск по сессиям — TF-IDF ранжированный полнотекстовый поиск по транскриптам сессий из всех ваших инструментов программирования, чтобы агенты могли вспомнить, что происходило раньше — независимо от того, какой инструмент использовался.

Related MCP server: Doclea MCP

Поддерживаемые инструменты

Сессии всех основных ИИ-ассистентов программирования обнаруживаются автоматически — если инструмент установлен, его сессии появляются автоматически.

Инструмент

Формат

Автоопределяемый путь

Claude Code

JSONL

~/.claude/projects/

Cursor

JSONL

~/.cursor/projects/*/agent-transcripts/

Codex CLI

JSONL

~/.codex/projects/

Aider

Markdown/JSONL

.aider.chat.history.md / .aider.llm.history в директориях проекта

Continue.dev

JSON

~/.continue/projects/

Cline

JSON

VS Code globalStorage saoudrizwan.claude-dev/tasks/

OpenCode

SQLite

~/.local/share/opencode/opencode.db (или $OPENCODE_DATA_DIR)

Никакой настройки не требуется. Дополнительные корни сессий можно добавить через переменную окружения 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") собирает многосекционный пакет (identityactive_tasksrecent_decisionsknown_gotchaslast_session_summarytop_weightedsemantic_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 URLknowledge_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 3423

MCP-инструменты (6)

База знаний

Инструмент

Действие

Описание

Параметры

knowledge

list

Список записей по категории и/или тегу

category?, tag?

read

Чтение конкретной записи

path (обязательный)

write

Создание/обновление записи (автосинхронизация с git)

category, filename, content (все обязательные)

delete

Удаление записи (автосинхронизация с git)

path (обязательный)

sync

Ручной git pull + push

--

wakeup

Возврат идентичности L0 + L1-записей с наибольшим весом (с учётом токен-бюджета)

token_budget?, category?

Поиск

Инструмент

Описание

Параметры

knowledge_search

Гибридный TF-IDF + семантический поиск (без scope)

query, project?, role?, max_results?, ranked?, semantic?, category?, category_mode?, mmr?, mmr_lambda?, explain?

Ограниченный поиск только по сессии (при заданном scope)

query, scope, project?, max_results?

Форма ответа: {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} к каждому результату поиска по знаниям.

Сессии

Инструмент

Действие

Описание

Параметры

knowledge_session

list

Список сессий с метаданными

project?

get

Получение полного диалога сессии

session_id, project?, include_tools?, tail?

summary

Сводка сессии (темы, инструменты, файлы)

session_id, project?

Граф знаний

Инструмент

Действие

Описание

Параметры

knowledge_graph

link

Создание/обновление ребра между записями

source, target, rel_type, strength?

unlink

Удаление рёбер между записями

source, target, rel_type?

invalidate

Пометка рёбер как истёкших (установка valid_to)

source, target, rel_type?, valid_to?

list

Список рёбер

entry?, rel_type?, as_of?

traverse

Направленный BFS-обход от записи

entry, depth?, direction?, rel_type?, as_of?

bulk_link

Пакетное создание рёбер (приём графа кода)

edges (массив {source, target, rel_type, strength?, origin?})

unlink_by_origin

Удаление всех рёбер по источнику

origin

Типы знаний: related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on Типы структуры кода: calls, imports, inherits

Направления обхода: outbound (источник→цель), inbound (цель→источник), both (по умолчанию, ненаправленный)

Анализ

Инструмент

Действие

Описание

Параметры

knowledge_analyze

consolidate

Поиск почти дублирующихся записей

category?, threshold?

reflect

Поиск несвязанных записей для связывания

category?, max_entries?

god_nodes

Наиболее связанные записи (центральность по степени)

top_n?

bridges

Межкатегорийные соединители (посредничество)

top_n?

gaps

Изолированные записи (0-1 рёбер) по зрелости

max_entries?

brief

Кэшированная сводка базы знаний (~200 токенов)

--

Администрирование

Инструмент

Действие

Описание

Параметры

knowledge_admin

status

Статистика векторного хранилища

--

config

Просмотр или обновление конфигурации

git_url?, memory_dir?, auto_distill?

rebuild_embeddings

Повторное встраивание всех записей знаний (полезно при смене провайдера)

--

prune_orphans

Удаление встраиваний для сессий, отсутствующих на диске

vacuum?, force_vacuum?

vacuum

Освобождение свободных страниц в векторном хранилище

--

promote

Продвижение с оценкой и фильтрацией

promote_mode? (apply|explain), min_score?, min_recall_count?, min_unique_queries?

Продвижение с оценкой

Каждый кандидат уровня проекта оценивается по шести сигналам (релевантность 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

/api/knowledge

Список записей знаний

GET

/api/knowledge/search?q=

Поиск по базе знаний

GET

/api/knowledge/:path

Чтение конкретной записи

GET

/api/knowledge/god-nodes?top_n=

Наиболее связанные записи

GET

/api/knowledge/bridges?top_n=

Межкатегорийные соединители

GET

/api/knowledge/gaps?max_entries=

Изолированные записи

GET

/api/knowledge/brief

Сводка базы знаний

GET

/api/sessions

Список сессий

GET

/api/sessions/search?q=&role=&ranked=

Поиск по сессиям (TF-IDF)

GET

/api/sessions/recall?scope=&q=

Ограниченный поиск

GET

/api/sessions/:id

Чтение сессии

GET

/api/sessions/:id/summary

Сводка сессии

POST

/api/knowledge

Запись записи (HTTP-клиенты)

GET

/health

Проверка работоспособности

Архитектура

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_type

  • knowledge_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

Записи автоматически созревают на основе количества обращений:

Этап

Обращения

Множитель

candidate

< 5

0.5x

established

5-19

1.0x

proven

20+

1.5x

Часто запрашиваемые записи поднимаются в результатах поиска; устаревшие записи со временем теряют актуальность.

Возможности поиска

Ранжирование TF-IDF -- результаты оцениваются по частоте термина и обратной частоте документа. Редкие термины повышают релевантность. Глобальный индекс кэшируется на 60 секунд.

Нечёткое сопоставление -- расстояние Левенштейна со скользящим окном. Настраиваемый порог (по умолчанию 0.7).

Выборочное извлечение через knowledge_search с параметром scope:

Область

Совпадения

errors

Трассировки стека, исключения, неудачные команды

plans

Архитектура, TODO, шаги реализации

configs

Настройки, переменные окружения, файлы конфигурации

tools

Вызовы инструментов MCP, команды CLI

files

Пути к файлам, изменения

decisions

Компромиссы, обоснования, решения

Интеграции

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) без конфигурации.

Основные

Переменная

По умолчанию

Описание

AGENT_KNOWLEDGE_MEMORY_DIR

~/agent-knowledge

Каталог базы знаний, синхронизируемый через Git

AGENT_KNOWLEDGE_GIT_URL

--

URL удалённого Git-репозитория (автоклонирование, если каталог отсутствует)

AGENT_KNOWLEDGE_AUTO_DISTILL

true

Автоматическая дистилляция инсайтов сессии в базу знаний

AGENT_KNOWLEDGE_INDEX_VERBATIM

true

Индексировать сырые фрагменты сообщений сессии в векторное хранилище, чтобы разговор можно было извлечь позже. Установите false для экономии диска в масштабе.

AGENT_KNOWLEDGE_DATA_DIR

(конфигурация платформы)

Переопределить корневой каталог данных основного хоста. В обычном случае оставьте не заданным — адаптеры автоматически обнаруживают все известные корни хостов в ~/.

AGENT_KNOWLEDGE_EXTRA_SESSION_ROOTS

--

Дополнительные каталоги сессий, разделённые запятыми. Добавляются к тому, что находит автодетекция.

AGENT_KNOWLEDGE_PORT

3423

Порт HTTP/WebSocket дашборда

Эмбеддинги

Переменная

По умолчанию

Описание

AGENT_KNOWLEDGE_EMBEDDING_PROVIDER

local

local | openai | claude | gemini

AGENT_KNOWLEDGE_EMBEDDING_ALPHA

0.3

Вес смешивания TF-IDF и семантики (0 = чистая семантика, 1 = чистый TF-IDF)

AGENT_KNOWLEDGE_EMBEDDING_MODEL

--

Переопределить модель провайдера по умолчанию

AGENT_KNOWLEDGE_EMBEDDING_IDLE_TIMEOUT

60

Секунды до выгрузки локальной модели (0 = держать загруженной)

AGENT_KNOWLEDGE_EMBEDDING_THREADS

(авто)

Количество потоков ONNX / OMP для локального провайдера

API-ключи

Переопределения в рамках проекта имеют приоритет над стандартными ключами. Задайте любой из вариантов; форма с областью действия позволяет запускать agent-knowledge с другим ключом, чем остальная часть вашего окружения.

Переменная

Запасной вариант

Описание

AGENT_KNOWLEDGE_OPENAI_API_KEY

OPENAI_API_KEY

Эмбеддинги OpenAI

AGENT_KNOWLEDGE_ANTHROPIC_API_KEY

ANTHROPIC_API_KEY

Эмбеддинги Claude / Voyage

AGENT_KNOWLEDGE_GEMINI_API_KEY

GEMINI_API_KEY

Эмбеддинги Gemini

Хуки

Переменная

По умолчанию

Описание

AGENT_KNOWLEDGE_AUTOWAKE

1

Автоматически внедрять пакет knowledge(action: wakeup) в SessionStart. Установите 0 для отключения.

AGENT_KNOWLEDGE_WAKEUP_BUDGET

800

Токены для пакета пробуждения

AGENT_KNOWLEDGE_FIRSTPROMPT_INJECT

1

Выполнять целевой knowledge_search по первому пользовательскому запросу и внедрять лучшие результаты. 0 / false / off для отключения.

AGENT_KNOWLEDGE_FIRSTPROMPT_BUDGET

600

Токены для внедрения в первый запрос (ограничение [100, 8000])

AGENT_KNOWLEDGE_FIRSTPROMPT_MAX_HITS

4

Максимум результатов знаний, прикрепляемых к первому запросу (ограничение [1, 20])

AGENT_KNOWLEDGE_PRECOMPACT_NUDGE

1

Перед предварительной компактизацией подталкивать агента сохранить контекст через knowledge(action: write). 0 отключает подсказку; off подавляет и подсказку, и сброс на диск.

Переопределения внешних инструментов

Переменная

По умолчанию

Описание

OPENCODE_DATA_DIR

~/.local/share/opencode

Переопределить расположение базы данных сессий OpenCode (собственная переменная окружения OpenCode, учитывается нашим адаптером)

Документация

Лицензия

MIT

Available Tools

6 tools
knowledgeA

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag (action=list)
pathNoRelative path to the entry, e.g. 'projects/my-project.md' (action=read, delete)
actionYesAction to perform
contentNoFull markdown content for the entry (action=write)
categoryNoCategory (action=list: filter; action=write: target directory). One of: projects, people, decisions, workflows, notes
filenameNoFilename with or without .md extension (action=write), e.g. 'my-project.md'
sectionsNo[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_budgetNo[wakeup] Max tokens to render (chars/4 estimate, default 800)
section_budgetsNo[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

A3.5/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: 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)
vacuumNoRun VACUUM after pruning (action=prune_orphans, default true)
git_urlNoGit remote URL (action=config). Set to empty string to remove.
min_scoreNo[promote] Minimum composite score to promote (default: 0.5).
memory_dirNoLocal knowledge base directory (action=config). Empty to reset.
auto_distillNoEnable/disable scheduled promotion (action=config)
force_vacuumNoRun VACUUM even if no orphans were pruned (action=prune_orphans)
promote_modeNoaction=promote mode (default: explain). "explain" returns score breakdowns without writing; "apply" promotes candidates that pass all gates.
min_recall_countNo[promote] Minimum recall count gate (default: 2).
min_unique_queriesNo[promote] Minimum unique-query gate (default: 2).

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNoNumber of results (action=god_nodes default: 10, action=bridges default: 5)
actionYesAction: 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).
categoryNoScan only this category (omit for all)
min_countNo[search_gaps] Minimum occurrence count per merged group (default: 1). Raise to surface only repeated misses.
thresholdNoSimilarity threshold 0-1 (action=consolidate, default: 0.5)
since_daysNo[search_gaps] Lookback window in days (default: 30). Only queries logged within this window are considered.
max_entriesNoMax unconnected entries to include (action=reflect, default: 20)
group_similarityNo[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_sessionsNo[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

A3.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNoISO date — only return edges valid at this date (action=list/traverse, optional)
depthNoMax traversal depth in hops (action=traverse, default: 2)
edgesNoArray of edges to create (action=bulk_link). Each: { source, target, rel_type, strength?, origin? }
entryNoEntry path for filtering (action=list) or BFS start (action=traverse)
actionYesAction: 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)
originNoEdge origin to delete (action=unlink_by_origin). E.g. "tree-sitter" to clear code graph before re-ingest.
sourceNoSource entry path (action=link/unlink/invalidate), e.g. 'projects/my-project.md'
targetNoTarget entry path (action=link/unlink/invalidate), e.g. 'decisions/architecture.md'
rel_typeNoRelationship type (required for link, optional filter for unlink/invalidate/list)
strengthNoEdge strength 0-1 (action=link, default: 0.5)
valid_toNoISO date the fact stopped being true (action=link/invalidate). For invalidate, defaults to today.
directionNoTraversal 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_fromNoISO date the fact became true (action=link, optional). Null/omitted = unbounded.

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tailNoOnly return the last N messages (action=get)
limitNoMax sessions to return (action=list, default: 20, max: 500)
actionYesAction to perform
offsetNoSkip first N sessions (action=list, default: 0)
projectNoFilter by project name (substring match)
session_idNoSession UUID (required for get, summary)
include_toolsNoInclude tool_use and tool_result messages (action=get, default: false)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 6 tool updatesv1.9.7
    • First observedknowledge
    • First observedknowledge_admin
    • First observedknowledge_analyze
    • First observedknowledge_graph
    • First observedknowledge_search
    • First observedknowledge_session

TDQS

A3.9/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides 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.
    16
    61
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI coding assistants with persistent, context-rich memory of a codebase, including documentation and git history, enabling recall across sessions.
    104
    Apache 2.0

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/keshrath/agent-knowledge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server