Skip to main content
Glama
hailampy123

solid-knowledge-ai

by hailampy123

Solid Knowledge AI

マルチソースのドキュメント知識アシスタントで、自己反省型のLangGraphエージェントによって駆動されます。PDF + Markdown + Webページを1つのベクターストアに取り込み、自身の検索結果を評価し、回答が根拠に基づいているかを検証するエージェントを通じて質問に回答します。いずれかのチェックが失敗した場合は、書き換えたクエリで再試行し、回答を根拠付けできない場合は捏造を拒否します。Langfuseでトレースされ、DeepEvalで品質テストされ、MCP経由で公開されます。

エージェンティック開発を紹介するために構築されました: LangGraph · LiteLLM · ChromaDB · MCP · Langfuse · DeepEval

なぜこれが「単なるRAG」ではないのか

このエージェントは修正型 / 自己反省型RAGループであり、線形のretrieve → generateチェーンではありません:

question
   │
   ▼
 route ──chitchat/out_of_scope──▶ generate ──▶ END
   │ kb
   ▼
retrieve ──▶ grade_docs ──irrelevant (rewrite query, retry)──▶ retrieve
                 │ relevant
                 ▼
             generate ──▶ self_check ──ungrounded (retry)──▶ retrieve
                              │ grounded / budget spent
                              ▼
                     answer + citations  (or an honest "I don't know")
  • route — 雑談や範囲外の質問では検索をスキップします。

  • grade_docs — LLMによる関連性ゲート。失敗した場合はクエリを書き換えて再試行します。

  • self_check — 下書きした回答が取得したコンテキストによって含意されているかを検証します。 そうでない場合は、幻覚を起こす代わりに再試行するか、曖昧な回答にします。

  • 共有の再試行予算max_retries、デフォルト2)が両方のループを制限します。

  • Memory — SQLiteチェックポインターがthread_idごとにマルチターン会話状態を保持します。

Related MCP server: PDF MCP Server

クイックスタート

# 1. Install (Python 3.11+, uv)
uv sync

# 2. Configure — only ANTHROPIC_API_KEY is required
cp .env.example .env      # then edit .env

# 3. Ingest the sample corpus (2 Markdown + 1 PDF + 1 Wikipedia article)
uv run skai ingest        # -> builds ./.chroma  (local MiniLM embeddings, no API)

# 4. Ask (defaults to Haiku 4.5; switch per-call with --model)
uv run skai ask "What do orcas eat?"
uv run skai ask "How do orcas communicate?" --source md
uv run skai ask "Summarize orca threats" --model sonnet   # haiku | sonnet (Opus blocked)

# 5. Multi-turn chat (remembers the conversation)
uv run skai chat

# 6. Web UI (chat + feedback + live data ingestion)
uv run skai ui        # http://localhost:7860

# 7. Serve over MCP (stdio) for Claude Desktop / an IDE
uv run skai mcp

Web UI

skai uiは、ライブデモに必要な機能を備えたGradioアプリを起動します:

  • Chat — セッションごとのメモリ付き。各回答にはソース、ルート、モデルが表示されます。

  • すべての応答後のフィードバック — 👍/👎 + 任意のコメント。SQLite (.skai/feedback.sqlite)に保存され、トレースが有効な場合はそのターンのトレースに対するLangfuseスコアとしても プッシュされます。これがクローズドループです: 実際の使用が評価シグナルになります。

  • 最初の対話をガイドするサンプルプロンプト

  • ナレッジベースをライブで拡張.md/.txt/.pdfをアップロードするか、URLを貼り付けると、その場で Chromaに取り込まれます。デモはシードコーパスに限定されません。

  • モデル(haiku/sonnet)とソースフィルター(all/pdf/md/web)のセレクター。

フィードバックはskai.feedback.export_jsonlを介してJSONL評価シードにエクスポートできます。

コマンド

Command

説明

skai ingest [--path data/docs --urls data/urls.txt --reset]

読み込み → チャンク分割 → 埋め込み → Chromaに永続化

skai ask "..." [--source pdf|md|web] [--thread-id X]

引用付きのワンショット質問

skai chat

メモリ付きの対話型マルチターンチャット

