1
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?

watsonx.aiのAgent LabでAgentをデプロイし、watsonx Orchestrateに組み込んでみる

Last updated at Posted at 2025-03-06

Agent Labとwatsonx Orchestrate

Agent Labは現在ベータ版が提供されているwatsonx.ai上で簡単にAIAgentを作成、デプロイできる機能です。また、watsonx Orchestrateには外部のAgentを登録して利用できる機能があります。この記事では、Agent Labで作成したAI Agentをwatsonx Orchestrateに組み込んで動作させるまでの流れについて説明します。なお、現時点では、直接組み込むことはできず、wrapperのコードが必要になります。今回はこちらに公開されているwrapperを利用して接続します。

Agentの定義

watsonx.aiでプロジェクトを作成し、Agent Labを選択します。

image.png
Agentの定義画面が表示されるので、各種設定を行います。
現時点では、フレームワークとしてはLangGraphのみ選択することが可能です。
今回は、ツールとして、Google Web SearchとWeatherを追加してみます。

image.png
右側のプレビュー画面より、以下の質問を入力してみます。

Tell me the temperature of the city where the biggest baseball stadium in Japan is located.

image.png

正しく結果が返ってきました。Agentがどのように処理を呼び出して回答を生成しているかも確認することが可能です。
なお、プロンプトなどを調整することで日本語でも動作しますが、API呼び出し時のパラメータがうまく英語に変換されないケースがあったため、ここでは英語で実施しています。

Agentのデプロイ

定義したAgentoは右上のdeployボタンより、簡単にデプロイすることができます。

image.png

なお、デプロイを行うには、ターゲットとなるnamespaceの作成と、API-Keyが必要になります。watsonxのAPI-Keyはユーザーのプロファイル画面から生成することが可能です。

デプロイが完了すると以下のような画面が表示され、エンドポイントなどの情報を確認できます。この後wrapperを作成する際に必要となるので、URLの/deployments/以降の文字列をコピーして保存しておきましょう。

image.png

wrapperのビルド

以下のGitをCloneする、もしくはダウンロードして解凍します。

CodeEngineにデプロイする前に、ローカルで動作確認してみます。
まず、環境変数が必要なので、今回は、DockerFileに以下2行を追加しました。

ENV WATSONX_DEPLOYMENT_ID=先ほど確認したDeploymentID
ENV WATSONX_API_KEY=ibmcloudのAPIKey(IAM設定画面より取得可能です)

docker build ./ -t agent
docker run -p 8080:8080 agent
ブラウザより、http://localhost:8080/docs にアクセスするとSwaggerのUIが表示されます。/chat/completionsのAPIを呼び出してみます。すると、次のエラーが表示されました。

image.png

どうやら、client.set.default_projectでデフォルトプロジェクトIDをセットしろとのことです。
そこで、以下の様にコードを修正しました。環境変数を使うべきですが、今回はハードコードしました。

utils.pyの68行目あたりに以下を追加
   client.set.default_project(watsonx.aiのプロジェクトID)

再度テストすると無事に応答が返ってきました。

wrapperのデプロイ

ビルドしたイメージをCodeEngineにデプロイします。

まず、ContainerRegistryにイメージをプッシュします。
ログイン方法などは、様々ですので環境に応じて適切なコマンドを使用してください。また、必要に応じてnamespaceの新規作成などを行ってください。

以下コマンドの流れです。

ibmcloud login -apikey ZZZZZZ -region jp-tok
ibmcloud cr login
docker tag agent jp.icr.io/namespace/agent:latest
docker push jp.icr.io/namespace/agent:latest

なお、pushする際は、ログインしてから時間が経っていると失敗するケースがあり、ログイン直後に実施すると成功する可能性が高かったです。

PUSHが成功したら、IBMCloudのCodeEngine画面より、アプリケーションを作成し、先ほどPUSHしたイメージを選択してデプロイします。
デプロイが完了すると以下の様にエンドポイントが確認できますのでコピーしておきます。
image.png

watsonx OrchestrateへのAgentの登録

デプロイしたAgentのwrapperをwatsonx Orchestrateに登録します。
チャット設定>Agentsより、Agentを登録します。今回のwrapperは認証が実装されていないので、API keyとしてはダミーの値を入力します。
先ほどのエンドポイントのURLに/chat/completionsを付加したものが、Service instanceのURLになります。

image.png

動作確認

AgentChatから質問をなげてみます。
正しく、external agentにルーティングされて、結果が返ってきました。

image.png

まとめ

この記事では、watsonx.aiのAgent Labを用いて、Agentを定義し、watsonx Orchestrateに登録してルーティングするまでの流れを解説しました。現時点ではBetaの機能もあり、少し手間がかかりますが、今後はより簡単にこれらのことが可能になるでしょう。

LangGraphやCrewAIといったAgentフレームワークを用いたAgent開発が進んでくると、Agentが入り乱れたAgentMeshと呼ばれるような問題が出てきます、また企業内で利用するための認証の基盤、ユーザー管理といった仕組みと組み合わせて利用する必要があります。

watsonx Orchestrateは単体のフレームワークではカバーできないそれらの機能や、必ずしもAgenticに解決する必要が無い固定された業務フローの定義、実行や、AIが苦手とするルール・ベースの意思決定なども含めて提供できるプラットフォームとしての位置付けがより明確になっていくと思われます。

1
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
1
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?