0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PR: データブリックス・ジャパン株式会社
MLflowで実践するLLMOps

はじめに

2026年9月のリリースノートで、Agent Bricks CLI(databricks-agentbricks)がベータ版として公開されました。10月にはドキュメントもコードファーストの構成に再編され、クイックスタートが用意されています。

Agent Bricks CLI は、コードで書くエージェントを作ってデプロイするためのコマンドラインツールです。空のディレクトリから、3つのコマンドでデプロイまで進められます。

コマンド やること
agentbricks init プロジェクトのひな形と agent.toml を作る
agentbricks dev 手元のマシンでエージェントを動かす
agentbricks deploy agent.toml に宣言したリソースを作り、エージェントを Databricks にデプロイする

クイックスタートを手順どおりに最後まで動かしてみたところ、ローカル実行とデプロイ後で使われるリソースがはっきり分かれていました。そのあたりも含めて書いていきます。

この記事の内容は 2026年10月15日時点のもので、databricks-agentbricks 0.5.1 を使っています。ベータ版のため、コマンドや挙動は今後変わる可能性があります。

Agent Bricks の位置付けと名称の変更

Agent Bricks はコードでエージェントを作る基盤になった

Agent Bricks は、コードでエージェントを開発・デプロイする開発者向けのプラットフォームです(「Databricksでのエージェントの開発」)。

あわせて、Knowledge Assistant と Supervisor Agent はレガシー扱いになりました。新しく作るエージェントは、作り方によって次のように使い分けます(「レガシーエージェントの提供」)。

  • コードで書く → Agent Bricks CLI
  • ノーコードで作る → Genie Agents

周辺サービスの名称

2026年に入ってから、周辺サービスの名称もいくつか変わっています。以前の記事と読み比べるときのために、整理しておきます。

以前の名称 現在の名称 時期 出典
Multi-Agent Supervisor Supervisor Agent 2026年2月(10月にレガシー化) 2026年2月のリリースノート
Vector Search AI Search 2026年6月 2026年6月のリリースノート
Genie Spaces Genie Agents 2026年7月 2026年7月のリリースノート
AI Gateway Unity Gateway — Unity GatewayによるAIガバナンス

CLI のコマンドは ab から agentbricks へ

