Agent Engineの build options(installation_scripts) を利用してffmpegをインストールする
こんにちはサントリーこと大橋です。
最近、Vertex AI の Agent Engine に、リリースノートには記載されていないアップデートがありました。Agent Engine のデプロイ時(コンテナイメージ作成時)に、ユーザーが作成した install.sh
を呼び出せる仕組みが追加されたのです。
この仕組みがあれば、以前の記事で書いたffmpeg
などのライブラリをAgent Engineにインストールできることを期待して色々試したのですが、一度はパーミッションエラーが発生して、インストールすることができませんでした。
Githubのissueでやり取りして、今日修正されたので、今回はこのinstallation_scripts
の利用方法を解説したいと思います。
build options
Agent Engineの 今までのAgent Engineの課題
これまで Agent Engine は、専用のコンテナイメージ内で Agent が実行される仕組みでした。そのため、pip 以外の方法で新たなライブラリやツールをインストールすることは困難でした。
例えば 以前記事にした作曲エージェントでは、pydub
がffmpeg
などに依存していたため、自前でwgetなどでバイナリをインストールして、展開してからpackageに含めてデプロイする...の様な少し煩雑な方法が必要でした。
build options
とinstallation_scripts
今回Agent Engineに追加された build options
とinstallation_scripts
はこの課題をまさに解決する機能で、Agent Engineのデプロイ時(コンテナイメージ作成時)に、ユーザーが作成した、任意のシェルを呼び出せる仕組みです。
実装方法
Agent Engineへのデプロイ時に以下の様に実行するシェルスクリプトファイルを指定すると、デプロイ後のイメージビルド時に、指定したファイルが実行されます。
echo "install ffmpeg"
apt-get update
apt-get install -y ffmpeg
apt clean
agent_engine = agent_engines.create(
agent_engine=adk_app,
display_name=display_name,
requirements=requirements,
extra_packages=[
"mypackage",
"installation_scripts/install.sh"
],
build_options={"installation_scripts": ["installation_scripts/install.sh"]},
)
以下の2点に注意が必要です。
-
installation_scripts
というディレクトリ名は固定- ファイル名はどうやら修正可能ですが、ディレクトリ名はチェック処理が走り異なる名称にしているとエラーになる
-
extra_packages
にもスクリプトのパスを指定する- 指定しないとファイルがアップロードされません。こちらもチェック処理でチェックされます。
使い所
今回のように、ffmpeg
の様なライブラリをインストールするにも使えますが、個人的にはnode
、npm
をインストールして、stdio経由のmcpサーバを実行できるようになったはず(多分)
より柔軟なAgentが作れるようになりましたね。
まとめ
短い内容でしたが、 Agent Engineの新しい機能 build options
について説明しました。
Agent EngineはCloud Runにデプロイすればよくね感があるプロダクトですが、様々な機能が追加されて来て、自由度も上がりだんだん洗練されてきた印象です。
これからもウォッチしていきたいと思います。
Discussion