2025年08月

04

【てくさぽBLOG】IBM watsonx OrchestrateのADKを使ってみた

こんにちは。
てくさぽBLOGメンバーの高村です。

早速ですが、今年5月に開催されたIBMの年次イベント「Think2025」で、watsonx Orchestrateの新機能が発表されました!その中の一つとして、開発者向けの「Agent Development Kit(以下、ADK)」があります。今回はこのADKを活用し、watsonx Orchestrate環境への接続やエージェントの追加といった操作を行い、その使用感をご紹介します。 

なお、watsonx Orchestrateについては、今年2月、3月に公開した「watsonx OrchestrateやってみたBLOG」でご紹介しておりますので、是非こちらもご一読ください。

【てくさぽBLOG】IBM watsonx Orchestrateを使ってみた(Part1)
【てくさぽBLOG】IBM watsonx Orchestrateを使ってみた(Part2)

はじめに

Think2025で発表された新機能は、6月に環境へ追加されました。それ以前の環境とは、メニュー構成や操作方法、機能名称に変更があります。 例えばこれまで「Skill」と呼ばれていたものが「Tool」へと名称変更されています。

アップデート後の環境につきましては、別ブログにて改めて詳しくご紹介させていただく予定ですので、ぜひご期待ください!

ADKとは?

まずはADKについてご紹介します。ADKとは開発者向けにwatsonx OrchestrateのAgentやToolをスクラッチ開発するための開発キットになります。ローカル端末などに導入し、pythonベースで開発を行うことができます。

また、ADKとは別に、watsonx Orchestrate Developer Editionをローカル端末に導入することで、ADKで開発したAgentやToolのテストが可能になります。なお、watsonx Orchestrate Developer EditionはDockerコンテナ上で動作し、現時点のハードウェア要件はCPUは最小8コア、メモリは最小16GBが必要です。詳細はInstalling the watsonx Orchestrate Developer Editionをご確認ください。

 

ADKとwatsonx Orchestrate Developer Editionを利用することで、コードの迅速な作成・修正や柔軟なカスタマイズに加え、環境へのデプロイ前にローカルでテスト・修正が可能となり、作業効率の向上が期待できます。

ADK使ってみた

前述ではADKでAgent開発し、watsonx Orchestrate Developer Editionで動作確認、SaaS watsonx Orchestrateへインポートする構築の流れをお話しましたが、今回の検証における動作確認は検証環境として利用しているIBM Cloud 上のwatsonx Orchestrate利用します。よって前述したwatsonx Orchestrate Developer Editionは利用せず、ADKからwatsonx Orchestrate検証環境へAgentとToolを直接インポートし、動作確認を行いたいと思います。また、ADKのインストール先は自分の端末ではなく、IBM Cloud上に構築したUbuntuのVirtual Server Instance(以下、VSI)を使用します。検証環境の構成イメージは下記の図の通りです。

尚、ADKのインストール要件はPython 3.11以上、Pip、そして仮想環境(以下venv)が必要です。詳細については、Getting started with the ADKをご確認ください。

それでは早速使ってみましょう!

VSIのプロビジョニング

まずはADKをインストールするVSIをプロビジョニングします。本ブログではプロビジョニング方法について詳しく記載いたしませんが、手順は「【てくさぽBLOG】IBM Power Virtual ServerのAIX環境とIBM Cloud Object Storageを接続してみた(Part1)」のVSI for VPCの作成をご参考ください。

OSはUbuntu 22.04 LTS Jammy Jellyfish Minimal Install、リソースは2vCPU,4GB RAMで作成しました。VSI作成時にSSH鍵が必要なるので作成を忘れないようにしてください。

作成すると数分で起動します。端末からSSHログインするため浮動IPが必要になります。赤枠で囲った浮動IPを作成しインスタンスに紐づけします。以上でVSIの作成は完了です。

Ubuntuの設定

ターミナルを開きsshでUbuntuにログインします。私はWindowsのコマンドプロンプトを使用しました。Ubuntuユーザでログイン後、rootパスワードを設定し、スイッチできるようにします。

ubuntu@nicptestvsi:~$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
ubuntu@nicptestvsi:~$ su –

pythonのバージョンを確認したところ3.10.12でした。ADKの要件は3.11以上ですので、バージョンアップが必要になります。最初は3.13にバージョンアップしてみたのですが、後続作業と最新バージョンではパッケージが合わなかったのかうまく動かず…仕切り直して3.11を利用することにしました!

root@nicptestvsi:~# apt install python3.11

バージョンアップ後、デフォルトバージョンとして3.11を指定します。

