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 Orchestrateからwatsonx.dataにPythonツールで接続する

1
Last updated at Posted at 2026-03-23

はじめに

watsonx Orchestrate(wxO)とwatsonx.data(wxD)は同じIBMのサービスなので、wxDのデータをwxOから簡単に使えるだろうと思っていました。ところが調べてみると、定義済みのツールやコネクターにDB接続向けのものが見当たらず、自分でツールを作る必要があることに気付きました。

せっかくなので実際に手を動かして、エージェントからwxDの数値データにチャットで問い合わせする体験をしてみることにしました。

Pythonはほぼ素人なので、コードはClaude(生成AI)に手伝ってもらいながら作りました。詳細な手順やコードはGitHubにまとめています。


構成

やったこと

wxD上のIcebergテーブルにサンプルのIT運用データ(サーバーリソースメトリクス)を用意して、wxOのエージェントから自然言語で問い合わせできるようにしました。裏側ではPrestoエンジン経由でSQLが実行されます。


検討して決めたこと

OpenAPIではなくPythonツールにした

wxOのカスタムツールにはOpenAPI(YAML/JSON)とPythonの2種類があります。OpenAPIの方がシンプルで最初はそちらを試みたのですが、PrestoのREST APIが非同期のポーリング方式(nextURIを繰り返し取得する仕組み)のため、OpenAPIでは表現が難しいとわかりました。prestodbライブラリがポーリングを内部でうまく処理してくれるので、Pythonツールとして実装するのが素直な方法でした。

固定SQLツールとText2SQLツールを両方用意した

最初は「用途ごとにSQLを固定したツール」だけ作る設計にしました(例:CPU使用率Top3を返すツール)。LLMがSQLを生成する必要がなく安定しています。

一方で、任意のSQLを受け取って実行する汎用ツール(Text2SQLツール)も作ってみました。エージェントのBehaviorにテーブル定義を書いておくと、LLMが自律的にSQLを組み立てて実行してくれます。2種類のツールを同時に登録しておくと、質問の内容に応じてエージェントが自分でどちらを使うか選んでくれました。

ConnectionをKey-Value方式にした

wxOのConnectionはBasic AuthとKey-Value Pairが選べます。Basic Authだとusername/passwordしか持てず、接続先のhostやportはコードに直書きする必要があります。Key-Value方式にすると、host・port・username・passwordをすべてConnection側で管理できて、コードをすっきりさせることができました。


注意点

APIキーのusername形式

IBM Cloud SaaS版のwatsonx.dataに接続する場合、Prestoのusernameは ibmlhapikey_<IBMCloudのメールアドレス> という形式が必要です(公式ドキュメント:IBM watsonx.data Presto connection)。最初は ibmlhapikey だけで試していてエラーになりました。正確な値はwxDコンソールの接続情報JSONスニペットで確認できます。

TechZone環境を使う場合(参考)

IBM TechZoneのVM仮想環境版でも試しました。PrestoのポートがTechZoneによりリダイレクトされているため払い出し環境の記述ページでポートを確認する必要があること、自己署名SSL証明書のためコード側で証明書検証スキップの対応が必要なことがありました。IBM Cloud SaaS版ではこれらは不要です。


おわりに

wxOのPythonツールは @tool デコレーターを付けた関数のコードをADKでインポートするだけで動くので、思ったよりシンプルでした。生成AIにコードを手伝ってもらいながらですが、ここまで動くものが作れて満足しています。固定SQLツールとText2SQLツールを組み合わせた構成は、安定性と柔軟性のバランスがよくて気に入っています。

詳細な手順やサンプルコードはGitHubをご覧ください。
👉 https://github.com/matsuo-iguazu/wxo-wxDtools

(本記事は、執筆にあたりAnthropic Claudeを利用し、その出力を参考にしています。)

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?