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

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

ブログタイトル

Databricks AppsでClaude Agent SDKとAgent Skillsで開発したエージェントを動かしてみる。

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

前回Claude Codeのエージェントループ、コンテキスト管理、Agent Skills機能をアプリで利用できるようになるClaude Agent SDKの記事を書きました。

techblog.vpoint.co.jp

前回の記事ではClaude Agent SDKのバックエンドLLMをDatabricksのFoundation Model APIsで提供されているものを使用する構成を紹介しましたが、今度はもう少し踏み込んで開発したエージェントをDatabricks Appsで動かすことが出来るかどうかを確認してみました。

確認してみた結果、Claude Agent SDKを使って開発したエージェントをDatabricks Appsで動かすことが出来ることが分かりました。特にAgent Skillsを組み込んだエージェントも動かすことが出来たので、この構成を応用すれば色々なエージェントをDatabricks Appsで提供することが出来そうだと感じました。

今回開発したエージェントアプリ

今回Databricks Appsで動かせるか確認するために開発したのが自然言語でGIFアニメーションを作ることが出来るエージェントです。

GIFアニメをチャット形式で生成出来ます。

バックエンドはPythonのClaude Agent SDKを使っているのですが、さらに"slack-gif-creator"というAnthropicのAgent Skillsを組み込むことで高品質なGIFアニメを生成することが実現出来ています。

github.com

構成

システムの構成をまとめると以下の図のようになります。

構成図

Databricks Appsにデプロイするフォルダに使用するAgent Skillsを含めておき、Claude Agent SDKが使用出来るようにしておきます。Claude Agent SDKはバックエンドのLLMにDatabricks Foundation Model APIsで提供されている"databricks-claude-opus-4-5"を使用しています。

開発の流れ

開発はGithub Copilotをコーディングエージェントとして使用して行いました。以下のAgent Skillsを使用しました。

  • slack-gif-creator
    直接開発時に使うのではなく、このSkillの仕様に合わせて開発するために参照させます。
  • databricks-core
    Databricks CLIを使った操作のためのコアとなるSkillです。
  • databricks-apps
    Databricks Apps開発用のSkillです。

また、最近チーム内でUIのデザイン指示書を以下のDESIGN.mdのフォーマットで作成しています。

designmd.ai

このフォーマットに従って用意したマークダウンファイルをUIデザイン指示書としてGithub Copilotに参照させるようにしました。

プロジェクト開始時の構成は以下のようになりました。

.
├── .claude/
│   └── skills/
│       └── slack-gif-creator/     # アプリで使用するAgent Skills
│
├── .github/
│   ├── copilot-instructions.md
│   └── skills/                    # 開発用のAgent Skills
│       ├── databricks-apps/
│       ├── databricks-core/
│       └── slack-gif-creator/
│
├── designs/
│   └── white-blue-design.md       # アプリのデザイン指示書
│
├── docs/
│   └── spec.md                    # アプリの仕様書
│
└── pyproject.toml                 # uvで管理

少し詰まったポイント

Skillが依存するライブラリ

今回使用したSkill"slack-gif-creator"はSKILL.mdによると内部でPythonのスクリプトを書いて実行してGIFアニメを生成する動きになっています。その際にpillow, imageio, numpyのライブラリを使うようになっていることが分かります。

開発するアプリの環境の中でこれらのライブラリが使用可能な状態になっていないとエラーになってしまいます。そのためこれらのライブラリをpyproject.tomlrequirements.txtに忘れずに含めておくことが必要です。

allowed_toolsの設定

"slack-gif-creator"はPythonを実行するためBash Toolが使用出来る必要があります。さらにPythonスクリプトを書いたり生成したGIFを書き込むためにWrite Toolも必要です。

そのためClaude Agent SDKでセッションを作成してクエリを受け渡すClaudeSDKClientに設定するoptionsallowed_tools"Write""Bash"を加える必要があります。

いずれにせよエージェントが使うSkillの仕様について、SKILL.md等を読みしっかり理解しておくことが重要だと思います。

この構成のポイント

Databricks Apps + Claude Agent SDK + Agent Skillsの構成をとってみていいな、と思ったポイントはAgent Skillsを差し替えるだけで様々なタスクに対応したエージェントを提供することが出来る点です。

たとえば各部署の定型業務のワークフローをSkillに起こしてこの構成に組み込めば、ワークフローをこなしてくれるエージェントをすぐに作ることが出来るかもしれません。Skillというモジュールを差し替えれば専用のエージェントが出来るイメージです。

もしそうなってくると多数のエージェントがDatabricks Apps上で動作するようになりますが、バックエンドのLLMをFoundation Model APIsに統一することでエージェントごとにレート制限を設定することが出来、予算の管理などがしやすくなります。もちろんエージェント自体にも利用可能ユーザーを設定することが出来るので、制御をしながら拡張しやすい点もメリットだと思います。

まとめ

ということで今回はDatabricks AppsでClaude Agent SDKとAgent Skillsで構成したエージェントが動作するのかを試してみた話をご紹介しました。ひとまず動作するところまで確認することが出来てよかったです。

Databricks AppsもClaude Agent SDKもどちらも面白い技術なのでこれからも使っていきたいです。