非インタラクティブセッションの開始
非インタラクティブセッションは、インタラクティブセッションを開始せずにコマンドラインから直接 Bob Shell を使用する方法です。自動化、スクリプティング、バッチ処理タスクに使用します。
非インタラクティブセッションを使うべき場面
非インタラクティブセッションが最も適しているのは、次のような場合です:
- Bob Shell を自動化スクリプトに統合する。
- 1 つのコマンドで複数のファイルを処理する。
- インタラクティブセッションを開始せずに素早くインサイトを得る。
- コードからドキュメントを生成する。
- 構造化された JSON 出力が必要な CI/CD pipeline。
非インタラクティブセッションの開始
bob run サブコマンドを使用して、コマンドラインから非インタラクティブに Bob Shell を実行します。
構文
bob run [options] [prompt...]stdin を通じてプロンプトをパイプすることもできます:
echo "Explain this project" | bob run効果的な使用のヒント
- 大きなファイルやプロジェクトを処理する場合は、分析するファイルを具体的に指定します。
- スクリプトで確実にパースするには
--format jsonまたは--format stream-jsonを使用します。 - 自動化ワークフローでリソース消費を抑えるには
--max-costと--max-turnsを使用します。 - 複数行のプロンプトはファイルに保存して
bob runにパイプします:
cat prompt.txt | bob run基本的な使い方
プロンプトを直接実行する
bob run "Explain this project"コンテンツをパイプで入力する
Bob Shell にテキストコンテンツをパイプで渡すことができます:
cat buildError.txt | bob run "Explain this build error"結果をファイルに保存する
出力をリダイレクトして結果を保存します:
bob run "Review @bigFile.java" > review.mdプロジェクトファイルを参照する
@ 記号を使ってプロジェクト内のファイルを参照します:
bob run "Summarize the functionality in @src/main.js"コストとターン数の制限を設定する
bob run --max-cost 0.50 --max-turns 10 "Refactor @app.js"セッション管理
前のセッションを再開する
bob run --resume <task-id> "Continue from where we left off"
bob run --resume latest "Keep going"汎用ユーティリティフラグ
一部のフラグは bob run や bob chat ではなく、bob で直接呼び出します。保存済みタスクを一覧表示するには、次のコマンドを実行します:
bob --list-tasks次のフラグが利用可能です:
| フラグ | 説明 |
|---|---|
--list-tasks [n|all] | 現在のワークスペースの保存済みタスクを一覧表示して終了します。デフォルトは 20 です。数値または all を渡して表示数を制御します。 |
--limit <n> | --list-tasks で表示するタスクの最大数。 |
--show-license | IBM ライセンス契約を表示して終了します。 |
機械可読出力
stdout が TTY でない場合(出力をパイプまたはリダイレクトする場合など)、--list-tasks は人間が読める表形式から NDJSON に切り替わり、1 行に 1 つの JSON オブジェクトが出力されます。
各行は次の形式です:
{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}| フィールド | 型 | 説明 |
|---|---|---|
id | string (UUID) | 一意のタスク識別子。--resume で使用可能 |
title | string | タスクタイトル。最初のメッセージ、次に id にフォールバック |
status | string | タスクステータス(active、completed、paused) |
workspace | string (file URI) | file: URI としてのワークスペースの絶対パス |
updatedAt | number | Unix ミリ秒単位の最終更新タイムスタンプ |
例
# jq にパイプ
bob --list-tasks all | jq '.id'
# ファイルに保存してから処理
bob --list-tasks 100 > tasks.ndjson
# ライセンス契約を表示
bob --show-license出力形式
--format オプションは bob run の出力方法を制御します。スクリプトや CI pipeline で出力をキャプチャする場合にこのオプションを使用します。
pretty(デフォルト)
ターミナル表示に適した、人が読みやすいテキスト出力です。
json
セッション完了後に単一の JSON オブジェクトを出力します。プログラムによる処理のために完全な結果をキャプチャする場合にこの形式を使用します。
スキーマ:
| フィールド | 型 | 説明 |
|---|---|---|
type | string | 常に "result" |
timestamp | string | ISO 8601(日時規格)の完了タイムスタンプ |
status | string | "success" または "error" |
stats | object | セッション統計情報 — 以下のフィールドを参照 |
stats.task_id | string | 完了したタスクの一意識別子 |
stats.total_tokens | number | 使用されたトークンの合計数 |
stats.input_tokens | number | 使用された入力トークン数 |
stats.output_tokens | number | 生成された出力トークン数 |
stats.cache_read_tokens | number | キャッシュから読み込まれたトークン数 |
stats.cache_write_tokens | number | キャッシュに書き込まれたトークン数 |
stats.cache_ratio | number | キャッシュヒット率 |
stats.duration_ms | number | セッション時間(ミリ秒) |
stats.session_costs | number | セッションの総コスト |
stats.tool_calls | number | 実行されたツール呼び出しの数 |
last_message | string | アシスタントの最後のメッセージ |
例:
bob run --format json "What is the entry point?" > result.jsonstream-json
セッションの進行に合わせて、改行区切り JSON(NDJSON)を 1 イベントオブジェクト / 行の形式で出力します。pipeline に出力をストリーミングしたり、リアルタイムでイベントを処理したりする場合にこの形式を使用します。
イベントタイプ:
| イベントタイプ | 主要フィールド | 説明 |
|---|---|---|
message | role、content、isReasoning? | ユーザーまたはアシスタントのメッセージ |
tool_use | tool_name、tool_id、parameters | Bob が開始したツール呼び出し |
tool_result | tool_id、status、output?、error? | ツールが返した結果 |
error | severity、message | コスト/ターン数制限への到達 |
result | status、stats、last_message | セッション終了時に出力される最終サマリー |
パイプラインの例:
bob run --format stream-json "Audit @src/" \
| grep '"type":"result"' \
| jq '.last_message'bob run で非インタラクティブに実行する場合、すべてのツールは事前承認されます。実行中にツール呼び出しの承認を求められることはありません。
オプション
| オプション | 説明 |
|---|---|
--format <format> | 出力形式:pretty(デフォルト)、json、または stream-json |
--mode <mode> | 開始モードを指定します(例:agent、plan、ask) |
--max-cost <bobcoins> | セッション停止前の最大消費額(Bobcoins) |
--max-turns <n> | セッション停止前のエージェントターンの最大数 |
--disable-mcp | このセッションのすべての MCP サーバーを無効にします |
--disable-subagents | このセッションのサブエージェントの生成を無効にします |
--disable-tool-groups <groups> | 特定のツールグループを無効にします(カンマ区切り、例:execute,mcp) |
--workspace <path> | ワークスペースのルートディレクトリを上書きします |
--log-level <level> | ログの詳細度を指定します:error、warn、info、debug、または trace |
--resume <task-id> | タスク ID を指定して以前のタスクを再開します |
--resume latest | 最新のタスクを再開します |
--team-id <id> | 特定のチームコンテキストで実行します(general タイプの API key 使用時に必要) |
--trust | 現在のフォルダを信頼済みとしてマークします |
--accept-license | IBM ライセンス条件に同意し、確認なしで続行します |