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?

【Bob Shell 2.0.0】動かす前に中身をチェック! 変更点が7つ出てきた(Skill 対応・履歴の SQLite 化・設定の総入れ替え)

0
Posted at

どうもこんにちは、Tadash です。

ついに、Bob Shell も 2.0.0 になりました! 開発チームのみなさん、ありがとうございます。

IBM Bob の V2 が出たのは 2026年6月24日でした。ただ、そのとき載ったのは IDE 側だけで、Bob Shell は「その後順次対応」という案内でした。IDE がもう 2.0.x で動いているのを横目に、Shell はどうなるんだろうとヤキモキしていました。待った甲斐がありました。

V2 はアーキテクチャの作り直しを伴っていて、従来は別々の基盤で動いていた IDE 拡張とシェルを、エージェント層・ハーネス層・クライアント層の3層に整理し直したと発表されています。Shell が後になったのは、この土台の載せ替えがあったからなのだと思います。

すぐ触りたいところですが、いきなり動かすと「なんか新しくなったな」で終わってしまいます。そこで先に、入れたパッケージとローカルのファイルだけを読んで、変更点を洗い出しました。開けてみたら思っていたより中身が入れ替わっていて、7つ出てきました。

しかも1つ目が、この連載で「まだ対応していない」と書いた機能です。順に見ていきます。

先に、7つまとめ

# 変更点 ひとことで
1 Skill に対応した use_skill が載った。探索先に ~/.claude/skills/ が入っている
2 サブエージェント spawn_subagent ツール。タスクが親子構造になった
3 履歴が SQLite になった JSON ファイル → ~/.bob/db/bob.db。AI が書いた行の記録テーブルつき
4 設定が総入れ替え 場所も中身も別物。画面まわりが消えて、コストと権限の体系へ
5 ヘッドレス実行 bob run--format stream-json--max-cost
6 フォルダの信頼 信頼していないフォルダでは動かない
7 コマンドの整理 17個に。/vim/theme が消えて /resume /skills が増えた

この連載で書いた記事のうち、3本は作り直しになりそうです

そのくらい変わっています。

調べ方

bob --version 以外、Bob には何もさせていません。読んだのはこの5つだけです。

見たもの 場所
バージョン bob --version
同梱ドキュメント node_modules/bobshell/README.md
パッケージ定義 node_modules/bobshell/package.json
実行ファイル node_modules/bobshell/dist/bob.js
ローカルの設定・データ ~/.bob/ 配下
$ bob --version
2.0.0
commit: 7a5dcab1

Node の要求は >=22。配布は 1.0.6 と同じく .tgz のグローバルインストールです。

変更点1:Skill に対応した

まず、18 MB ある dist/bob.jsskill という語で検索しました。ずっと気にしていた機能です。出てきたのがこれです。

use_skill
SKILL.md
SkillsRegistry
WorkspaceSkillsManager
loadGlobalSkills

以前、Bob Shell(v1.0.6)は Skill にまだ対応していないという記事を書きました。当時 Skill は IBM Bob の IDE 側の機能で、Bob Shell からは使えませんでした。実機で検証して「今はない」と結論づけた回です。

2.0.0 で載ったようです。 自分が「まだない」と書いた機能が、次のメジャーで入ってくる。連載をやっていて一番うれしい瞬間です。/skills というコマンドも増えていました。

探しに行く場所を見て、おっ?と思いました

グローバルの探索先が3つ定義されています。

~/.bob/skills/
~/.agents/skills/
~/.claude/skills/

3つ目です。~/.claude/skills/。Claude Code が Skill を置くディレクトリです。

私はふだん Claude Code も併用していて、そちらに Excel 操作用の SKILL.md を1本置いてあります。openpyxl で書いて数式の検証だけ本物の Excel に任せる、といった手順をまとめたものです。前回の Excel ライブラリ比較で分かったことも、そこに書き足しました。

このディレクトリが本当に読まれるなら、移植なしでそのまま持ち込めそうです。書いた資産が別の道具でも動くのだとすると、道具の選び方の前提が変わってきます。

ワークスペース側は .bob/skills/<名前>/SKILL.md を見に行くようです。プロジェクト単位で置ける形になっています。

組み込みの Skill が7本ついてきた

BUILTIN_SKILLS として同梱されていました。

名前 用途
create-plan 要件の聞き取り・コードベース調査・計画ファイルの作成までの手順
create-skill Skill(SKILL.md)の作り方。frontmatter のスキーマ・命名規則・置き場所
create-mode カスタムモード(custom_modes.yaml)の作り方
configure-mcp MCP サーバーの追加と切り分け。ローカル/リモート、依存の確認、秘密情報の扱い
build-mcp-server MCP サーバーを1から作る手順
xlsx-insights Excel ブックを読んで、集計用の Node スクリプトを生成・実行して要約する
create-chart create_chart ツール向けのコンポーネント定義一式

