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%

Memoria y recuperación entre sesiones para asistentes de codificación de IA -- funciona con Claude Code, Cursor, OpenCode, Cline, Continue.dev y Aider sin configuración adicional. Base de conocimiento sincronizada con Git, búsqueda híbrida semántica+TF-IDF, auto-destilación con limpieza de secretos.

Benchmark: R@5 = 97.2% (sparse) / 98.8% (hybrid) en longmemeval_s y 86.0% (sparse) / 88.4% (hybrid) en la división más difícil longmemeval_m — el benchmark académico público LongMemEval (Wu et al. 2024, ICLR 2025), 500 preguntas completas por división, sin LLM, sin clave API, se ejecuta completamente sin conexión. +8.6pp a +13.2pp R@5 sobre la línea base oficial flat-bm25 del artículo en reproducción comparable. Tabla completa por categoría, instrucciones de reproducción y detalles de comparación con el artículo en bench/README.md.

Por qué

Las sesiones de codificación de IA son efímeras. Cuando una sesión termina, todo lo que aprendió (decisiones de arquitectura, ideas de depuración, contexto del proyecto) desaparece. La siguiente sesión comienza desde cero.

agent-knowledge resuelve esto con dos sistemas complementarios:

  1. Base de conocimiento -- un repositorio de markdown sincronizado con Git de entradas estructuradas (decisiones, flujos de trabajo, contexto del proyecto) que persiste entre sesiones y máquinas.

  2. Búsqueda de sesiones -- búsqueda de texto completo clasificada por TF-IDF en las transcripciones de sesiones de todas tus herramientas de codificación, para que los agentes puedan recordar lo que sucedió antes, independientemente de la herramienta utilizada.

Related MCP server: Memory-MCP

Herramientas compatibles

Las sesiones de todos los principales asistentes de codificación de IA se auto-descubren: si una herramienta está instalada, sus sesiones aparecen automáticamente.

Herramienta

Formato

Ruta auto-detectada

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 en directorios de proyecto

Continue.dev

JSON

~/.continue/projects/

Cline

JSON

VS Code globalStorage saoudrizwan.claude-dev/tasks/

OpenCode

SQLite

~/.local/share/opencode/opencode.db (o $OPENCODE_DATA_DIR)

No se necesita configuración. Se pueden agregar raíces de sesión adicionales mediante la variable de entorno AGENT_KNOWLEDGE_EXTRA_SESSION_ROOTS (rutas separadas por comas).

