Agent Bricks CLI

Important

この機能は ベータ版です。 ワークスペース設定は必要ありません。 Agent BricksのCLIをインストールして始めてください。

Agent Bricks CLI(databricks-agentbricks)は、コード内でカスタムエージェントを構築・展開する開発者向けのAzure Databricksコマンドラインツールです。

Agent Bricks CLIは、ターミナルからカスタムエージェントを構築するためのコードファーストパスです。 Agent Bricks CLIは、Databricksのベストプラクティスに基づく組み込みフレームワークを用いてプロジェクトを支えています。 その後、プロジェクトをローカルで実行してテストし、Azure Databricksエージェントのランタイムにデプロイできます。 CLIは、空のディレクトリからデプロイ済みエージェントへと移行し、ランタイムやツール、メモリ、管理リソースを手作業で配線する必要がなくなります。 アプリベースのワークフローを含むカスタムエージェントを構築する他の方法については、「 レガシーエージェントサーバーを使ったDatabricks Apps上でエージェントを実行する」をご覧ください。

前提条件

  • Databricks CLIがインストールされ、あなたのパス上で利用可能になっています。

  • Python 3.10以上で、pipが必要です。

  • エージェントブリックCLIをインストールしてください:

    pip install databricks-agentbricks
    

エージェントブリックスCLIライフサイクル

Agent Bricks CLIは、フレームワークテンプレートからデプロイ可能なエージェントコードのローカルディレクトリをスキャフォールドし、ランタイム、テスト、オプションのチャットUIがすでに配線されています。 アプリケーションロジック(モデル、ツール、プロンプト)を書き、CLIがローカルで実行しAzure Databricksのインフラストラクチャにデプロイします。

agent.tomlは、エージェントが依存するすべてのAzure Databricks管理リソースの宣言的真理の源です:ツールバインディング(データサンドボックス、管理されたモデルコンテキストプロトコル(MCP)サービス、Unityカタログ関数)、およびメモリ、セッション、トレーシングリソース。 agentbricks deploy それを読み込んでプロビジョニングや配線を行うので、手書きのセットアップコードではなくファイル自体がデプロイされます。

エージェントを空のディレクトリから本番環境に移す3つのコマンド:

  • agentbricks init バンドルされたテンプレートからプロジェクトをスキャフォールディングし、オプションでDatabricksプロファイルを .env ファイルにシードしてプロジェクトをすぐに実行できるようにします。
  • agentbricks devエージェントはAzure Databricksのモデルサービングに対してローカルで実行されるため、デプロイ前にテストできます。
  • agentbricks deploy agent.tomlで宣言されたリソースをプロビジョニングし、エージェントをAzure Databricksエージェントのランタイムにロールアウトします。

エージェントブリックのCLIライフサイクル:init、dev、デプロイフェーズとその主要アクション

Note

また、ツールを追加したり、メモリやセッションストアをinit時だけでなくいつでもバインディングできます。 これらのステップの間に、 agentbricks tools add、 agentbricks memory bind、 agentbricks sessions bind を使ってエージェントの設定を更新してください。

エージェントブリックスのCLI機能

能力 Description
モデルアクセス Agent Bricks CLIはモデルアクセスを自動的にプロビジョニングし、エージェントが認証情報やエンドポイントを管理せずにAzure Databricksで提供されたモデルを呼び出せるようにします。 Databricks Foundation モデル API を参照してください。
マネージドメモリ エージェントが書き込み検索できる長期メモリで、アクターごとに分割され、マネージドストアによって裏付けられています。 メモリを使って事実や好みをセッション間で永続化し、agentbricks memory pipeline を使ってセッションストアから記憶を要約・整理します。 Agent memory および Agent memory pipelines を参照してください。
マネージドセッション 管理されたセッションストア内に保持され、アクターごとに分割された会話の記録。セッションを独立したコピーにフォークすることもサポートします。 エージェント セッションを参照してください。
Tools agent.tomlで宣言されたAzure Databricks管理機能:ダウンスコープ化されたUnity Catalogサンドボックス、Azure Databricks管理MCPサービス、またはUnity Catalog関数。 カスタムPythonツールはプロジェクトコードに直接書かれます。 MCPsを参照してください。
トレース デフォルトでオンのMLflowトレーシングで、各ランのトレースをプロジェクトごとのMLflow実験にルーティングし、デバッグやモニタリングを行います。 トレーシングの概要を参照してください。
Deployment エージェントをAzure Databricksエージェントのランタイムにデプロイし、エージェントのサービスプリンシパルにバウンドストアへのアクセス権を与え、デプロイライフサイクルを管理します。

新しいエージェントを作成する

ステップ1:OAuthで認証し、プロフィールを保存する

Agent Bricks CLIは DatabricksのCLI認証を使用しています。 OAuth(ユーザーからマシンへの認証)でワークスペースに認証し、認証情報を名前付きプロファイルとして保存してください。

OAuthフローを開始するには、ホストをワークスペースのURLに置き換えて以下の手順を実行してください。 このコマンドはブラウザを開いてサインインを完了し、その後プロファイルを ~/.databrickscfgに書きます。

