AIエージェント構築時の課題
AIエージェント開発が注目を集める中、watsonx Orchestrateを使ってエージェントを構築する機会が増えてきました。しかし、実際に開発を進めると、いくつかの課題に直面します。具体的には以下のようなものが挙げられます。
カスタム・ツールの実装
- 接続先のシステムにMCPサーバーが用意されていない場合に、Pythonでツールを実装する必要がある
- エラーハンドリングを含めた堅牢なコードを書く必要がある
YAML設定ファイルの記述
- GUIではなく、YAMLベースで開発した場合には、エージェントやツールの定義をYAML形式で記述する必要があり、構文エラーや設定ミスが発生しやすい
開発サイクルの長さ
- コード作成 → テスト → デバッグ → 修正のサイクルに時間がかかる
- ドキュメントを参照しながらの開発は効率が悪い
そこで、最近発表されたIBM Bobと一緒にツールやエージェントの開発を行ってみたところ、開発効率の劇的な向上を体感できたので、その方法を紹介したいと思います。
IBM Bobとは?
IBM Bobは、IBMが提供するAI統合開発環境で、チャットインターフェースを通じて様々なタスクを実行できます。開発者は自然言語で指示を出すだけで、Bobが適切なアクションを実行します。主に企業での利用を前提に、様々な機能を提供しますが、最大の特徴は、タスクの種類に応じた4つのモードがあることです。単なるコード生成だけではなく、コードの分析や要件定義、テスト、様々なフェーズでAIの支援を受けながら効率的な開発を行うことが可能になります。各モードの詳細は以下の通りです。
1. Planモード
-
用途: 設計や実装計画の作成
-
機能:
- 要件分析と設計書の作成
- 実装計画の立案
- タスクの分解とTODOリストの作成
- アーキテクチャの提案
-
使用例: 「株価情報を取得するエージェントの実装計画を作成してください」
2. Codeモード
-
用途: 設計からコードを実装
-
機能:
- ファイルの作成・編集・削除
- コードの生成と修正
- リファクタリング
- テストコードの作成
-
使用例: 「この設計に基づいてPythonツールを実装してください」
3. Askモード
-
用途: 質問する/コードを理解する
-
機能:
- コードの説明
- ドキュメントの参照
- ベストプラクティスの提案
- エラーの原因調査
-
使用例: 「このコードの動作を説明してください」
4. Advancedモード
-
用途: 高度な実装作業
-
機能:
- MCPサーバーの利用: 外部ツールやサービスとの連携
- ブラウザの利用: Webページの閲覧や情報収集
- 複雑なワークフローの実行
- マルチステップタスクの自動化
-
使用例: 「watsonx Orchestrateにエージェントをインポートしてください」(MCP経由)
watsonx Orchestrateが提供する2つのMCPサーバー
watsonx Orchestrateは、開発者向けに2つの異なるMCPサーバーを提供しており、Bobと連携することで様々な処理を行うことが可能です。
1. ドキュメントMCPサーバー
watsonx Orchestrateの公式ドキュメントを検索するためのMCPサーバーです。IBMがホスティングしており、インターネット経由で接続することが可能です。
- 用途: ドキュメント検索、API仕様の確認、ベストプラクティスの参照
- 接続方法: streamable-http
- URL:
https://developer.watson-orchestrate.ibm.com/mcp - 主なツール:
-
SearchIbmWatsonxOrchestrateAdk: ADKのドキュメントを検索
-
このMCPサーバーを使用することで、IBM Bobは最新のドキュメントを参照しながらコードを生成できます。また、開発者が開発中に「この機能の使い方は?」と疑問に思ったときにチャット経由で質問することで、ドキュメントを検索して回答してくれます。
2. ADK MCPサーバー(ibm-watsonx-orchestrate-mcp-server)
watsonx Orchestrate環境を直接操作するためのMCPサーバーです。以下のようなツールが提供されており、Bobから様々な処理を直接実行することが可能になります。
| カテゴリ | 主なツール |
|---|---|
| エージェント管理 |
list_agents, create_or_update_agent, import_agent, export_agent
|
| ツール管理 |
list_tools, import_tool, create_tool, get_tool_template
|
| ツールキット管理 |
list_toolkits, import_toolkit, add_toolkit
|
| 接続管理 |
list_connections, create_connection, configure_connection
|
| モデル管理 |
list_models, import_model, create_or_update_model
|
IBM BobとwatsonxOrchestrateの連携設定
MCPサーバーを設定メニューより構成し、2つのMCPサーバーを登録します。
設定ファイルのサンプルは以下の通りです。MCPがアクセスするディレクトリを指定する必要がありますので適切なフォルダを指定してください。
{
"mcpServers": {
"wxo-docs": {
"type": "streamable-http",
"url": "https://developer.watson-orchestrate.ibm.com/mcp",
"alwaysAllow": [
"SearchIbmWatsonxOrchestrateAdk"
]
},
"orchestrate-adk": {
"command": "uvx",
"args": [
"--with",
"ibm-watsonx-orchestrate==2.1.0",
"ibm-watsonx-orchestrate-mcp-server==2.1.0"
],
"env": {
"WXO_MCP_WORKING_DIRECTORY": "/path/to/your/workspace"
},
"alwaysAllow": [
"list_agents",
"export_agent",
"get_tool_template",
"list_tools",
"list_toolkits",
"list_connections",
"list_models",
"check_version"
]
}
}
}
動作確認
ADK MCPサーバーのテスト:
ADKのMCPサーバーを利用するには、ADKのenvironmentをactivateしておく必要があります。Bobのチャット経由でenvironmentをactivateしても良いのですが、コマンドで行っておいたほうがスムーズでした。environmentをactivateするには、コマンドラインから以下のコマンドを実行します。
orchestrate env activate env_name
ちなみに、activateした時に取得する環境へのトークンは"~.cache\orchestrate\credentials.yaml"に保存されて共有されます。
チャット欄から、利用可能なモデルについて聞いてみましょう。
以下のように、Bobがlist_modelsツールを使用して、モデル一覧を表示すれば成功です!

