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?

IBM BobのAgent / Plan / Askに同じ仕事を頼んだら何が変わるのか検証してみた

0
Posted at

はじめに

僕はAIエージェント素人なのですが、IBM Bobを使い始めたときに選べるモードを見てふと思いました。

「Agent・Plan・Ask…どれを選べばいいんだろう?」

3つのモードがあるのは分かる。でも、何が違うのかよく分からない。Agentが一番強そうだからAgentをずっと使っておけばいいのか? Planは何のためにあるのか?

この疑問を解消するために、まったく同じプロンプトを3つのモードそれぞれに投げて、何が変わるかを実際に検証してみました。

今回も例のごとく、検証からこの記事の作成まで一貫してIBM Bobにやらせました。


Agent / Plan / Ask とは

まず、IBM Bobの公式定義を整理します。

モード 公式上の目的
Agent コードの作成・修正・リファクタリングに使用。機能実装、バグ修正、新規ファイル作成、コード改善全般。
Plan 実装前の計画・設計・戦略立案に使用。複雑な問題の分解、技術仕様作成、システム設計、実装前のソリューション検討。
Ask 説明・ドキュメント・技術的質問への回答に使用。概念理解、既存コード分析、推奨事項取得、変更を加えずに学習。

モードごとに使えるツールが違う

単なる「回答スタイルの違い」ではなく、各モードに許可されているツール(行動)そのものが異なります。

機能 Ask Plan Agent
ファイルを読む
ファイルを書く・編集する
コマンドを実行する
ToDoリストで進捗管理する
サブタスクを起動する
HTMLアーティファクトを作成する

出典: IBM Bob システム定義(各モードの available_tools セクション)

つまり、選ぶモードによってAIが実際に「何をできるか」が根本的に変わります。


今回の検証方法

実験条件

項目 内容
使用ツール IBM Bob
検証対象モード Agent / Plan / Ask(3モード)
実行環境 Windows 10 / PowerShell
初期状態 空のワークスペース(各モード独立コンテキスト)
プロンプト 全モード共通・同一
追加指示 なし(1回のみ投入)

トークン数について

IBM BobのUIでは、消費トークン数の詳細(Input/Output Token数)を直接確認する手段が公開されていません。

本記事でのトークン関連の数値は、各モードの出力文字数・ツール呼び出し回数・実行内容から導いた推定値・相対比較です。実測値ではありません。


同じプロンプトを投げてみる

以下のプロンプトを3モード全てに投入しました。

以下の要件でシンプルなTodoアプリを作成してください。

【要件】
- 言語:Python
- タスクの追加・一覧表示・完了マーク・削除ができること
- データはJSONファイルに保存すること
- CLIで操作できること

以下をすべて実施してください:
1. 要件整理
2. 設計(ディレクトリ構成・クラス設計)
3. 実装(コード作成)
4. README作成
5. 自己レビュー

Ask で実行

出力概要

AskモードはファイルへのWrite権限を持たないため、すべての成果物がチャット上のテキストとして返却されました。

  • 要件整理:機能要件5件・非機能要件3件をテーブルで整理、ユースケース図(Mermaid)付き
  • 設計:ディレクトリ構成・クラス図・データモデル・シーケンス図をMermaidで提示
  • 実装:task_manager.pytodo.py のコードを回答内に掲載
  • README:使い方・コマンド例・データ形式を含む完成品をテキストで提示
  • 自己レビュー:良い点5項目・改善余地5項目をテーブルで整理

実測値

指標
出力文字数(推定) 約 4,800 文字
ツール呼び出し回数 1 回(read_file のみ)
作成されたファイル数 0(ファイル操作ツールなし)
実行コマンド数 0(コマンド実行ツールなし)

特徴

  • 会話がすっきりしている。 回答が1つのレスポンスにまとまっており、読みやすい。
  • コードはすぐに使える品質。 提示されたコードをコピーして貼り付ければ動く。
  • 動作確認はしない。 コードが正しいかは人間が確認する必要がある。
  • Mermaidで設計図を出せる。 図示が得意で、設計フェーズの相談に向く。

