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

wxO が提供するスキル・MCPサーバーで営業支援エージェントを作る — `display_name` で日本語名を設定する

0
Posted at

はじめに

IBM watsonx Orchestrate(以下 wxO)では、エージェント・ツール・フローを YAML や Python で記述してデプロイするための開発キット ADK(Agent Development Kit)を提供しています。
それに加えて、MCP サーバーとスキルもあわせて提供しています。これらは IBM Bob(IBM のAI搭載コーディングアシスタント)はもちろん、Cursor・Claude・Copilot など MCP に対応した任意のコーディングエージェントから利用できます。

本記事では、以下の2点を中心に紹介します。

  1. wxO が提供する MCP サーバー と スキル の概要
  2. エージェントの 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 では①②の両方が標準で登録済みのため、追加設定なしにそのまま利用できます。

Bob の MCP 設定画面。"watsonx orchestrate" で検索すると「ibm-watsonx-orchestrate-core」と「IBM watsonx Orchestrate ADK」の2つが接続済みになっている


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 の存在を確認しました。

  1. wxO GUI 上でエージェントの表示名を日本語(「営業支援エージェント」)に変更
  2. orchestrate agents export コマンドでエクスポートし、Bob に確認を依頼
  3. エクスポートされた 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 を確認できる
0
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
0
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?