create-skill が入っているのは、地味にありがたいところです。Skill の書き方を Bob 自身に聞けるということですから、最初の1本のハードルが下がります。

xlsx-insights があるのも、前回の記事の直後としては出来すぎです。思わずニヤリ、でした。V2 の発表では .docx.pdf.xlsx をネイティブに扱えるようになったとされているので、その流れで入ったものかもしれません。

変更点2:サブエージェント

spawn_subagent というツールが増えていました。設定に session.subagents、起動オプションに --disable-subagents。どちらも既定は有効のようです。

サブエージェントは V2 の目玉として発表されていた機能でもあります。「コンテキスト効率を高める独立した調査機能」という説明でした。

タスクを保存するテーブルに parent_id という自己参照のカラムがあるので、親タスクの下に子タスクがぶら下がる形で管理されるのだと思います。調べものを並列で投げられるなら、使い方はだいぶ変わりそうです。コストがどう積み上がるかも含めて、実機で見たいところです。

変更点3:保存先が SQLite になった

先に断っておくと、この節はテーブル定義とカラム名から読み取った推測が多めです。実際にどう動くかは、動かしてみないと分かりません。

1.0.6 では、会話の履歴が ~/.bob/tmp/<プロジェクトのハッシュ>/chats/session-*.json に JSON で置かれていました。セッションログがそのまま作業記録になるは、まさにこの JSON を読む話です。

2.0.0 では ~/.bob/db/bob.db(SQLite) に変わっています。あの記事の手順は、そのままでは通らなくなります。作り直しですが、中を覗いたらこちらのほうが面白そうでした。

テーブル 中身
tasks タスク本体。parent_iddirectorygit_shagit_branchcoststask_typeis_pinnedlocked_by など
messages タスクにぶら下がる発話
attribution_logs ファイルのどの行を、どのツールが書いたかの記録
task_pending_approvals 未処理の承認要求
_migrations 適用済みのスキーマ移行(10件)

attribution_logs が気になります

カラムはこうなっていました。

file_uri / repo_name / branch_name / tool_name
contribution_text / start_line / end_line / task_id

素直に読み下すと、どのリポジトリのどのブランチの、どのファイルの何行目から何行目を、どのツールが書いたかを残せる作りに見えます。

「AI が書いた部分を後から特定できる」というのは、企業で使う道具としては筋の通った機能だと思います。監査、レビュー、コードの由来の説明。そういう話につながりそうです。SQL で引ける形なのも都合がよさそうなので、実機で溜めて集計する回が1本書けるかもしれません。

tasks のカラムから読めそうなこと

ここも名前からの推測です。

  • locked_bylock_lease_until … 同じタスクを複数のクライアントが同時に触らないようにするためのもの、でしょうか
  • message_queue … 実行中に次の発話を積んでおける、ということかもしれません
  • is_pinned … タスクの固定
  • costs{"input":0,"output":0,"cacheRead":0,"cacheWrite":0,"cost":0,"contextTokens":0} という形で、タスク単位に持つようです

そして移行の履歴に、こんな2件がありました。

008_normalize_legacy_bob_code_workspaces
009_normalize_legacy_bob_code_windows_workspaces

バンドルには importLegacyBobCodeTasks という関数名も見えます。Bob Code(IDE 側)のタスクを取り込む方向に見えます。

冒頭に書いた3層アーキテクチャの話と、ここでつながります。IDE とシェルが同じ土台に載るのなら、タスクの置き場所も1つにまとめるのが自然です。CLI で始めた作業を IDE で続ける、あるいはその逆ができるのなら、使い方が変わりそうです。

変更点4:設定ファイルが総入れ替えになった

/settings で変えられる設定の全項目で、1.0.6 の40項目を1枚の表にまとめました。あれは 2.0.0 では通用しません。 きれいに全滅です。

まず場所が変わりました。

1.0.6 2.0.0
ユーザー設定 ~/.bob/settings.json ~/.bob/settings/settings.json

中身は輪をかけて別物です。1.0.6 は Vim ModeHide BannerShow Line Numbers のような画面まわりのスイッチが大半でした。2.0.0 の README が載せているキーはこうです。

キー 既定 内容
session.defaultMode agent 既定のモード(agentaskplan/カスタム)
session.maxTurns 100 タスクあたりの最大ターン数(0 で無制限)
session.maxCost 0 タスクあたりの上限コスト(USD、0 で無制限)
session.mcp true MCP 連携
session.subagents true サブエージェント
session.autoCondense true 上限が近づいたらコンテキストを自動で畳む
session.respectGitIgnore false .gitignore されたファイルを除外する
session.maxReadFile 500 読み取りツールが返す最大行数
approval.autoApprovalEnabled true ツール実行の自動承認
approval.outsideWorkspaceAllowed false ワークスペース外での操作を許すか
approval.allowed_permissions ["read"] 確認なしで通す権限グループ
approval.allowedExecutors catgit diffgit logls execute_command の許可・拒否コマンド一覧
security.folderTrust.enabled true フォルダの信頼を必須にする
tasks.retentionDays 14 完了タスクの保持日数
telemetry.enabled true 利用テレメトリ
telemetry.excludePayload false プロンプトと応答の中身をテレメトリから除く
bobShell.autoUpdate true 起動時に自動更新する

