メインコンテンツまでスキップ

ナレッジと MCP

RAG パイプライン

PDF をアップロードし、ベクトル類似検索で内容について質問できます:

CHROMA_DIR=.chroma
RAG_COLLECTION_NAME=default
RAG_TOP_K=5
EMBEDDING_DEPLOYMENT_NAME=text-embedding-3-small
RAG_CHUNK_SIZE=800
RAG_CHUNK_OVERLAP=200
# RAG_CHUNK_MIN_SIZE=200 # 未設定 -> RAG_CHUNK_SIZE // 4、0 で末尾結合を無効化

手順:

  1. + -> Attach PDF で文書をアップロード
  2. エージェントに依頼: 「この文書を取り込んで」
  3. バッチジョブ実行: PDF 解析 -> チャンク化 -> 埋め込み -> ChromaDB 保存
  4. 質問: 「文書には X について何が書いてある?」
  5. エージェントが出典付き(ファイル名・ページ)で回答

ポイント: ファイルベースの ChromaDB 保存、シングルトン埋め込みクライアント (資格情報解決と TLS ハンドシェイクはバッチプロセスごとに 1 回)、末尾結合付きの オーバーラップチャンク化、メタデータによる出典、再取り込み時の自動重複排除、チャット 内の PDF ファイルカード。RAG には同梱のバッチ処理サーバ(下記)が必要です。

バッチ処理

長時間タスク(RAG 取り込み、データパイプライン)をリアルタイムダッシュボード付きの バックグラウンドジョブとして実行します。同梱の backend/mcp_servers.default.jsonc が既にバッチサーバを登録済みです。ジョブディレクトリやバッチ単位の上書きを変えたい ときだけ backend/mcp_servers.jsonc にコピーして編集します:

{
"mcpServers": {
"batch": {
"command": "uv",
"args": ["run", "python", "-m", "app.mcp_batch.server"],
// BATCH_JOBS_DIR と RAG_CHUNK_* は backend/.env にあり load_dotenv で
// 読み込まれます。ここにキーを足すのはバッチ単位の上書きを固定する場合のみ。
"env": {},
"load_prompts": false
}
}
}
  • 会話ベースの管理 -- チャットから投入・監視・キャンセル・削除
  • MCP Apps ダッシュボード -- 自動更新のプログレスバー、確認付きのキャンセル/削除
  • ファイルベース永続化 -- 各ジョブは JSON ファイル(クラッシュ耐性)
  • 協調キャンセル -- 各チェックポイントでキャンセルフラグを確認

MCP 連携

Model Context Protocol を介して外部ツールを接続 します(Claude Desktop 互換設定)。ChatWalaʻau は同梱デフォルト (mcp_servers.default.jsonc)を持ち、オペレータ上書き(mcp_servers.jsonc、 gitignore 済み)を優先します。初回のコピーは不要です。

# 任意: 既定は mcp_servers.jsonc。空にすると MCP を無効化。
# MCP_CONFIG_FILE=mcp_servers.jsonc
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/workspace"]
},
"remote-api": {
"url": "https://api.example.com/mcp",
"headers": { "Authorization": "Bearer token" }
}
}
}
  • JSONC -- ///* */ コメントを除去。厳密 JSON もそのまま受理するため、既存 の Claude Desktop / Claude Code / Cursor 設定を再利用可能
  • stdio サーバ(command)は起動され、HTTP/SSE サーバ(url)は接続される
  • MCP ツールは組み込みツールと並び、Plug アイコンで表示
  • サーバのライフサイクルは自動管理(ゾンビプロセス防止つき)
  • 任意のサーバ単位フィールド: "load_prompts": trueprompts/list 実装サーバ向け。 既定 false)、"load_tools": false"request_timeout": 30

MCP Apps

MCP ツールが _meta.ui リソースを宣言すると、その HTML View がチャット内の インタラクティブ UI として、安全な二重 iframe サンドボックスで描画されます。

# MCP_APPS_SANDBOX_PORT=8081 # 任意のサンドボックスプロキシポート
  • 二重 iframe サンドボックス -- View は別オリジンで動作し、ホストの DOM・ Cookie・ストレージにアクセス不可。CSP が既定で外部リソースを遮断
  • 監査可能 -- View からサーバへの通信はすべてホスト経由でプロキシ
  • 表示モード -- インラインとフルスクリーン。セッション永続化で View HTML を 保存し再読込に対応
  • 段階的強化 -- UI が使えない場合はテキストとして動作

設定不要で自動的に有効化され、サンドボックスプロキシは MCP サーバと同時に起動します。