Vポイントマーケティング|TECH LABの Tech Blog

TECH LABのエンジニアが技術情報を発信しています

ブログタイトル

DatabricksのOmnigentを試してみる。

こんにちは、VポイントマーケティングAIエンジニアの三浦 諒一です。

もう7月なのですが、今のところ東京は雨の日が多く、梅雨らしい天候が続いています。こんなに梅雨らしい梅雨は、なんだか久しぶりな気がしています。

今年のDatabricksの年次のイベント「DATA+AI SUMMIT」のキーノートの動画が公開されていたので見てみました。AIエージェントを本格的に利用するために必要なデータや基盤に関するアップデートが多く、とても興味深かったのですが、その中で「試してみたい!」と真っ先に思ったのが「Omnigent」です。

Omnigentとは

OmnigentはDatabricksが開発したAIエージェントの「メタハーネス」で、オープンソースで公開されています。メタハーネスって初めて聞いたのですが、実際に使ってみて感じたのは「Claude Code」や「Codex」といった様々なコーディングエージェント(Omnigentでは「ハーネス」と呼んでいます)の上に存在するレイヤのようなもので、それぞれのコーディングエージェントが持つ機能を共通のインターフェースでアクセスできるようにするようなイメージだと感じました。

Omnigentにはさらにチームメンバーとコラボレーションできる機能も備わっていて、コーディングエージェントとのセッションにアクセスできるWebUIを起動したり、セッションをチームメンバーにシェアして共同作業するといったことが出来るようです。

Omnigentはオープンソースですが、DatabricksではフルマネージドなOmnigentがベータ版で提供されています。Databricks上でWebUIをホスティングしたり、基盤モデルとしてUnity AI Gatewayのエンドポイントを利用することが可能です。

今回はDatabricksのOmnigentの導入から使ってみるところまで試してみた内容をまとめたいと思います。

環境

私は最初勘違いしていたのですが、Omnigentはコーディングエージェントと同じローカル環境で動作します。「クラウドサンドボックス」というサーバー側で動かす機能もあるようですが、主な用途はローカル環境に存在するコーディングエージェントへの共通インターフェースを提供することです。

私は普段Databricks Appsの開発環境としてAzure VMを使っていて、そこにコーディングエージェントをインストールしています。今回の検証は、Azure VMにOmnigentをインストールし、Azure Databricksのワークスペースに接続し、Databricks上にホストされたOmnigentのWebUIを通じてVMの中のOmnigentを操作する、といったことを試しています。

インストールとセットアップ

ここからの手順は以下のドキュメントを参照しています。

learn.microsoft.com

現在DatabricksのOmnigentの機能(ベータ版)を利用するにはワークスペースの「Previews」から「Omnigent」をオンにする必要があります。

「Previews」で「Omnigent」を有効化します。

続いてVMにOmnigentをインストールします。このコマンドを実行すると、Omnigentだけでなく、その他関連するライブラリもインストールされます。

curl -fsSL https://omnigent.ai/install.sh | sh -s -- --extra "databricks"

続いてOmnigentのセットアップをします。主に連携するコーディングエージェント(ハーネス)関連の設定を行います。

omni setup

Configure harnessesという画面にハーネス一覧が表示されるので、ここではClaudeを選択しました。続いて以下のようなリストが表示されるので、「Databricks - workspace」を選択し、Databricksのworkspace URLを入力しました。

       🔑 Anthropic — API key
       🎟️ Claude — subscription (Pro/Max)
       🌐 Gateway — custom base URL + key (e.g. OpenRouter)
    ❯  🧱 Databricks — workspace
       ☁ AWS Bedrock — API key

Configure harnessesの状態が以下のようになっていればOKです。

  Configure harnesses
    ❯  Claude         ✓ Databricks (your-workspace-name)
       Codex          ✗ Not installed
       Cursor         ✗ Not installed
       OpenCode       ✗ Not installed

ここからはDatabricksにOmnigentのWebUIをホストして、そのUIを通じてVMの中のOmnigentを操作するための手順です。 まずホスト先のDatabricksワークスペースにログインします。

omni login https://adb-xxxxxxxxxxxxx.xx.azuredatabricks.net/

WebUIをホストします。

omni host --server https://adb-xxxxxxxxxxxxx.xx.azuredatabricks.net/

このあと、ワークスペースのURLの末尾に「/omnigent」をつけた「https://adb-xxxxxxxxxxxxx.xx.azuredatabricks.net/omnigent」というURLにアクセスすることでOmnigentのUIを開くことが出来るようになります。

Omnigentが起動しました。

触ってみる

セッションを開始する前に作業するディレクトリを選択できます。隠しディレクトリ(「.」がディレクトリ名の先頭についている)を除くVM内のディレクトリを選択できるようです。

作業ディレクトリの指定

使用するハーネス、組み込み済みのAgent「Polly」「Debby」などを選択できます。

ハーネスとAgentの選択

ハーネスはさらに使うモデル、エフォートレベル、パーミションモードを選択することが出来ます。

ハーネスの設定

余談ですが、真ん中にいるピンクのヒトデのようなキャラクター、マウスに合わせて目が動くことに気づきました。なんだかクセになるかわいらしさです。

Databricksならではのメリット

DatabricksでOmnigentを使うメリットは色々ありますが、特に自分が良い点と感じているのが使用するモデルにUnity AI Gatewayのエンドポイントを指定できる点です。Unity AI GatewayはFoundation Model APIの上に乗せるレイヤーのようなもので、トークン消費量の制限やPIIや有害な情報の入出力を防ぐガードレイル機能を使うことが出来ます。また、どのユーザーがどれくらい使ったのかを確認できるダッシュボードも提供されるため、全体の使用量を常に把握することもできます。

Omnigentではハーネスが呼び出すモデルとしてUnity AI Gatewayのエンドポイントを指定することが出来ます。指定の仕方は「カタログ名.スキーマ名.エンドポイント名」で、この形式でたとえば「/model」スラッシュコマンドでエンドポイントを使うことが出来ます。

Omnigentにも「Contextual Policies」という機能でエージェントのできることや入出力を制御することが出来るため、常に制御したい内容をUnity AI Gatewayのガードレイルで、状況に応じて柔軟に切り替えたい内容をContextual Policiesで設定する、といった運用もできそうだな、と思いました。

まとめ

ということで、今回はDatabricksでコーディングエージェントのメタハーネスOmnigentを使ってみた内容をまとめてみました。ベータ版ですので、おそらくこれから新しい機能が追加されていくのでは、と期待しています。個人的にはAgent SkillsやインストラクションファイルがUnity Catalogで管理できるようになるといいな・・・と思っています。