見た目の調整が丸ごと消えて、コスト・権限・保持期間に寄りました。個人の道具から、組織で配る道具への引っ越し、という感じがします。approval.allowedExecutors の既定が catgit diffgit logls の4つだけ、というあたりにも方針が出ているように見えます。

ひとつ気をつけたい点があります。アップグレードしても~/.bob/settings.json はそのまま残っていました。新しい側には licenseConsentlastRunVersion しか書かれていないので、旧設定が引き継がれた様子はありません。

V2 の発表では「既存設定や MCP サーバーは継承される」とされていました。ただそれは IDE の話で、Shell については別なのかもしれません。項目の名前も体系もここまで変わっているので、機械的に移すのが難しいのは分かります。1.0.6 で細かく詰めていた方は、設定し直しになる前提で見ておくとよさそうです。

変更点5:bob run でヘッドレス実行

bob run で、対話に入らず1タスクだけ実行できるようです。

bob run -p "このワークスペースのトップレベルのディレクトリを教えて"

オプションを眺めていて、作り手の意図が出ていると感じたのがここです。

オプション 内容
-f, --format prettyjsonstream-json
--max-turns / --max-cost ターン数と金額の上限
--disable-tool-groups ツール群を名指しで無効化(例 subagent,mcp
--trust このフォルダを信頼済みにする
--accept-license ライセンス同意を対話なしで通す
--team-id 一般種別の API キーを使うときに必要

--format stream-json があって、--accept-license があって、金額の上限まで掛けられる。CI に載せることを見込んだ作りに見えます。パイプラインの一部として動かすなら、対話プロンプトが出ないことと、暴走したときに止まることの両方が要ります。両方そろっていました。

認証は環境変数 BOB_API_KEY か SSO です。

変更点6:フォルダの信頼

~/.bob/trustedFolders.json というファイルが増えていました。

{
  "version": 1,
  "folders": {
    "C:\\Users\\<ユーザー名>\\bob\\bob": "TRUST_PARENT"
  }
}

信頼していないフォルダでは動かない、という作りのようです。設定の security.folderTrust.enabled が既定で true、コマンドは /permissions、起動オプションは --trust。うっかり別のリポジトリで走らせてしまう事故を、手前で止められそうです。

変更点7:コマンドが入れ替わった

バンドルに組み込みとして登録されているコマンドを拾うと、17個ありました。

/bug /clear /condense /docs /exit /help /init /logs /manage-secrets /mcp /mode /permissions /resume /settings /skills /status /team

スラッシュコマンド一覧に並べた 1.0.6 の顔ぶれと比べると、/vim /theme /memory /copy /review /create-pr /editor /ide /shell /terminal-setup /keyboard-shortcuts あたりが見当たりません。設定から画面系が消えたのと、同じ方向を向いているようです。

増えたのは /resume(過去のタスクを一覧から再開)、/skills/status/team/logs/compress/condense/secrets-manager/manage-secrets/quit/exit と、名前が変わっただけのものもありそうです。

次に確かめること

ここまでは全部、ファイルを読んだだけの話です。実機で確かめたい項目を並べておきます。

  1. ~/.claude/skills/ の Skill が本当に読まれるか(手持ちの Excel 用 Skill で試す)
  2. /skillsuse_skill の呼び方、create-skill の中身
  3. サブエージェントの動き方と、コストの積まれ方
  4. attribution_logs に何がどれだけ溜まるか
  5. ~/.bob/settings.json の設定は本当に引き継がれないのか
  6. bob run --format stream-json の出力の形
  7. /help の実際の一覧(今回はバンドルから拾ったので、画面と違うかもしれません)

1.0.6 のときも、docs や Bob 自身の説明と実画面がズレることがありました。今回もそのつもりで見に行きます。次回、実機編でお会いしましょう。


※2026-08-08 時点。Windows 11 に .tgz をグローバルインストールした Bob Shell 2.0.0(commit 7a5dcab1)で確認しました。実際に動かして確かめたものではなく、同梱の README と実行ファイル、~/.bob/ 配下のファイルから読み取った内容です。実機の挙動と食い違う可能性があります。配布物のバージョンや構成は、環境によって変わることがあります。

出典

※投稿内容は個人の見解であり、必ずしも私の所属団体・企業における立場、戦略、意見を代表するものではありません。


IBM Bob

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?