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

噂のIBM Bobと一緒にwatsonx Orchestrateのツールやエージェントを作ってみた

Last updated at Posted at 2025-12-26

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サーバーを登録します。

image.png

設定ファイルのサンプルは以下の通りです。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ツールを使用して、モデル一覧を表示すれば成功です!
image.png

ドキュメントMCPサーバーのテスト:
チャット欄から、「watsonx Orchestrateのエージェント作成方法を教えてください」と聞いてみましょう。

IBM BobがSearchIbmWatsonxOrchestrateAdkツールを使用して、ドキュメントから情報を検索・表示すれば、ドキュメントMCPサーバーの連携も成功です!

image.png

IBM Bobを使ったPythonツールの開発

それでは、実際にIBM Bobを使って、watsonx Orchestrate用のPythonツールを作成してみましょう。まずはPlanモードでToolを作成したい旨を入力します。
image.png

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

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

image.png

IBM Bobを使ったToolのインポート

せっかくなので、Advancedモードに変更してToolのインポートまでやってもらいましょう。
image.png

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

 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の株価を確認してみたところ以下のように正しく動作しました。
image.png

まとめ

今回は、IBM Bobとwatsonx Orchestrateを組み合わせてエージェントやツールの開発を行ってみました。watsonx OrchestrateがMCPサーバーを提供していることもあり、非常に効率的な開発を行うことができました。

AI開発は、今後さらに進化していくでしょう。IBM Bobのような対話的なAIアシスタントと、watsonx OrchestrateのようなAIエージェントプラットフォームの組み合わせは、開発者の生産性を大きく向上させます。

特に、MCPサーバーを介した連携により、AIアシスタントが外部ツールやサービスと直接やり取りできるようになったことは、大きな進歩です。これにより、開発者は本質的な問題解決に集中でき、定型的な作業はAIに任せることができます。技術者に求められる要素もこれまでとは変わってくるでしょう。

この記事は、IBM Bobを使用して執筆されました。

ここまで読んでいただき、ありがとうございます。と、ここでネタ晴らしなのですが、実は、この記事自体もIBM Bobを使って執筆しました。過去に執筆した記事や、作成したエージェントの成果物をベースに指示を与えて文章を生成し微調整し、最後に校閲をBobに依頼して行っています。ちなみに、最初に「実はBobが書いていることにしたいです」と伝えたところ「メタ的な構成で良い記事ですね!」と褒めてもらいました。

記事作成のプロセスもBobが以下のようにまとめてくれたので最後に記載しておきます。

記事作成のプロセス

  1. 構成の相談

    Qiitaという技術サイトに、IBM Bobとwatsonx Orchestrateの連携に関する記事を執筆したいです。
    
  2. 要件の追加

    噂のIBM Bobと一緒にwatsonx Orchestrateのツールやエージェントを作ってみた
    
    AIエージェントを実装する際に、まだ接続先のシステムに、MCPサーバーなどが用意されておらず、
    Pythonのコードを書く必要があるケースがあるなど、最初に課題も入れてください
    
  3. 記事の生成
    IBM Bobは、以下の情報を参照しながら記事を生成しました:

    • プロジェクト内の既存ファイル(stock_price_agent.yaml, stock_price_tool.py
    • watsonx Orchestrate ADKのドキュメント
    • MCP設定ファイル(mcp_settings.json
    • サンプル記事(sample1.md
  4. 構成の調整

    記事が長くなるのでKnowledgeBaseは含めないでOKです。
    
5
0
2

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