メインコンテンツまでスキップ
v0.129.0 で App Settings へ移動

本ページの調整値は .env ではなく、アプリ内の App Settings 画面(サイドバー下部の スライダーアイコン)で設定し、app_settings.jsonc に保存されます。.env に残った値は 無視され、起動ログにキー名が 1 度だけ列挙されます。既存の設定を引き継ぐには chatwalaau settings migrate --write を実行してください。機能の有効化ゲートシークレット.env のままです。 詳細は 設定 -> アプリケーション設定

ナレッジと MCP

RAG パイプライン

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

RAG にはモデルオファリングカタログ(model_offerings.jsonc)の embeddings オファリング が必要です。作成はアプリ内の App 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 検索・取り込みは追加を促す明確なメッセージを返し ます(アプリは通常どおり起動します)。

手順:

  1. + -> Attach PDF で文書をアップロード
  2. 取り込みジョブを投入 -- エージェントに 「この文書を取り込んで」 と依頼するか、 Pipelines ポータル(下記)を開いてファイルパスを指定し rag-ingest を投入
  3. パイプラインジョブ実行: PDF 解析 -> チャンク化 -> 埋め込み -> ChromaDB 保存
  4. 質問: 「文書には X について何が書いてある?」
  5. エージェントが出典付き(ファイル名・ページ)で回答

ポイント: ファイルベースの 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/*)は同じエンジンと ストアを共有するため、チャットとポータルが食い違うことはありません。

DEMO_MODE での動作

デモホストではパイプラインは読み取り専用になります。ポータル・ジョブ一覧・実行履歴は そのまま利用できます(機能を隠すのではなく見せます)が、投入・キャンセル・削除は 409 で 拒否され、manage_pipeline ツールはエージェントに提供されません。

理由は、すべての rag-ingest ジョブが、同梱デモコーパスを配信しているのと同じベクトル コレクションに書き込むためです。そのままでは、ある来訪者がアップロードした文書が別の 来訪者の引用として返ってしまいます。REST エンドポイントだけを塞いでも不十分でした —— エージェントツールは同じエンジンを通して書き込むため、チャットで「この PDF を取り込んで」 と言えば通ってしまいます。

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 ツールを実行中に管理する

MCP ツールが多いと、毎ターンの入力トークンを消費します(各ツールの名前・説明・スキーマ がモデルへ送られます)。MCP Tools マネージャを使うと、使っていないツールを設定編集や 再起動なしで無効化できます。

  • サイドバー フッターPlug(MCP) アイコンから開きます(v0.166.0 でチャット 入力欄から移動しました)。アイコンはマネージャのエンドポイントへ到達可能なら常に表示 され、サーバが未接続なら設定パスと Reload ボタンを備えた空状態が開きます。 フッターが混んでいる場合は右端の ... メニューを確認してください。
  • /popup/sidebar のウィンドウはサイドバーを表示しないため、この管理画面には 到達できません。MCP ツール自体はそれらの画面でも動作します。移動したのは入口だけです。
  • モーダルはウィンドウの約 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 サーバと同時に起動します。