Plan で実行

出力概要

Planモードはファイル書き込みが可能ですが、コマンド実行ツールは持ちません。実際にどう動いたか:

  • 設計ドキュメント(todo-app-plan.md)をファイルとして生成した
  • 内容はサブタスク一覧・設計上の決定事項・ディレクトリ構成・処理フローを含む詳細な計画書
  • 「実装はAgentモードで行う」という明確な境界線を引いた
  • アーキテクチャ図(Mermaid)付きで設計の全体像を提示

実測値

指標
出力文字数(推定) 約 2,800 文字
ツール呼び出し回数 5 回(use_skill × 1、list_files × 1、read_file × 2、write_file × 1)
作成されたファイル数 1todo-app-plan.md
実行コマンド数 0(コマンド実行ツールなし)

特徴

  • 「何をどう作るか」を精緻に設計した。 各サブタスクにIntent・Expected Outcomes・Todo Listが付いており、実装者への引き渡し書類として機能する。
  • 実装は意図的にしない。 「このPlanモードでは計画・設計ドキュメントの作成までが範囲です」という境界を明示した。
  • 設計の決定理由を記録した。 なぜargparseを使うか、なぜIDを連番にするかといった設計判断とその根拠が文書化されている。

Agent で実行

出力概要

Agentモードはファイル書き込みとコマンド実行の両方が使えます。

  • models.pyTodoItemデータクラス(uuid短縮IDを採用)
  • storage.pyStorageクラス(JSONファイルのI/O)
  • manager.pyTodoManagerクラス(ビジネスロジック)
  • todo.py:CLIエントリーポイント(argparse、Windows UTF-8対応)
  • README.md:使い方・コマンド例・クラス設計・エラー処理を含む完成ドキュメント
  • 動作確認コマンドを実行し、各機能が正常動作することを確認

実測値

指標
出力文字数(推定) 約 8,000 文字
ツール呼び出し回数 21 回
作成されたファイル数 5(.py × 4 + README.md)
実行コマンド数 5 回

特徴

  • 実際に動くものが出来上がる。 ファイルが生成され、コマンドで動作確認まで完了する。
  • Windows環境の考慮が入った。 UTF-8エンコーディングの問題を自律的に検出・対処した。
  • クラス分割が3層構造になった。 Ask・PlanはシンプルなModel+CLIの2ファイル構成を提案したが、AgentはModels/Storage/Manager/CLIの4ファイル構成を選んだ。
  • ツール呼び出しが多い分、処理が段階的に進む。 計画→実装→確認のサイクルを自律的に回した。

比較してみる

計測値の比較

モード 出力文字数(推定) ツール呼び出し 作成ファイル数 実行コマンド数
Ask 約 4,800 文字 1 回 0 0
Plan 約 2,800 文字 5 回 1 0
Agent 約 8,000 文字 21 回 5 5

⚠️ トークン数(Input/Output Tokens)はIBM Bobの現在のUIでは直接確認できませんでした。上記はすべて推定・相対比較です。

評価比較(各モード本来の目的を踏まえた評価)

評価項目 Ask Plan Agent
要件理解 5 5 5
正確性 4 5 5
網羅性 4 5 4
設計品質 3 5 4
実用性 3 4 5
自律性 2 3 5
過剰さ(少ない=良い) 5 4 3
構造化 4 5 4
トークン効率 5 4 3

(5:非常に良い / 4:良い / 3:普通 / 2:やや問題あり / 1:問題あり)


何にトークンを使っているのか

3モードで消費リソースに大きな差が出た原因を考えます。

Ask が軽い理由

Askはファイルを読む以外のツールを使いません。モデルが「考えて回答する」だけです。ツール呼び出しごとに発生するContext(ツール定義の注入・結果の受け取り)がほぼないため、消費トークンが少なくなります。

Plan が中間の理由

Planはファイルを読み・書きします。ツール呼び出しのたびに「ツール定義」「ファイル内容」「結果」がコンテキストに積み上がります。ただしコマンド実行がないため、試行錯誤のループは発生しません。

