前回のリリース群が終わったとき、ロブスターは十日間の包囲戦から這い出したばかりだった。甲冑は一回り厚くなり、爪の動きも早くなった。それでも水の中を泳いでいるとき、ロブスターはまだあまり自分を見ていなかった。
4.15 がしていることは派手ではない。ただ向かう方向ははっきりしている——ロブスターにもっといい脳を与え、自分の手の中にある鍵に目を向けることを覚えさせ、ついでに記憶をそっと別の場所に引っ越させる。
このリリースは、プロダクトのどのスクリーンショットにも主役では登場しない。だがアップグレードが終わったあと、いくつかのデフォルト値が静かに変わる——もしどこかの隅で古い挙動に依存していたなら、事前に知っておく価値はある。
新しい脳、Opus 4.7
デフォルトの Anthropic 選択が Claude Opus 4.7 に切り替わった。これまで opus というエイリアスはバージョンを設定で自分で選ぶ必要があったが、いまはそのまま最新の Opus を指す。Claude CLI 経由のデフォルトも同じく合わせられている。
一緒に入ってきたのは Opus 4.7 の画像理解能力 だ——これまで追加のプラグインや外部の vision プロバイダーを噛まさないと使えなかった部分が、今回はそのままコアに同梱された。チャットにスクリーンショットを一枚放り込めば、ロブスターはもう自分で読み取れる。回り道が要らなくなった。
プロバイダーを手動で古い Opus にピン留めしていた人は、このアップグレードで設定が動かされることはない——明示的なピンはいまも優先される。ただしデフォルトで使っていた人は、チャットの速さも画像の読みも一段前に進んだことに気づくはずだ。
非力なマシンへの逃げ道
Opus 4.7 の昇格と同時に出てきたのは、逆方向を向いたフラグだ:agents.defaults.experimental.localModelLean: true。
小さなローカルモデルのためのフラグだ。これを入れると、小型モデルには重すぎるツール——browser、cron のような——が自動的にプロンプトから外れる。コンテキストウィンドウが一回り細くなり、推論への負荷も軽くなる。名前に experimental が付いているのは、まだ調整中だからだ。ただし自分のマシンで 7B や 13B を動かしている人にとっては、Opus 昇格よりもこっちのほうが開ける価値があるかもしれない。
「強い方はもっと強く、弱い方は軽くする」——これが今回のリリースに通る、やや見えにくい主旋律だ。
はじめて、手の中の鍵が見えるようになる
このリリースで一番語るに値することであり、同時に一番見逃されやすいことでもある。
Control UI に Model Auth Status Card というカードが増えた。やっていることは地味に聞こえる——いま紐づけてあるプロバイダーごとに、OAuth トークンが健康かどうか、あとどれくらいで期限が切れるか、最近 rate limit でどれくらい絞られたか、を教えてくれる。
地味に聞こえるが、これまでこのカードはなかった。OAuth トークンの期限が切れたと気づくのは、プロバイダーが 401 を返した瞬間だった。rate limit を意識するのは、走っている途中で急に詰まった瞬間だった。ロブスターはずっとこれらの資格情報を使ってきたのに、事が壊れる前にその状態を——ロブスターにも、あなたにも——見せてくれる単独の場所は、いままでなかった。
このカードを裏で支えているのは、新しいゲートウェイのメソッド models.authStatus だ。60 秒のキャッシュが付いていて、UI が実際に毎秒プロバイダーをポーリングしに行くことはない。複数のクライアントが同じロブスターインスタンスを共有しているときも、プロバイダーの introspection エンドポイントを叩き潰すことはない。
このカードと並んで、もう少し下のレイヤーの修正もいくつか入った。資格情報のレース——socket を開き直す前に、保留中の auth 保存は先にディスクに流し込まれる。再接続の過程で「もう少しで完了するはずだった認証」を食い潰さないためだ。ワークスペースのファイルアクセス——パス操作はすべて共有の fs-safe ヘルパーを経由し、許可リスト対象のファイルを指すシンボリックリンクのトリックは蹴られる。どれもデモ動画にはならない類のものだが、全部「ロブスターが自分の手の中のものをもっとはっきり見る」という一つのテーマに連なっている。
Memory がひっそり引っ越している
このリリースでは memory レイヤーに三つの変更が入っている。合わせると、向きのある一歩だ。
ひとつ目、LanceDB の memory インデックスがリモートのオブジェクトストレージに対応した。これまではローカルディスク一択で、マシンを変えたらインデックスの作り直し、デバイスをまたいだ記憶の共有はほぼ絵に描いた餅だった。今回のバージョンでは、同じ LanceDB インデックスを S3 や S3 互換ストレージに置ける。ローカルは単なるキャッシュ層だ。ロブスターを複数のマシンに跨って配置している人、あるいはノートブックと VPS を往復している人にとっては、「記憶はマシンに紐づく」から「記憶はアカウントに紐づく」への一番大事な一歩になる。
ふたつ目、GitHub Copilot が embedding プロバイダーの仲間入りをした。memory 検索は、記憶のエントリをベクトル化するために embedding モデルを必要とする。これまでは OpenAI、ローカルの sentence-transformers あたりから選ぶしかなかった。選択肢がもう一つ増えた:すでに Copilot を契約しているなら、memory 検索はそのままその認証チャネルを再利用できる——専用のホストヘルパー付きで、リモートの override と token のリフレッシュも尊重される。
三つ目、そして今回唯一の破壊的変更でもあるのが——dreaming.storage.mode のデフォルトが inline から separate に変わった ことだ。
dreaming は、ロブスターが「暇な時間」に記憶を整理し直すフェーズだ。そこで生まれる phase block は、これまでそのまま当日の memory ファイルへ書き戻されていた——いいところは、全部が一本の時間軸に並ぶこと。悪いところは、生成されたコンテンツのせいで memory ファイルが太り、diff が読みにくくなることだった。
新しいデフォルトは phase block を別のパスへ送る:memory/dreaming/{phase}/YYYY-MM-DD.md。フェーズごとに日別ファイルへ分けられ、元の memory ファイルには手書きのものだけが残る。アップグレードしても既存の memory ファイルが書き換えられることはない。ただし次に dreaming が走ったとき、出力は新しい場所へ行く。memory ファイルから dreaming の中身を読んでいたスクリプトを書いていた人は、パスを書き直す必要がある。
古い挙動を保ちたいなら、この設定を明示的に inline へ戻せばいい。
Google の音声も仲間に入る
同梱の Google プラグインに Gemini TTS サポート が加わった:ボイス選択、WAV 出力、電話系向けの PCM フォーマット。すでに Google Cloud で STT を回していたり、他の Gemini を叩いていたりする人は、もう別の TTS プロバイダーを繋ぎ直す必要はない。認証ひとまとめで通し切れる。
派手な変更ではない。ただ、これまで自分で繋いでいた一角が、そのまま使える状態になった。
見出しには上がらないが、たぶんあなたが毎日踏んでいたもの
残りは単体では小見出しを張れないものばかりだ。だが束ねると、日常で詰まるポイントがかなり広くカバーされている:
- •Ollama チャットの 404 が直った——モデル ID に
ollama/のプレフィックスが入っていた場合、旧版はそのプレフィックスごと Ollama サーバーへ投げて 404 を食らっていた。新版はリクエストを送る前にそのプレフィックスを剥がす。 - •BlueBubbles の画像ダウンロード が Node 22+ の互換性を取り戻した——webhook ハンドリングと添付ファイル取得のリトライ周りも一緒に直されている。macOS で BlueBubbles を使って iMessage をブリッジしている人は、Node の更新と一緒にこのリリースも入れるといい。
- •TUI ストリーミングウォッチドッグ——30 秒 chat event の delta が一つも来なかった場合、ストリーミングインジケーターがリセットされる。以前はプロバイダー側で静かに切れているとき、TUI は「streaming」の状態のまま止まっていた。もう止まらない。
- •Skill スナップショットの無効化——これまで
skills.*の設定を変えても、既に開いている agent セッションは古い skill のリストを使い続け、新しい skill を見るには再起動が必要だった。いまは設定が変わればキャッシュ済みの snapshot はすぐ無効になる。 - •未知ツール stream guard がデフォルト ON——これまではオプトインで有効化する保護だった:モデルが存在しないツール名を幻覚で出したとき、「Tool X not found」が無限ループに入るのをガードが止める。いまはデフォルトで有効なので、個別に設定する必要はない。
- •パス解決——ワークスペース外の
~パスは OS のホームディレクトリに対して解決されるようになった。もうOPENCLAW_HOMEには寄らない。この二つが違う場所を指すとき、同じ~/foo.txtが edit と write で別の場所を指してしまうことがあったが、今は一致する。 - •Prompt cache の整列——task-scoped adapter が走るとき、システムプロンプトに入る inbound の chat ID が安定化された。同じタスクが複数回の呼び出しをまたぐとき、prompt cache のヒット率が上がる。
- •MEDIA ツール結果のパススルー——これまでローカルの信頼ツールが返す
MEDIA:のパススルーは組み込みツール名とあいまいに突き合わせていた。いまは完全一致になり、正規化したときに組み込み名と衝突するクライアントツールはそのまま弾かれる。名前の衝突を突く抜け穴はもう通らない。 - •Replay のリカバリ——プロバイダー側が返す
401 input item ID does not belong to this connectionのエラーは、今回から「replay-invalid」として分類され、正しい session reset のガイダンスを返す。ただの 401 としてリトライし続けることはない。
デフォルト値の移動一覧
このリリースではデフォルトがいくつか動いた。帳尻合わせのために単独で並べておく:
- •
dreaming.storage.mode:inline→separate(phase block はmemory/dreaming/{phase}/YYYY-MM-DD.mdへ) - •未知ツール stream guard:デフォルト ON(これまではオプトイン)
- •同梱の Microsoft / ElevenLabs 音声プロバイダー:デフォルトで有効
- •デフォルトの Anthropic 選択:Opus 4.7 を指す
- •Claude CLI のデフォルト:Opus 4.7 と揃う
最初の二つは挙動そのものの変化だ。古い挙動に依存していたなら、アップグレード前に config で明示的に上書きしておくこと。
一言版
このリリースから一つだけ持ち帰るなら——openclaw update を走らせて、Control UI で新しい Model Auth Status Card をのぞいてほしい。いままで知らなかったことを、あのカードが教えてくれる——ロブスターが手に握っているのはどの鍵で、どれが期限切れ間近で、どれが最近 rate limit に首を絞められていたのかを。
あなたが dreaming のヘビーユーザーだったり、memory ファイルの中で phase block の生テキストをめくったことがあるなら——dreaming.storage.mode のデフォルト変更には注意してほしい。これからの dreaming 出力は memory/dreaming/ のサブディレクトリへ行く。アップグレード後に dreaming が最初に走ったとき、そのディレクトリを一度眺めれば使い方はすぐ分かる。