root@nicptestvsi:~# sudo update-alternatives –install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives –install /usr/bin/python3 python3 /usr/bin/python3.11 2
sudo update-alternatives –config python3
update-alternatives: using /usr/bin/python3.10 to provide /usr/bin/python3 (python3) in auto mode
update-alternatives: using /usr/bin/python3.11 to provide /usr/bin/python3 (python3) in auto mode
There are 2 choices for the alternative python3 (providing /usr/bin/python3).Selection Path Priority Status
————————————————————
* 0 /usr/bin/python3.11 2 auto mode
1 /usr/bin/python3.10 1 manual mode
2 /usr/bin/python3.11 2 manual modePress <enter> to keep the current choice[*], or type selection number: 2
root@nicptestvsi:~#
root@nicptestvsi:~# python3 –version
Python 3.11.13

次に下記コマンドを実行して任意のvenvを作成します。

python3 -m venv /path/to/nicpse/project/your-venv-adktest <環境のパスを指定

venvを活性化してログインします。下記コマンド結果のようにvenvに入れましたらUbuntuの設定は完了です。

root@nicptestvsi:~# source /path/to/nicpse/project/your-venv-adktest/bin/activate
(your-venv-adktest) root@nicptestvsi:~#

ADKのインストール

以下コマンドを実行してADKをインストールします。ADKは6月時点で1.5.1が最新バージョンです。

(your-venv-adktest) root@nicptestvsi:~# pip install ibm-watsonx-orchestrate
Collecting ibm-watsonx-orchestrate
Downloading ibm_watsonx_orchestrate-1.5.1-py3-none-any.whl.metadata (1.4 kB)
Collecting certifi>=2024.8.30 (from ibm-watsonx-orchestrate)
Downloading certifi-2025.6.15-py3-none-any.whl.metadata (2.4 kB)
Collecting click<8.2.0,>=8.0.0 (from ibm-watsonx-orchestrate)
Downloading click-8.1.8-py3-none-any.whl.metadata (2.3 kB)
Collecting docstring-parser<1.0,>=0.16 (from ibm-watsonx-orchestrate)
Downloading docstring_parser-0.16-py3-none-any.whl.metadata (3.0 kB)
Collecting httpx<1.0.0,>=0.28.1 (from ibm-watsonx-orchestrate)
Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)
—-中略—-
(your-venv-adktest) root@nicptestvsi:~# orchestrate –version
ADK Version: 1.5.1

ADKの環境設定

次にADKの環境設定を行います。watsonx OrchestrateのインスタンスIDが必要になるため、watsonx OrchestrateのSetting画面に入り確認します。下記画面をご参考にしてください。

環境設定コマンドはこちらになります。-nの後はvenv名を指定し、-uの後はインスタンスIDを指定します。

(your-venv-adktest) root@nicptestvsi:~# orchestrate env add -n <仮想環境名> -u <環境のインスタンスID>
[INFO] – Environment ‘my-name’ has been created
[INFO] – Existing environment with name ‘nicpse’ found.
Would you like to update the environment ‘nicpse’? (Y/n)y
[INFO] – Environment ‘nicpse’ has been created

以下コマンドを実行して、IBM Cloud上のwatsonx Orchestrateと認証設定をします。APIキーの取得方法は「【てくさぽBLOG】IBM watsonx.aiを使ってみた(Part2)」のAPIキーの取得をご確認ください。尚、リモート環境に対する認証は2時間ごとに期限切れになります。期限が切れた場合は再度認証する必要があります。

(your-venv-adktest) root@nicptestvsi:~# orchestrate env activate nicpse –apikey <APIキー>
[INFO] – Environment ‘my-ibmcloud-saas-account’ is now active
[INFO] – Environment ‘nicpse’ is now active

下記コマンドを実行してCLIから利用できる環境のリストを表示します。IBM Cloud上のwatsonx Orchestrateがactiveとなっていました!

(your-venv-adktest) root@nicptestvsi:~# orchestrate env list
nicpse https://api.us-south.watson-orchestrate.cloud.ibm.com/instances/XXXXXXXX (active)
local http://localhost:XXXX

Toolとagentのインポート

次にToolとAgentのインポートを行います。ToolとはAgentがタスクを実行する際に利用する機能です。今回は、IBM様より共有いただいたyfinanceを活用したToolおよびAgentのコードを、ADKを用いてインポートします。なお、yfinanceはヤフーファイナンスから株価などの金融データを取得するためのPythonライブラリです。

最初にToolのインポートを行います。下記の様に、scpなどでToolファイルとrequirements.txtをディレクトリにアップロードしておきます。requirementsファイルは他のモジュールと依存関係がある場合使用します。

(your-venv-adktest) root@nicptestvsi:~/orchestrate_tool/py/source_02# ls -l
total 12
-rw-r–r– 1 root root 0 Jun 24 04:42 __init__.py
drwxr-xr-x 2 root root 4096 Jun 24 04:38 __pycache__
-rw-rw-r– 1 ubuntu ubuntu 8 Jun 24 03:02 requirements.txt
-rw-rw-r– 1 ubuntu ubuntu 1778 Jun 24 02:46 yfinance_agent.py

下記コマンドを実行してToolファイルとrequirementsファイルをインポートします。企業情報を取得するstock_infoと株価を取得するstock_quoteの2つのToolがインポートされました。