コマンド名は ab から agentbricks に、PyPI のパッケージ名は databricks-agentbricks に変わりました(databricks-ai-bridge PR #661)。ab で書かれた記事を見かけたら、agentbricks に読み替えてください。

全体像

3つのコマンドと、それぞれが使うもの・作るものの関係を図にしました。

overview.png

起点になるのは agent.toml です。エージェントが依存する Databricks のリソース(メモリーストア、セッションストア、トレース先、ツール)は、すべてこのファイルに宣言します。

  • agentbricks dev は手元のマシンで動き、宣言したストアは使いません
  • agentbricks deploy を実行すると、宣言したストアが Databricks 上に作られ、デプロイしたアプリから使えるようになります
  • モデルは、どちらの場合も Unity Gateway 経由で呼び出します

エージェントが何に依存しているかが、コードではなく1つの宣言ファイルにまとまる。この点は、作った本人以外がレビューするときにじわじわ効いてきます。

準備する

前提条件は次の2つです。

  • Databricks CLI がインストールされ、パスが通っていること
  • Python 3.10 以降と pip

Agent Bricks CLI をインストールします。

python3 -m venv .venv && source .venv/bin/activate
pip install databricks-agentbricks
agentbricks --version

これで agentbricks, version 0.5.1 と表示されれば準備完了です。

ひとつ補足があります。CLI の前提条件は Python 3.10 以降ですが、生成されるプロジェクトの pyproject.toml は requires-python = ">=3.11" になっていて、依存関係の解決と起動には uv を使います。手元に Python 3.11 以降と uv を用意しておくと、次の手順で慌てずに済みます。

クイックスタートを動かす

ステップ1: 認証する

OAuth でワークスペースに認証して、名前付きのプロファイルとして保存します。続けて、そのプロファイルを Agent Bricks CLI の既定に設定します。

databricks auth login --host https://<your-workspace-url> --profile <profile>
# このプロファイルが既定になり、以降は --profile を省略できます
agentbricks login --profile <profile>

agentbricks login はプロファイルの認証情報を検証してから保存します。これで認証は完了です。

ステップ2: ひな形を作ると agent.toml まで用意される

--framework でフレームワークを選んで、プロジェクトを作ります。選べるのは langgraph(LangGraph)と openai(OpenAI Agents SDK)です。今回は LangGraph を使います。

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

次のように表示されます(抜粋)。

✔ Scaffolded 'agent-langgraph'
Framework           langgraph
Server              Agent Bricks DurableAgentServer
Chat app            enabled
Memory store        my-agent-<token>-memory
Session store       my-agent-<token>-sessions
Traces experiment   /Shared/agentbricks_traces/my-agent-<token>
Profile (.env)      <profile>

生成された agent.toml は次のとおりです。

agent.toml
schema_version = 1

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

# ストア名の <token> は、名前の重複を避けるためのランダムな文字列です
[memory_store]
name = "my-agent-<token>-memory"

[session_store]
name = "my-agent-<token>-sessions"

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

0.5.1 では、init の時点でメモリーストア、セッションストア、トレース用のエクスペリメントまで宣言されます。「Agent Bricks CLI」のページにある agentbricks sessions bind と agentbricks memory bind は、init のあとでもストアを宣言・変更できるコマンドです。クイックスタートの範囲では、実行しなくても進められました。

プロジェクトの中で、最初に見ておくとよいのは次の2か所です。

場所 内容
agent/agent.py エージェント本体。使うモデルは MODEL = "system.ai.claude-sonnet-4-5" で指定する
agent/tools/ ツール。サンプルとして、現在時刻を返す get_current_time と、実行前に人の承認を求める send_message が入っている

ステップ3: ローカルではストアを使わない

手元のマシンでエージェントを起動します。

agentbricks dev

初回は uv がプロジェクト用の仮想環境を作って依存パッケージを入れるので、数十秒かかります。起動すると、次のメッセージが表示されます。

Memory store 'my-agent-<token>-memory' is bound but `agentbricks dev` runs with long-term memory off. Run `agentbricks deploy` to use bound store.
Session store 'my-agent-<token>-sessions' is bound but `agentbricks dev` keeps conversation history in-process (not durable). Run `agentbricks deploy` to use bound store.
Tracing experiment '/Shared/agentbricks_traces/my-agent-<token>' is bound but `agentbricks dev` traces to a local MLflow server. Run `agentbricks deploy` to trace to the bound experiment.

ここが最初のポイントです。agentbricks dev では、宣言したストアは使われません。

  • メモリー: 無効
  • 会話履歴: プロセス内に保持(再起動すると消える)
  • トレース: ローカルの MLflow サーバーに送る

手元で何度試しても、Databricks 上のストアには何も書き込まれない。開発中の試行錯誤と、デプロイ後のデータが混ざらないように作られているのだと思われます。

ブラウザで http://localhost:8000 を開くと、「Agent Bricks Workbench」というチャット画面が表示されます。

01_local_chat_ui.png

左側には機能ごとの接続状態、右側には API のイベントが表示されます。ローカルでは Memory が「Not connected」になっていて、先ほどのメッセージのとおりの状態です。

API からも呼び出せます。テンプレートの README にある書式で、input の中に messages を入れます。

# 同じ SESSION_ID を使い回すと、会話が続きます
SESSION_ID=$(uuidgen)
# id は呼び出しごとの識別子です。毎回新しい UUID にします
curl -sS http://localhost:8000/api/invocations \
  -H 'Content-Type: application/json' \
  -d "{\"id\":\"$(uuidgen)\",\"session_id\":\"$SESSION_ID\",\"input\":{\"messages\":[{\"role\":\"user\",\"content\":\"今何時ですか?ツールを使って答えてください。\"}]}}"

エージェントは get_current_time ツールを呼び出してから、「現在の日時は 2026年10月15日 10時34分 です。」と日本語で答えました。これでローカルでの動作確認は完了です。

なお、デプロイの完了時に表示される呼び出し例では、"input" が配列("input":[{...}])の形になっています。この記事では README の書式で動作を確認しました。

ステップ4: デプロイするとストアが作られる

エージェントを Databricks にデプロイします。

agentbricks deploy my-agent

deploy は次の順に処理を進めます。

  1. agent.toml に宣言したメモリーストアとセッションストアを作る
  2. Databricks Apps に agent-bricks-my-agent というアプリとコンピュートを作る
  3. ソースコードを同期してデプロイする
  4. ストアへのアクセス権をアプリのサービスプリンシパルに、トレースへのアクセス権をエージェントランタイムのサービスプリンシパルに付与する

完了すると、デプロイ先の URL が表示されます。今回は約3分43秒で完了しました。1回だけの計測で、ワークスペースやそのときの状況によって変わります。

✔ Deployed agent 'agent-bricks-my-agent'
URL              https://agent-bricks-my-agent-<workspace-id>.aws.databricksapps.com
Memory store     my-agent-<token>-memory
Session store    my-agent-<token>-sessions
Store access     granted to app service principal
Trace access     granted to agent runtime service principal

ストアの作成からサービスプリンシパルへの権限付与まで、すべてこのコマンドで済みます。権限の設定を手で書かなくてよいのは、地味ですが一番ありがたいところでした。

初回のデプロイで、agent.toml の [agent] に deployment_name = "my-agent" が追記されます。2回目以降は、プロジェクトのディレクトリで agentbricks deploy を実行するだけです。

ワークスペースの Databricks Apps の一覧を開くと、アプリが追加されています。

03_apps_list.png

表示された URL を開くと、ローカルと同じチャット画面が表示されます。

02_deployed_chat.png

Sessions が「Managed Session Store」、Memory が「Managed」に変わっていて、Databricks 上のストアにつながったことがわかります。

ここでひとつ気づいたことがあります。日本時間の 10:47 に「今何時ですか?」と聞くと、「午前1時47分」と答えました。デプロイ先のコンテナは UTC で動いていて、サンプルの get_current_time ツールはその時刻をそのまま返すためです。当然といえば当然ですが、時刻を扱うツールを書くときは、タイムゾーンをツール側で明示しておくと安心です。

デプロイしたエージェントは、CLI からも呼び出せます。

agentbricks endpoint invoke agent-bricks-my-agent --path /api/invocations \
  --json "{\"id\":\"$(uuidgen)\",\"session_id\":\"$(uuidgen)\",\"input\":{\"messages\":[{\"role\":\"user\",\"content\":\"こんにちは\"}]}}"

デプロイの状態確認、ログの表示、停止は、agentbricks deployments のサブコマンド(get、logs、stop)で行います。

トレースを確認する

トレースは最初から有効になっています。デプロイしたエージェントのトレースは、MLflow エクスペリメント /Shared/agentbricks_traces/<project> に記録されます。ワークスペースでこのエクスペリメントを開くと、リクエストごとのトレースが一覧で表示されます。

04_traces.png

CLI には agentbricks tracing list というコマンドもありますが、今回の環境では一覧が空で表示されました。原因までは確認できていません。トレース自体は上の画面のとおり記録されていたので、確認はワークスペースの画面で行うのが確実です。

メモリーと日本語

ベータ版の現時点では、メモリーの検索は全文検索(BM25)です (「エージェントメモリ」)。

全文検索は、空白などで区切られた単語を手がかりに探します。単語の間に空白を入れない日本語では、文全体が1つの語として扱われているようです。今回試した範囲では、英語の記憶は別のセッションから呼び出せましたが、日本語の記憶がヒットしたのは、保存した文と同じ文で検索したときでした。日本語でメモリーを使う予定がある場合は、事前に動作を確認しておくことをおすすめします。

メモリーを試すときは、次の2点も押さえておくと時間を溶かさずに済みます。

  • agentbricks dev ではメモリーは無効です。デプロイしてから試します
  • API で呼び出すときは、input に "actor": "<ユーザーID>" を入れます。指定しないと session_id が actor として使われ、セッションごとに記憶が分かれます。ブラウザのチャット画面では、サインインしたユーザーが actor になります

私は2つ目で、最初「別のセッションで思い出してくれない」と悩みました。テンプレートの runtime/adapter.py を読んで、actor の決まり方に気づいた次第です。

まとめ

Agent Bricks のクイックスタートを動かしてみて分かったことをまとめます。

  • init、dev、deploy の3つのコマンドで、空のディレクトリからデプロイまで進められる
  • エージェントが依存するリソースは agent.toml に宣言する。0.5.1 では init の時点でストアとトレース先まで宣言される
  • agentbricks dev では宣言したストアを使わない。メモリーは無効、会話履歴はプロセス内、トレースはローカルの MLflow
  • agentbricks deploy がストアの作成からサービスプリンシパルへの権限付与までまとめて行う
  • デプロイ先は UTC で動く。時刻を扱うツールはタイムゾーンを明示しておく
  • トレースはワークスペースの MLflow エクスペリメントで確認できる
  • メモリーの検索は全文検索。日本語で使う場合は事前に動作を確認しておく

一番の収穫は、ローカル実行とデプロイ後の境界がはっきりしていると分かったことでした。手元では Databricks 上のストアに触れず、デプロイして初めて宣言どおりのリソースがつながる。この切り分けを知っておくと、「ローカルでは動いたのに」と迷う場面がかなり減りそうです。

参考リンク

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?