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%

AIコーディングアシスタント向けのセッション横断メモリとリコール -- Claude Code、Cursor、OpenCode、Cline、Continue.dev、Aiderでそのまま動作します。Git同期ナレッジベース、ハイブリッドセマンティック+TF-IDF検索、シークレットスクラビング付き自動蒸留。

ベンチマーク: longmemeval_s で R@5 = 97.2%(スパース)/ 98.8%(ハイブリッド)、より難しい longmemeval_m 分割で 86.0%(スパース)/ 88.4%(ハイブリッド) — 公開のLongMemEval学術ベンチマーク(Wu et al. 2024, ICLR 2025)、各分割で全500問、LLM不要、APIキー不要、完全オフラインで実行。論文の公式 flat-bm25 ベースラインに対して、同一条件の再現でR@5が+8.6pp〜+13.2pp向上。カテゴリ別の完全な表、再現手順、論文比較の詳細は bench/README.md を参照。

なぜ必要か

AIコーディングセッションは一時的なものです。セッションが終わると、そこで学んだすべて(アーキテクチャ決定、デバッグの洞察、プロジェクトコンテキスト)は失われます。次のセッションはゼロから始まります。

agent-knowledge は、2つの補完的なシステムでこれを解決します:

  1. ナレッジベース -- 構造化エントリ(決定、ワークフロー、プロジェクトコンテキスト)のGit同期マークダウンボールトで、セッションやマシンを超えて永続化されます。

  2. セッション検索 -- すべてのコーディングツールのセッショントランスクリプトに対するTF-IDFランキングの全文検索で、エージェントが以前の出来事を思い出せるようにします。どのツールが使われたかに関係なく。

Related MCP server: Memory-MCP

対応ツール

主要なAIコーディングアシスタントのセッションは自動検出されます。ツールがインストールされていれば、そのセッションが自動的に表示されます。

ツール

形式

自動検出パス

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 in project dirs

Continue.dev

JSON

~/.continue/projects/

Cline

JSON

VS Code globalStorage saoudrizwan.claude-dev/tasks/

OpenCode

SQLite

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

設定は不要です。追加のセッションルートは、AGENT_KNOWLEDGE_EXTRA_SESSION_ROOTS 環境変数(カンマ区切りのパス)で追加できます。