(your-venv-adktest) root@nicptestvsi:~/orchestrate_tool/py/source_02# orchestrate tools import -k python -f “./yfinance_agent.py” -r “./requirements.txt”
[INFO] – Using requirement file: “./requirements.txt”
[INFO] – Tool ‘stock_info’ imported successfully
[INFO] – Tool ‘stock_quote’ imported successfully

listコマンドを実行するとインポートされたToolを確認できます。

(your-venv-adktest) root@nicptestvsi:# orchestrate tools list
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━┳
┃ Name ┃ Description ┃ Permission ┃ Type ┃ Toolkit ┃ App ID ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━╇
│───────────┼────────────┼──
│ send_mail_brevo │ send a meil using Brevo. │ write_only │ python │ │ │
│ │ │ │ │ │ │
├─────────────────────────────────┼────
stock_quote │ 企業のTickerSymbolを用いて株価… │ read_only │ python │ │ │
├─────────────────────────────────┼────
│ Untitled_6160RC │ No description │ read_only │ openapi │ │ │
├─────────────────────────────────┼────
stock_info │ 企業のTickerSymbolを用いて企業… │ read_only │ python │ │ │
└─────────────────────────────────┴────

次にAgentをインポートします。下記コマンドを実行します。

(your-venv-adktest) root@nicptestvsi:~/orchestrate_tool/py/source_02# orchestrate agents import -f ./yfinance_agent.yaml

agent listコマンドでインポート済みのAgentを確認できました。Agentが使用するToolも表示されています。

(your-venv-adktest) # orchestrate agents list
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━
┃ Name ┃ Description ┃ LLM ┃ Style ┃ Collaborators ┃ Tools ┃ Knowledge Base ┃ 
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━
yfinance_age… │ 企業の会社情… │ watsonx/meta- │ react │ │ stock_info, │ │
│ │ │ llama/llama-3 │ │ │ stock_quote │ │ ││ │ │ -2-90b-vision ││ │ -instruct │ │ 

IBM Cloud上のwatsonx Orchestrateで動作確認

インポートしたAgentとToolをIBM Cloud上のwatsonx Orchestrateで確認します。

watsonx Orchestrateへログインし、BuildからAgent Builderを選択します。

yfinanceエージェントが表示されているので、クリックします。

クリックすると、Agent作成画面に入ります。UIから基盤モデルを変更したり、Agentの振る舞いなど変更することができます。

スクロールして、Toolsetを確認するとADKからインポートしたToolが登録されています。

右のPreviewからAgentの動きを確認することができます。今回はDeployせずPreviewで確認します。入力欄には「IBMの株価は?」と質問してみます。しばらくすると本日の株価が回答されました。Show Reasoningを開くと推論過程を確認することができます。株価を取得するTool「stock_quote」を使用し、AIがユーザの入力から自動的にTicker symbolを入力していることがわかります。

次に「IBMの企業情報」と質問をします。しばらくするとAIがユーザの入力からTicker symbolを入力し、Tool「stock_info」を利用して企業情報を取得、回答されました。ユーザの入力内容からAgentが使用するToolを選択し、実行していることがわかります。

 

さいごに

ADKのご紹介とADKを使ってToolとAgentのインポートを行いました。

ADKのインストールおよび設定について、Pythonバージョンの設定やvenvの作成でつまずく部分はありましたが、venvが作成できればその後の設定はスムーズに進められました。

今回はVSI上のUbuntuサーバにADKをインストールしましたが、ご自身の端末に導入することで、より気軽にAgent開発を行えるかと思います。なお、今回は検証対象外でしたが、watsonx Orchestrate Developer Editionを利用する場合は、インストール要件としてやや高めのスペックが必要になる点にご注意ください。

検証時のADKのバージョンは1.5.1でしたが、7月末では1.8.0が最新バージョンとなっています。比較的頻繁にアップデートされますので適宜Release Notesをご確認ください。バージョンアップでコマンドオプションも変更される場合があるため、マニュアルを確認するかコマンドに`–help`を付与してパラメータを確認することをおすすめします。

 

お問い合わせ

この記事に関するご質問は以下の宛先までご連絡ください。

エヌアイシー・パートナーズ株式会社
技術企画本部
E-mail:nicp_support@NIandC.co.jp

 

その他の記事

2025年10月29日