Agent が最も重い理由

AgentはWrite・Executeの両方を使います。コマンドを実行すると「実行結果」がコンテキストに積み上がり、それを読んで次の行動を決めます。21回のツール呼び出しは、ファイル作成 → コマンド確認 → エラー修正 → 再確認という反復的な作業の結果です。

つまり、トークンの差は「AIが何をしたか」の直接的な反映です。


Agent を使えばいいわけではない

実験を通じて分かった重要な事実:トークンが多い ≠ 品質が高い

Ask で十分なケース

  • 「このコードの動きを教えて」
  • 「この設計のどこが問題か指摘して」
  • 「この技術の概要を説明して」
  • → 回答だけほしい場合。ファイルを変えてほしくない場合。

Plan を使う価値があるケース

  • 「大きなリファクタリングに入る前に、影響範囲と手順を整理してほしい」
  • 「複数の実装方針を比較検討したい」
  • 「AIにいきなりコードを書かせる前に計画をレビューしたい」
  • → 実装前の設計・思考整理に。変更を加えてほしくないが、計画書は欲しい場合。

Agent に任せる価値があるケース

  • 「この機能を実際に実装して」
  • 「複数ファイルにまたがる変更を一気にやってほしい」
  • 「コマンドも含めて動作確認まで完了させてほしい」
  • → 実際に手を動かしてほしい場合。成果物(ファイル・動作するコード)が必要な場合。

Agent / Plan / Ask をどう使い分けるか

今回の実験結果から、以下のシンプルな軸で整理できます。

やりたいこと 使うモード
「質問する」 ── 聞いて理解したい Ask
「考えさせる」 ── 計画・設計を作ってほしい Plan
「やらせる」 ── 実際にファイルを変えてほしい Agent

人間に仕事を頼む場合に例えると:

  • Ask → 「このコードどうなってる?」と詳しい人に聞く
  • Plan → 「この仕事をやるとしたらどう進める?計画を作って」と相談する
  • Agent → 「じゃあ実際にやっておいて」と仕事そのものを任せる

この比喩は今回の実験結果とよく一致しています。Planは計画書(todo-app-plan.md)を作って「あとはAgentで実装してください」と明示的に言いました。Agentは誰にも聞かずに最後まで実装・動作確認を完了させました。Askはコードを見せてくれましたが、ファイルには一切手を触れませんでした。


まとめ

今回の実験から分かったことを整理します。

  1. モードの違いは「回答スタイル」ではなく「許可された行動」の違い。 ToolがAskにはなく、PlanにはWrite系があり、AgentにはさらにExecuteがある。

  2. Ask・Plan・Agent の順にトークン消費(推定)・ツール呼び出し・作成ファイル数が増える。 しかしそれはモードが「多くの仕事をした」ことの反映であって、品質の優劣ではない。

  3. 設計品質はPlanが最高だった。 「なぜその設計にしたか」の根拠・サブタスク分割・Expected Outcomesが最も整理されていたのはPlanモードだった。

  4. Agentは実際に動くものを作り、動作確認まで完了させた。 Windows環境固有のエンコーディング問題への対処など、環境適応も自律的に行われた。

  5. 「どこまでAIに任せるか」でモードを選ぶのが正しい使い方。 理解したいだけならAsk。設計を整理したいならPlan。実際に作業させたいならAgent。常にAgentを使うのは、コマンドの多い外部委託と同じ ── 確認なしに進むので速いが、意図しない変更が起きるリスクもある。


付録:公式情報の出典

本記事の「各モードの定義・利用可能なツール」に関する情報は、IBM Bob のシステム定義(<available_modes> セクション)に基づいています。

IBM Bobの外部向け公式ドキュメントとして一般公開されているモード別の詳細仕様は、執筆時点(2025年)では確認できませんでした。公式ドキュメントが公開された場合は、そちらを参照することを推奨します。


検証環境:IBM Bob / Agent mode / Windows 10 / PowerShell / Python 3.10

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?