Características

  • Búsqueda de sesiones independiente del host -- búsqueda unificada en todos los principales asistentes de codificación de IA (Claude Code, Cursor, Codex CLI, Aider, Continue.dev, Cline, OpenCode). Ningún nombre de host está integrado en la configuración: el registro de adaptadores sondea las raíces de host instaladas al inicio.

  • Búsqueda híbrida -- similitud semántica de vectores combinada con clasificación de palabras clave TF-IDF.

  • Base de conocimiento sincronizada con Git -- repositorio de markdown con frontmatter YAML, commit y push automáticos al escribir.

  • Detección automática de obsolescencia -- knowledge_analyze(action: "stale_by_code_activity") cruza las rutas de archivo mencionadas en el cuerpo de cada entrada con filesModified en los resúmenes de sesiones recientes. Se combina con una capa de precisión de presencia de símbolos: los identificadores que la entrada cita (backticks en línea + bloques delimitados) se verifican en el archivo modificado; si aún existen, la confianza se reduce ×0.3. Las entradas con evergreen: true están exentas.

  • Seguimiento de brechas de búsqueda -- knowledge_analyze(action: "search_gaps") muestra consultas sin resultados en los últimos since_days, agrupadas por similitud de token-Jaccard. La señal más clara de "¿qué entradas debería escribir a continuación?".

  • Empaquetador de contexto por prioridad de sección -- knowledge(action: "wakeup") ensambla un paquete de múltiples secciones (identity → active_tasks → recent_decisions → known_gotchas → last_session_summary → top_weighted → semantic_fallback) dentro de un presupuesto de tokens (por defecto 800, anulable mediante token_budget o AGENT_KNOWLEDGE_WAKEUP_BUDGET). El presupuesto de sección no utilizado se redistribuye a secciones posteriores.

  • Promotor puntuado y con compuertas -- las ideas de sesión se promueven mediante un puntuador ponderado de 6 señales con tres compuertas independientes (minScore, minRecallCount, minUniqueQueries). Se ejecuta automáticamente en segundo plano, a demanda mediante knowledge_admin(action: "promote"), o se puede evaluar sin conexión con npm run bench:promote. Emite un diario auditable .dreams/YYYY-MM-DD.md en cada ejecución.

  • Sistema de adaptadores conectables -- agrega soporte para nuevas herramientas implementando la interfaz SessionAdapter.

  • Embeddings -- proveedores locales (Hugging Face), OpenAI, Claude/Voyage o Gemini.

  • Coincidencia difusa -- búsqueda tolerante a errores tipográficos usando distancia de Levenshtein.

  • 6 ámbitos de búsqueda -- errores, planes, configuraciones, herramientas, archivos, decisiones.

  • 6 herramientas MCP -- interfaz consolidada basada en acciones (knowledge, knowledge_search, knowledge_session, knowledge_graph, knowledge_analyze, knowledge_admin).

  • Entradas perennes -- evergreen: true en el frontmatter exime a una entrada de la decadencia en la clasificación Y la hace de solo agregar bajo promoción. El panel muestra una insignia de chincheta en estas tarjetas.

  • Atribución de autor -- el frontmatter opcional author: <string> se muestra como una etiqueta atenuada en cada tarjeta.

  • Resolución de grafo de código -- tipos de arista calls, imports, inherits para estructura de código; recorrido BFS dirigido (outbound/inbound/both); bulk_link para ingesta eficiente; unlink_by_origin para limpiar aristas de código obsoletas antes de re-ingestar; IDs de nodo con prefijo code: distinguen código de conocimiento.

  • Grafo de conocimiento temporal -- las aristas admiten ventanas de validez valid_from / valid_to; las consultas as_of devuelven instantáneas en un punto del tiempo; la acción invalidate marca hechos como finalizados sin eliminarlos.

  • Impulsos de puntuación híbrida -- impulsos de nombres propios y proximidad temporal sobre la combinación TF-IDF + semántica, limitados a +66.7%, con cortocircuito cuando no hay señales presentes.

  • Categoría como impulso (no filtro) -- opta por category_mode: "boost" para que una suposición de categoría incorrecta reduzca la clasificación en lugar de descartar la respuesta correcta.

  • Indexación de sesiones verbatim -- fragmentos por mensaje (≥30 caracteres) incrustados en el almacén de vectores para que la conversación cruda sea recuperable; se alterna con AGENT_KNOWLEDGE_INDEX_VERBATIM=false.

  • URL de git configurable -- knowledge_admin(action: "config") para configuración en tiempo de ejecución, persistida en la ubicación XDG/AppData.

  • Persistencia entre máquinas -- el conocimiento se sincroniza mediante git, las sesiones se leen del almacenamiento local de cada herramienta.

  • Panel en tiempo real -- explora, busca y administra en localhost:3423.

  • Limpieza de secretos -- claves API, tokens, contraseñas y claves privadas se redactan automáticamente antes del push de git.

  • Grafo de conocimiento -- aristas de relación entre entradas (related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on) con recorrido BFS.

  • Puntuación de confianza/decadencia -- entradas puntuadas por frecuencia y recencia de acceso; auto-promoción de candidata a establecida a probada.

  • Consolidación de memoria -- detección de duplicados TF-IDF al escribir (advierte de entradas similares) más knowledge_analyze(action: "consolidate") para escaneo de deduplicación por lotes.

  • Ciclo de reflexión -- knowledge_analyze(action: "reflect") muestra entradas no conectadas y genera indicaciones estructuradas para que el agente identifique nuevas conexiones de grafo.

  • Auto-enlace al escribir -- las nuevas entradas se enlazan automáticamente a las 3 entradas existentes más similares cuando la similitud de coseno > 0.7.

  • Metadatos de confianza — entradas etiquetadas como extracted (escritas por el usuario) o inferred (auto-destiladas, multiplicador de clasificación de búsqueda 0.85×); el campo confidence_score lleva la certeza del modelo 0-1.

  • Análisis de conocimiento — acciones de knowledge_analyze god_nodes (entradas más conectadas), bridges (conectores entre categorías), gaps (entradas aisladas).

  • Resumen de conocimiento — knowledge_analyze(action: "brief") devuelve un resumen en caché de ~200 tokens (conceptos centrales, proyectos activos, decisiones recientes, recuentos de obsoletos y brechas) para la orientación al inicio de sesión.

  • Procedencia de aristas -- las aristas del grafo rastrean origin (manual, auto-link, distill, reflect) para que el análisis pueda distinguir el juicio del usuario de las heurísticas automatizadas.

  • Pre-extracción determinista en destilación -- los resúmenes de sesión ahora incluyen commits de git, patrones de error, URLs accedidas y paquetes modificados extraídos mediante regex de la salida de bash/herramientas (sin costo de LLM).

  • Metadatos de frescura en cada resultado de búsqueda -- cada resultado de conocimiento lleva freshness: { body_age_days, last_accessed, access_count, verified_at, verification_age_days, evergreen }. El agente lee la señal de confianza y decide; no imponemos degradación de política.

  • Ventanas de decadencia por categoría -- el filtro "No usado" y el gráfico por tipo respetan umbrales por categoría (proyectos 180d, personas 365d, decisiones 90d, flujos de trabajo 60d, notas 30d) para que el contenido con forma de identidad no parezca obsoleto solo porque no se relee semanalmente.

  • Ganchos de ciclo de vida -- SessionStart auto-despertar + verificación de frescura de ingesta, UserPromptSubmit inyección dirigida del primer prompt, PreCompact aviso de vaciado de memoria + destilación, SessionEnd destilación. Seis scripts de gancho en total, todos con fallo abierto, cada uno activable mediante una variable de entorno AGENT_KNOWLEDGE_*. Ver docs/HOOKS.md.

  • Reemplaza la auto-memoria del host -- en hosts con un sistema de memoria por sesión (el ~/.claude/projects/*/memory/ de Claude Code, similar en otros IDEs), enruta los hechos y comentarios duraderos del usuario a agent-knowledge en su lugar. La auto-memoria es local a la máquina e invisible para otras máquinas; agent-knowledge está sincronizado con git, es entre máquinas, buscable y aparece en el despertar. Ver la nota de integración de Claude Code en docs/USER-MANUAL.md.

Ingesta de código

La habilidad knowledge-ingest puebla o actualiza la base de conocimiento desde un directorio de código. Utiliza tree-sitter para la extracción estructural de cero tokens (clases, funciones, importaciones, grafos de llamadas, comentarios de justificación), luego agrupa archivos en subsistemas y crea entradas de conocimiento + aristas de grafo mediante las herramientas MCP existentes. Las ejecuciones posteriores son incrementales: solo se reprocesan los archivos modificados.

/knowledge-ingest ./my-project

Utiliza el estándar Agent Skills — funciona con Claude Code, OpenCode, Cursor, Codex CLI y Gemini CLI. Consulta la Guía de ingesta para más detalles.

Lenguajes compatibles: TypeScript, JavaScript, Python, Go, Rust, Java, C, C++.

Inicio rápido

Instalar desde npm

npm install -g agent-knowledge

O clonar desde el código fuente

git clone https://github.com/keshrath/agent-knowledge.git
cd agent-knowledge
npm install && npm run build

Opción 1: Servidor MCP (para agentes de IA)

Agrega a tu configuración de cliente MCP (Claude Code, Cline, etc.):

{
  "mcpServers": {
    "agent-knowledge": {
      "command": "npx",
      "args": ["agent-knowledge"]
    }
  }
}

El panel se inicia automáticamente en http://localhost:3423 en la primera conexión MCP.

Consulta la Guía de configuración para instrucciones específicas por cliente (Claude Code, Cursor, Windsurf, OpenCode).

Opción 2: Servidor independiente (para clientes REST/WebSocket)

node dist/server.js --port 3423

Herramientas MCP (6)

Base de conocimiento

Herramienta

Acción

Descripción

Parámetros

knowledge

list

Listar entradas por categoría y/o etiqueta

category?, tag?

read

Leer una entrada específica

path (obligatorio)

write

Crear/actualizar entrada (sincronización git automática)

category, filename, content (todos obligatorios)

delete

Eliminar una entrada (sincronización git automática)

path (obligatorio)

sync

git pull + push manual

--

wakeup

Devolver identidad L0 + entradas ponderadas L1 (con presupuesto de tokens)

token_budget?, category?

Búsqueda

Herramienta

Descripción

Parámetros

knowledge_search

Híbrido general TF-IDF + semántico (sin scope)

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

Recuperación limitada a sesión (cuando scope está definido)

query, scope, project?, max_results?

Forma de la respuesta: {mode: "general" | "scoped", sessions, knowledge}. El modo scoped devuelve knowledge: [] por diseño.

Ámbitos (scopes): errors, plans, configs, tools, files, decisions, all.

Controles de búsqueda:

  • mmr: true aplica reordenación por Relevancia Marginal Máxima (elimina clústeres casi duplicados en el top-K). mmr_lambda 0-1, por defecto 0.7.

  • category_mode: "boost" (por defecto) otorga a las entradas de la categoría coincidente un multiplicador de puntuación de 1.25× en lugar de descartar las que no coinciden. Pasa "filter" para un comportamiento de filtro estricto.

  • explain: true adjunta score_components: {bm25, decay, maturity, confidence, category_boost, mmr_penalty} a cada resultado de conocimiento.

Sesiones

Herramienta

Acción

Descripción

Parámetros

knowledge_session

list

Listar sesiones con metadatos

project?

get

Recuperar conversación completa de sesión

session_id, project?, include_tools?, tail?

summary

Resumen de sesión (temas, herramientas, archivos)

session_id, project?

Grafo de conocimiento

Herramienta

Acción

Descripción

Parámetros

knowledge_graph

link

Crear/actualizar arista entre entradas

source, target, rel_type, strength?

unlink

Eliminar aristas entre entradas

source, target, rel_type?

invalidate

Marcar aristas como caducadas (definir valid_to)

source, target, rel_type?, valid_to?

list

Listar aristas

entry?, rel_type?, as_of?

traverse

Recorrido BFS dirigido desde una entrada

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

bulk_link

Crear aristas por lotes (ingesta de grafo de código)

edges (array de {source, target, rel_type, strength?, origin?})

unlink_by_origin

Eliminar todas las aristas por origen

origin

Tipos de conocimiento: related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on Tipos de estructura de código: calls, imports, inherits

Direcciones de recorrido: outbound (source→target), inbound (target→source), both (por defecto, no dirigido)

Análisis

Herramienta

Acción

Descripción

Parámetros

knowledge_analyze

consolidate

Buscar entradas casi duplicadas

category?, threshold?

reflect

Buscar entradas no conectadas para enlazar

category?, max_entries?

god_nodes

Entradas más conectadas (centralidad de grado)

top_n?

bridges

Conectores entre categorías (intermediación)

top_n?

gaps

Entradas aisladas (0-1 aristas) por madurez

max_entries?

brief

Resumen de base de conocimiento en caché (~200 tokens)

--

Administración

Herramienta

Acción

Descripción

Parámetros

knowledge_admin

status

Estadísticas del almacén vectorial

--

config

Ver o actualizar configuración

git_url?, memory_dir?, auto_distill?

rebuild_embeddings

Re-embedding de todas las entradas de conocimiento (útil al cambiar de proveedor)

--

prune_orphans

Eliminar embeddings de sesiones que ya no están en disco

vacuum?, force_vacuum?

vacuum

Recuperar páginas libres en el almacén vectorial

--

promote

Promotor puntuado y con compuertas

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

Promotor puntuado

Cada candidato a nivel de proyecto se puntúa según seis señales (relevancia 0.30, frecuencia 0.24, diversidad de consultas 0.15, actualidad 0.15, consolidación 0.10, riqueza conceptual 0.06) y se somete a compuertas con minScore ≥ 0.5, minRecallCount ≥ 2, minUniqueQueries ≥ 2. Las tres compuertas deben superarse. La auto-promoción en segundo plano se controla con el mismo indicador de configuración auto_distill; invócala bajo demanda con knowledge_admin(action: "promote").

  • promote_mode: "explain" (por defecto) — puntúa y aplica compuertas a los candidatos, escribe un diario, NO toca la base de conocimiento.

  • promote_mode: "apply" — promueve los candidatos que superan las compuertas, escribe un diario, hace git-commit.

  • Cada ejecución deja ~/agent-knowledge/.dreams/YYYY-MM-DD.md con desgloses de señales por candidato y resultados de compuertas. El directorio con prefijo . está rastreado por git pero excluido de listado/búsqueda.

  • Rehidratación fundamentada: se omite un candidato si su archivo de sesión de origen ya no existe en disco (evita promover contenido eliminado).

  • Las entradas con frontmatter evergreen: true nunca se sobrescriben mediante promoción — la actividad se añade.

Banco de pruebas de escritura: npm run bench:promote — reproducción sin conexión con autoetiquetado por "referenciado en sesiones posteriores". Compara el promotor con compuertas con una línea base ingenua de "enviar todo", e informa de precisión / recall / F1. Úsalo para validar cambios de ponderación de señales o umbrales antes de implementarlos.

API REST

Método

Endpoint

Descripción

GET

/api/knowledge

Listar entradas de conocimiento

GET

/api/knowledge/search?q=

Buscar en la base de conocimiento

GET

/api/knowledge/:path

Leer una entrada específica

GET

/api/knowledge/god-nodes?top_n=

Entradas más conectadas

GET

/api/knowledge/bridges?top_n=

Conectores entre categorías

GET

/api/knowledge/gaps?max_entries=

Entradas aisladas

GET

/api/knowledge/brief

Resumen de la base de conocimiento

GET

/api/sessions

Listar sesiones

GET

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

Buscar sesiones (TF-IDF)

GET

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

Recuperación limitada

GET

/api/sessions/:id

Leer una sesión

GET

/api/sessions/:id/summary

Resumen de sesión

POST

/api/knowledge

Escribir entrada (clientes HTTP)

GET

/health

Comprobación de estado

Arquitectura

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

Grafo de conocimiento

Las entradas y los símbolos de código pueden conectarse mediante aristas tipadas y ponderadas almacenadas en una tabla SQLite dedicada edges. Se admiten once tipos de relación: 8 para aristas de conocimiento y 3 para estructura de código:

Conocimiento: related_to, supersedes, depends_on, contradicts, specializes, part_of, alternative_to, builds_on Estructura de código: calls, imports, inherits

  • knowledge_graph(action: "link") crea o actualiza una arista (con fuerza opcional 0-1)

  • knowledge_graph(action: "unlink") elimina aristas (opcionalmente filtradas por tipo)

  • knowledge_graph(action: "list") lista aristas para una entrada o tipo de relación

  • knowledge_graph(action: "traverse") realiza un recorrido BFS dirigido desde una entrada inicial. Admite direction (outbound, inbound, both) y filtro rel_type

  • knowledge_graph(action: "bulk_link") crea aristas por lotes en una sola transacción (para ingesta de grafo de código)

  • knowledge_graph(action: "unlink_by_origin") elimina todas las aristas con un origen específico (para limpiar aristas de código obsoletas antes de re-ingestar)

Grafo de código

Las aristas de estructura de código las crea la habilidad knowledge-ingest durante la ingesta del código base. Usan IDs de nodo con prefijo code::

code:src/auth/middleware.ts                    # file node
code:src/auth/middleware.ts::validateToken      # symbol node

Ejemplos de consulta:

# 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 })

Enlazado automático

Cuando knowledge con action: "write" crea o actualiza una entrada, automáticamente encuentra las 3 entradas existentes más similares mediante similitud coseno y crea aristas related_to para cualquier par que puntúe por encima de 0.7.

Puntuación de confianza y decadencia

Cada entrada de conocimiento tiene una puntuación de confianza registrada en la tabla SQLite entry_scores. Los resultados de búsqueda se clasifican usando:

finalScore = baseRelevance * 0.5^(daysSinceLastAccess / 90) * maturityMultiplier

Las entradas maduran automáticamente según el recuento de accesos:

Etapa

Accesos

Multiplicador

candidate

< 5

0.5x

established

5-19

1.0x

proven

20+

1.5x

Las entradas consultadas con frecuencia suben en los rankings de búsqueda; las entradas obsoletas decaen con el tiempo.

Capacidades de búsqueda

TF-IDF Ranking -- resultados puntuados por frecuencia de término-frecuencia inversa de documento. Los términos poco frecuentes aumentan la relevancia. Índice global en caché durante 60 segundos.

Fuzzy Matching -- distancia de edición de Levenshtein con ventana deslizante. Umbral configurable (por defecto 0.7).

Scoped Recall mediante knowledge_search con el parámetro scope:

Ámbito

Coincidencias

errors

Trazas de pila, excepciones, comandos fallidos

plans

Arquitectura, TODOs, pasos de implementación

configs

Ajustes, variables de entorno, archivos de configuración

tools

Llamadas a herramientas MCP, comandos CLI

files

Rutas de archivo, modificaciones

decisions

Compensaciones, justificación, decisiones

Integraciones

Endpoint de escritura REST

POST /api/knowledge acepta { category, filename, content } y ejecuta el pipeline completo de escritura: git pull → escritura de archivo → índice de embeddings → auto-enlace → git push → comprobación de duplicados. Devuelve { path, autoLinks?, duplicateWarnings?, git } con estado 201.

Esto permite escrituras basadas en HTTP desde otros servicios sin una conexión MCP.

agent-tasks KnowledgeBridge

agent-tasks tiene un KnowledgeBridge integrado que envía automáticamente los artefactos de learning y decision a agent-knowledge al completar la tarea. Las entradas se guardan en decisions/ con etiquetas de frontmatter (agent-tasks, nombre del proyecto, tipo de artefacto), se indexan automáticamente con embeddings y se enlazan automáticamente a entradas similares. No se necesita configuración: si agent-knowledge se está ejecutando en localhost:3423, funciona.

Pruebas

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

Variables de entorno

Todas las variables de entorno viven bajo el prefijo AGENT_KNOWLEDGE_*. No hay ningún nombre de host fijo: el registro de adaptadores detecta automáticamente los hosts de codificación de IA instalados (.claude, .cursor, .codex, .aider, .continue, OpenCode) sin configuración.

Núcleo

Variable

Por defecto

Descripción

AGENT_KNOWLEDGE_MEMORY_DIR

~/agent-knowledge

Directorio de base de conocimiento sincronizado con Git

AGENT_KNOWLEDGE_GIT_URL

--

URL remota de Git (clona automáticamente si falta el directorio)

AGENT_KNOWLEDGE_AUTO_DISTILL

true

Destila automáticamente los conocimientos de la sesión en la base de conocimiento

AGENT_KNOWLEDGE_INDEX_VERBATIM

true

Indexa fragmentos de mensajes de sesión sin procesar en el almacén vectorial para que la conversación se pueda recuperar más tarde. Establece false para ahorrar espacio en disco a escala.

AGENT_KNOWLEDGE_DATA_DIR

(config. de plataforma)

Anula la raíz de datos principal del host. Déjalo sin establecer en el caso común: los adaptadores detectan automáticamente todas las raíces de host conocidas bajo ~/.

AGENT_KNOWLEDGE_EXTRA_SESSION_ROOTS

--

Directorios de sesión adicionales, separados por comas. Se añaden a lo que encuentre la detección automática.

AGENT_KNOWLEDGE_PORT

3423

Puerto HTTP/WebSocket del panel

Embeddings

Variable

Por defecto

Descripción

AGENT_KNOWLEDGE_EMBEDDING_PROVIDER

local

local | openai | claude | gemini

AGENT_KNOWLEDGE_EMBEDDING_ALPHA

0.3

Peso de mezcla TF-IDF vs semántico (0 = semántico puro, 1 = TF-IDF puro)

AGENT_KNOWLEDGE_EMBEDDING_MODEL

--

Anula el modelo predeterminado del proveedor

AGENT_KNOWLEDGE_EMBEDDING_IDLE_TIMEOUT

60

Segundos antes de descargar el modelo local (0 = mantener cargado)

AGENT_KNOWLEDGE_EMBEDDING_THREADS

(automático)

Número de hilos ONNX / OMP para el proveedor local

Claves de API

Las anulaciones con ámbito de proyecto prevalecen sobre las claves estándar. Establece cualquiera de las dos; la forma con ámbito te permite ejecutar agent-knowledge con una clave diferente a la del resto de tu entorno.

Variable

Respaldo

Descripción

AGENT_KNOWLEDGE_OPENAI_API_KEY

OPENAI_API_KEY

Embeddings de OpenAI

AGENT_KNOWLEDGE_ANTHROPIC_API_KEY

ANTHROPIC_API_KEY

Embeddings de Claude / Voyage

AGENT_KNOWLEDGE_GEMINI_API_KEY

GEMINI_API_KEY

Embeddings de Gemini

Hooks

Variable

Por defecto

Descripción

AGENT_KNOWLEDGE_AUTOWAKE

1

Inyecta automáticamente un paquete knowledge(action: wakeup) en SessionStart. Establece 0 para desactivar.

AGENT_KNOWLEDGE_WAKEUP_BUDGET

800

Tokens para el paquete de activación

AGENT_KNOWLEDGE_FIRSTPROMPT_INJECT

1

Ejecuta una knowledge_search dirigida en el primer prompt del usuario e inyecta los mejores resultados. 0 / false / off para desactivar.

AGENT_KNOWLEDGE_FIRSTPROMPT_BUDGET

600

Tokens para la inyección del primer prompt (límite [100, 8000])

AGENT_KNOWLEDGE_FIRSTPROMPT_MAX_HITS

4

Máximo de resultados de conocimiento adjuntos al primer prompt (límite [1, 20])

AGENT_KNOWLEDGE_PRECOMPACT_NUDGE

1

Antes de la pre-compactación, incita al agente a guardar el contexto mediante knowledge(action: write). 0 desactiva la incitación; off suprime tanto la incitación como el volcado en disco.

Anulaciones de herramientas externas

Variable

Por defecto

Descripción

OPENCODE_DATA_DIR

~/.local/share/opencode

Anula dónde vive la base de datos de sesiones de OpenCode (variable propia de OpenCode, respetada por nuestro adaptador)

Documentación

  • Guía de configuración — instalación, configuración del cliente (Claude Code, OpenCode, Cursor, Windsurf), hooks, skills

  • Guía de ingesta — skill de ingesta de código, extracción con tree-sitter, actualizaciones incrementales

  • Arquitectura — estructura del código fuente, principios de diseño, esquema de base de datos

  • Panel — vistas y funciones de la interfaz web

  • Changelog

Licencia

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.

  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

Scored across 6 tools

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • 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.
    105
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides persistent, searchable memory and knowledge capture for AI-assisted development, enabling agents to retain decisions, bugs, and patterns across sessions and projects.
    MIT