エージェント・ブリックを作成する: - **ナレッジ・アシスタント(KA)**:文書への質問応答を行う知識支援機能 - **スーパーバイザー・エージェント**:複数のエージェント間の協調制御(マルチエージェント・オーケストレーション)を行う管理機能
Create Agent Bricks: Knowledge Assistants (KA) for document Q&A and Supervisor Agents for multi-agent orchestration (MAS).
Agent Bricksはデータベース管理プラットフォーム「Databricks」内に組み込まれた、会話型インターフェース(人間が自然な言葉で対話できる仕組み)を提供する事前構築AI部品です。このスキルはナレッジアシスタントとスーパーバイザーエージェントを扱います。
| 部品 | 目的 | このスキルで対応 |
|---|---|---|
| ナレッジアシスタント(KA) | PDFやテキストに対する質問応答(RAG:関連情報検索技術を使用) | ✓ |
| スーパーバイザーエージェント | 複数のエージェント(KA、APIエンドポイント、UC関数、MCP)を統合・指揮 | ✓ |
# ボリューム(データ保存領域)を探す
databricks volumes list CATALOG SCHEMA
databricks experimental aitools tools query --warehouse WH "LIST '/Volumes/catalog/schema/volume/'"
# ナレッジアシスタントを作成
databricks knowledge-assistants create-knowledge-assistant "名前" "説明"
# 知識ソースを追加。--json使用時は親階層のみを位置引数で渡し、
# display_name/description/source_type と source本体(files|index|file_table)
# をJSON内に記述。位置引数とJSONを混在させるとエラー
databricks knowledge-assistants create-knowledge-source \
"knowledge-assistants/{ka_id}" \
--json '{
"display_name": "ドキュメント",
"description": "ドキュメンテーション",
"source_type": "files",
"files": {"path": "/Volumes/catalog/schema/volume/"}
}'
# 同期実行とステータス確認
databricks knowledge-assistants sync-knowledge-sources "knowledge-assistants/{ka_id}"
databricks knowledge-assistants get-knowledge-assistant "knowledge-assistants/{ka_id}"
# 一覧表示・管理
databricks knowledge-assistants list-knowledge-assistants
databricks knowledge-assistants delete-knowledge-assistant "knowledge-assistants/{ka_id}" # 取り消し不可—IDを確認してから実行
ソースの種類: files(ボリュームパス)または index(ベクトル検索:index.index_name、index.text_col、index.doc_uri_col)
ステータス: CREATING(2~5分) → ONLINE → OFFLINE
ネイティブコマンド:databricks supervisor-agents(ベータ版、CLI v1.0.0以上が必須)。リソースパスは supervisor-agents/{id} の形をしており、すべてのコマンドはこのフルパスまたはそれと同じ形の親階層を受け取ります。list-supervisor-agentsとlist-examples/list-toolsは配列状のJSON(複数データのセット)を返します。
# スーパーバイザーエージェントを作成(表示名は位置引数、説明・指示はフラグ)
databricks supervisor-agents create-supervisor-agent "My Supervisor" \
--description "特定の質問を専門エージェントに振り分ける" \
--instructions "データ質問をアナリストへ、ドキュメント質問をdocs_agentへ振り分ける"
# → {name: "supervisor-agents/<uuid>", endpoint_name: "mas-<short>-endpoint", ...} を返す
# 一覧表示・取得・名前で検索
databricks supervisor-agents list-supervisor-agents
databricks supervisor-agents get-supervisor-agent supervisor-agents/<id>
databricks supervisor-agents list-supervisor-agents | jq '.[] | select(.display_name == "My Supervisor")'
# 更新—UPDATE_MASK と新しいDISPLAY_NAMEが位置引数;説明・指示はオプショナルフラグ
databricks supervisor-agents update-supervisor-agent supervisor-agents/<id> \
"display_name,description,instructions" "My Supervisor (v2)" \
--description "..." --instructions "..."
# 削除(取り消し不可—IDを確認してから実行)
databricks supervisor-agents delete-supervisor-agent supervisor-agents/<id>
各ツールはスーパーバイザーを下流のリソースに接続します。tool_typeは--json内に記述します(--json使用時は位置引数として受け付けません)。各タイプには型固有のブロック(genie_space、knowledge_assistantなど)があり、その識別子フィールドは型によって異なります。下の表を参照してください。
# Genieスペースを接続—space_idは「databricks genie list-spaces」で探す
databricks supervisor-agents create-tool supervisor-agents/<id> analyst --json '{
"tool_type": "genie_space",
"description": "分析ウェアハウスにおけるSQL分析",
"genie_space": {"id": "<genie_space_id>"}
}'
# ナレッジアシスタントを接続—ka_idは「databricks knowledge-assistants list-knowledge-assistants」で探す
databricks supervisor-agents create-tool supervisor-agents/<id> docs_agent --json '{
"tool_type": "knowledge_assistant",
"description": "製品ドキュメントからの回答",
"knowledge_assistant": {"knowledge_assistant_id": "<ka_id>"}
}'
# ツール一覧・取得・削除
databricks supervisor-agents list-tools supervisor-agents/<id>
databricks supervisor-agents get-tool supervisor-agents/<id>/tools/<tool_id>
databricks supervisor-agents delete-tool supervisor-agents/<id>/tools/<tool_id>
ツール種別 (tool_type値 → 型固有ブロック):
tool_type |
ブロック | 用途 |
|---|---|---|
genie_space |
{"id": "<space_id>"} |
自然言語をGenie経由でSQLに変換 |
knowledge_assistant |
{"knowledge_assistant_id": "<ka_id>"} |
ナレッジアシスタント経由でドキュメント質問に応答 |
uc_function |
{"name": "catalog.schema.func"} |
UC SQL/Python関数 |
uc_connection |
{"name": "<connection_name>"} |
外部MCPサーバーをUC HTTP接続経由で利用 |
volume |
{"name": "<full_volume_name>"} |
UCボリューム閲覧 |
app |
{"name": "<app_name>"} |
Databricksアプリ |
その他(serving_endpoint、lakeview_dashboard、supervisor_agent、uc_table、vector_search_index、catalog、schema、web_search) |
ブロック名とフィールド形式は異なる | 「databricks supervisor-agents create-tool --help」を実行して確認してください。これらは検証未了です |
例題は--jsonを使う必要があります。位置引数のGUIDELINESは複数文字列を受け付けないため、エンコード方法がありません。
databricks supervisor-agents create-example supervisor-agents/<id> --json '{
"question": "Q4売上高の数字は?",
"guidelines": ["アナリストGenieスペースへ振り分け", "常に地域ごとに集計"]
}'
databricks supervisor-agents list-examples supervisor-agents/<id>
databricks supervisor-agents get-example supervisor-agents/<id>/examples/<ex_id>
databricks supervisor-agents delete-example supervisor-agents/<id>/examples/<ex_id>
エンドポイント準備状況: create-supervisor-agent実行後、提供用エンドポイント(質問に答えるサーバー)がオンライン状態になるまで約10分かかり、その後で質問に応答できるようになります。get-supervisor-agentはエンドポイント名をすぐに返しますが、クエリ実行はエンドポイント自体の準備状況に依存します。「databricks serving-endpoints get <endpoint_name>」で確認できます。
| トピック | ファイル |
|---|---|
| ナレッジアシスタント:ソース種別、ベクトル検索インデックス、トラブルシューティング | references/1-knowledge-assistants.md |
| UC関数、MCPサーバー、例題 | references/2-supervisor-agents.md |
Agent Bricks are pre-built AI tiles in Databricks that provide conversational interfaces. This skill covers Knowledge Assistants and Supervisor Agents.
| Brick | Purpose | This Skill |
|---|---|---|
| Knowledge Assistant (KA) | Document Q&A using RAG on PDFs/text in Volumes | ✓ |
| Supervisor Agent | Orchestrates multiple agents (KA, endpoints, UC functions, MCP) | ✓ |
# Find volumes
databricks volumes list CATALOG SCHEMA
databricks experimental aitools tools query --warehouse WH "LIST '/Volumes/catalog/schema/volume/'"
# Create KA
databricks knowledge-assistants create-knowledge-assistant "Name" "Description"
# Add knowledge source. With --json, pass ONLY the PARENT as a positional arg
# and put display_name / description / source_type / the source body (files|index|file_table)
# inside the JSON. Mixing positional DISPLAY_NAME/DESCRIPTION/SOURCE_TYPE with --json errors.
databricks knowledge-assistants create-knowledge-source \
"knowledge-assistants/{ka_id}" \
--json '{
"display_name": "Docs",
"description": "Documentation files",
"source_type": "files",
"files": {"path": "/Volumes/catalog/schema/volume/"}
}'
# Sync and check status
databricks knowledge-assistants sync-knowledge-sources "knowledge-assistants/{ka_id}"
databricks knowledge-assistants get-knowledge-assistant "knowledge-assistants/{ka_id}"
# List/manage
databricks knowledge-assistants list-knowledge-assistants
databricks knowledge-assistants delete-knowledge-assistant "knowledge-assistants/{ka_id}" # destructive & irreversible — confirm the id first
Source types: files (Volume path) or index (Vector Search: index.index_name, index.text_col, index.doc_uri_col)
Status: CREATING (2-5 min) → ONLINE → OFFLINE
Native CLI: databricks supervisor-agents (Beta, requires CLI ≥ v1.0.0). Resource paths look like supervisor-agents/{id} — every command takes either that full path or a PARENT of that shape. list-supervisor-agents and list-examples/list-tools return bare JSON arrays.
# Create the supervisor agent (display name positional, description/instructions as flags)
databricks supervisor-agents create-supervisor-agent "My Supervisor" \
--description "Routes queries to specialized agents" \
--instructions "Route data questions to analyst, document questions to docs_agent."
# → returns {name: "supervisor-agents/<uuid>", endpoint_name: "mas-<short>-endpoint", ...}
# List / get / find by name
databricks supervisor-agents list-supervisor-agents
databricks supervisor-agents get-supervisor-agent supervisor-agents/<id>
databricks supervisor-agents list-supervisor-agents | jq '.[] | select(.display_name == "My Supervisor")'
# Update — UPDATE_MASK + new DISPLAY_NAME are positional; description/instructions optional flags
databricks supervisor-agents update-supervisor-agent supervisor-agents/<id> \
"display_name,description,instructions" "My Supervisor (v2)" \
--description "..." --instructions "..."
# Delete (destructive & irreversible — confirm the id first)
databricks supervisor-agents delete-supervisor-agent supervisor-agents/<id>
Each tool wires the supervisor to a downstream resource. tool_type lives in --json (the CLI rejects it as a positional when --json is used). Each type has a type-specific block (genie_space, knowledge_assistant, etc.) whose identifier field differs by type — see the table below.
# Attach a Genie space — find its space_id with `databricks genie list-spaces`
databricks supervisor-agents create-tool supervisor-agents/<id> analyst --json '{
"tool_type": "genie_space",
"description": "SQL analytics on the analytics warehouse",
"genie_space": {"id": "<genie_space_id>"}
}'
# Attach a Knowledge Assistant — find ka_id with `databricks knowledge-assistants list-knowledge-assistants`
databricks supervisor-agents create-tool supervisor-agents/<id> docs_agent --json '{
"tool_type": "knowledge_assistant",
"description": "Answers from product documentation",
"knowledge_assistant": {"knowledge_assistant_id": "<ka_id>"}
}'
# List / get / delete tools
databricks supervisor-agents list-tools supervisor-agents/<id>
databricks supervisor-agents get-tool supervisor-agents/<id>/tools/<tool_id>
databricks supervisor-agents delete-tool supervisor-agents/<id>/tools/<tool_id>
Tool types (tool_type value → type-specific block):
tool_type |
Block | Use for |
|---|---|---|
genie_space |
{"id": "<space_id>"} |
Natural language → SQL via Genie |
knowledge_assistant |
{"knowledge_assistant_id": "<ka_id>"} |
Document Q&A via a KA |
uc_function |
{"name": "catalog.schema.func"} |
UC SQL/Python function |
uc_connection |
{"name": "<connection_name>"} |
External MCP server via UC HTTP Connection |
volume |
{"name": "<full_volume_name>"} |
UC Volume browsing |
app |
{"name": "<app_name>"} |
Databricks App |
Other types (serving_endpoint, lakeview_dashboard, supervisor_agent, uc_table, vector_search_index, catalog, schema, web_search) |
Block name and field shape vary | Run databricks supervisor-agents create-tool --help and probe — these were not verified end-to-end here. |
Examples must use --json — the positional GUIDELINES arg doesn't accept any encoding because guidelines is a repeated string.
databricks supervisor-agents create-example supervisor-agents/<id> --json '{
"question": "What were Q4 revenue numbers?",
"guidelines": ["Route to analyst Genie space", "Always group by region"]
}'
databricks supervisor-agents list-examples supervisor-agents/<id>
databricks supervisor-agents get-example supervisor-agents/<id>/examples/<ex_id>
databricks supervisor-agents delete-example supervisor-agents/<id>/examples/<ex_id>
Endpoint readiness: after create-supervisor-agent, the serving endpoint takes up to ~10 minutes to come online before it can answer queries. get-supervisor-agent returns the endpoint name immediately, but querying it is gated on the endpoint's own readiness — check via databricks serving-endpoints get <endpoint_name>.
| Topic | File |
|---|---|
| KA source types, index, troubleshooting | references/1-knowledge-assistants.md |
| UC functions, MCP servers, examples | references/2-supervisor-agents.md |
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。