Summary
- IBM Bob ShellのACPサーバー機能とACP Proを利用し、WebブラウザでVSCodeライクな開発ができるCode ServerからIBM Bobを操作した
- IBM BobのIDEやCLIへ乗り換えなくても、チャット、コマンド実行、ファイル編集、Ask・Plan・Agentモードの切り替えが可能になった
- Code Serverをサーバー上で動かすことで、PCやタブレットのブラウザから同じ開発環境へアクセスできるようになった
やらないこと
- Code Serverそのものの詳細なインストール手順の解説
- ACPのプロトコルの詳細仕様の説明
本記事の内容は、Bob Shell v2.0.4を前提としている。ACPサーバー機能はBob Shell v2.0.2で追加された機能であり、将来のバージョンでは仕様が変更される可能性がある。
また、Code ServerとBob Shellは、ACPがstdio通信を利用するため、同じサーバー上で動かしている。
本記事における課題
IBM Bobを利用する端末が限定されていた
IBM Bobの提供形態は、主にIDEとCLIである。
IDEはVisual Studio Codeをベースにした開発環境であり、CLIはターミナルからIBM Bobを操作するためのインターフェースである。これまでは、IBM Bobを使うには、IBM Bobをインストールした端末PCを利用する必要があった。
この構成では、次のような制約がある。
- IBM Bobをインストールした端末を利用する必要がある
- 外出先から別の端末へ作業を移しにくい
- PCを閉じたあと、同じ作業環境へ戻りにくい
既存のエディター/IDEからの乗り換えを求める必要があった
すでに慣れ親しんだ別のエディター/IDEを使っている方からは、IBM Bobを使うために乗り換える必要があるのか、という声をいただく。
お使いのエディターがVisual Studio Codeであれば、拡張機能に互換性があるため比較的移行のハードルは低いが、その他のエディター/IDEとなると乗り換えは慎重に検討する必要がある。
ACPサーバーによって利用形態に変化が見込まれる
こうした状況を変える機能が、IBM Bob ShellへのACPサーバー機能の搭載である。ACPに対応したクライアントからIBM Bobへ接続できるようになったことで、IBM Bobを公式IDEやCLIだけでなく、対応する既存のエディタから利用できるようになった。
これにより、利用者は次のような選択肢を持てる。
- IBM BobのIDEで最新機能を利用する
- IBM BobのCLIをターミナルや自動化処理から利用する
- 既存のVS Code互換エディタからACP経由でIBM Bobを利用する
これまでIBM Bobを利用するには、IBM BobのIDEまたはCLIを起動する必要があった。ACP対応後は、普段使っているエディタを入口として、IBM Bobのチャット、ファイル操作、コマンド実行などを利用できる。
つまり、利用者に求められる環境変更が小さくなったというわけだ。今回はこのACPサーバーの使用感を見ていく。
用語の整理
ACP
ACPはAgent Client Protocolの略である。簡単に言えば、ACPは「エディタとAIエージェントが会話するための共通ルール」である。
ACPに対応したエディタ
│
│ ACP
▼
ACPに対応したAIエージェント
ACPを使うことで、エディタからAIエージェントへ、次のような操作を依頼できる。
- プロンプトを送信して回答を受け取る
- ファイル編集やコマンド実行を依頼する
- セッションやモードを管理する
ACPは、特定のエディタとAIエージェントを一対一で結びつける仕組みではない。エディタ側とAIエージェント側の双方がACPに対応していれば、利用者はエディタを変更せずに、対応するAIエージェントを選択できる。
IBM Bob Shell v2.0.2では、bob acpコマンドによってACPサーバーとして起動できるようになった。ACPでは、エージェントのセッション管理、プロンプト送信、応答ストリーミング、モード切り替えなどを扱える。
Code Server
Code Serverは、Visual Studio Codeに近い開発環境をWebブラウザから利用できるOSSである。
通常のVisual Studio Codeでは、利用者のPCにアプリケーションをインストールする。Code Serverでは、サーバー上でエディタを動かし、利用者はブラウザからその画面へアクセスする。
Webブラウザ
│
▼
Code Server
├── ファイル編集
├── ターミナル
├── 拡張機能
└── ACP Pro
Code Serverをサーバー上で動かしておけば、PCを閉じたあとでも、別のPCやタブレットから同じ開発環境へアクセスできる。例えば、自宅ではPC、外出先ではタブレットというように、操作する端末を切り替えられる。
ただし、Code Serverを自分のPC上で動かしているだけであれば、そのPCをシャットダウンした時点で利用できなくなる。複数端末から継続して利用するには、Code Serverを常時稼働するサーバーや仮想マシン上で動かす必要がある。
stdio
IBM BobのACPサーバーは、JSON-RPC 2.0 over stdioで通信する。stdioはstandard input/outputの略であり、日本語では標準入力・標準出力と呼ぶ。
- 標準入力:プログラムへデータを渡す経路
- 標準出力:プログラムが結果を出す経路
- 標準エラー出力:プログラムがエラーやログを出す経路
例えば、ターミナルで次のコマンドを実行する。
echo hello
echoというプログラムが結果を標準出力へ書き込み、その内容が画面に表示される。ACPでは、この標準入力と標準出力を、画面ではなく別のプログラムとの通信に利用する。
ACPクライアント
│
├── 標準入力へメッセージを書き込む
▼
ACPサーバー
│
└── 標準出力へメッセージを書き出す
今回の構成では、ACP ProがCode Serverと同じサーバー上でbob acpを起動し、その標準入力・標準出力を使って通信する。
同じサーバー
┌────────────────────────┐
│ Code Server │
│ └── ACP Pro │
│ │ stdio │
│ ▼ │
│ bob acp │
└────────────────────────┘
そのため、今回の構成ではCode ServerとBob Shellを同じサーバー上で動かす必要がある。
一方、ブラウザを操作する端末は同じPCでなくてもよい。Code Serverが動くサーバーへ接続できれば、別のPCやタブレットから操作できる。
- Code Serverと
bob acp:同じサーバー上で動かす - ブラウザを操作する端末:別のPCやタブレットでもよい
- 外出先から利用する場合:Code Serverが動くサーバーへ安全に接続できる必要がある
ACP Pro
ACP Proは、VS Code互換エディタからACP対応のAIエージェントへ接続するための拡張機能である。今回のCode Serverでは、ACP Proを利用してIBM Bob ShellのACPモードへ接続した。
Code Server
└── ACP Pro
│ stdio
▼
bob acp
│
▼
IBM Bob
Code ServerはVS Code互換であるため、通常のVisual Studio Codeでも同じ考え方でACP Proを利用できる。
Bob Shellのインストール
IBM BobをCLIやACPサーバーとして利用するには、Bob Shellをインストールする。
今回は、Bob Shell公式ドキュメントで推奨されているインストールスクリプトを利用する。対象はmacOS、Linux、Windowsである。
Bob Shellのシステム要件は、最低4GB、推奨8GBのメモリ、500MB以上の空きディスク容量、Node.js v24以降、インターネット接続である。
macOS・Linuxへインストールする
ターミナルから、次のコマンドを実行する。
curl -fsSL https://bob.ibm.com/download/bobshell.sh | bash
インストールが完了したら、Bob Shellが利用可能になっていることを確認する。
bob --version
Code Serverと同じサーバー上でBob Shellを利用する場合は、このコマンドをCode Serverが動作しているサーバー上で実行する。
Windowsへインストールする
Windowsでは、PowerShellを起動して次のコマンドを実行する。
powershell -c "irm -Uri https://bob.ibm.com/download/bobshell.ps1 | iex"
インストール後、PowerShellでバージョンを確認する。
bob --version
Windows向けのインストールコマンドは、PowerShellで実行する必要がある。コマンドプロンプトではなく、PowerShellを利用すること。
インストール後の認証
Bob Shellを初めて実行するときや、ログインセッションの有効期限が切れたときは、基本的にブラウザが開き、IBM Bobのログインページが表示される。
ブラウザでIBMidまたは任意のSingle Sign-Onを使って認証を完了すると、Bob Shellへ戻り、セッションが確立される。
今回のように、Code Serverと同じサーバー上でBob Shellを実行する場合は、ブラウザが自動的に開かないことがある。その場合は、ターミナルに表示された案内を確認し、必要な認証操作を行う。
Bob Shellのアップグレード方法、パッケージマネージャーを利用したインストール方法、認証の詳細については、Bob Shell公式ドキュメントを参照してほしい。
ACP機能によって変わったこと
IBM Bob専用の環境から、既存環境の選択肢へ広がった
ACP機能が搭載される前は、IBM Bobを利用する入口がIDEまたはCLIに限られていた。ACP対応後は、ACPに対応したエディタを入口としてIBM Bobへ接続できる。
これまで
IBM BobのIDEまたはCLI
│
▼
IBM Bob
ACP対応後
既存のエディタ
└── ACP Pro
│
▼
IBM Bob
これにより、IBM Bobを使うために、必ずしも開発環境全体を変更する必要がなくなった。
「IBM Bobを使うか、現在のエディター/IDEを使い続けるか」という二者択一ではなく、「現在のエディター/IDEからIBM Bobを利用する」という選択肢が生まれたのである。
エディタの操作性を維持したまま利用できる
ACP ProをCode Serverへ追加することで、普段利用しているエディタの画面からIBM Bobを操作できた。
- チャット:プロジェクトについて質問し、回答を得る
- 開発作業:ファイルを編集し、コマンドを実行する
- 作業方針:Ask、Plan、Agentモードを切り替える
利用者はIBM Bobの機能を使うために、作業のたびに別のIDEへ移動する必要がない。普段のファイルツリー、エディタ、ターミナルと同じ画面上で、IBM Bobへ相談し、そのままファイル編集やテスト実行へ進められる。
利用する端末の自由度が上がった
ACPによってエディタからIBM Bobを使えるようになり、さらにCode Serverを組み合わせることで、操作端末の自由度も上がった。
自宅のPC
│
▼
Code Server上でIBM Bobを利用
│
▼
PCを閉じる
外出先のタブレット
│
▼
同じCode Serverへ接続
│
▼
作業を再開
開発環境と操作端末が分離されるため、利用者は端末を変えても、同じファイル、同じターミナル、同じ拡張機能を利用できる。
IBM Bobを段階的に導入できるようになった
ACP対応によって、IBM Bobを一度に全面導入するのではなく、現在の開発環境へ段階的に組み込めるようになった。
- まず既存のVS Code互換エディタへACP Proを追加する
- 必要な作業だけIBM Bobへ依頼する
- 利用に慣れたあと、必要に応じてIBM BobのIDEやCLIも試す
最新機能を最優先する場合はIBM BobのIDEやCLIを利用し、既存環境との連携や端末の自由度を重視する場合はACP経由で利用する、という使い分けが可能になった。
やったこと
今回の構成
今回試した構成は、次の通りである。
PC・タブレットのWebブラウザ
│
▼
Code Server
│
└── ACP Pro
│ stdio
▼
bob acp
│
▼
IBM Bob
Code ServerとBob Shellは、同じサーバー上に配置した。ブラウザを操作する端末は、同じサーバー上にある必要はない。自宅のPCから接続してもよいし、外出先のタブレットから接続してもよい。
ACP Proをインストールする
Code Serverの拡張機能画面を開き、ACP Proを検索してインストールする。環境によっては、Visual Studio Code Marketplaceではなく、Open VSX RegistryからACP Proをインストールする。
インストール後、必要に応じてCode Serverを再読み込みする。
ACP ProからIBM Bobへ接続する
ACP Proの設定画面を開き、接続先としてBob Shellを追加する。コマンドパレットからACP Pro: Open Settingsで開くことができる。
ACP ProではClaude Code等がすでにプリセットで設定されているが、新規にエージェントを追加する。Command および Argsは以下の通り設定した。
- Command:
bob - Args:
acp --accept-license --trust
設定をSaveした後、再度ACP Proを開き、新しいセッションからBob Shellを選択してStart a conversationの表示が出ればセットアップ完了である。
チャットを試す
接続後、次のプロンプトを送信した。
このリポジトリについて初見の人でも内容を俯瞰・理解しメンテナンスができるREADMEを作成して。
IBM Bobは、Code Serverで開いているワークスペース内のファイルを確認し、プロジェクトの構成を説明するREADMEを作成した。単なるWebチャットとの違いは、プロジェクトのファイルを前提に会話できることである。
ACP Proの画面では、AIが回答を生成している様子をリアルタイムに確認できる。
コマンドを実行する
コマンドの実行も依頼してみた。
kubernetesクラスターのcnpg-system名前空間のPod一覧(デプロイされているノードも)と、CloudNativePGのプライマリーPodの特定をお願い。
IBM Bobは、事前に承認を得た上で自律的にkubectlを実行し、結果を報告した。
ただし、AIがコマンドを実行できることと、実行してよいことは別である。次のようなコマンドは、実行前に内容を確認するべきである。
rm -rf
git reset --hard
git push
npm publish
terraform apply
AIエージェントは、依頼内容に従ってファイル変更やコマンド実行を行う。作業を任せる範囲と、毎回人間が確認する操作をあらかじめ決めておく必要がある。
Ask・Plan・Agentを切り替える
今回の接続では、IBM Bobが持つAsk、Plan、Agentの各モードをCode Server上から切り替えられた。
Askモード
Askモードは、質問や調査に向いている。コードの内容を理解したい場合や、原因を調べたい場合に適している。
この処理が何をしているのか説明してください。
Planモード
Planモードは、実装前に作業手順を整理するためのモードである。変更対象、実装手順、テスト方法を先に確認できるため、複数のファイルを変更する作業に向いている。
このアプリケーションにログイン機能を追加するための実装計画を作成してください。
Agentモード
Agentモードは、ファイルの読み取り、編集、コマンド実行などを組み合わせて作業するモードである。
先ほどの計画に従って実装してください。実装後にテストも実行してください。
実際の開発では、次の順番で使い分けると安全である。
Ask
↓
コードや仕様を理解する
Plan
↓
実装方針と変更範囲を確認する
Agent
↓
実装し、テストする
Code Serverの利点を確認する
Code Serverをサーバー上で稼働させておけば、PCを閉じたあとでも、別の端末から同じ開発環境へ接続できる。
自宅のPCからCode Serverへ接続
↓
IBM Bobへ実装を依頼
↓
PCを閉じる
↓
外出先でタブレットからCode Serverへ接続
↓
同じワークスペースで作業を再開
この構成では、ファイル、ターミナル、インストール済みの拡張機能、IBM Bobとの接続環境がサーバー側にある。そのため、利用者の端末を切り替えても、同じ開発環境を利用できる。
外出先から利用する場合は、認証、HTTPS、VPN、ファイアウォールなどを適切に設定するべきである。
Visual Studio Codeでも利用できる
今回はCode Serverを使ったが、同じACP接続は通常のVisual Studio Codeでも実現できる。
Visual Studio Code
└── ACP Pro
│ stdio
▼
bob acp
│
▼
IBM Bob
Visual Studio Codeを使う場合も、ACP Proとbob acpは、今回の構成では同じPCまたは同じリモート環境上で動かす必要がある。
Code ServerとVisual Studio Codeの違いは、主に次の3点である。
| 項目 | Code Server | Visual Studio Code |
|---|---|---|
| 操作方法 | Webブラウザ | デスクトップアプリ |
| 主な利点 | 複数端末から同じ環境へ接続できる | ローカルで導入しやすく操作が軽快 |
| IBM Bobとの接続 | 同じサーバー上のbob acp
|
同じPCまたは同じリモート環境上のbob acp
|
常に同じPCで開発する場合は、Visual Studio Codeの方が手軽なこともある。一方、開発環境をサーバーへ置き、PCやタブレットから利用したい場合は、Code Serverが向いている。
ちょっと宣伝
生成AIによる開発プロセスの効率化に関心がある場合は、IBMのAIエージェント製品コミュニティであるBobサロンのような場もおすすめです!実際にBobを活用されているユーザー様の声にも触れてみてください!
私がBobを試した記事もご参考になれば幸いです。
- IBM Bobに自作MCPサーバーを組み合わせ、他社AIにレビューさせてみた
- IBM Bob + Foam で構築する Personal Knowledge Management 環境
- IBM Bobを使って就活管理アプリをExcel VBAからWebアプリへ移行した話
- IBM BobでAWS&AzureのDocumentation MCPサーバーを使ったクラウドサービス比較レポートを作成させてみた
- IBM Bobと一緒にOpen Notebookのモバイル版UIを開発してみた
まとめ・所感
IBM Bob ShellへACPサーバー機能が搭載されたことで、IBM Bobの利用形態が広がった。
従来、IBM Bobを利用するには、IBM BobのIDEまたはCLIを使う必要があった。ACP対応後は、ACPに対応した既存のエディタからIBM Bobへ接続できる。
- IBM Bobを使うために、既存のVS Code環境から乗り換えなくてよくなった
- エディタの画面から、チャット、コマンド実行、ファイル編集、モード切り替えを利用できるようになった
- Code Serverと組み合わせることで、PCやタブレットなど複数の端末から同じ開発環境へアクセスできるようになった
もちろん、IBM Bobの最新機能を最大限に利用するなら、IBM BobのIDEやCLIを使うことが望ましい。しかし、現在の開発環境を維持したい場合や、ブラウザから開発環境を利用したい場合には、ACP経由で接続する方法が有効である。
ACPサーバー機能の搭載により、IBM Bobは特定のIDEや端末に閉じた存在から、利用者の環境へ柔軟に組み込めるAIコーディングエージェントへ変化したのである。