ドキュメントMCPサーバーのテスト:
チャット欄から、「watsonx Orchestrateのエージェント作成方法を教えてください」と聞いてみましょう。
IBM BobがSearchIbmWatsonxOrchestrateAdkツールを使用して、ドキュメントから情報を検索・表示すれば、ドキュメントMCPサーバーの連携も成功です!
IBM Bobを使ったPythonツールの開発
それでは、実際にIBM Bobを使って、watsonx Orchestrate用のPythonツールを作成してみましょう。まずはPlanモードでToolを作成したい旨を入力します。

すると、前述のドキュメントMCPなども参考にしながら、プランをしてくれます。

その後、Codeモードへ自動的に切り替えて、コードの生成や説明のドキュメントも生成してくれました!1行もコードを書く必要はなく、言われるがままに作業を承認していたらものの数分で完成しました。
今回はMCPサーバーを使用しないCodeモードモードで処理を進めたため、MCPサーバー経由でのToolのインポートは行わず、インポート用のコマンドをドキュメントでまとめてくれました。
IBM Bobを使ったToolのインポート
せっかくなので、Advancedモードに変更してToolのインポートまでやってもらいましょう。

一部手順でエラーが発生しましたが、自動的に解決し、ツールのインポートが成功しました。

uvxを用いてローカルにMCPサーバーを導入する場合、ツールで使用するモジュールをインストールするには、以下のように設定してMCPサーバーを再起動する必要があることに注意してください。(以下はyfinanceをインストールする例)
"args": [
"--with",
"yfinance",
"--with",
"ibm-watsonx-orchestrate==2.1.0",
"ibm-watsonx-orchestrate-mcp-server==2.1.0"
],
動作確認
詳細な説明は割愛しますが、作成したツールを使うエージェントについてもBobと一緒に作成しました。こちらもツールと同様にSaaSの環境へのインポートまで行ってくれました。
チャット欄からIBMの株価を確認してみたところ以下のように正しく動作しました。

まとめ
今回は、IBM Bobとwatsonx Orchestrateを組み合わせてエージェントやツールの開発を行ってみました。watsonx OrchestrateがMCPサーバーを提供していることもあり、非常に効率的な開発を行うことができました。
AI開発は、今後さらに進化していくでしょう。IBM Bobのような対話的なAIアシスタントと、watsonx OrchestrateのようなAIエージェントプラットフォームの組み合わせは、開発者の生産性を大きく向上させます。
特に、MCPサーバーを介した連携により、AIアシスタントが外部ツールやサービスと直接やり取りできるようになったことは、大きな進歩です。これにより、開発者は本質的な問題解決に集中でき、定型的な作業はAIに任せることができます。技術者に求められる要素もこれまでとは変わってくるでしょう。
この記事は、IBM Bobを使用して執筆されました。
ここまで読んでいただき、ありがとうございます。と、ここでネタ晴らしなのですが、実は、この記事自体もIBM Bobを使って執筆しました。過去に執筆した記事や、作成したエージェントの成果物をベースに指示を与えて文章を生成し微調整し、最後に校閲をBobに依頼して行っています。ちなみに、最初に「実はBobが書いていることにしたいです」と伝えたところ「メタ的な構成で良い記事ですね!」と褒めてもらいました。
記事作成のプロセスもBobが以下のようにまとめてくれたので最後に記載しておきます。
記事作成のプロセス
-
構成の相談
Qiitaという技術サイトに、IBM Bobとwatsonx Orchestrateの連携に関する記事を執筆したいです。 -
要件の追加
噂のIBM Bobと一緒にwatsonx Orchestrateのツールやエージェントを作ってみたAIエージェントを実装する際に、まだ接続先のシステムに、MCPサーバーなどが用意されておらず、 Pythonのコードを書く必要があるケースがあるなど、最初に課題も入れてください -
記事の生成
IBM Bobは、以下の情報を参照しながら記事を生成しました:- プロジェクト内の既存ファイル(
stock_price_agent.yaml,stock_price_tool.py) - watsonx Orchestrate ADKのドキュメント
- MCP設定ファイル(
mcp_settings.json) - サンプル記事(
sample1.md)
- プロジェクト内の既存ファイル(
-
構成の調整
記事が長くなるのでKnowledgeBaseは含めないでOKです。