機能

  • ホスト非依存のセッション検索 -- 主要なAIコーディングアシスタント(Claude Code、Cursor、Codex CLI、Aider、Continue.dev、Cline、OpenCode)全体での統合検索。設定にホスト名は組み込まれておらず、アダプタレジストリが起動時にインストール済みホストルートをプローブします。

  • ハイブリッド検索 -- セマンティックベクトル類似度とTF-IDFキーワードランキングをブレンド

  • Git同期ナレッジベース -- YAMLフロントマター付きマークダウンボールト、書き込み時に自動コミットとプッシュ

  • 自動陳腐化検出 -- knowledge_analyze(action: "stale_by_code_activity") は、各エントリ本文で言及されているファイルパスを、最近のセッションサマリーの filesModified と相互参照します。シンボル存在の精度レイヤーと組み合わせて:エントリが引用する識別子(インラインバッククォート+フェンスブロック)がタッチされたファイルでチェックされ、まだ存在する場合は信頼度が×0.3にダウンウェイトされます。evergreen: true のエントリは免除されます。

  • 検索ギャップ追跡 -- knowledge_analyze(action: "search_gaps") は、過去 since_days のゼロ結果クエリをトークンJaccard類似度でグループ化して表示します。「次にどのエントリを書くべきか」の最も明確なシグナルです。

  • セクション優先コンテキストパッカー -- knowledge(action: "wakeup") は、トークン予算(デフォルト800、token_budget または AGENT_KNOWLEDGE_WAKEUP_BUDGET で上書き可能)内でマルチセクションバンドル(identity → active_tasks → recent_decisions → known_gotchas → last_session_summary → top_weighted → semantic_fallback)を組み立てます。未使用のセクション予算は後のセクションに再配分されます。

  • スコア付き+ゲート付きプロモーター -- セッションインサイトは、6シグナルの重み付きスコアラーと3つの独立したゲート(minScore、minRecallCount、minUniqueQueries)でプロモートされます。バックグラウンドで自動実行、knowledge_admin(action: "promote") でオンデマンド実行、または npm run bench:promote でオフラインでベンチマーク可能。実行ごとに監査可能な .dreams/YYYY-MM-DD.md ダイアリーを出力します。

  • プラグ可能なアダプタシステム -- SessionAdapter インターフェースを実装することで新しいツールのサポートを追加

  • 埋め込み -- ローカル(Hugging Face)、OpenAI、Claude/Voyage、またはGeminiプロバイダー

  • ファジーマッチング -- Levenshtein距離によるタイポ耐性検索

  • 6つの検索スコープ -- エラー、プラン、設定、ツール、ファイル、決定

  • 6つのMCPツール -- 統合されたアクションベースのインターフェース(knowledge、knowledge_search、knowledge_session、knowledge_graph、knowledge_analyze、knowledge_admin)

  • エバーグリーンエントリ -- フロントマターの evergreen: true は、ランキングでの減衰からエントリを免除し、プロモーション下で追加専用にします。ダッシュボードはこれらのカードにピン留めバッジを表示します。

  • 著者帰属 -- オプションの author: <string> フロントマターは、各カードに控えめなチップとして表示されます。

  • コードグラフ解決 -- コード構造のための calls、imports、inherits エッジタイプ。有向BFSトラバーサル(outbound/inbound/both)。効率的な取り込みのための bulk_link。再取り込み前に古いコードエッジをクリアするための unlink_by_origin。code: プレフィックス付きノードIDはコードとナレッジを区別します。

  • 時間的ナレッジグラフ -- エッジは valid_from / valid_to の有効期間ウィンドウをサポート。as_of クエリは特定時点のスナップショットを返します。invalidate アクションは事実を削除せずに終了としてマークします。

  • ハイブリッドスコアリングブースト -- 固有名詞と時間的近接性のブーストをTF-IDF+セマンティックブレンドに追加し、+66.7%で上限、シグナルがない場合はショートサーキット。

  • カテゴリをフィルタではなくブーストとして -- category_mode: "boost" をオプトインすると、カテゴリの推測が間違っていても正しい答えを破棄せずにランクを下げるだけになります。

  • 逐語セッションインデックス -- メッセージごとのチャンク(30文字以上)をベクトルストアに埋め込み、生の会話を検索可能にします。AGENT_KNOWLEDGE_INDEX_VERBATIM=false で切り替え。

  • 設定可能なGit URL -- ランタイムセットアップ用の knowledge_admin(action: "config")。XDG/AppDataの場所に永続化。

  • クロスマシン永続化 -- ナレッジはgitで同期され、セッションは各ツールのローカルストレージから読み取られます。

  • リアルタイムダッシュボード -- localhost:3423 で閲覧、検索、管理。

  • シークレットスクラビング -- APIキー、トークン、パスワード、秘密鍵はgitプッシュ前に自動的に編集されます。

  • ナレッジグラフ -- エントリ間の関係エッジ(related_to、supersedes、depends_on、contradicts、specializes、part_of、alternative_to、builds_on)とBFSトラバーサル。

  • 信頼度/減衰スコアリング -- エントリはアクセス頻度と新しさでスコアリングされ、候補から確立、実証済みへ自動プロモーション。

  • メモリ統合 -- 書き込み時のTF-IDF重複検出(類似エントリの警告)に加え、knowledge_analyze(action: "consolidate") によるバッチ重複スキャン。

  • リフレクションサイクル -- knowledge_analyze(action: "reflect") は接続されていないエントリを表面化し、エージェントが新しいグラフ接続を特定するための構造化プロンプトを生成します。

  • 書き込み時の自動リンク -- 新しいエントリは、コサイン類似度が0.7を超える場合、上位3件の類似既存エントリに自動的にリンクされます。

  • 信頼度メタデータ — エントリは 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)を追跡し、分析がユーザーの判断と自動ヒューリスティックを区別できるようにします。

  • 蒸留における決定的事前抽出 — セッションサマリーには、bash/ツール出力から正規表現で抽出されたgitコミット、エラーパターン、アクセスしたURL、変更されたパッケージが含まれます(LLMコストなし)。

  • すべての検索ヒットに鮮度メタデータ — すべてのナレッジ結果には freshness: { body_age_days, last_accessed, access_count, verified_at, verification_age_days, evergreen } が付属します。エージェントは信頼シグナルを読み取って判断します。ポリシーによる降格は課しません。

  • カテゴリ別減衰ウィンドウ — 「未使用」フィルタとタイプ別チャートは、カテゴリ別のしきい値(プロジェクト180日、人365日、決定90日、ワークフロー60日、ノート30日)を尊重するため、アイデンティティ型のコンテンツが毎週再読されないだけで古く見えることはありません。

  • ライフサイクルフック — SessionStart 自動ウェイクアップ+取り込み鮮度チェック、UserPromptSubmit 最初のプロンプトへのターゲット注入、PreCompact メモリフラッシュの促し+蒸留、SessionEnd 蒸留。合計6つのフックスクリプト、すべてフェイルオープン、各 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サーバー(AIエージェント向け)

