この記事の内容を動画でまとめたものはこちらです。
https://video.ibm.com/recorded/134747842
2026/07/06 追記:
Bob v2.0へのアップデートに伴い、Commandsは非推奨の機能に変更されました。
CommandsはSkillsへ移行されるため、本記事の内容もSkills前提の記述に更新しています。
はじめに
WebSphere Liberty の開発では、起動しない原因の切り分け、server.xml の feature 整理、環境変数の棚卸し、DataSource の作成、REST API の経路確認など、日々さまざまな確認作業が発生します。
こうした作業は重要ですが、設定ファイル・ログ・ソースコード等を確認する必要があり、どうしても手間がかかりがちです。
こういった課題に対して、IBM Bob で Liberty 開発を支援する Skill アセットを公開しました。
IBM Bobとは?
IBM Bobは、開発者と一緒にコードベース上で作業し、高品質なソフトウェアをより迅速に構築するためのAIパートナーです。
単なるコード補完ツールではなく、設計・実装・レビュー・運用まで、開発ライフサイクル全体を支援します。
30日間の無料トライアルでは、IBM Bob の利用に必要なクレジット”Bobコイン”を、40Bobコイン分ご利用いただけます。
お申し込みはhttps://bob.ibm.com/trialから行えます。
Bobコインの追加が必要な場合は、https://bob.ibm.com/pricingから少額よりご購入いただけます。
IBM Bobでできること
-
用途に応じたエージェントモードの活用
Plan、Code、Advanced、Ask、Orchestrator などのモードを使い分けることで、タスクに最適な形で開発を進められます。さらに、業務要件に合わせたカスタムモードも作成可能です。 -
自然言語での開発支援
チャットとエディターを行き来することなく、自然言語で要件を伝えるだけで、文脈に沿った実装を生成できます。
いわゆる Literate Coding により、開発体験をよりスムーズにします。 -
高度なコードレビュー
構文チェックだけでなく、ロジックの誤りや実装が意図に沿っているかまで確認可能です。
プルリクエスト前の品質向上に役立つ、最初の防衛線として機能します。 -
IDEだけでなくターミナルでも活用可能
Bob Shellを使うことで、AIの支援をIDE内だけでなくターミナル環境でも利用できます。 -
IBMのエンタープライズ・エコシステムとの連携
HashiCorp、Red Hat、Instana などのサービスへIDEから直接アクセスでき、アーキテクチャ、セキュリティ、モニタリングを含めたエンタープライズ開発を効率化します。
公式サイト:https://bob.ibm.com/
Skillsとは?
Skillsとは、IBM Bob に特定の作業手順や専門知識を追加するための仕組みです。
よく行う作業、たとえばレビュー依頼、構成チェック、トラブルシューティング、手順の定型化、チェックリスト実行などを Skill として定義しておくことで、Bob がプロジェクトの文脈に沿って作業を支援できるようになります。
チャット入力欄で / から始まるコマンドとして呼び出すこともできますし、 Bob 自身が Skill を実行することもできます。
便利なところ
-
作業の自動化:複数ステップの依頼を Skill としてまとめられる
- 例:セキュリティ観点レビュー、テスト前チェック、リリース前確認、構成診断など
-
チームで標準化:同じ Skill を使えば、確認観点や作業手順をそろえられる
- 毎回同じ「前提・制約・観点」を Skill 側に埋め込めるため、コンテキストを固定しやすい
- 自然言語で呼び出せる:Skill 名だけでなく、「このプロジェクトを診断して」のような依頼でも使いやすい
- プロジェクト固有の知識を持たせやすい:Liberty や社内標準、運用ルールなどを Bob に渡しやすい
セットアップ
1. skills/ フォルダを配置する
以下のいずれかに、こちらのリポジトリの skills/ フォルダを配置してください。
.bob/skills/ # プロジェクト固有
~/.bob/skills/ # グローバル
- プロジェクト単位で使いたい場合は
.bob/skills/ - どのプロジェクトでも使いたい場合は
~/.bob/skills/
という使い分けがおすすめです。
2. Bob から Skill を呼び出す
Bob のチャットで、利用したい Skill 名または実行したい作業内容を入力します。
例:
liberty-doctor を実行して
この Liberty プロジェクトを診断して
server.xml の feature を最小化して
環境変数の参照を棚卸しして
Bob が利用可能な Skills を認識している場合、該当する Skill の内容に基づいて処理を実行します。
また、Bob のチャット欄で、例えば/liberty-doctor のようにスラッシュ付きでスキル名を入力することで、ユーザーが自分でSkillを呼び出すことも可能です。
Skills 一覧
liberty-doctor
Liberty プロジェクト全体を一発で健康診断する Skill です。
設定、ビルド、ログ、起動失敗の原因候補までまとめてチェックします。
使い方
liberty-doctor
liberty-doctor path/to/server.xml
または、自然言語で次のように依頼できます。
この Liberty プロジェクトを診断して
server.xml を指定して起動失敗の原因を調べて
主な機能
-
server.xml/configDropinsなど設定の散らばりを可視化 - ビルドツール・プラグインの整合性チェック
- ポート競合やバインド系トラブルの確認
- よくある起動失敗原因の候補提示
- feature 最小化が必要そうな場合は
liberty-feature-minへ誘導
liberty-feature-min
generated-features.xml を生成・比較して、server.xml の feature を最小化するための Skill です。
使い方
liberty-feature-min
liberty-feature-min path/to/server.xml
liberty-feature-min path/to/server.xml --force
または、自然言語で次のように依頼できます。
server.xml の feature を最小化して
generated-features.xml と server.xml の差分を見て
不要そうな Liberty feature を整理して
主な機能
-
generated-features.xmlの自動生成(Maven / Gradle 対応) -
server.xmlとの feature 差分分析 - 削除候補・維持候補の分類
- 段階的に減らすためのプラン提示
- 動作確認用チェックリストの生成
liberty-env-vars-audit
Liberty 構成内の ${...} 変数参照を棚卸しする Skill です。
未定義、タイポ疑い、環境差分などを見つけやすくします。
使い方
liberty-env-vars-audit
liberty-env-vars-audit path/to/server.xml
または、自然言語で次のように依頼できます。
Liberty の環境変数参照を棚卸しして
server.xml 内の未定義変数を確認して
環境ごとの変数差分を見て
主な機能
-
${...}形式の変数参照を一覧化 - 未定義変数・タイポ疑いの検出
-
local / dev / stg / prod間の差分可視化 - 秘匿値の直書き検出(値はマスク)
-
.env/server.envのテンプレート提案
liberty-feature-add
必要な機能に応じて Liberty feature と依存関係を追加する Skill です。
JPA や CDI、REST Client などを追加したいときに使えます。
使い方
liberty-feature-add JPA
liberty-feature-add REST Client
liberty-feature-add CDI
または、自然言語で次のように依頼できます。
このアプリに JPA を追加して
REST Client を使うために必要な feature を追加して
CDI を有効化して
主な機能
- Java EE / Jakarta EE 世代の自動判定
- 適切な Liberty feature の選択と追加
-
pom.xml/build.gradleへの依存関係追加 - 必要に応じて最小サンプルコードを提示
- 検証チェックリストの生成
liberty-datasource-create
DataSource 設定をまとめて作成する Skill です。
JDBC ドライバー追加から Liberty 設定、接続確認までを支援します。
使い方
liberty-datasource-create postgres localhost:5432 mydb user env:DB_PASSWORD
liberty-datasource-create mysql db.example.com mydb user prompt
liberty-datasource-create oracle host:1521 service user env:ORACLE_PASSWORD
または、自然言語で次のように依頼できます。
PostgreSQL 用の DataSource を作成して
MySQL に接続する Liberty 設定を追加して
DB_PASSWORD 環境変数を使って DataSource を構成して
引数
-
<dbType>:postgres/mysql/mariadb/db2/oracle/mssql -
<host[:port]>: ホスト名とポート(省略時はデフォルトポート) -
<dbName>: データベース名 -
<user>: ユーザー名 -
<password>: パスワード-
env:VAR… 環境変数を参照 -
prompt… 対話入力
-
主な機能
- JDBC ドライバーの
pom.xml追加 -
server.xmlへのlibrary/jdbcDriver/dataSource追加 - 接続チェックの自動実行
- 環境変数参照の利用を推奨
liberty-endpoint-map
JAX-RS リソースを走査して REST エンドポイント一覧を作る Skill です。
404 / 405 の原因を探したいときにも便利です。
使い方
liberty-endpoint-map
liberty-endpoint-map src/
または、自然言語で次のように依頼できます。
REST エンドポイント一覧を作って
JAX-RS の @Path を走査して
404 の原因になりそうな設定を確認して
主な機能
-
@Pathアノテーションの検出 - HTTP メソッド / パス / セキュリティ情報の一覧化
-
contextRoot/applicationPathの自動判定 -
curl/httpieのサンプル生成 - 404 / 405 の原因候補提示
トラブルシューティング
Bob が Skill を認識しない、または期待どおりに実行しない場合
Bob が Skill の内容に基づいて処理せず、通常のチャットとして応答してしまう場合は、以下を確認してください。
1. skills/ フォルダの配置場所を確認する
次のいずれかに配置されていることを確認します。
.bob/skills/
~/.bob/skills/
プロジェクト固有で利用したい場合は .bob/skills/、複数プロジェクトで共通利用したい場合は ~/.bob/skills/ に配置します。
2. Bob のモードを確認する
Plan モードの場合、Bob が Skill の意図を実行するのではなく、作業内容を計画・説明する方向に寄ることがあります。
その場合は、Bob のモードを Agent に切り替えてから実行してください。
例:
liberty-doctor を実行して
この Liberty プロジェクトを診断して
使い始めるときのポイント
最初は、liberty-doctor のような現状把握系から試すのがおすすめです。
こちらのリポジトリの README にもあるように、各アセットの詳細な使い方や引数は skills/ ディレクトリ配下の Markdown ファイルにまとまっています。
まずは README で全体像をつかみ、必要な Skill の定義を個別に見にいく流れが分かりやすいです。
おわりに
Liberty 開発では、設定・ログ・ソースコード・ビルド定義をまたいで確認したい場面が多くあります。
そのたびに手作業で見ていくのは大変ですが、Bob の Skills として観点をまとめておくと、確認の入口をそろえやすくなり、作業の抜け漏れも減らしやすくなると感じました。
今回紹介した 6 つのアセットだけでも、起動診断、feature 整理、環境変数棚卸し、機能追加、DataSource 作成、REST API 可視化までかなり幅広くカバーできます。
さらに、今後は第2弾、第3弾として追加の Skills を作成していく予定です。
Liberty を使っている方や、IBM Bob を日々の開発にもっと活かしたい方は、ぜひ一度試してみてください。