ナレッジと MCP
RAG パイプライン
PDF をアップロードし、ベクトル類似検索で内容について質問できます。
RAG にはモデルオファリングカタログ(model_offerings.jsonc)の embeddings オファリング
が必要です。作成はアプリ内の Model Settings 画面、chatwalaau models add、または手動で
行えます:
{
"id": "embed",
"provider": "azure-openai",
"operations": ["embeddings"],
"model_ref": "text-embedding-3-small"
}
パイプラインの設定値は(モデルルーティングではないため)引き続き通常の .env の値です:
CHROMA_DIR=.chroma
RAG_COLLECTION_NAME=default
RAG_TOP_K=5
RAG_CHUNK_SIZE=800
RAG_CHUNK_OVERLAP=200
# RAG_CHUNK_MIN_SIZE=200 # 未設定 -> RAG_CHUNK_SIZE // 4、0 で末尾結合を無効化
embeddings オファリングが無い場合、RAG 検索・取り込みは追加を促す明確なメッセージを返し ます(アプリは通常どおり起動します)。
手順:
- + -> Attach PDF で文書をアップロード
- 取り込みジョブを投入 -- エージェントに 「この文書を取り込んで」 と依頼するか、
Pipelines ポータル(下記)を開いてファイルパスを指定し
rag-ingestを投入 - パイプラインジョブ実行: PDF 解析 -> チャンク化 -> 埋め込み -> ChromaDB 保存
- 質問: 「文書には X について何が書いてある?」
- エージェントが出典付き(ファイル名・ページ)で回答
ポイント: ファイルベースの ChromaDB 保存、シングルトン埋め込みクライアント (資格情報解決と TLS ハンドシェイクはプロセスごとに 1 回)、末尾結合付きの オーバーラップチャンク化、メタデータによる出典、再取り込み時の自動重複排除、チャット 内の PDF ファイルカード。取り込みは Pipeline ジョブエンジン(下記、組み込み)で実行されます。
Pipeline ジョブ
データ処理タスク(現在は RAG 取り込み、今後ジョブ種別を追加)をインプロセスの パイプラインエンジンと専用の管理画面で実行します。サイドバー下部の Pipelines アイコン(Declarative Agents の隣)から:
- ジョブ種別フォームから投入(例:
rag-ingestに PDF パス) - プログレスバーで進捗をライブ表示
- 実行中ジョブのキャンセル、終了ジョブの削除
- 実行履歴の確認 -- 各実行は開いて見られる取得ログを保持
既定で有効(PIPELINE_ENABLED=true)。パイプラインジョブは curated な
インプロセスジョブ種別(shell なし、CODING_ENABLED 不要)で、スケジュールスクリプト
を実行し既定で無効の Cron スケジューラとは区別されます。設定:
# Pipeline ジョブ(インプロセスのデータ処理エンジン)
PIPELINE_ENABLED=true
PIPELINE_JOBS_DIR=.pipeline # 1ジョブ1 JSON + output/{job}/{run}/ 実行ログ
PIPELINE_OUTPUT_MAX_BYTES=1048576 # 実行ごとの取得ログ上限
PIPELINE_MAX_CONCURRENT_JOBS=2
エージェントは manage_pipeline ツール(submit / list / get / cancel / delete)でも
ジョブを管理できます。エージェントツールと REST API(/api/pipeline/*)は同じエンジンと
ストアを共有するため、チャットとポータルが食い違うことはありません。
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": true(prompts/list実装サーバ向け。 既定false)、"load_tools": false、"request_timeout": 30
MCP ツールを実行中に管理する
MCP ツールが多いと、毎ターンの入力トークンを消費します(各ツールの名前・説明・スキーマ がモデルへ送られます)。MCP Tools マネージャを使うと、使っていないツールを設定編集や 再起動なしで無効化できます。
- チャット入力欄のコントロール行にある Plug(MCP) アイコンから開きます。アイコンは マネージャのエンドポイントへ到達可能なら常に表示され、サーバが未接続なら設定パスと Reload ボタンを備えた空状態が開きます。
- モーダルはウィンドウの約 90% で開き、左にサーバ一覧、右に詳細ペインを表示します。 サーバ全体、または個別ツールを切り替えられます(サーバが提供していればツールの説明も 表示)。
- 保存ボタンは変更後にのみ有効化されます。保存時は確認のうえ、適 用中は 「エージェント再構築中」のインジケータを表示します。未保存の変更があるまま閉じようと すると、保存か破棄かを確認します。
- 保存するとエージェントを再構築し、次のメッセージから選択したツールだけを使います。 選択はメモリのみで保持され、再起動するとすべての MCP ツールが再び有効になります。
- Reload(フッタ+空状態)は
mcp_servers.jsoncを再パースしてサーバを完全に再接続し、 エージェントを再構築します。設定で追加・編集したサーバを再起動なしで反映できます。 Reload は確認のうえ、同じブロッキングインジケータを表示します。設定済みだが未接続の サーバは、再接続するまでトグルが無効化され「Reload で反映」のヒントが表示されます。 - このマネージャはオペレータ向け機能で、他の書き込み系エンドポイントと同じ認証で保護され ます(localhost は除外)。設定はそのサーバの全ユーザに適用されます。
MCP Apps
MCP ツールが _meta.ui リソースを宣言すると、その HTML View がチャット内の
インタラクティブ UI として、安全な二重 iframe サンドボックスで描画されます。
# MCP_APPS_SANDBOX_PORT=8081 # 任意のサンドボックスプロキシポート
- 二重 iframe サンドボックス -- View は別オリジンで動作し、ホストの DOM・ Cookie・ストレージにアクセス不可。CSP が既定で外部リソースを遮断
- 監査可能 -- View からサーバへの通信はすべてホスト経由でプロキシ
- 表示モード -- インラインとフルスクリーン。セッション永続化で View HTML を 保存し再読込に対応
- 段階的強化 -- UI が使えない場合はテキストとして動作
設定不要で自動的に有効化され、サンドボックスプロキシは MCP サーバと同時に起動します。