水冷サーバーの違いとは?(レノボの水冷サーバー#2)

公開日:2025-10-29 こんにちは。ソリューション企画部 柳澤です。 前回レノボの水冷サーバーについてのブログを書かせていただき、いろいろなお客様にブログを読んでいただきました。 前回の記事はこちら 昨今、お客様ご自身の身の回りでもChatGPTの普及などでAIについて皆様も身近に感じてこられるようになってきたかと思います。 今後はさらにAI、機械学習、HPCの台頭による計算能力の劇的な向上が見込まれます。 それに伴う発熱量の増加で、従来の空冷システムの限界により水冷技術への注目度が高まっています。 レノボの水冷と聞いて、レノボが今年初めて水冷サーバーを発表したのでは?と思うお客様もいらっしゃるかもしれません。しかし、レノボの水冷は2012年に発表された製品であり、その導入事例も世界に多数あります。 弊社としましては、レノボの水冷サーバーについてラインナップの多さ、その歴史と導入事例の多さから、今後のAIやHPCの需要が高まる時代を取り巻く中で皆様にぜひご提案させていただきたく、今回もレノボの水冷サーバーにテーマを絞ってブログを掲載させていただきたいと思います。 では早速ですが、前回お伝えできなかった部分もふくめて、下記にてさらにレノボの水冷サーバーについて、ご紹介させていただきます。 目次 レノボの水冷サーバーの歴史と導入事例 Lenovo Neptune®とは レノボの水冷サーバーと他メーカーの違いとは レノボの水冷サーバーの問題解決対策について 関連情報 お問い合わせ レノボの水冷サーバーの歴史と導入事例 前述のとおり、レノボの水冷サーバーは発表されてからすでに12年以上経っており、水冷サーバーについては業界をリードする存在です。 導入事例も多数あり、下記の導入事例を含め、世界トップ10のパブリッククラウドプロバイダーで8社を支えるインフラとなっています。各国の研究機関や、企業でも導入が進んでおり、スーパーコンピューターから小規模な拠点まで採用されており、日本でも今後採用が進むことと思われます また以前は空冷サーバーにくらべて10〜20%の追加コストが発生していましたが、これまでの空冷サーバーとの部品共通化でコストの違いはそこまで大きなものにならなくなってきています。 Lenovo Neptune®とは 「Lenovo Neptune®」はLenovoが展開する水冷技術ブランドであり、以下の3つの技術カテゴリで構成されています。 Neptune® :システム全体の温水冷却により温水再利用を実現 Neptune® Core :コンポーネントレベル冷却(CPU、GPU、メモリ)により通気要件を削減 Neptune® Air :空冷ベースシステムでの液体補助冷却 本稿で取り上げるのはこのうちの「Neptune®」の直接液体冷却構成となります。サーバー筐体からラック全体に至るまで、純水を用いた直接水冷(DWC)によって冷却を最適化。空冷ファンを排除し、最大40%の電力削減と100%の熱除去を実現します。AI・HPC用途に最適化された設計で、静音性・省スペース・環境対応の面でも優れています。 導入事例から見るNeptune®の実力 DreamWorks AnimationNeptune®導入により、レンダリング性能20%向上、電力コスト削減を達成。MoonRayレンダラーやArrasクラウド計算システムの性能を最大限に引き出している。事例詳細 韓国気象庁(KMA)8000台のNeptune®搭載サーバーで、気象予測の高速化と省エネを実現。SD650 V2およびSD530サーバーを活用し、精度の高い気象モデルを運用。事例詳細 ハーバード大学同じスペースで従来の4倍の計算性能を実現。Neptune®による完全ファンレス運用で、研究成果の加速に貢献。事例詳細 レノボの水冷サーバーと他メーカーの違いとは 前回の記事でもふれましたが、水冷にはレノボや多くのIAサーバーメーカーが採用している直接液冷と、専用メーカーが採用している液浸冷却などいくつかの方式があります。 直接液冷は発熱源に直接アプローチすることで効率的な冷却と省電力・静音性を実現します。液浸冷却はサーバー全体を冷却液に浸すことで非常に高い冷却能力と省エネ性能、高密度化を可能にしますが、設備投資が高額というデメリットもあります。 では直接液冷のレノボのNeptuneと直接液体冷却方式を採用しているメーカーとの比較とレノボの優位性がある部分はどうなっているのでしょうか。 主な違いは下図のようになっています。 直接液体冷却方式のレノボと他メーカーとの違い レノボの水冷サーバーの問題解決対策について 水冷サーバーというと液体を扱うサーバーゆえにこぼれたり、漏れたりするのではないか、とおっしゃるお客様もいらっしゃいます。 そのための対策もレノボでは下の表のように対策されています。 いやいや、でもAI×水冷サーバーといったってよくわからないし、というお客様にはレノボさんでAIディスカバリーワークショップもやっていただけます。 ワークショップ→POC→アセスメント→本番環境導入という流れで実施となりますので、ご提案や、ご不明な点などございましたら、ぜひ弊社へお問い合わせいただければと思います。 関連情報 Lenovo サーバー/ストレージ 製品 【参加レポート】Lenovo TechDay @ Interop Tokyo 2025 レノボのファンレス常温水冷サーバーって? 第6世代のLenovo Neptune液体冷却が AI 時代を牽引(Lenovoサイト) 【AI電力消費40%削減事例も】レノボの「直接水冷」Lenovo Neptune™(YouTube) お問い合わせ エヌアイシー・パートナーズ株式会社E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .btn_A a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_A a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

2025年10月22日

今こそ着手すべきセキュリティ対策:サイバーレジリエンス法(CRA)とSBOMの関係

公開日:2025-10-22 目次 はじめに:CRAとSBOMがもたらす変革 CRAが企業に課す義務とタイムライン SBOMの必要性・重要性:CRA対応を超えて CRAとSBOMの具体的な関係 SBOM生成・活用ツールのご紹介 まとめ:SBOMはCRA準拠と持続的な品質維持の鍵 お問い合わせ はじめに:CRAとSBOMがもたらす変革 「サイバーレジリエンス法(CRA)」は、EU市場で流通する「デジタル要素を持つ製品」(ハードウェア、ソフトウェア、IoTデバイスなど)のセキュリティ水準向上を目指し、EUが策定した新たな規制です。この法規制への対応において、中核的な役割を果たすのが「SBOM(Software Bill of Materials:ソフトウェア部品表)」です。 SBOMは、CRA対応に不可欠な構成要素であると同時に、本来ソフトウェアの脆弱性管理やセキュリティ維持を実現するための根本的な情報基盤です。CRAの有無にかかわらず、自社製品の安全性と品質管理の観点から、その導入は急務と言えます。 本記事では、CRA対応に求められるSBOMの具体的な要件と、それが企業のセキュリティにもたらす本質的な貢献についてご説明いたします。 CRAが企業に課す義務とタイムライン CRAは、製品開発の設計段階(Secure by Design)からのセキュリティ考慮を徹底し、製品提供後の脆弱性管理までを一連の義務として企業に課します。主な要件は以下のとおりです。 Secure by Designの文書化:設計段階でセキュリティを考慮した証拠を文書として整備し、補完すること。 脆弱性の特定と報告:製品に含まれる脆弱性を特定・文書化し、迅速に公開する義務。 SBOMの整備:製品構成を「一般的な形式で機械可読」な形で作成し、技術文書の一部とすること。 特に日本企業が留意すべき適用スケジュールは以下の通りです。 日付 義務内容 内容 2026年9月11日 脆弱性およびインシデントの報告義務の適用開始 悪用された脆弱性やセキュリティインシデントについて、EU内の当局へ24時間以内に報告することが求められます。 2027年12月11日 CRA全面施行、CEマーク非取得製品の販売禁止 この日以降、CRAの全要件を満たしCEマークを取得しない製品は、EU市場での販売が原則として禁止されます。 SBOMの必要性・重要性:CRA対応を超えて SBOMは、ソフトウェアに含まれるすべてのコンポーネントや依存関係を網羅的に記録し、脆弱性発生時の迅速な影響範囲の特定と市場対応を可能にするリストです。 2021年12月のLog4j問題*1が示したように、SBOMの有無は企業の対応速度を決定づけます。SBOMが整備されていれば、脆弱性の影響範囲を素早く特定し、迅速な対応が可能となります。逆にSBOMがなければ、企業は重大な潜在的脆弱性を抱えた製品を市場に出し続け、ユーザーのセキュリティリスクを増大させることになります。 このように、CRAの法的要求以前に、SBOMは製品構造を把握し、リスクを継続的に管理するための不可欠なツールです。 *1.脆弱性の重大度を示すCVSSスコアが10点中10点であった、極めて重大な脆弱性。 CRAとSBOMの具体的な関係 CRAは、SBOMを技術文書の一部として位置づけ、「製品の最上位レベルの依存関係を網羅し、一般的に使用される機械可読な形式で作成すること」を義務付けています(附属書I、Part II (1))。 脆弱性への迅速な対応の根幹 SBOMがなければ、製品に含まれるオープンソースの脆弱性情報を把握できず、CRAが求める迅速な脆弱性公開と対応(ユーザーやWebサイトでの情報提供)は実現困難です。CRAが求める「脆弱性を速やかに提出せよ」という要求に応えるための基盤情報こそがSBOMです。 技術文書としての準拠証明 CRAでは、市場監査当局から要請があった場合、製品が要求事項に準拠していることを証明するための情報・文書の提供が義務付けられています。SBOMは、「Secure by Design」の設計思想と継続的な脆弱性管理が実施されていることの客観的な証拠として、極めて重要な役割を果たします。 SBOMは、ソフトウェアの構造把握による脆弱性管理という主目的とともに、CRA準拠を達成するための重要な鍵となります。 SBOM生成・活用ツールのご紹介 CRA準拠のためには、製品の提供形態や開発プロセスに応じ、適切なツールを利用してSBOMを効率的かつ正確に生成・管理する必要があります。 ソースコードを所持している場合:SCA(ソフトウェア・コンポジション解析) オープンソース活用が不可欠なソフトウェア開発では、使用しているライブラリと、それに内在する脆弱性を把握するために、「SCA(Software Composition Analysis/ソフトウェア・コンポジション解析)」が必要です。 ソリューション:HCL AppScan on Cloud の SCA 機能 HCL AppScan on Cloud の SCA 機能は、ソースコード内の依存関係ファイルを解析し、ソフトウェア内のOSSコンポーネントを検出、脆弱性を持つものを特定します。 OSS情報の検出と脆弱性特定:ソースコードからOSS情報を検出し、脆弱性を持つコンポーネントを特定します。 業界標準フォーマット対応:SBOM出力の業界標準の一つであるSPDX 2.3フォーマットに対応。これはCRAが要求する「一般的に使用され、機械可読な形式」でのSBOM作成に貢献します。 バイナリデータからSBOMを生成する場合 組み込みソフトウェアやファームウェア、あるいはサプライヤーから受け取ったソースコードがない(またはアクセスできない)バイナリデータのセキュリティを検証したい場合に有効なのが、バイナリ解析ツールです。 ソリューション:SBOMスキャナ サイエンスパーク社の「SBOMスキャナ」は、以下のユニークな特色を持ちます。 バイナリデータからのSBOM生成: PCアプリケーションやWebサイトだけでなく、監視カメラ、ネットワーク機器、IoTデバイスなどの組み込みソフトウェアのバイナリデータからも、簡単にSBOMを生成します。 脆弱性レポートの生成:生成したSBOM情報(OSSのベンダー、プロダクト、バージョン)とCVE(Common Vulnerabilities and Exposures:脆弱性に付与される識別番号)を突き合わせ、脆弱性レポートを迅速に生成します。 オフライン対応:オフライン環境での利用が可能であり、機密性の高い環境でも安心して利用できます。 まとめ:SBOMはCRA準拠と持続的な品質維持の鍵 CRAの適用期限が目前に迫る今、SBOMによる効率的な脆弱性管理が、CRA準拠を成功させる鍵です。 SBOMは単なる法対応のための手段ではなく、企業が持続的にソフトウェアの品質を維持し、安全な製品を市場に提供するための基本情報基盤です。 法施行に向けたタイムラインを強く意識し、本記事で紹介したような適切なツールを活用して、迅速にSBOMの整備に着手することが、企業の競争力維持に不可欠です。 ご紹介したソリューション 【HCL AppScan on Cloud】 HCL AppScan(エヌアイシー・パートナーズ株式会社 サイト (AppScan 全般)) HCL AppScan on Cloud(HCLSoftware サイト(開発元)) ※HCL AppScan on Cloud の SCA 機能は、HCL AppScan on Cloudのオプションです。 【SBOMスキャナ】 SBOMスキャナ(エヌアイシー・パートナーズ株式会社 サイト) SBOMスキャナ(株式会社サイエンスパーク サイト(開発元)) お問い合わせ 上記製品についてのお問い合わせ、ご説明のご依頼、お見積り依頼など、エヌアイシー・パートナーズまでご相談ください。 エヌアイシー・パートナーズ株式会社技術企画本部E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .btn_A a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_A a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

2025年10月10日

現地からお届け!【参加レポート】IBM TechXchange 2025 Orlando

公開日:2025-10-10 こんにちは。 現在エヌアイシー・パートナーズ 技術企画本部のメンバーで、アメリカのオーランドで開催されている「IBM TechXchange 2025」に参加しています。 (現地時間:2025年10月9日、日本時間:2025年10月10日時点) 本記事では 現地からの速報 として、このイベントの概要や見どころ、最新情報をお伝えいたします。 目次 イベント概要 IBM Techxchange 2025 主要メッセージ - 1. Anthropicとのパートナーシップ発表 - 2. コード開発AI Agent「Project Bob」 - 3. AI基盤のための「Project Infragraph」 AI Accelerator “Spyre” Observability さいごに お問い合わせ イベント概要 IBM TechXchange は世界各国のIBMファンが集う年に1度の技術者向けイベントで、今年は3回目となりました。 年々規模も参加者も拡大しており、IBM TechXchange 2025 では、1,800以上の技術者向けセッションがあり、その中で400以上のハンズオンラボやデモが展開されています。 今年はアメリカのフロリダ州にあるオーランドの Orange Country Convention Center にて10月6日から10月9日の4日間で開催中で、日本から100名近くの方々が参加しています。 今年のテーマは「we are GO / Explore Build Launch 」です。 IBM Techxchange 2025 主要メッセージ TechXchange 2025の基調講演では、AIエージェントを活用・展開するために必要となる4つの要素を紹介していました。 この4つの要素のうちEcosystem・Developer Tools・AI infrastructure managementについてお伝えします。 Ecosystem IBMが単独でAIエージェントを開発・展開するのではなくパートナーシップやIBMパートナーがAIエージェントを開発・運用することでOpenな展開をしていくという方針となります。 この方針を実現するためにAgent Connectプログラムを展開しており、多数のAIエージェントを早期に提供することを目指しています。 Developer Tools Developer Toolsとしてドメインエージェントの提供があります。 ドメインエージェントとは、業務特化型のエージェントを指します。例えば購買業務に特化したエージェントであったり、人事業務に特化したエージェントです。 AI infrastructure management AIを利用する上で必要となる基盤の管理を指します。これを実現するためにProject “Infragraph” というプロジェクトでソリューション提供を目指しています。   他にも、TechXchangeでは様々な新しい発表がありました。その発表の中から今後大注目となる3点について共有します。 1.  Anthropicとのパートナーシップ発表 既に日本でもニュースとなっているので認識されている方も多いと思いますが、Anthropicとのパートナーシップの発表がありました。 IBMはAIのガバナンス、セキュリティ、オブザーバビリティ分野でソリューションを提供しており、これがIBMの強みとなっています。Anthropicとの協業は、この強みを背景とした補完的なパートナーシップであると思われます。 このパートナーシップの目的は、LLMであるClaudeをIBMソリューションに組み込むことだけではありません。企業ユースでAIエージェントを開発・運用する時に検討が必要となる要素を体系化した「Architecting secure enterprise AI agents with MCP」をIBMが作成し、Anthropicがそれを検証する協業も行っています。 このガイドを参照してAIエージェントを開発することで、今後拡大が見込まれるAIエージェントを安全かつ安心して活用できるベースとすることができます。 2.  コード開発AI Agent「Project Bob」 統合開発環境(IDE)をエージェント型で提供する「Project Bob」が発表されました。 このニュースと共にかわいらしいマスコットのBobもお披露目になりました。 Project Bobを利用することで、コードをバージョンアップするための設計、テストの自動化、本番運用、コンプライアンス維持と開発のライフサイクル全体をAIエージェントを用いて自動化することができます。 Project Bobは、発表と共にPublicプレビュー段階に入りました。 開発者のワークフロー負荷を軽減してくれるProject Bob の提供開始が楽しみですね! 3.  AI基盤のための「Project Infragraph」 HashiCorpが主体となって開発している基盤自動化のためのプロジェクトです。 詳細は不明ですが、以下の実現を目指しています。 サイロを横断した統合インサイト クラウドインフラストラクチャーリソースを単一のビューで把握できます。 実用的なインテリジェンス コストの最適化、ガバナンスの強化、リスクの軽減に役立つコンテキストを提供します。 自動化の基盤 インフラストラクチャークラウド全体にわたる、次世代のインテリジェントなAI駆動型運用を実現します。 AI Accelerator “Spyre” IBM Spyre Accelerator はエンタープライズワークフロー向けのAIソリューションを提供し、AIサービスを簡単にインストール・構成・移動できる統合された推論プラットフォームとアクセラレートされたインフラストラクチャーを備えています。 Spyreのユースケースとしては、IT運用、開発、ERP、銀行・金融、ヘルスケア、保険、公共分野など、様々な業界でデジタルアシスタント、データ・コンテンツ管理、ディーププロセス統合などのプリビルドAIサービスを提供します。 Observability AI Firstとして各種機能提供、Intelligent、Integrated experienceとしてUIやDataレイヤーの統合がされるという情報が共有されました。 またAIキーワードとしてはLLMやAIのワークロードをInstanaでObservabilityする機能が2025 4Qのロードマップとして示されました。 さいごに 2日目の夜のお楽しみとして「Evening Entertainment at Universal Orlando Resorts Islands of Adventure」が開催されました。 世界各国から集まった技術者とともに過ごした Universal Orlando Resorts Islands of Adventure での一夜は格別な体験となりました。 さて、本日、来年のTechXchangeがアメリカ ジョージア州の「アトランタ」で開催されることが正式に発表されました。 次回のイベントにも期待が高まります! お問い合わせ エヌアイシー・パートナーズ株式会社 技術企画本部 E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .btn_A a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_A a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

2025年10月06日

【イベントレポート】watsonx Orchestrate テクニカルワークショップ第二回 開催しました

公開日:2025-10-06 こんにちは。てくさぽブログメンバーの高村です。 2025年9月24日に第2回「watsonx Orchestrate テクニカルワークショップ」を開催しました。 第一回(7月開催)では、アップデートされた watsonx Orchestrate の基本的な使い方をご紹介しました。詳しくは、ブログ記事「【イベントレポート】watsonx Orchestrate テクニカルワークショップ第一回 開催しました」をご覧ください。 今回の第二回では、Agent Development Kit(以下、ADK) を用いた、Pythonによるエージェント開発のハンズオンを実施しました。 また、第1回同様、ハンズオン終了後にはグループに分かれてワークショップを行いました。参加者様同士が、日々の業務で抱えている課題を洗い出し、AIを活用して解決できる方法についてディスカッションし、その結果を発表する時間を設けました。参加者同士のコミュニケーションも活発に行われ、有意義な時間となりました。 それでは、当日の様子をご紹介します。 目次 watsonx Orchestrate概要 watsonx Orchestrateハンズオン- Agent Development Kitを用いたエージェント開発 ワークショップ まとめ お問い合わせ watsonx Orchestrate概要 このセッションでは、watsonx Orchestrate概要、ユースケース、ご提供プランをご紹介しました。 watsonx Orchestrateでは、ユーザーの目的や業務に合わせたエージェント開発が可能です。開発方法としては、ローコード と コーディング の両方が提供されており、ニーズに応じて選択できます。 今回のハンズオンで使用して頂く Agent Development Kit(ADK) および watsonx Orchestrate Developer Edition は、コーディングによるエージェントやツールの開発を支援するための環境です。Toolは Python または OpenAPI 定義によって開発でき、高度な実装やデバッグも柔軟に行えます。 watsonx Orchestrateのご提供プランは、Essentials Agentic、Standard Agentic、Premium Agenticの3種類があり、特に最近ご質問の多いEssentialsとStandardの規模感と費用感についても目安をご紹介させて頂きました。 watsonx Orchestrateハンズオン – Agent Development Kitを用いたエージェント開発 ハンズオンでは、ADK と watsonx Orchestrate Developer Edition を使い、実際にエージェント開発を体験していただきました。 参加者には事前に IBM Technology Zone(以下、Techzone) の ADK 環境を予約していただき、VSCode がインストールされた環境で開発を進めました。VSCode上でADKを利用し、完成したエージェントを watsonx Orchestrate Developer Edition にインポートして動作確認を行う流れです。 実施内容 Tool・Agent の作成 watsonx Orchestrate Developer Editionで Agent の動作確認 Knowledge を使用する Agent の作成 内部基盤モデルの追加 Flow の作成 実施した内容の中でTool、エージェントの作成とwatsonx Orchestrate Developer Editionで エージェントの動作確認について簡単にご紹介します。 作成して頂いたエージェントは、入力フレーズを造語「ザルガリ語」に翻訳し、その文字数をカウントした後、ジョークを回答します。 まずADKから①Tool(translateToZargari)と②Tool(word_length)をPythonで定義してwatsonx Orchestrate Developer Editionへインポートします。下記画面ショットのサンプルはtool() 関数を利用することでエージェントが使用可能なツールとして定義します。 次にエージェントをyaml形式で定義し、watsonx Orchestrate Developer Editionへインポートします。下記がエージェントのサンプルです。エージェントのスタイル、基盤モデルの指定、振る舞い、使用するtoolを定義します。 最後にwatsonx Orchestrate Developer Editionでエージェントの動作確認を行います。下記画面ショットがwatsonx Orchestrate Developer Editionのホーム画面です。watsonx Orchestrate Developer Editionは本製品とほぼ同等の機能を利用することができます。 Previewでエージェントの動作確認を行い、想定通り入力フレーズがザルガリ語に翻訳され、文字数をカウント、ジョークが生成されることを確認しました。 Tool、エージェントの作成、エージェントの動作確認のハンズオンは以上です。その他のハンズオンについて詳しく知りたい方は、ブログの最後に記載している「お問い合わせ」までお気軽にご連絡ください。 ワークショップ ワークショップでは2チームにわかれて日々の業務やお客さまの業務で困っていることを洗い出し、AIでの解決方法を考えるブレインストーミングを行いました。 以下のステップで進行しました 個人作業:「時間がかかっていること」「困っていること」「やりたいのにできていないこと」を3つ挙げ、ポストイットに記入し、AIでの解決可能性を考える チーム作業:模造紙にポストイットを貼りながらカテゴリー分け、AI活用のアイデアをディスカッション。 チームで話あったことを発表 当日挙がった意見を抜粋してご紹介します。 「検索業務に関して検索結果が多すぎて回答にたどり着くまで時間がかかる」 「顧客からの質問に対する回答探しに手間取る」 「同じ質問に対して効率化できないか」 AI活用について RAGを取り入れる方法 予め質問と回答を用意しチャットボットで回答させるなど工夫が必要 といった意見が出ました。 その他、コード開発でのレビューや修正にAIを活用すること、複雑な社内手続きをスムーズにするためにAIエージェントを導入する可能性についても、意見が挙がりました。 AIでどのように解決できるか、具体的な方法まで議論が進んでいない項目もありましたが、参加者同士で現在の課題や困りごとを共有いただけたことは大きな収穫でした。 今回の意見交換が、社内の「クライアントゼロ化」や日々の業務改善の検討につながる一歩となり、今後の改善活動に活かしていただけると幸いです。 まとめ 第2回 watsonx Orchestrate テクニカルワークショップ では、ADKと watsonx Orchestrate Developer Edition を用いてコードベースのエージェント開発を体験していただきました。 後半のワークショップでは、日々の業務課題から、AI活用について活発な意見交換が行われ、技術的な学びと参加者間の交流の場となりました。 今後も、製品を実際に体験できるハンズオンと、参加者同士が交流・情報共有を行えるワークショップを継続的に開催してまいります。次回もぜひご参加いただけますと幸いです。 お問い合わせ エヌアイシー・パートナーズ株式会社技術企画本部E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .btn_A a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_A a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

back to top