skai ui [--port 7860 --share]

Gradio Web UI: チャット、フィードバック、ライブ取り込み

skai mcp

search_kbaskを公開するMCPサーバーを実行

skai eval

DeepEval品質スイートを実行(--group eval + キーが必要)

MCPクライアント設定

サーバーは2つのツールを公開します — search_kb(query, source_type?)(生の検索)とask(question)(フルエージェント)。MCPクライアントをそれに向けます:

{
  "mcpServers": {
    "solid-knowledge-ai": {
      "command": "uv",
      "args": ["run", "skai", "mcp"],
      "cwd": "/absolute/path/to/solid-knowledge-ai"
    }
  }
}

モデル選択

デフォルトはHaiku 4.5(高速、低コスト — Q&Aルーター+グレーダー+ジェネレーターループに適しています)。--modelで呼び出しごとに切り替えるか、.envSKAI_MODELでグローバルに切り替えます:

Value

解決先

haiku (default)

anthropic/claude-haiku-4-5

sonnet

anthropic/claude-sonnet-4-5

任意のLiteLLM ID

そのまま渡されます(例: openai/gpt-4o-mini

Opusは意図的にブロックされています(resolve_modelが例外を発生させる)。そのため、アシスタントが誤って最も高価なティアを指すことはありません。

可観測性

.envLANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEY(およびオプションでLANGFUSE_HOST)を設定します。すると、すべてのグラフ実行で、ノードごとおよびLLM呼び出しごとにスパンを持つ1つのトレースが生成されます。キーがない場合、トレースは完全なノーオペレーションです — 他には何も変わりません。

品質評価(DeepEval)

uv sync --group eval
export ANTHROPIC_API_KEY=...
uv run skai ingest
uv run --group eval pytest evals -v      # or: skai eval

判定者はLiteLLM経由のClaudeなので、OpenAIキーは不要です。メトリクス: 忠実性、回答関連性、文脈関連性 — さらに低コストのキーワードゲート。

テスト

uv run pytest        # 39 tests, fully offline: no network, no API keys

LLMは依存性注入されているため、テストではグラフ全体が決定的なスタブに対して実行され、Chromaは決定的なインプロセス埋め込み関数を使用します。

構成方法

src/skai/
  config.py            settings (.env)              agent/llm.py     ChatLiteLLM -> Claude
  models.py            Document/Chunk/AgentState    agent/nodes.py   route/retrieve/grade/generate/self_check
  ingest/loaders.py    pdf | md | web  -> Document  agent/prompts.py node prompts
  ingest/chunk.py      source-aware splitting       agent/graph.py   StateGraph + SQLite memory
  ingest/store.py      Chroma add/query             observability.py Langfuse handler (or no-op)
  cli.py               ingest|ask|chat|mcp|eval     mcp_server.py    search_kb / ask as MCP tools
evals/                 DeepEval suite               tests/           offline unit + graph tests

エージェントグラフとコンポーネント図(Mermaid): docs/ARCHITECTURE.mdを参照してください。設計根拠と技術トレードオフ: docs/DECISIONS.mdを参照してください。

ステータス

検証済み: uv run skai ingestは3つのソースタイプすべて(md 2 + pdf 1 + web 1 → 170チャンク)を読み込み、実際のセマンティック検索が関連するパッセージを返します。39のオフラインテストが合格します。ask/chat/evalにはANTHROPIC_API_KEYが必要です。

F
license - not found
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables intelligent search and question-answering over PDF documents using semantic similarity and keyword search. Supports OCR for scanned PDFs, persistent vector storage with ChromaDB, and maintains source tracking with page numbers.
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered querying of PDF documents using hybrid retrieval (BM25 + vector search) and retrieval-augmented generation, returning structured answers with source citations and confidence scores.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Convert PDF documents to Markdown and query them using AI with source attribution and confidence scoring, supporting multiple LLM providers.
    MIT

View all related MCP servers

Related MCP Connectors

  • Governed, auditable knowledge your team curates for its AI assistants, self-hostable

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Your company's brain for AI agents. Cited, permission-aware knowledge across every system.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hailampy123/solid-knowledge-ai'

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