databricks auth login --host https://<your-workspace-url> --profile <profile>

そのプロファイルをCLIのデフォルトに設定し、後のコマンドで --profileを省略できるようにするには、以下の手順を実行します。

agentbricks login --profile <profile>

agentbricks login プロファイルの認証を検証します。 もしそれらが欠落または拒否された場合、CLIは databricks auth login 再実行して再試行します。

ステップ2:エージェントプロジェクトの足場を築く

新しいエージェントプロジェクトをスキャフォールドし、テンプレートを選ぶために --framework パスします。 この例はブラウザチャットアプリを含むLangGraphテンプレートを使用しています。

agentbricks init --framework langgraph my-agent
cd my-agent

CLIはフレームワークごとに1つのテンプレートをバンドルし、 --framework どのテンプレートからスキャフォールドするかを選びます:LangGraph用の langgraph かOpenAIエージェントSDKの openai かです。 CLIはプロジェクトの管理リソースやツールバインディングを agent.toml に、テンプレートの出所を .agentbricks/project.tomlに書き込みます。 チャットアプリなしでAPIのみのバックエンドを足場にするには、 --disable-chat-appを追加してください。

ステップ3:管理されたセッションストアとメモリストアをアタッチする

管理されたストアをバインドし、エージェントが会話履歴や長期記憶を保持できるようにします。 各コマンドはストア名を agent.toml に記録し、存在しない場合はストアを作成します。

セッションストアとメモリストアをバインドするには、以下を実行します:

agentbricks sessions bind my-agent-sessions
agentbricks memory bind my-agent-memory

ステップ 4: トレースを表示

トレースはデフォルトでオンになっています。 agentbricks init はデフォルトの MLflow 実験 /Shared/agentbricks_traces/<project> を関連付け、agentbricks dev と agentbricks deploy は各ランのトレースをその実験に送信します。

エージェントがトレースを作成した後にトレースをリストアップするには、以下を実行します。

agentbricks tracing list

特定のMLflow実験をバインドするには、 agentbricks tracing bind --experiment-id <experiment-id>を実行します。 トレースをオフにするには agentbricks tracing unbindを実行してください。

ステップ5:エージェントをローカルで運用する

デプロイ前にマシンでエージェントをテストしてください。

agentbricks dev

これにより、Azure Databricksエージェントのランタイムと同じコマンドと環境を使ってポート8000のローカルサーバーが起動します。 Agent Bricks CLIはエージェントをAzure Databricksモデルのサーバーに接続し、ローカルでモデルを呼び出せるようにします。 テンプレートはagent/agent.pyのMODEL値をデフォルトモデルとして設定します。 別のモデルを使う場合は、その値を編集してください。 エージェントとやり取りするリクエストを http://localhost:8000 に送ります。

ステップ6:エージェントを展開する

エージェントをAzure Databricksエージェントランタイムにデプロイしてください。 CLI は、関連付けられたストアをプロビジョニングし、エージェントのサービス プリンシパルにそれらへのアクセス権を付与して、デプロイを実行します。 展開されたエージェントは agent-bricks-<name>と名付けられます。

agentbricks deploy my-agent

デプロイメントが完了すると、CLIはデプロイメントのURLを返します。 そのURLを開くと、自動的にAzure Databricksモデルのサービスに接続されたライブエージェントとやり取りできます。 展開後の管理には、agentbricks deployments logsやagentbricks deployments stopなどのagentbricks deploymentsコマンドを使いましょう。

既存のエージェントを追加

すでに LangGraph または OpenAI Agents SDK を使用してエージェントを構築済みの場合は、--existing フラグを使用して、そのエージェントを Agent Bricks CLI と DurableAgentServer に移行します。 CLIはコードを書き換えるわけではありません。 その代わりに、Claude Code や Codex などのコーディングエージェントがプロジェクトを変換する際に従う移行手順を作成します。

ステップ1:移行の準備

エージェントのプロジェクトディレクトリから移行の準備をしてください。 エージェントが使用するフレームワークとして、langgraph(LangGraph)または openai(OpenAI Agents SDK)を渡してください。

agentbricks init --framework langgraph --existing .

CLIは、移行手順、コーディングエージェントへのプロンプト、CLIのテンプレートから生成された参照プロジェクトを含む agent-bricks-migrate/ ディレクトリを作成します。 また、コーディング エージェントに指示を示す .claude/skills/ と .agent/skills/ のスキルも追加されます。 このコマンドは、アプリケーションのコード、依存関係、または .env ファイルを変更せず、ワークスペース内にリソースを作成することもありません。

ステップ2: コーディングエージェントを使ってプロジェクトを変換する

agent-bricks-migrate/からのプロンプトをコーディングエージェントに貼り付けてください。 コーディング エージェントは、プロジェクトを agent.toml と DurableAgentServer のエントリ ポイントを使用するように変換し、その変換結果を確認します。

ステップ3:変換を確認する

プロジェクトディレクトリで agentbricks doctor を実行してください:

agentbricks doctor .

