OpenClaw バージョン2026.5.12-beta.7 の変更点
OpenClaw は、依存関係の外部化によるインストール軽量化、UI のスクロール制御機能追加、および ACP のフォールバック機能導入など、システムの安定性とユーザビリティを向上させる重要な更新を実装しました。
キーポイント
依存関係の最適化とモジュール化
Amazon Bedrock や Slack などの外部プロバイダーパッケージをコアから分離し、必要なプラグインのみをインストールする仕組みを導入して、システム全体の軽量化と起動速度の向上を図りました。
UI/UX の制御機能強化
Control UI と WebChat に自動スクロールモードの永続化機能を追加し、ユーザーがストリーミング出力への追従や手動操作を自由に選択・保持できるようにしました。
ACP の信頼性向上(フォールバック機能)
主要なランタイムバックエンドが利用不可の場合に、事前に設定されたバックアップバックエンドへ自動的に切り替える「fallbacks」機能を ACP に実装し、出力停止を防ぎます。
Telegram Bot の稼働安定化
メインイベントループのストール時に Bot API ポーリングが死滅する問題を解決するため、入力を独立したワーカープロセスと永続的なローカルスパイルに移動させました。
重要な引用
externalize the Bedrock and Bedrock Mantle provider packages so core installs no longer pull AWS SDK dependencies unless those providers are installed
add a persisted auto-scroll mode selector so users can keep the current near-bottom behavior, always follow streaming output, or turn automatic streaming scroll off
ACP turns can try configured backup runtime backends when the primary backend is unavailable before any output is emitted
影響分析・編集コメントを表示
影響分析
この更新は、大規模な AI エージェントプラットフォームである OpenClaw の運用コスト削減と信頼性向上に直結する技術的改善です。特に依存関係の分離とフォールバック機能の実装は、複雑なマルチプロバイダー環境でのシステム安定性を確保し、ユーザー体験を損なう不具合を未然に防ぐ重要なステップとなります。
編集コメント
このリリースは、単なるバグ修正を超え、大規模システムにおける「堅牢性」と「柔軟な操作性」を両立させるための設計思想の転換を示しています。特にフォールバック機能の実装は、AI アプリケーションが実環境で直面するネットワーク不安定性に対する現実的な解決策として高く評価できます。
変更点
- Amazon Bedrock: Bedrock および Bedrock Mantrock プロバイダーパッケージを外部化し、コアのインストール時にこれらのプロバイダーがインストールされていない限り AWS SDK の依存関係が自動的に取得されないようにしました。
- プラグイン: Slack、OpenShell サンドボックス、Anthropic Vertex の各プラグインを外部化し、これらのプラグインがインストールされた場合のみ、それぞれのランタイム依存関係がインストールされるようにしました。
- コントロール UI/WebChat: 現在の下部付近の動作を維持するか、ストリーミング出力に常に追従するか、あるいは自動スクロールをオフにして「新しいメッセージ」ボタンを手動で使用するかをユーザーが選択できる永続的な自動スクロールモードセレクターを追加しました。これにより、#7648 および #81287 の問題が修正されました。@BunsDev 氏に感謝します。
- ACP:
acp.fallbacksを追加し、プライマリバックエンドが利用できない場合に、出力が発行される前に設定されたバックアップランタイムバックエンドを試すようにしました(#69542)。@kaseonedge 氏に感謝します。
修正点
- Telegram: メインイベントループの停止中に Bot API のポーリングを維持するため、取り込み処理を永続的なローカルスポールを持つ独立したワーカーへ移動させました。これにより #81132 が修正されました(#81746)。@joshavant 氏に感謝します。
- CLI/プラグイン: プラグインレジストリの検出を行わずにヘルプをレンダリングできるよう、簡易パス上に裸のプラグインおよび親コマンドのヘルプ情報を保持するようにしました。
- ゲートウェイ/セッション履歴: ライブ更新を通じて単調なトランスクリプトメッセージシーケンスを引き継ぎ、古くなったシーケンス入力が追加されると不良な増分状態が生成されるのを防ぐために SSE 履歴を更新します(#81474)。@samzong 氏に感謝します。
- セキュリティ/サンドボックス:Windows の USERPROFILE をサンドボックスのブロック対象ホームルートに含めることで、HOME が別のシェルホームを指していても、認証情報を保持するバインド(.codex, .openclaw, または Windows ユーザープロファイル下の .ssh など)が拒否されます。(#63074) @luoyanglang 氏に感謝。
- モデル設定/認証:広範な ^[A-Z_][A-Z0-9_]*$ 文字列からプロバイダーの環境変数マーカーを推測するのをやめ、構成バックドのプロバイダー apiKey 値は構造化された環境 SecretRefs(secrets.providers[id] / secrets.defaults)を通じてのみ解決するように変更しました。これにより、無関係な環境変数が誤ってプロバイダー認証情報として扱われることがなくなります。@sallyom 氏に感謝。
- メディア取得:本文のないメディアレスポンス(HEAD プロブおよび 204 スタイルの空ボディ)に対して、レスポンスボディの割り当てとバッファリングをスキップし、ペイロードを持たないストリーム上のヒープ使用を防ぎます。@shakkernerd 氏に感謝。
- CLI/オンボーディング:プロバイダー固有の認証フラグ(例:--openai-api-key)をオンボーディングウィザード経由で転送し、ctx.opts を介してプロバイダー認証メソッドに到達できるようにしました。これにより、非対話型ハーンスにおいて --openai-api-key "$OPENAI_API_KEY" が「既存の環境変数を使用しますか?」という冗長なプロンプトをスキップできるようになります。(#81669) @sjf 氏に感謝。
- CLI/migrate:Codex migrate アイテムメッセージおよび REASON_CODE_MESSAGES 文字列から末尾のピリオドを削除し、プラン/結果行が文の一部ではなくラベルとして読み込まれるようにしました。(#81705) @sjf 氏に感謝。
- Slack:不正なプライベートファイルリダイレクト Location ヘッダーを、Slack メディアダウンロードの失敗要因とするのではなく、追跡不可能なリダイレクトとして扱います。
- プラグイン:非推奨の providerAuthEnvVars フォールバックを維持しつつ、プロバイダー発見時に setup.providers[].envVars 認証情報からプロバイダープラグインを検出します。(#81542) @JARVIS-Glasses 氏に感謝。
- Docs/Codex ハーネス:各エージェントの CODEX_HOME が ~/.codex を分離することを明確化し、継承された HOME は意図的に .agents の発見とサブプロセスのユーザーホーム状態を利用可能に保つことを明記します。
- 認証:ロックされた書き込みのリトライ前に、所有者が死亡した古いファイルロックを回収することで、クラッシュした OAuth リフレッシュにより auth-profiles.json が手動クリーンアップまでブロックされる現象を防ぎます。
- CLI テーブル:マルチラインセル後の折り返し継続行において、ミュート/カラーのスタイルを維持し、openclaw プラグインリストの説明が読みやすく保たれるようにします。
- プロセス実行:Windows 上で大文字小文字を区別しない重複する子環境キーを結合することで、ホスト側の Path が呼び出し元が提供する PATH の上書きをシャドウ(覆い隠す)することを防ぎます。
- ゲートウェイ/診断機能:起動の猶予期間中にコールドスタートの死活警告を抑制しつつ、死活メトリクスのサンプリングは継続します。#79915 を修正。(#81699) @joshavant 氏に感謝。
- Codex ハーネス:oauthRef に基づく Codex OAuth プロファイルが利用可能であることを維持し、信頼度の高いアプリサーバー OAuth リフレッシュが無効化された際に、権限や使用制限のペイロードを再認証プロンプトに変換することなく、生のトークンリフレッシュエラーのリトライスパムを停止します。
- ブラウザ CLI:ブラウザ制御コマンドに対して既存の operator.admin ゲートウェイスコープを明示的に要求し、不要なスコープアップグレード承認ループを回避します。#81555 を修正。(#81716) @joshavant 氏に感謝。
- Gateway/diagnostics: スタートアップの猶予期間中にコールドスタートの生存性警告を抑制しつつ、生存性メトリクスのサンプリングは継続する。#79915 を修正。(#81699) @joshavant 氏に感謝。
- Plugin SDK: 非推奨となった openclaw/plugin-sdk/memory-core パッケージのサブパスを memory-host-core のエイリアスとして復元し、現在もそれをインポートする公開済みのメモリコンパニオンプラグインが現在のホストで解決できるようにする。
- Control UI/i18n: インストールされたワークスペース pi ランタイムを使用してロケールを更新し、フォールバックパッケージのピン留めを更新し、利用可能な場合は Anthropic CI プロバイダを優先し、無効なプロバイダ認証情報を処理してメインプロセスが失敗しないようにする。
- Codex harness: ネイティブアプリサーバーのトークンリフレッシュによるログアウトおよび再ログインの失敗を認証リフレッシュエラーとして分類し、ユーザーに生のランタイム障害ではなく再認証ガイダンスを提供できるようにする。
- Codex startup: 選択可能な構成済み OpenAI エージェントモデルを、プラグインの自動有効化、スタートアップ計画、doctor インストール修復時に Codex ランタイム要件として扱うことで、Anthropic がプライマリの設定でも OpenAI/Codex にクリーンに切り替えられるようにする。
- Agents: ツールから返されたメディアを最終返信にマージする際に、ソース返信の配信メタデータを保持し、メッセージツールのみによる返信が配信可能でミラーリングされるようにする。@pashpashpash 氏および @vincentkoc 氏に感謝。
- Replies: リッチプレゼンテーション、インタラクティブコントロール、チャネルネイティブペイロードデータを、フォローアップ、ハートビート、cron、ACP、ブロックストリーミング配信パス全体でアウトバウンドコンテンツとして扱い、カードまたはボタンだけの返信が空と見なされて削除されないようにする。
- WebChat/TUI: route Codex tools.message source replies to the active internal UI turn and mirror them to session history, so message-tool-only harness replies, including rich presentation and button-only replies, no longer disappear while WebChat and TUI remain non-targetable outbound channels. (#81586) Thanks @pashpashpash.
- Replies: deliver rich-only block replies even when block-streaming coalescing is enabled, keeping card and button payloads from being dropped by the text coalescer. Thanks @pashpashpash.
- macOS/companion: require system TLS trust before pinning a first-use direct wss:// gateway certificate and honor gateway.remote.tlsFingerprint as the explicit pin for remote node-mode sessions, so fresh endpoints fail closed when macOS cannot trust the certificate unless configured out of band. Fixes #50642. Thanks @BunsDev.
- Update: snapshot config before update-time repair and restart writes, preserve plugin install records through doctor cleanup, and keep update-time config size drops from blocking the update while pointing users to the pre-update backup. Fixes #80077. (#80257) Thanks @Jerry-Xin and @vincentkoc.
セッション/ステータス:openclaw のセッションおよびステータス出力において、ACP の spawn-child セッションを「direct」ではなく種別として「spawn-child」として分類します。重複するセッション種別分類子を共有ヘルパー (src/sessions/classify-session-kind.ts) へ抽出し、両方の表示面が同期されるようにします。カタログ #19 を修正しました。(
原文を表示
Changes
- Amazon Bedrock: externalize the Bedrock and Bedrock Mantle provider packages so core installs no longer pull AWS SDK dependencies unless those providers are installed.
- Plugins: externalize Slack, OpenShell sandbox, and Anthropic Vertex so their runtime dependency cones install only when those plugins are installed.
- Control UI/WebChat: add a persisted auto-scroll mode selector so users can keep the current near-bottom behavior, always follow streaming output, or turn automatic streaming scroll off and use the New messages button manually. Fixes #7648 and #81287. Thanks @BunsDev.
- ACP: add acp.fallbacks so ACP turns can try configured backup runtime backends when the primary backend is unavailable before any output is emitted. (#69542) Thanks @kaseonedge.
Fixes
- Telegram: keep Bot API polling alive during main event-loop stalls by moving ingress to an isolated worker with a durable local spool. Fixes #81132. (#81746) Thanks @joshavant.
- CLI/plugins: keep bare plugin and parent-command help on the lightweight path, avoiding plugin registry discovery before rendering help.
- Gateway/session history: carry monotonic transcript message sequence through live updates and refresh SSE history when stale sequence input would otherwise append bad incremental state. (#81474) Thanks @samzong.
- Security/sandbox: include Windows USERPROFILE in the sandbox blocked home roots so credential-bearing binds (such as .codex, .openclaw, or .ssh under the Windows user profile) are denied even when HOME points at a different shell home. (#63074) Thanks @luoyanglang.
- Models config/auth: stop inferring provider env-var markers from broad ^[A-Z_][A-Z0-9_]*$ strings, and resolve config-backed provider apiKey values only through structured env SecretRefs (secrets.providers[id] / secrets.defaults), so unrelated env vars cannot accidentally become provider credentials. Thanks @sallyom.
- Media fetch: skip allocating and buffering the response body for bodyless media responses (HEAD probes and 204-style empty bodies), avoiding wasted heap on streams that carry no payload. Thanks @shakkernerd.
- CLI/onboarding: forward provider-specific auth flags (e.g. --openai-api-key) through the onboarding wizard so they reach provider auth methods via ctx.opts, letting --openai-api-key "$OPENAI_API_KEY" skip the redundant "use existing env var?" prompt in non-interactive harnesses. (#81669) Thanks @sjf.
- CLI/migrate: drop trailing periods from Codex migrate item messages and REASON_CODE_MESSAGES strings so plan/result rows read as labels instead of sentence fragments. (#81705) Thanks @sjf.
- Slack: treat malformed private-file redirect Location headers as unfollowable redirects instead of failing Slack media downloads.
- Plugins: discover provider plugins from setup.providers[].envVars credentials during provider discovery while keeping the deprecated providerAuthEnvVars fallback. (#81542) Thanks @JARVIS-Glasses.
- Docs/Codex harness: clarify that per-agent CODEX_HOME isolates ~/.codex while inherited HOME intentionally keeps .agents discovery and subprocess user-home state available.
- Auth: reclaim dead-owner stale file locks before retrying locked writes, so crashed OAuth refreshes no longer wedge auth-profiles.json until manual cleanup.
- CLI tables: preserve muted/color styling on wrapped continuation lines after multiline cells, keeping openclaw plugins list descriptions readable.
- Process execution: collapse case-insensitive duplicate child environment keys on Windows so caller-provided overrides such as PATH cannot be shadowed by host Path.
- Gateway/diagnostics: suppress cold-start liveness warnings during the startup grace window while still sampling liveness metrics. Fixes #79915. (#81699) Thanks @joshavant.
- Codex harness: keep oauthRef-backed Codex OAuth profiles usable and stop high-confidence app-server OAuth refresh invalidation from retry-spamming raw token-refresh errors without turning entitlement or usage-limit payloads into re-auth prompts.
- Browser CLI: request the existing operator.admin gateway scope explicitly for browser control commands, avoiding unnecessary scope-upgrade approval loops. Fixes #81555. (#81716) Thanks @joshavant.
- Gateway/diagnostics: suppress cold-start liveness warnings during the startup grace window while still sampling liveness metrics. Fixes #79915. (#81699) Thanks @joshavant.
- Plugin SDK: restore the deprecated openclaw/plugin-sdk/memory-core package subpath as an alias of memory-host-core, so published memory companion plugins that still import it resolve on current hosts.
- Control UI/i18n: use the installed workspace pi runtime for locale refreshes, update the fallback package pin, prefer the Anthropic CI provider when available, and skip invalid provider credentials instead of failing main.
- Codex harness: classify native app-server token-refresh logout and relogin failures as authentication refresh errors, so users get re-authentication guidance instead of a raw runtime failure.
- Codex startup: treat selectable configured OpenAI agent models as Codex runtime requirements during plugin auto-enable, startup planning, and doctor install repair, so Anthropic-primary configs can still switch to OpenAI/Codex cleanly.
- Agents: preserve source-reply delivery metadata when merging tool-returned media into the final reply, keeping message-tool-only replies deliverable and mirrored. Thanks @pashpashpash and @vincentkoc.
- Replies: treat rich presentation, interactive controls, and channel-native payload data as outbound content across follow-up, heartbeat, cron, ACP, and block-streaming delivery paths, preventing card/button-only replies from being dropped as empty.
- WebChat/TUI: route Codex tools.message source replies to the active internal UI turn and mirror them to session history, so message-tool-only harness replies, including rich presentation and button-only replies, no longer disappear while WebChat and TUI remain non-targetable outbound channels. (#81586) Thanks @pashpashpash.
- Replies: deliver rich-only block replies even when block-streaming coalescing is enabled, keeping card and button payloads from being dropped by the text coalescer. Thanks @pashpashpash.
- macOS/companion: require system TLS trust before pinning a first-use direct wss:// gateway certificate and honor gateway.remote.tlsFingerprint as the explicit pin for remote node-mode sessions, so fresh endpoints fail closed when macOS cannot trust the certificate unless configured out of band. Fixes #50642. Thanks @BunsDev.
- Update: snapshot config before update-time repair and restart writes, preserve plugin install records through doctor cleanup, and keep update-time config size drops from blocking the update while pointing users to the pre-update backup. Fixes #80077. (#80257) Thanks @Jerry-Xin and @vincentkoc.
Sessions/status: classify ACP spawn-child sessions as kind: "spawn-child" instead of "direct" in openclaw sessions and status output; extract the duplicated session-kind classifier into a shared helper (src/sessions/classify-session-kind.ts) so both surfaces stay in sync. Fixes catalog #19. (
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み