MCPクライアント設定(Claude Code、Clineなど)に追加:

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

ダッシュボードは最初のMCP接続時に http://localhost:3423 で自動起動します。

クライアント固有の手順(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: [] を返します。

スコープ: errors, plans, configs, tools, files, decisions, all。

検索ノブ:

  • mmr: true はMaximal Marginal Relevance(最大限界関連性)による再ランキングを適用します(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(source→target)、inbound(target→source)、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?

スコアリング付きプロモーター

プロジェクトレベルの各候補は6つのシグナル(関連性0.30、頻度0.24、クエリ多様性0.15、新しさ0.15、統合性0.10、概念豊富さ0.06)でスコアリングされ、minScore ≥ 0.5、minRecallCount ≥ 2、minUniqueQueries ≥ 2 のゲートで制御されます。3つのゲートすべてを通過する必要があります。バックグラウンドでの自動プロモーションは同じ auto_distill 設定フラグで制御されます。オンデマンドで knowledge_admin(action: "promote") を呼び出します。

  • promote_mode: "explain"(デフォルト)— 候補のスコアリング + ゲート判定、日記の書き込み、KBには一切触れません。

  • promote_mode: "apply" — ゲートを通過した候補をプロモートし、日記を書き、gitコミットします。

  • 実行のたびに ~/agent-knowledge/.dreams/YYYY-MM-DD.md に候補ごとのシグナル内訳とゲート結果を出力します。. で始まるディレクトリはgit追跡されますが、一覧・検索からは除外されます。

  • 根拠に基づく再水和: ソースセッションファイルがディスク上に存在しない候補はスキップされます(削除されたコンテンツのプロモートを防止)。

  • 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

ナレッジグラフ

エントリとコードシンボルは、専用の edges SQLiteテーブルに保存された型付き・重み付きエッジを介して接続できます。11種類のリレーションシップタイプがサポートされています — ナレッジエッジ用に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: プレフィックス付きのノードIDを使用します:

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" がエントリを作成・更新すると、コサイン類似度によって既存エントリの上位3件の類似エントリを自動的に検索し、0.7を超えるスコアのペアに対して related_to エッジを作成します。

信頼度 & 減衰スコアリング

各ナレッジエントリには、entry_scores SQLiteテーブルで追跡される信頼度スコアがあります。検索結果は以下を使用してランキングされます:

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

エントリはアクセス数に基づいて自動的に成熟します:

ステージ

アクセス数

倍率

candidate

< 5

0.5x

established

5-19

1.0x

proven

20+

1.5x

頻繁にアクセスされるエントリは検索ランキングで上位に表示され、古いエントリは時間の経過とともに減衰します。

検索機能

TF-IDFランキング -- 結果はTF-IDF(Term Frequency-Inverse Document Frequency)でスコアリングされます。希少な用語ほど関連性が高まります。グローバルインデックスは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 → 重複チェック)を実行します。ステータス201で { path, autoLinks?, duplicateWarnings?, git } を返します。

これにより、MCP接続なしで他のサービスからHTTPベースの書き込みが可能になります。

agent-tasks KnowledgeBridge

agent-tasks には組み込みの KnowledgeBridge があり、タスク完了時に learning および decision アーティファクトを agent-knowledge に自動プッシュします。エントリはフロントマタータグ(agent-tasks、プロジェクト名、アーティファクトタイプ)付きで decisions/ に配置され、埋め込みで自動インデックス化され、類似エントリに自動リンクされます。設定は不要です。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

--

GitリモートURL(ディレクトリが存在しない場合は自動クローン)

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のセッションDBの場所を上書きします(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.

  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