はじめに
IBM watsonx Orchestrate(以下 wxO)では、エージェント・ツール・フローを YAML や Python で記述してデプロイするための開発キット ADK(Agent Development Kit)を提供しています。
それに加えて、MCP サーバーとスキルもあわせて提供しています。これらは IBM Bob(IBM のAI搭載コーディングアシスタント)はもちろん、Cursor・Claude・Copilot など MCP に対応した任意のコーディングエージェントから利用できます。
本記事では、以下の2点を中心に紹介します。
- wxO が提供する MCP サーバー と スキル の概要
- エージェントの UI 表示名を日本語にする
display_nameフィールドの使い方(ハマりポイントと解決策)
作例は「モックデータを使ったシンプルな営業支援エージェント(PoC 向け)」です。本記事では IBM Bob を使っています。
wxO ADK とは
ADK(Agent Development Kit)は IBM が MIT ライセンスで公開しているオープンソースの wxO 向け開発キットです。
| リソース | リンク | 説明 |
|---|---|---|
| ADK GitHub リポジトリ | https://github.com/IBM/ibm-watsonx-orchestrate-adk | ADK 本体。スキル・サンプルコードも同梱 |
| ADK ドキュメント(公式) | https://developer.watson-orchestrate.ibm.com/ | API リファレンス・ガイド類 |
wxO が提供する MCP サーバー
wxO は 役割の異なる2種類の MCP サーバーを提供しています。まず両者の違いを整理します。
| ① 操作用 MCP サーバー | ② ドキュメント MCP サーバー | |
|---|---|---|
| 目的 | wxO 環境を操作する(エージェント・ツールのデプロイ/管理) | wxO ドキュメントを検索し最新仕様を参照する |
| 種別 | ローカル実行(STDIO) | リモート(常時公開・ホスト済み) |
| パッケージ |
ibm-watsonx-orchestrate-mcp-server(ADK 本体とは別パッケージ) |
なし(インストール不要) |
| 接続先 |
uvx / pipx でローカル起動 |
https://developer.watson-orchestrate.ibm.com/mcp |
| 主な用途 | コード生成 → デプロイまでをチャットで実行 | 実装中にリアルタイムで仕様を確認 |
| 対応エージェント | Bob・Cursor・Claude・Copilot など MCP 対応の任意のエージェント | 同左 |
| 詳細 | 操作用 MCP サーバー インストールガイド | ドキュメント MCP サーバーガイド |
ざっくり言うと、**①は「wxO を動かす手」、②は「wxO の仕様を読む目」**です。この2つを組み合わせると、コーディングエージェントが「最新仕様を参照しながら(②)、実際に wxO 環境を操作する(①)」という一連の流れをチャット内で完結できます。なお Bob では①②の両方が標準で登録済みのため、追加設定なしにそのまま利用できます。
ADK が提供するスキル
スキルは、コーディングエージェントに wxO の実装ガイダンスを与える SKILL.md ファイルです。ADK の GitHub リポジトリ(skills/ ディレクトリ)で管理・公開されており、ADKの公式ドキュメントでは "Bob skills" として紹介されています。ただし SKILL.md ファイルは公開されているため、Claude Desktop など他のコーディングエージェントでも利用可能です。
wxO 関連スキル一覧
ADK ドキュメント(スキルガイド)では以下のスキルが紹介されています。
| スキル名 | GitHub | 概要 |
|---|---|---|
wxo-builder |
SKILL.md | SOP やプロンプトから wxO ネイティブ実装(エージェント・ツール・フロー)を生成するエキスパートガイド。エージェントを1から作る場合はこれが最短ルート |
wxo-analyzer |
SKILL.md | 既存 wxO プロジェクトを分析し、Mermaid 図入りの3種ドキュメント(概要・エージェント・ツール)を生成 |
sop-builder |
SKILL.md | BPMN・n8n・Langflow などのフロー図から SOP を作成。wxo-builder の前段として使う |
solution-architect |
SKILL.md | ビジネス要件からソリューションアーキテクチャ文書(概要・技術・実装計画)を作成 |
agent-instructions-evaluator |
SKILL.md | エージェント定義の品質を多次元スコアリングして改善提案を出すレビュー ツール |
実践:Bob で営業支援エージェントを作ってみる
ここからは Bob を使った実際の作業を紹介します。
要件ヒアリング
チャットで一言、こう伝えるだけで始まります。
# チャットで一言指示するだけ
営業支援のデモ用エージェントを作りたいです。
すると Bob は内部で wxo-builder スキルをロードしたうえで要件をヒアリングし、ファイル生成 → デプロイまでを進めます。
今回の選択:
- スタイル: モックデータを使ったシンプルな PoC 向けエージェント(外部連携なし)
- 機能: 顧客リスト検索・商談パイプライン確認・提案メール生成 の3機能セット
- 言語: 日本語
生成されたプロジェクト構成
sales_support_demo/
├── tools/
│ ├── customer_tools.py # 顧客情報検索ツール(モックデータ)
│ ├── deal_tools.py # 商談パイプラインツール(モックデータ)
│ └── email_flow.py # 提案メール生成フロー(LLM使用)
├── agents/
│ └── sales_agent.yaml # エージェント設定
├── import-all.sh # 一括デプロイスクリプト
└── README.md
主要ツールのコード例
customer_tools.py では ADK の @tool デコレーターを使います。
from typing import Optional
from ibm_watsonx_orchestrate.agent_builder.tools import tool, ToolPermission
@tool(permission=ToolPermission.READ_ONLY)
def search_customers(
keyword: Optional[str] = None,
industry: Optional[str] = None,
region: Optional[str] = None,
) -> CustomerList:
"""顧客リストをキーワード・業種・地域で検索します。"""
# モックデータ(実環境では CRM API を呼び出す)
...
email_flow.py では @flow デコレーターでフロー(複数ステップの処理)を定義します。
from ibm_watsonx_orchestrate.flow_builder.flows import Flow, flow, START, END
@flow(
name="generate_proposal_email",
display_name="提案メール生成",
description="顧客情報と提案内容をもとに提案メールを生成します",
input_schema=EmailFlowInput,
)
def build_generate_proposal_email(aflow: Flow) -> Flow:
"""顧客情報と提案内容から提案メールを生成するフロー。"""
...
ハマりポイント:エージェント名を日本語にしたい
wxO では name フィールドが英数字とアンダースコアのみという制約があります。「営業支援エージェント」のような日本語名を直接 name に設定できません。
Bob が最初に生成した YAML ではこうなっていました。
spec_version: v1
kind: native
name: sales_support_agent # 英数字のみ
description: 日本語対応の営業支援デモエージェント。
...
UI 上のエージェント名も sales_support_agent と表示されてしまい、日本語のデモには不向きです。
解決策:display_name フィールドを追加する
発見の経緯:GUI エクスポートで確認
Bob は当初 display_name フィールドを YAML に生成しませんでした。そこで以下の手順で display_name の存在を確認しました。
- wxO GUI 上でエージェントの表示名を日本語(「営業支援エージェント」)に変更
-
orchestrate agents exportコマンドでエクスポートし、Bob に確認を依頼 - エクスポートされた YAML の3行目に
display_name: 営業支援エージェントが含まれていることを Bob が発見
# orchestrate agents export -n sales_support_agent -k native -o exported.yaml --agent-only
kind: native
name: sales_support_agent
display_name: 営業支援エージェント ← GUI の変更がここに反映されていた
description: '日本語対応の営業支援デモエージェント。'
...
その後 ADK ドキュメント(build_agent)のコードサンプル YAML にも同フィールドが存在することを確認。正式サポートのフィールドであることが裏付けられました。
Note: このフィールドは主要フィールドの仕様説明セクションには個別解説がなく、コードサンプルの中にのみ登場します。GUI でのエクスポートによる確認が最も確実な方法でした。
display_name を設定した YAML
spec_version: v1
kind: native
name: sales_support_agent # 内部識別子(英数字のみ)
display_name: 営業支援エージェント # UI 上の表示名(日本語・Unicode OK)
description: >
日本語対応の営業支援デモエージェント。
顧客情報の検索・表示、商談パイプラインの確認、提案メールの生成をサポートします。
instructions: |
あなたは優秀な営業支援AIアシスタントです。日本語で丁寧に応答してください。
...
llm: groq/openai/gpt-oss-120b
style: react
tools:
- search_customers
- get_customer_detail
- get_deal_pipeline
- get_pipeline_overview
- generate_proposal_email
| フィールド | 用途 | Unicode 可否 |
|---|---|---|
name |
内部識別子(API・CLI で使用) | ❌ 英数字+アンダースコアのみ |
display_name |
UI 上の表示名 | ✅ 日本語・Unicode 使用可 |
注意:
titleフィールドはexternal/assistantエージェント専用です。nativeエージェントにはdisplay_nameを使ってください。
Bob のナレッジ管理:スキルとルールの使い分け
今回発見した display_name の知識について、「次回同じ手間をかけないためにどこに記録するべきか?」という問いに対し、Bob は以下の整理を示してくれました。
| 場所 | 役割 | 適切か |
|---|---|---|
.bob/skills/wxo-builder/SKILL.md |
ADK GitHub から取り込んだ実装ガイド | 更新すると fetch_skill で上書きされるため避けたい |
.bob/rules/wxo-agent-yaml.md(新規作成) |
プロジェクト固有の実装知見・補足 | ✅ ここが最適 |
スキルは ADK の Git リポジトリから fetch_skill で取得したファイルです。プロジェクト固有の知識は .bob/rules/ 以下に別ファイルとして分離するとスキルを汚染せずに済みます。ルールはスキルより優先されるため、SKILL.md を修正しなくても挙動を上書きできます。
実際に本プロジェクトでは .bob/rules/wxo-agent-yaml.md に以下を記載しました。
# wxO エージェント YAML 実装ナレッジ
## `display_name` フィールド(SKILL.md に未記載)
native エージェントの YAML には `display_name` フィールドが使用可能。
`name` は英数字・アンダースコアのみという制約があるため、
日本語などを含む表示名は `display_name` で設定する。
\`\`\`yaml
name: my_agent # 英数字・アンダースコアのみ
display_name: 私のエージェント # UI 上の表示名(日本語・Unicode 使用可)
\`\`\`
**注意**: `title` フィールドは external/assistant エージェント専用。
まとめ
- wxO ADK は MCP サーバーとスキルをあわせて提供しており、Bob 以外の MCP 対応コーディングエージェントでも利用できる
- Bob では MCP サーバーが標準登録済みのため、追加設定なしに wxO 操作がチャット内で完結する
-
wxo-builderスキルを使うと、要件の対話から実装ファイル生成まで一気通貫で進められる -
display_nameフィールドを使うとnameの英数字制約を回避して日本語の UI 表示名を設定できる。GUI でエージェントを作成・エクスポートして確認することが発見の近道 - プロジェクト固有の知識は
.bob/rules/にルールファイルとして蓄積するとスキルを上書きせずに管理できる
wxO + Bob の組み合わせは、PoC 段階でも本番に近い体験のデモをすばやく構築するのに非常に有効です。ぜひ試してみてください。
参考リンク
| リソース | URL | 説明 |
|---|---|---|
| ADK GitHub リポジトリ | https://github.com/IBM/ibm-watsonx-orchestrate-adk | ADK 本体。スキル・サンプルコードも同梱 |
| ADK ドキュメント(公式) | https://developer.watson-orchestrate.ibm.com/ | API リファレンス・ガイド類 |
| エージェント構築ガイド | https://developer.watson-orchestrate.ibm.com/agents/build_agent |
display_name のサンプルも掲載 |
| スキル設定ガイド | https://developer.watson-orchestrate.ibm.com/agents/agent_design/wxo_skills | 各コーディングエージェントへのスキル導入方法 |
| スキル一覧(GitHub) | https://github.com/IBM/ibm-watsonx-orchestrate-adk/tree/main/skills | 全スキルの SKILL.md を確認できる |