agentbricks doctorコードを実行したりAzure Databricksに連絡したりせずにプロジェクトのファイルを検査します。 プロジェクトに有効な agent.toml があり、invoke ハンドラで DurableAgentServer を起動し、そのフレームワーク用のアダプタを呼び出すと、処理は成功します。 レポートの失敗は、変換が完了していないことを意味します。

ステップ 4: クリーンアップ、実行、デプロイ

agent-bricks-migrate/ と、それを参照している 2 つのスキルを削除し、コミットに含めないようにしてください。 その後、 agentbricks dev でエージェントを実行し、 agentbricks deployでデプロイします。

Considerations

  • --existing は、DurableAgentServer を通じて LangGraph および OpenAI Agents SDK をサポートしています。 これは--server customをサポートしていません。
  • エージェントをマネージドセッションストアに切り替えても、既存の会話履歴は移動しません。 移行の指示では、以前の会話の処理方法を決めるように求められています。
  • --disable-chat-app、--memory-store、--session-storeの選択肢がリファレンスプロジェクトを形作ります。 彼らは資源を創出しません。

MCPツールの追加

エージェントをAgent Bricks CLIでビルドする場合は、system.aiでプロジェクトに組み込みのagentbricks tools add mcpMCPサービスを追加してください。 このコマンドは、ワークスペース内にそのサービスが存在するかどうかを確認し、そのツールを agent.toml に記録します。 エージェントは実行時にツールに接続するため、接続コードを書く必要はありません。

追加可能なMCPサービスを一覧表示するには、以下のコマンドを実行します:

agentbricks tools list --kind mcp

以下は、一般的な組み込みサービスを追加する例です。

# Answer analytics questions across your workspace with Genie One.
agentbricks tools add mcp system.ai.genie_one_mcp

# Run SQL on a SQL warehouse.
agentbricks tools add mcp system.ai.dbsql

# Connect to third-party applications.
agentbricks tools add mcp system.ai.slack
agentbricks tools add mcp system.ai.github

デフォルトでは、ツールはリクエストをエージェントに送ったユーザーの権限で動作します。 アプリのサービスプリンシパルとして実行するには、 --auth appを追加してください。 Google Drive、Gmail、Googleカレンダー、Microsoft 365では、各ユーザーは最初の呼び出し前に一度だけOAuthログインを行います。 接続アプリケーションを参照してください。

ツールを確認または削除するには、agentbricks tools list または agentbricks tools remove mcp <service> を実行します。。

その他のツールについては、以下のページをご覧ください。

agent.toml 参照

agent.toml は、エージェントが使用する Azure Databricks 管理リソースに関する、宣言的な信頼できる情報源です。 agentbricks init がこれを作成し、agentbricks tools add、agentbricks memory bind、agentbricks sessions bind、agentbricks tracing bind がこれを更新し、agentbricks deploy がこれを読み取ってリソースのプロビジョニングやアクセス権の付与を行います。 直接編集することも可能です。

セクションまたはフィールド Description
schema_version agent.toml 形式のバージョン。 生成されたプロジェクトでは 1 が使用されます。
[agent] framework フレームワークテンプレート: langgraph か openai。
[agent] server エージェント サーバー: DurableAgentServer の場合は agentbricks、または独自のサーバーの場合は custom。
[memory_store] name エージェントが使用するマネージドメモリストアです。
[session_store] name エージェントが使うマネージドセッションストアです。
[tracing] experiment_name トレース用の MLflow エクスペリメント。 トレースをオフにするにはセクションを削除してください。
[[tools]] ツールのバインド。 各ツールには、id、auth の値として user または app、ツールを識別する source、およびオプションの policy が設定されています。
[auth.user] コード内で作成するツールについて、ユーザーからの承認を要求します: required と additional_api_scopes。 詳細は、ユーザー認証の要求を参照してください。

以下の例は、agentbricks init が my-agent という名前の LangGraph エージェント用に生成するファイルです:

schema_version = 1

[agent]
framework = "langgraph"
server = "agentbricks"

[memory_store]
name = "my-agent-memory"

[session_store]
name = "my-agent-session"

[tracing]
experiment_name = "/Shared/agentbricks_traces/my-agent"

以下の例は、agentbricks tools add が書き出すツール バインディングを示しています: 組み込みのMCPサービス、Genieエージェント、そして1つのテーブルにスコープ化されたサンドボックスです。

[[tools]]
id = "web_search"
auth = "user"
source = { kind = "mcp", service = "system.ai.web_search" }

[[tools]]
id = "genie_agent"
auth = "user"
source = { kind = "genie_agent", space_id = "<space-id>" }

[[tools]]
id = "sandbox"
auth = "user"
source = { kind = "sandbox", service = "system.ai.sandbox" }
policy = { downscope = [{ resource = "table:samples.nyctaxi.trips", permission = "read_only" }] }

Unity Catalog関数を呼び出すツールは source = { kind = "uc_function", function = "<catalog>.<schema>.<function>" } を使用し、 auth = "app"のみをサポートします。

コマンド リファレンス

すべてのコマンドとフラグを含む完全かつ最新のコマンド リファレンスについては、GitHub 上のAgent Bricks CLI READMEを参照してください。

その他のリソース