diff --git a/docs/ja-JP/concepts/memory.md b/docs/ja-JP/concepts/memory.md index 61409d12c..909a00ec2 100644 --- a/docs/ja-JP/concepts/memory.md +++ b/docs/ja-JP/concepts/memory.md @@ -1,89 +1,114 @@ --- read_when: - メモリの仕組みを理解したい - - どのメモリファイルに書けばよいか知りたい -summary: OpenClaw がセッションをまたいでどのように記憶するか + - どのメモリファイルに書き込むべきか知りたい +summary: OpenClaw がセッションをまたいで物事を記憶する仕組み title: メモリの概要 x-i18n: - generated_at: "2026-04-06T03:06:44Z" + generated_at: "2026-04-08T04:42:03Z" model: gpt-5.4 provider: openai - source_hash: d19d4fa9c4b3232b7a97f7a382311d2a375b562040de15e9fe4a0b1990b825e7 + source_hash: 3bb8552341b0b651609edaaae826a22fdc535d240aed4fad4af4b069454004af source_path: concepts/memory.md workflow: 15 --- # メモリの概要 -OpenClaw は、エージェントのワークスペース内に**プレーンな Markdown ファイル**を書き込むことで物事を記憶します。モデルが「記憶」できるのはディスクに保存されたものだけであり、隠れた状態はありません。 +OpenClaw は、エージェントのワークスペース内に**プレーンな Markdown ファイル**を書き込むことで物事を記憶します。モデルが「記憶」するのはディスクに保存された内容だけであり、隠れた状態はありません。 ## 仕組み エージェントには、メモリに関連する 3 つのファイルがあります。 -- **`MEMORY.md`** -- 長期記憶。永続的な事実、好み、決定事項。すべての DM セッションの開始時に読み込まれます。 -- **`memory/YYYY-MM-DD.md`** -- デイリーノート。継続中の文脈と観察事項。今日と昨日のノートは自動的に読み込まれます。 -- **`DREAMS.md`**(実験的、任意) -- 人間が確認するための Dream Diary と dreaming sweep の要約。 +- **`MEMORY.md`** -- 長期メモリ。永続的な事実、設定、判断を保存します。すべての DM セッションの開始時に読み込まれます。 +- **`memory/YYYY-MM-DD.md`** -- 日次ノート。継続中のコンテキストと観察内容を保存します。今日と昨日のノートは自動的に読み込まれます。 +- **`DREAMS.md`** (実験的、任意) -- 人間が確認するための Dream Diary と dreaming sweep の要約です。 これらのファイルはエージェントのワークスペース(デフォルトは `~/.openclaw/workspace`)にあります。 -エージェントに何かを覚えていてほしい場合は、単にそう頼んでください: 「TypeScript を好むことを覚えておいて」。すると適切なファイルに書き込まれます。 +エージェントに何かを覚えておいてほしい場合は、単にこう頼んでください: 「TypeScript を好むことを覚えておいて。」すると、適切なファイルに書き込まれます。 ## メモリツール エージェントには、メモリを扱うための 2 つのツールがあります。 -- **`memory_search`** -- 元の表現と語句が異なっていても、意味検索を使って関連するメモを見つけます。 +- **`memory_search`** -- 元の表現と語句が異なる場合でも、セマンティック検索を使って関連するノートを見つけます。 - **`memory_get`** -- 特定のメモリファイルまたは行範囲を読み取ります。 -どちらのツールも、アクティブなメモリプラグイン(デフォルト: `memory-core`)によって提供されます。 +どちらのツールも、アクティブなメモリ plugin(デフォルト: `memory-core`)によって提供されます。 + +## Memory Wiki コンパニオン plugin + +永続メモリを単なる生のノートではなく、維持管理されたナレッジベースのように扱いたい場合は、同梱の `memory-wiki` plugin を使用してください。 + +`memory-wiki` は、永続的な知識を次の要素を持つ wiki vault にコンパイルします。 + +- 決定論的なページ構造 +- 構造化された主張と根拠 +- 矛盾と鮮度の追跡 +- 生成されるダッシュボード +- エージェント/ランタイム利用者向けにコンパイルされたダイジェスト +- `wiki_search`、`wiki_get`、`wiki_apply`、`wiki_lint` などの wiki ネイティブなツール + +これはアクティブなメモリ plugin を置き換えるものではありません。アクティブなメモリ plugin は引き続き、想起、昇格、dreaming を管理します。`memory-wiki` は、その横に出所情報が豊富な知識レイヤーを追加します。 + +詳しくは [Memory Wiki](/ja-JP/plugins/memory-wiki) を参照してください。 ## メモリ検索 -埋め込みプロバイダーが設定されている場合、`memory_search` は**ハイブリッド検索**を使います。これはベクトル類似度(意味的な近さ)とキーワード一致(ID やコードシンボルのような正確な語)を組み合わせるものです。サポートされている任意のプロバイダーの API キーがあれば、追加設定なしで動作します。 +埋め込みプロバイダーが設定されている場合、`memory_search` は**ハイブリッド検索**を使用します。これは、ベクトル類似度(意味的な近さ)とキーワード一致(ID やコードシンボルのような正確な用語)を組み合わせるものです。対応プロバイダーのいずれかの API キーがあれば、そのまま利用できます。 OpenClaw は、利用可能な API キーから埋め込みプロバイダーを自動検出します。OpenAI、Gemini、Voyage、または Mistral のキーが設定されていれば、メモリ検索は自動的に有効になります。 -検索の仕組み、チューニングオプション、プロバイダー設定の詳細は、[メモリ検索](/ja-JP/concepts/memory-search) を参照してください。 +検索の仕組み、調整オプション、プロバイダーの設定について詳しくは、[Memory Search](/ja-JP/concepts/memory-search) を参照してください。 ## メモリバックエンド - + SQLite ベース。キーワード検索、ベクトル類似度、ハイブリッド検索がそのまま使えます。追加の依存関係は不要です。 -ローカルファーストのサイドカーで、再ランキング、クエリ拡張、ワークスペース外のディレクトリをインデックス化する機能を備えています。 +ローカルファーストのサイドカー。再ランキング、クエリ拡張、ワークスペース外のディレクトリのインデックス化に対応します。 -ユーザーモデリング、意味検索、複数エージェント認識を備えた、AI ネイティブなクロスセッションメモリ。プラグインのインストールが必要です。 +ユーザーモデリング、セマンティック検索、マルチエージェント認識を備えた、AI ネイティブなクロスセッションメモリ。plugin のインストールが必要です。 + + + +## ナレッジ wiki レイヤー + + + +永続メモリを、主張、ダッシュボード、bridge mode、Obsidian に適したワークフローを備えた、出所情報が豊富な wiki vault にコンパイルします。 ## 自動メモリフラッシュ -[compaction](/ja-JP/concepts/compaction) が会話を要約する前に、OpenClaw は重要な文脈をメモリファイルに保存するようエージェントへ思い出させるサイレントターンを実行します。これはデフォルトで有効で、設定は不要です。 +[compaction](/ja-JP/concepts/compaction) が会話を要約する前に、OpenClaw はエージェントに重要なコンテキストをメモリファイルへ保存するよう促すサイレントターンを実行します。これはデフォルトで有効で、設定は不要です。 -メモリフラッシュは、compaction 中のコンテキスト損失を防ぎます。会話の中に、まだファイルへ書き込まれていない重要な事実がある場合、要約が行われる前に自動的に保存されます。 +メモリフラッシュは、compaction 中のコンテキスト損失を防ぎます。会話の中に重要な事実があり、まだファイルに書き込まれていない場合は、要約が行われる前に自動的に保存されます。 ## Dreaming(実験的) -Dreaming は、メモリのための任意のバックグラウンド統合処理です。短期的なシグナルを収集し、候補をスコアリングし、条件を満たした項目だけを長期記憶(`MEMORY.md`)へ昇格させます。 +Dreaming は、メモリのための任意のバックグラウンド統合処理です。短期的なシグナルを収集し、候補をスコアリングし、基準を満たした項目だけを長期メモリ(`MEMORY.md`)に昇格させます。 -これは、長期記憶のシグナル対ノイズ比を高く保つよう設計されています。 +これは、長期メモリのシグナル品質を高く保つよう設計されています。 - **オプトイン**: デフォルトでは無効です。 -- **スケジュール実行**: 有効にすると、`memory-core` が完全な dreaming sweep のための定期 cron ジョブを 1 つ自動管理します。 -- **しきい値あり**: 昇格は、スコア、想起頻度、クエリ多様性の各ゲートを通過する必要があります。 -- **レビュー可能**: フェーズ要約と日誌エントリは、人間が確認できるよう `DREAMS.md` に書き込まれます。 +- **スケジュール実行**: 有効にすると、`memory-core` が完全な dreaming sweep 用の定期 cron ジョブを 1 つ自動管理します。 +- **しきい値判定**: 昇格には、スコア、想起頻度、クエリ多様性のゲートを通過する必要があります。 +- **レビュー可能**: フェーズ要約と日記エントリは、人間が確認できるよう `DREAMS.md` に書き込まれます。 -フェーズの動作、スコアリングシグナル、Dream Diary の詳細は、[Dreaming(実験的)](/concepts/dreaming) を参照してください。 +フェーズの挙動、スコアリングシグナル、Dream Diary の詳細については、[Dreaming (experimental)](/ja-JP/concepts/dreaming) を参照してください。 ## CLI @@ -96,9 +121,10 @@ openclaw memory index --force # インデックスを再構築 ## さらに読む - [Builtin Memory Engine](/ja-JP/concepts/memory-builtin) -- デフォルトの SQLite バックエンド -- [QMD Memory Engine](/ja-JP/concepts/memory-qmd) -- 高度なローカルファーストサイドカー +- [QMD Memory Engine](/ja-JP/concepts/memory-qmd) -- 高度なローカルファーストのサイドカー - [Honcho Memory](/ja-JP/concepts/memory-honcho) -- AI ネイティブなクロスセッションメモリ -- [Memory Search](/ja-JP/concepts/memory-search) -- 検索パイプライン、プロバイダー、チューニング -- [Dreaming(実験的)](/concepts/dreaming) -- 短期想起から長期記憶へのバックグラウンド昇格 -- [メモリ設定リファレンス](/ja-JP/reference/memory-config) -- すべての設定項目 +- [Memory Wiki](/ja-JP/plugins/memory-wiki) -- コンパイル済みナレッジ vault と wiki ネイティブなツール +- [Memory Search](/ja-JP/concepts/memory-search) -- 検索パイプライン、プロバイダー、調整 +- [Dreaming (experimental)](/ja-JP/concepts/dreaming) -- 短期的な想起から長期メモリへのバックグラウンド昇格 +- [Memory configuration reference](/ja-JP/reference/memory-config) -- すべての設定項目 - [Compaction](/ja-JP/concepts/compaction) -- compaction がメモリとどう相互作用するか diff --git a/docs/ja-JP/concepts/model-providers.md b/docs/ja-JP/concepts/model-providers.md index bff6be983..bbc0cca71 100644 --- a/docs/ja-JP/concepts/model-providers.md +++ b/docs/ja-JP/concepts/model-providers.md @@ -1,38 +1,40 @@ --- read_when: - プロバイダーごとのモデル設定リファレンスが必要な場合 - - モデルプロバイダー向けの設定例や CLI のオンボーディングコマンドを確認したい場合 + - モデルプロバイダー向けの設定例や CLI オンボーディングコマンドを確認したい場合 summary: 設定例と CLI フローを含むモデルプロバイダーの概要 title: モデルプロバイダー x-i18n: - generated_at: "2026-04-08T02:16:11Z" + generated_at: "2026-04-08T04:43:51Z" model: gpt-5.4 provider: openai - source_hash: 26b36a2bc19a28a7ef39aa8e81a0050fea1d452ac4969122e5cdf8755e690258 + source_hash: 558ac9e34b67fcc3dd6791a01bebc17e1c34152fa6c5611593d681e8cfa532d9 source_path: concepts/model-providers.md workflow: 15 --- # モデルプロバイダー -このページでは、**LLM/モデルプロバイダー**(WhatsApp/Telegram のようなチャットチャネルではなく)を扱います。 +このページでは、**LLM/モデルプロバイダー**(WhatsApp/Telegram のようなチャットチャネルではありません)を扱います。 モデル選択ルールについては、[/concepts/models](/ja-JP/concepts/models) を参照してください。 ## クイックルール - モデル参照は `provider/model` を使用します(例: `opencode/claude-opus-4-6`)。 - `agents.defaults.models` を設定すると、それが許可リストになります。 -- CLI ヘルパー: `openclaw onboard`、`openclaw models list`、`openclaw models set ` -- フォールバックのランタイムルール、クールダウンプローブ、セッション上書きの永続化は - [/concepts/model-failover](/ja-JP/concepts/model-failover) に記載されています。 +- CLI ヘルパー: `openclaw onboard`, `openclaw models list`, `openclaw models set ` +- フォールバックのランタイムルール、クールダウンプローブ、セッション上書きの永続化は、[/concepts/model-failover](/ja-JP/concepts/model-failover) に + 記載されています。 - `models.providers.*.models[].contextWindow` はネイティブなモデルメタデータです。 `models.providers.*.models[].contextTokens` は実効ランタイム上限です。 -- プロバイダープラグインは `registerProvider({ catalog })` によってモデルカタログを注入できます。 +- プロバイダープラグインは `registerProvider({ catalog })` を通じて + モデルカタログを注入できます。 OpenClaw はその出力を `models.providers` にマージしてから `models.json` を書き込みます。 -- プロバイダーマニフェストは `providerAuthEnvVars` を宣言できるため、 - 汎用の環境変数ベース認証プローブでプラグインのランタイムを読み込む必要がありません。残るコアの環境変数マップは、非プラグイン/コアプロバイダーと、Anthropic の API キー優先オンボーディングのような一部の汎用優先順位ケース向けだけになりました。 -- プロバイダープラグインは、以下を通じてプロバイダーのランタイム動作も所有できます: +- プロバイダーマニフェストでは `providerAuthEnvVars` を宣言できるため、 + 汎用の env ベース認証プローブでプラグインランタイムを読み込む必要がありません。残るコアの env var + マップは、非プラグイン/コアプロバイダーと、Anthropic の API キー優先オンボーディングのような一部の汎用優先順位ケースのみを対象としています。 +- プロバイダープラグインは、以下を通じてプロバイダーのランタイム動作も所有できます。 `normalizeModelId`, `normalizeTransport`, `normalizeConfig`, `applyNativeStreamingUsageCompat`, `resolveConfigApiKey`, `resolveSyntheticAuth`, `shouldDeferSyntheticProfileAuth`, @@ -48,131 +50,219 @@ x-i18n: `isCacheTtlEligible`, `buildMissingAuthMessage`, `suppressBuiltInModel`, `augmentModelCatalog`, `isBinaryThinking`, `supportsXHighThinking`, `resolveDefaultThinkingLevel`, `applyConfigDefaults`, `isModernModelRef`, - `prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot`, and + `prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot`, および `onModelSelected`。 -- 注: プロバイダーランタイムの `capabilities` は共有ランナーメタデータ(プロバイダーファミリー、トランスクリプト/ツールの癖、トランスポート/キャッシュのヒント)です。これは、プラグインが何を登録するか(テキスト推論、音声など)を説明する [public capability model](/ja-JP/plugins/architecture#public-capability-model) とは異なります。 +- 注: プロバイダーランタイムの `capabilities` は共有ランナーのメタデータです(プロバイダーファミリー、文字起こし/ツール関連の癖、トランスポート/キャッシュのヒント)。これは、プラグインが登録する内容(テキスト推論、音声など)を説明する + [公開 capability model](/ja-JP/plugins/architecture#public-capability-model) + とは同じではありません。 ## プラグイン所有のプロバイダー動作 -プロバイダープラグインは、OpenClaw が汎用推論ループを維持しつつ、 -ほとんどのプロバイダー固有ロジックを所有できるようになりました。 +OpenClaw が汎用推論ループを維持しつつ、プロバイダープラグインが +プロバイダー固有ロジックの大半を所有できるようになりました。 -一般的な分担: +典型的な分担: -- `auth[].run` / `auth[].runNonInteractive`: プロバイダーが `openclaw onboard`、`openclaw models auth`、ヘッドレスセットアップ向けのオンボーディング/ログインフローを所有 -- `wizard.setup` / `wizard.modelPicker`: プロバイダーが認証選択ラベル、レガシーエイリアス、オンボーディング許可リストのヒント、オンボーディング/モデルピッカー内のセットアップ項目を所有 -- `catalog`: プロバイダーが `models.providers` に表示される -- `normalizeModelId`: プロバイダーがレガシー/プレビューのモデル ID を検索または正規化前に正規化 -- `normalizeTransport`: プロバイダーが汎用モデル組み立て前にトランスポートファミリーの `api` / `baseUrl` を正規化し、OpenClaw はまず一致したプロバイダーを確認し、その後、実際にトランスポートを変更するまで他のフック対応プロバイダープラグインを確認します -- `normalizeConfig`: プロバイダーがランタイムで使用する前に `models.providers.` 設定を正規化します。OpenClaw はまず一致したプロバイダーを確認し、その後、実際に設定を変更するまで他のフック対応プロバイダープラグインを確認します。どのプロバイダーフックも設定を書き換えない場合、バンドルされた Google ファミリーヘルパーが引き続き対応する Google プロバイダーエントリーを正規化します。 -- `applyNativeStreamingUsageCompat`: プロバイダーが、設定プロバイダー向けにエンドポイント駆動のネイティブ streaming-usage 互換リライトを適用 -- `resolveConfigApiKey`: プロバイダーが、設定プロバイダー向けに完全なランタイム認証読み込みを強制せず環境変数マーカー認証を解決します。`amazon-bedrock` には、Bedrock ランタイム認証が AWS SDK のデフォルトチェーンを使うにもかかわらず、ここに組み込みの AWS 環境変数マーカーリゾルバーもあります。 -- `resolveSyntheticAuth`: プロバイダーが、平文シークレットを永続化せずに local/self-hosted やその他の設定ベース認証可用性を公開可能 -- `shouldDeferSyntheticProfileAuth`: プロバイダーが、保存済みの synthetic profile プレースホルダーを env/config ベース認証より低い優先度として扱うよう指定可能 -- `resolveDynamicModel`: プロバイダーが、まだローカル静的カタログに存在しないモデル ID を受け入れ -- `prepareDynamicModel`: プロバイダーが、動的解決の再試行前にメタデータ更新を必要とする -- `normalizeResolvedModel`: プロバイダーが、トランスポートまたはベース URL のリライトを必要とする -- `contributeResolvedModelCompat`: プロバイダーが、別の互換トランスポート経由で届いた場合でも自社ベンダーモデル向けの互換フラグを提供 -- `capabilities`: プロバイダーがトランスクリプト/ツーリング/プロバイダーファミリーの癖を公開 -- `normalizeToolSchemas`: プロバイダーが埋め込みランナーが見る前にツールスキーマをクリーンアップ -- `inspectToolSchemas`: プロバイダーが正規化後にトランスポート固有のスキーマ警告を公開 -- `resolveReasoningOutputMode`: プロバイダーがネイティブかタグ付きかの reasoning-output 契約を選択 -- `prepareExtraParams`: プロバイダーがモデルごとのリクエストパラメーターをデフォルト化または正規化 -- `createStreamFn`: プロバイダーが通常のストリームパスを完全カスタムのトランスポートに置き換え -- `wrapStreamFn`: プロバイダーがリクエストヘッダー/ボディ/モデル互換ラッパーを適用 -- `resolveTransportTurnState`: プロバイダーがターンごとのネイティブトランスポートヘッダーまたはメタデータを供給 -- `resolveWebSocketSessionPolicy`: プロバイダーがネイティブ WebSocket セッションヘッダーまたはセッションクールダウンポリシーを供給 -- `createEmbeddingProvider`: プロバイダーが、コアの embedding スイッチボードではなくプロバイダープラグイン側に属するメモリ embedding 動作を所有 -- `formatApiKey`: プロバイダーが保存済み認証プロファイルを、トランスポートが期待するランタイム `apiKey` 文字列へ整形 -- `refreshOAuth`: 共有の `pi-ai` リフレッシャーで十分でない場合に、プロバイダーが OAuth 更新を所有 -- `buildAuthDoctorHint`: OAuth 更新失敗時に、プロバイダーが修復ガイダンスを追記 -- `matchesContextOverflowError`: プロバイダーが、汎用ヒューリスティクスでは見逃すプロバイダー固有のコンテキストウィンドウ超過エラーを認識 -- `classifyFailoverReason`: プロバイダーが、プロバイダー固有の生のトランスポート/API エラーを、レート制限や過負荷などのフェイルオーバー理由へマッピング -- `isCacheTtlEligible`: プロバイダーが、どの上流モデル ID がプロンプトキャッシュ TTL をサポートするかを判定 -- `buildMissingAuthMessage`: プロバイダーが、汎用 auth-store エラーをプロバイダー固有の回復ヒントに置き換え -- `suppressBuiltInModel`: プロバイダーが古い上流行を非表示にし、直接解決失敗時にベンダー所有のエラーを返せる -- `augmentModelCatalog`: プロバイダーが、検出と設定マージの後に synthetic/final カタログ行を追加 -- `isBinaryThinking`: プロバイダーがバイナリのオン/オフ thinking UX を所有 -- `supportsXHighThinking`: プロバイダーが選択モデルを `xhigh` に対応させる -- `resolveDefaultThinkingLevel`: プロバイダーがモデルファミリー向けのデフォルト `/think` ポリシーを所有 -- `applyConfigDefaults`: プロバイダーが認証モード、環境変数、またはモデルファミリーに基づき、設定マテリアライズ時にプロバイダー固有のグローバルデフォルトを適用 -- `isModernModelRef`: プロバイダーが live/smoke の優先モデル一致を所有 -- `prepareRuntimeAuth`: プロバイダーが設定済み資格情報を短命なランタイムトークンへ変換 -- `resolveUsageAuth`: プロバイダーが `/usage` および関連するステータス/レポート画面向けの使用量/クォータ資格情報を解決 -- `fetchUsageSnapshot`: プロバイダーが使用量エンドポイントの取得/解析を所有し、コアは引き続きサマリーの外枠と整形を所有 -- `onModelSelected`: プロバイダーが、テレメトリーやプロバイダー所有のセッション記録管理のような選択後副作用を実行 +- `auth[].run` / `auth[].runNonInteractive`: プロバイダーが `openclaw onboard`、`openclaw models auth`、ヘッドレスセットアップ向けのオンボーディング/ログイン + フローを所有します +- `wizard.setup` / `wizard.modelPicker`: プロバイダーが認証選択ラベル、 + レガシーエイリアス、オンボーディングの許可リストヒント、およびオンボーディング/モデルピッカー内の設定項目を所有します +- `catalog`: プロバイダーが `models.providers` に表示されます +- `normalizeModelId`: プロバイダーが、検索または正規化の前に + レガシー/プレビューのモデル id を正規化します +- `normalizeTransport`: プロバイダーが汎用モデル組み立て前に + トランスポートファミリーの `api` / `baseUrl` を正規化します。OpenClaw はまず一致したプロバイダーを確認し、 + 次に、実際にトランスポートを変更するものが現れるまで、他のフック対応プロバイダープラグインを確認します +- `normalizeConfig`: プロバイダーがランタイムで使用する前に + `models.providers.` の設定を正規化します。OpenClaw はまず一致したプロバイダーを確認し、 + 次に、実際に設定を変更するものが現れるまで、他のフック対応プロバイダープラグインを確認します。プロバイダーフックが設定を書き換えない場合でも、 + バンドルされた Google ファミリーのヘルパーが引き続きサポート対象の Google プロバイダーエントリを + 正規化します。 +- `applyNativeStreamingUsageCompat`: プロバイダーが設定プロバイダー向けに、エンドポイント駆動のネイティブ streaming-usage 互換書き換えを適用します +- `resolveConfigApiKey`: プロバイダーが、完全なランタイム認証ロードを強制せずに、 + 設定プロバイダー向けの env-marker 認証を解決します。`amazon-bedrock` にもここに + 組み込みの AWS env-marker リゾルバーがありますが、Bedrock のランタイム認証は + AWS SDK のデフォルトチェーンを使用します。 +- `resolveSyntheticAuth`: プロバイダーは、平文シークレットを永続化せずに + ローカル/セルフホスト型やその他の設定ベース認証の利用可否を公開できます +- `shouldDeferSyntheticProfileAuth`: プロバイダーは、保存された synthetic profile + プレースホルダーを env/config ベース認証より低い優先順位として扱うよう指定できます +- `resolveDynamicModel`: プロバイダーは、ローカルの + 静的カタログにまだ存在しないモデル id を受け入れます +- `prepareDynamicModel`: プロバイダーが動的解決を再試行する前に + メタデータ更新を必要とします +- `normalizeResolvedModel`: プロバイダーがトランスポートまたは base URL の書き換えを必要とします +- `contributeResolvedModelCompat`: プロバイダーは、そのベンダーモデルが別の互換トランスポート経由で到着した場合でも、 + 互換フラグを提供します +- `capabilities`: プロバイダーが文字起こし/ツール/プロバイダーファミリーの癖を公開します +- `normalizeToolSchemas`: プロバイダーが、埋め込みランナーが参照する前に + ツールスキーマをクリーンアップします +- `inspectToolSchemas`: プロバイダーが、正規化後に + トランスポート固有のスキーマ警告を提示します +- `resolveReasoningOutputMode`: プロバイダーがネイティブとタグ付きの + reasoning-output 契約を選択します +- `prepareExtraParams`: プロバイダーがモデルごとのリクエストパラメータを + デフォルト化または正規化します +- `createStreamFn`: プロバイダーが通常のストリームパスを + 完全にカスタムなトランスポートに置き換えます +- `wrapStreamFn`: プロバイダーがリクエストヘッダー/ボディ/モデル互換のラッパーを適用します +- `resolveTransportTurnState`: プロバイダーがターンごとのネイティブトランスポート + ヘッダーまたはメタデータを提供します +- `resolveWebSocketSessionPolicy`: プロバイダーがネイティブ WebSocket セッション + ヘッダーまたはセッションクールダウンポリシーを提供します +- `createEmbeddingProvider`: プロバイダーが、コアの埋め込みスイッチボードではなく + プロバイダープラグイン側に属するメモリ埋め込み動作を所有します +- `formatApiKey`: プロバイダーが、保存された認証プロファイルを + トランスポートが期待するランタイム `apiKey` 文字列へ整形します +- `refreshOAuth`: 共有の `pi-ai` + リフレッシャーでは不十分な場合、プロバイダーが OAuth 更新を所有します +- `buildAuthDoctorHint`: OAuth 更新が + 失敗した際に、プロバイダーが修復ガイダンスを追加します +- `matchesContextOverflowError`: プロバイダーが、汎用ヒューリスティックでは見逃す + プロバイダー固有のコンテキストウィンドウ超過エラーを認識します +- `classifyFailoverReason`: プロバイダーが、プロバイダー固有の生のトランスポート/API + エラーを、レート制限や過負荷などのフェイルオーバー理由にマッピングします +- `isCacheTtlEligible`: プロバイダーが、どの上流モデル id が prompt-cache TTL をサポートするかを判断します +- `buildMissingAuthMessage`: プロバイダーが、汎用認証ストアエラーを + プロバイダー固有の復旧ヒントに置き換えます +- `suppressBuiltInModel`: プロバイダーが古くなった上流行を非表示にし、 + 直接解決の失敗に対してベンダー所有のエラーを返せます +- `augmentModelCatalog`: プロバイダーが、発見と設定マージ後に + synthetic/最終カタログ行を追加します +- `isBinaryThinking`: プロバイダーが二値の on/off thinking UX を所有します +- `supportsXHighThinking`: プロバイダーが、選択したモデルに `xhigh` を有効化します +- `resolveDefaultThinkingLevel`: プロバイダーがモデルファミリー向けの + デフォルト `/think` ポリシーを所有します +- `applyConfigDefaults`: プロバイダーが、認証モード、env、またはモデルファミリーに基づいて + 設定具体化時にプロバイダー固有のグローバルデフォルトを適用します +- `isModernModelRef`: プロバイダーが live/smoke の優先モデル照合を所有します +- `prepareRuntimeAuth`: プロバイダーが、設定済み認証情報を + 短命なランタイムトークンに変換します +- `resolveUsageAuth`: プロバイダーが、`/usage` + および関連するステータス/レポート画面向けの使用量/クォータ認証情報を解決します +- `fetchUsageSnapshot`: プロバイダーが使用量エンドポイントの取得/解析を所有し、 + コアはサマリーの枠組みと整形を引き続き所有します +- `onModelSelected`: プロバイダーが、 + テレメトリーやプロバイダー所有のセッション管理など、選択後の副作用を実行します 現在のバンドル例: -- `anthropic`: Claude 4.6 の前方互換フォールバック、認証修復ヒント、使用量エンドポイント取得、cache-TTL/プロバイダーファミリーメタデータ、認証対応のグローバル設定デフォルト -- `amazon-bedrock`: Bedrock 固有のスロットリング/未準備エラーに対するプロバイダー所有のコンテキスト超過一致とフェイルオーバー理由分類、および Anthropic トラフィック上の Claude 専用 replay-policy ガード向け共有 `anthropic-by-model` リプレイファミリー -- `anthropic-vertex`: Anthropic-message トラフィック上の Claude 専用 replay-policy ガード -- `openrouter`: パススルーモデル ID、リクエストラッパー、プロバイダー capability ヒント、プロキシ Gemini トラフィック上の Gemini thought-signature サニタイズ、`openrouter-thinking` ストリームファミリー経由のプロキシ reasoning 注入、ルーティングメタデータ転送、cache-TTL ポリシー -- `github-copilot`: オンボーディング/デバイスログイン、前方互換モデルフォールバック、Claude-thinking のトランスクリプトヒント、ランタイムトークン交換、使用量エンドポイント取得 -- `openai`: GPT-5.4 の前方互換フォールバック、直接 OpenAI トランスポート正規化、Codex 対応の認証不足ヒント、Spark 抑制、synthetic OpenAI/Codex カタログ行、thinking/live-model ポリシー、使用量トークン別名の正規化(`input` / `output` および `prompt` / `completion` ファミリー)、ネイティブ OpenAI/Codex ラッパー向け共有 `openai-responses-defaults` ストリームファミリー、プロバイダーファミリーメタデータ、`gpt-image-1` 向けバンドル画像生成プロバイダー登録、`sora-2` 向けバンドル動画生成プロバイダー登録 -- `google` と `google-gemini-cli`: Gemini 3.1 の前方互換フォールバック、ネイティブ Gemini リプレイ検証、ブートストラップリプレイのサニタイズ、タグ付き reasoning-output モード、modern-model 一致、Gemini image-preview モデル向けバンドル画像生成プロバイダー登録、Veo モデル向けバンドル動画生成プロバイダー登録。Gemini CLI OAuth はさらに、認証プロファイルのトークン整形、使用量トークン解析、使用量画面向けクォータエンドポイント取得も所有 +- `anthropic`: Claude 4.6 の前方互換フォールバック、認証修復ヒント、使用量 + エンドポイント取得、cache-TTL/プロバイダーファミリーメタデータ、および認証対応のグローバル + 設定デフォルト +- `amazon-bedrock`: Bedrock 固有のスロットル/未準備エラーに対する、プロバイダー所有のコンテキスト超過判定と + フェイルオーバー理由分類、さらに Anthropic トラフィックに対する Claude 専用 replay-policy + ガード用の共有 `anthropic-by-model` リプレイファミリー +- `anthropic-vertex`: Anthropic-message + トラフィックに対する Claude 専用 replay-policy ガード +- `openrouter`: 透過的なモデル id、リクエストラッパー、プロバイダー capability + ヒント、プロキシ Gemini トラフィック上の Gemini thought-signature のサニタイズ、 + `openrouter-thinking` ストリームファミリー経由のプロキシ推論注入、ルーティング + メタデータの転送、および cache-TTL ポリシー +- `github-copilot`: オンボーディング/デバイスログイン、前方互換モデルフォールバック、 + Claude-thinking 文字起こしヒント、ランタイムトークン交換、使用量エンドポイント + 取得 +- `openai`: GPT-5.4 の前方互換フォールバック、直接 OpenAI トランスポート + 正規化、Codex 対応の認証不足ヒント、Spark の抑制、synthetic な + OpenAI/Codex カタログ行、thinking/live-model ポリシー、使用量トークン別名 + 正規化(`input` / `output` および `prompt` / `completion` ファミリー)、ネイティブ OpenAI/Codex + ラッパー用の共有 `openai-responses-defaults` ストリームファミリー、 + プロバイダーファミリーメタデータ、`gpt-image-1` 向けバンドル済み画像生成プロバイダー + 登録、および `sora-2` 向けバンドル済み動画生成プロバイダー + 登録 +- `google` および `google-gemini-cli`: Gemini 3.1 の前方互換フォールバック、 + ネイティブ Gemini リプレイ検証、ブートストラップリプレイのサニタイズ、タグ付き + reasoning-output モード、modern-model 照合、Gemini image-preview モデル向け + バンドル済み画像生成プロバイダー登録、および + Veo モデル向けバンドル済み動画生成プロバイダー登録。Gemini CLI OAuth も + 使用量画面向けの認証プロファイルトークン整形、使用量トークン解析、およびクォータエンドポイント + 取得を所有します - `moonshot`: 共有トランスポート、プラグイン所有の thinking ペイロード正規化 -- `kilocode`: 共有トランスポート、プラグイン所有のリクエストヘッダー、reasoning ペイロード正規化、プロキシ Gemini thought-signature サニタイズ、cache-TTL ポリシー -- `zai`: GLM-5 の前方互換フォールバック、`tool_stream` デフォルト、cache-TTL ポリシー、バイナリ thinking/live-model ポリシー、使用量認証 + クォータ取得。未知の `glm-5*` ID はバンドルされた `glm-4.7` テンプレートから合成されます -- `xai`: ネイティブ Responses トランスポート正規化、Grok 高速バリアント向け `/fast` エイリアス書き換え、デフォルト `tool_stream`、xAI 固有のツールスキーマ / reasoning ペイロードのクリーンアップ、`grok-imagine-video` 向けバンドル動画生成プロバイダー登録 +- `kilocode`: 共有トランスポート、プラグイン所有のリクエストヘッダー、reasoning ペイロード + 正規化、プロキシ Gemini thought-signature のサニタイズ、および cache-TTL + ポリシー +- `zai`: GLM-5 の前方互換フォールバック、`tool_stream` のデフォルト、cache-TTL + ポリシー、二値 thinking/live-model ポリシー、および使用量認証 + クォータ取得。 + 不明な `glm-5*` id は、バンドル済みの `glm-4.7` テンプレートから生成されます +- `xai`: ネイティブ Responses トランスポート正規化、Grok fast バリアント向け + `/fast` エイリアス書き換え、デフォルト `tool_stream`、xAI 固有のツールスキーマ / + reasoning ペイロードのクリーンアップ、およびバンドル済み動画生成プロバイダー + `grok-imagine-video` 向け登録 - `mistral`: プラグイン所有の capability メタデータ -- `opencode` と `opencode-go`: プラグイン所有の capability メタデータに加え、プロキシ Gemini thought-signature サニタイズ -- `alibaba`: `alibaba/wan2.6-t2v` のような直接 Wan モデル参照向けのプラグイン所有動画生成カタログ -- `byteplus`: プラグイン所有カタログに加え、Seedance テキスト動画/画像動画モデル向けバンドル動画生成プロバイダー登録 -- `fal`: ホスト型サードパーティー画像モデル向けバンドル画像生成プロバイダー登録に加え、ホスト型サードパーティー動画モデル向けバンドル動画生成プロバイダー登録 +- `opencode` および `opencode-go`: プラグイン所有の capability メタデータに加え、 + プロキシ Gemini thought-signature のサニタイズ +- `alibaba`: `alibaba/wan2.6-t2v` のような直接 Wan モデル参照向け、 + プラグイン所有の動画生成カタログ +- `byteplus`: プラグイン所有のカタログに加え、Seedance の text-to-video/image-to-video モデル向け + バンドル済み動画生成プロバイダー + 登録 +- `fal`: ホスト型サードパーティ向けのバンドル済み動画生成プロバイダー登録、 + FLUX 画像モデル向けの画像生成プロバイダー登録に加え、ホスト型サードパーティ動画モデル向けの + バンドル済み動画生成プロバイダー登録 - `cloudflare-ai-gateway`, `huggingface`, `kimi`, `nvidia`, `qianfan`, `stepfun`, `synthetic`, `venice`, `vercel-ai-gateway`, および `volcengine`: - プラグイン所有カタログのみ -- `qwen`: テキストモデル向けプラグイン所有カタログに加え、マルチモーダル画面向けの共有 media-understanding と動画生成プロバイダー登録。Qwen の動画生成は、`wan2.6-t2v` や `wan2.7-r2v` のようなバンドル Wan モデルを用いる Standard DashScope 動画エンドポイントを使用します -- `runway`: `gen4.5` のようなネイティブ Runway タスクベースモデル向けプラグイン所有動画生成プロバイダー登録 -- `minimax`: プラグイン所有カタログ、Hailuo 動画モデル向けバンドル動画生成プロバイダー登録、`image-01` 向けバンドル画像生成プロバイダー登録、ハイブリッド Anthropic/OpenAI replay-policy 選択、使用量認証/スナップショットロジック -- `together`: プラグイン所有カタログに加え、Wan 動画モデル向けバンドル動画生成プロバイダー登録 -- `xiaomi`: プラグイン所有カタログに加え、使用量認証/スナップショットロジック + プラグイン所有のカタログのみ +- `qwen`: テキストモデル向けのプラグイン所有カタログに加え、 + そのマルチモーダル画面向けの共有 + media-understanding および動画生成プロバイダー登録。Qwen の動画生成は、 + `wan2.6-t2v` や `wan2.7-r2v` のようなバンドル済み Wan モデルを用いた、 + 標準 DashScope 動画エンドポイントを使用します +- `runway`: `gen4.5` のようなネイティブ + Runway タスクベースモデル向けのプラグイン所有動画生成プロバイダー登録 +- `minimax`: プラグイン所有のカタログ、Hailuo 動画モデル向けのバンドル済み動画生成プロバイダー + 登録、`image-01` 向けのバンドル済み画像生成プロバイダー + 登録、ハイブリッドな Anthropic/OpenAI replay-policy + 選択、および使用量認証/スナップショットロジック +- `together`: プラグイン所有のカタログに加え、Wan 動画モデル向けのバンドル済み動画生成プロバイダー + 登録 +- `xiaomi`: プラグイン所有のカタログに加え、使用量認証/スナップショットロジック -バンドルされた `openai` プラグインは現在、両方のプロバイダー ID を所有しています: -`openai` と `openai-codex`。 +バンドル済みの `openai` プラグインは現在、`openai` と +`openai-codex` の両方のプロバイダー id を所有しています。 -ここまでが、OpenClaw の通常トランスポートにまだ収まるプロバイダーです。完全にカスタムなリクエスト実行器を必要とするプロバイダーは、別のより深い拡張サーフェスになります。 +これで、OpenClaw の通常トランスポートにまだ収まるプロバイダーは網羅されます。完全にカスタムなリクエスト実行器が必要なプロバイダーは、 +別の、より深い拡張サーフェスになります。 -## API キーローテーション +## API キーのローテーション -- 選択されたプロバイダー向けの汎用プロバイダーローテーションをサポートします。 +- 選択したプロバイダーに対する汎用プロバイダーローテーションをサポートします。 - 複数キーの設定方法: - `OPENCLAW_LIVE__KEY`(単一の live 上書き、最優先) - - `_API_KEYS`(カンマまたはセミコロン区切りリスト) + - `_API_KEYS`(カンマまたはセミコロン区切りのリスト) - `_API_KEY`(プライマリキー) - - `_API_KEY_*`(番号付きリスト、例: `_API_KEY_1`) + - `_API_KEY_*`(番号付きリスト。例: `_API_KEY_1`) - Google プロバイダーでは、フォールバックとして `GOOGLE_API_KEY` も含まれます。 -- キーの選択順序は優先順位を維持し、値の重複を除去します。 -- リクエストは、レート制限応答の場合にのみ次のキーで再試行されます(例: `429`、`rate_limit`、`quota`、`resource exhausted`、`Too many -concurrent requests`、`ThrottlingException`、`concurrency limit reached`、 +- キー選択順序は優先順位を維持し、値は重複排除されます。 +- リクエストは、レート制限レスポンスの場合にのみ次のキーで再試行されます(例: + `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many +concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded`、または定期的な usage-limit メッセージ)。 -- レート制限以外の失敗は即座に失敗し、キーローテーションは試行されません。 -- すべての候補キーが失敗した場合、最後の試行での最終エラーが返されます。 +- レート制限以外の失敗は即座に失敗し、キーのローテーションは試行されません。 +- すべての候補キーが失敗した場合、最後の試行からの最終エラーが返されます。 ## 組み込みプロバイダー(pi-ai カタログ) OpenClaw には pi‑ai カタログが同梱されています。これらのプロバイダーでは -`models.providers` 設定は**不要**です。認証を設定してモデルを選ぶだけです。 +`models.providers` の設定は**不要**です。認証を設定してモデルを選ぶだけです。 ### OpenAI - プロバイダー: `openai` - 認証: `OPENAI_API_KEY` -- オプションのローテーション: `OPENAI_API_KEYS`、`OPENAI_API_KEY_1`、`OPENAI_API_KEY_2`、および `OPENCLAW_LIVE_OPENAI_KEY`(単一上書き) +- 任意のローテーション: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, および `OPENCLAW_LIVE_OPENAI_KEY`(単一上書き) - モデル例: `openai/gpt-5.4`, `openai/gpt-5.4-pro` - CLI: `openclaw onboard --auth-choice openai-api-key` -- デフォルトのトランスポートは `auto`(WebSocket 優先、SSE フォールバック) -- モデルごとの上書きは `agents.defaults.models["openai/"].params.transport` で行います(`"sse"`、`"websocket"`、または `"auto"`) +- デフォルトのトランスポートは `auto` です(WebSocket 優先、SSE フォールバック) +- モデルごとの上書きは `agents.defaults.models["openai/"].params.transport` で行います(`"sse"`, `"websocket"`, または `"auto"`) - OpenAI Responses WebSocket ウォームアップは、`params.openaiWsWarmup`(`true`/`false`)によりデフォルトで有効です - OpenAI priority processing は `agents.defaults.models["openai/"].params.serviceTier` で有効化できます -- `/fast` と `params.fastMode` は、直接 `openai/*` Responses リクエストを `api.openai.com` 上の `service_tier=priority` にマッピングします -- 共有 `/fast` トグルの代わりに明示的な tier を指定したい場合は `params.serviceTier` を使用します -- 非表示の OpenClaw 帰属ヘッダー(`originator`, `version`, - `User-Agent`)は、`api.openai.com` へのネイティブ OpenAI トラフィックにのみ適用され、 +- `/fast` と `params.fastMode` は、直接の `openai/*` Responses リクエストを `api.openai.com` 上の `service_tier=priority` にマップします +- 共有の `/fast` トグルではなく明示的な tier を使いたい場合は、`params.serviceTier` を使用してください +- 非表示の OpenClaw 属性ヘッダー(`originator`, `version`, + `User-Agent`)は、ネイティブ OpenAI トラフィックの `api.openai.com` にのみ適用され、 汎用の OpenAI 互換プロキシには適用されません -- ネイティブ OpenAI ルートでは、Responses の `store`、プロンプトキャッシュのヒント、 - OpenAI reasoning 互換ペイロード整形も維持されます。プロキシルートでは維持されません +- ネイティブ OpenAI ルートでは、Responses の `store`、prompt-cache ヒント、および + OpenAI reasoning 互換のペイロード整形も維持されます。プロキシルートでは維持されません - `openai/gpt-5.3-codex-spark` は、live OpenAI API がこれを拒否するため、OpenClaw では意図的に抑制されています。Spark は Codex 専用として扱われます ```json5 @@ -185,12 +275,12 @@ OpenClaw には pi‑ai カタログが同梱されています。これらの - プロバイダー: `anthropic` - 認証: `ANTHROPIC_API_KEY` -- オプションのローテーション: `ANTHROPIC_API_KEYS`、`ANTHROPIC_API_KEY_1`、`ANTHROPIC_API_KEY_2`、および `OPENCLAW_LIVE_ANTHROPIC_KEY`(単一上書き) +- 任意のローテーション: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, および `OPENCLAW_LIVE_ANTHROPIC_KEY`(単一上書き) - モデル例: `anthropic/claude-opus-4-6` - CLI: `openclaw onboard --auth-choice apiKey` -- 直接の公開 Anthropic リクエストでは、共有 `/fast` トグルと `params.fastMode` もサポートされます。これには `api.anthropic.com` に送信される API キー認証および OAuth 認証トラフィックも含まれ、OpenClaw はこれを Anthropic の `service_tier`(`auto` 対 `standard_only`)にマッピングします -- Anthropic に関する注記: Anthropic スタッフから、OpenClaw スタイルの Claude CLI 利用は再び許可されていると伝えられたため、Anthropic が新しいポリシーを公開しない限り、OpenClaw はこの統合において Claude CLI の再利用と `claude -p` の利用を認可済みとして扱います。 -- Anthropic setup-token は引き続きサポートされる OpenClaw トークン経路として利用可能ですが、OpenClaw は現在、利用可能な場合は Claude CLI の再利用と `claude -p` を優先します。 +- 直接の公開 Anthropic リクエストでは、共有の `/fast` トグルと `params.fastMode` もサポートされます。これには `api.anthropic.com` に送信される API キー認証および OAuth 認証トラフィックが含まれます。OpenClaw はこれを Anthropic の `service_tier`(`auto` と `standard_only`)にマップします +- Anthropic 注記: Anthropic のスタッフから、OpenClaw スタイルの Claude CLI 利用は再び許可されていると伝えられたため、Anthropic が新しいポリシーを公開しない限り、OpenClaw は Claude CLI の再利用と `claude -p` の利用をこの統合において認可済みとして扱います。 +- Anthropic setup-token も引き続きサポートされる OpenClaw のトークン経路として利用可能ですが、OpenClaw は現在、利用可能であれば Claude CLI の再利用と `claude -p` を優先します。 ```json5 { @@ -204,15 +294,15 @@ OpenClaw には pi‑ai カタログが同梱されています。これらの - 認証: OAuth(ChatGPT) - モデル例: `openai-codex/gpt-5.4` - CLI: `openclaw onboard --auth-choice openai-codex` または `openclaw models auth login --provider openai-codex` -- デフォルトのトランスポートは `auto`(WebSocket 優先、SSE フォールバック) -- モデルごとの上書きは `agents.defaults.models["openai-codex/"].params.transport` で行います(`"sse"`、`"websocket"`、または `"auto"`) -- `params.serviceTier` もネイティブ Codex Responses リクエスト(`chatgpt.com/backend-api`)で転送されます -- 非表示の OpenClaw 帰属ヘッダー(`originator`, `version`, +- デフォルトのトランスポートは `auto` です(WebSocket 優先、SSE フォールバック) +- モデルごとの上書きは `agents.defaults.models["openai-codex/"].params.transport` で行います(`"sse"`, `"websocket"`, または `"auto"`) +- `params.serviceTier` も、ネイティブ Codex Responses リクエスト(`chatgpt.com/backend-api`)で転送されます +- 非表示の OpenClaw 属性ヘッダー(`originator`, `version`, `User-Agent`)は、`chatgpt.com/backend-api` へのネイティブ Codex トラフィックにのみ付与され、 汎用の OpenAI 互換プロキシには付与されません -- 直接 `openai/*` と同じ `/fast` トグルおよび `params.fastMode` 設定を共有し、OpenClaw はこれを `service_tier=priority` にマッピングします +- 直接の `openai/*` と同じ `/fast` トグルおよび `params.fastMode` 設定を共有し、OpenClaw はこれを `service_tier=priority` にマップします - `openai-codex/gpt-5.3-codex-spark` は、Codex OAuth カタログが公開している場合は引き続き利用可能です。権限依存です -- `openai-codex/gpt-5.4` はネイティブの `contextWindow = 1050000` とデフォルトのランタイム `contextTokens = 272000` を維持します。ランタイム上限は `models.providers.openai-codex.models[].contextTokens` で上書きできます +- `openai-codex/gpt-5.4` はネイティブの `contextWindow = 1050000` と、デフォルトのランタイム `contextTokens = 272000` を維持します。ランタイム上限は `models.providers.openai-codex.models[].contextTokens` で上書きできます - ポリシー注記: OpenAI Codex OAuth は、OpenClaw のような外部ツール/ワークフロー向けに明示的にサポートされています。 ```json5 @@ -235,7 +325,7 @@ OpenClaw には pi‑ai カタログが同梱されています。これらの ### その他のサブスクリプション型ホストオプション -- [Qwen Cloud](/ja-JP/providers/qwen): Qwen Cloud プロバイダーサーフェスに加え、Alibaba DashScope および Coding Plan エンドポイントのマッピング +- [Qwen Cloud](/ja-JP/providers/qwen): Qwen Cloud のプロバイダーサーフェスに加え、Alibaba DashScope と Coding Plan エンドポイントのマッピング - [MiniMax](/ja-JP/providers/minimax): MiniMax Coding Plan OAuth または API キーアクセス - [GLM Models](/ja-JP/providers/glm): Z.AI Coding Plan または一般 API エンドポイント @@ -257,40 +347,41 @@ OpenClaw には pi‑ai カタログが同梱されています。これらの - プロバイダー: `google` - 認証: `GEMINI_API_KEY` -- オプションのローテーション: `GEMINI_API_KEYS`、`GEMINI_API_KEY_1`、`GEMINI_API_KEY_2`、`GOOGLE_API_KEY` フォールバック、および `OPENCLAW_LIVE_GEMINI_KEY`(単一上書き) +- 任意のローテーション: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, `GOOGLE_API_KEY` フォールバック、および `OPENCLAW_LIVE_GEMINI_KEY`(単一上書き) - モデル例: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview` -- 互換性: `google/gemini-3.1-flash-preview` を使う従来の OpenClaw 設定は `google/gemini-3-flash-preview` に正規化されます +- 互換性: `google/gemini-3.1-flash-preview` を使用するレガシーな OpenClaw 設定は、`google/gemini-3-flash-preview` に正規化されます - CLI: `openclaw onboard --auth-choice gemini-api-key` -- 直接 Gemini 実行では `agents.defaults.models["google/"].params.cachedContent` - (または従来の `cached_content`)も受け付け、 - プロバイダーネイティブの `cachedContents/...` ハンドルを転送します。Gemini のキャッシュヒットは OpenClaw の `cacheRead` として表示されます +- 直接の Gemini 実行では、`agents.defaults.models["google/"].params.cachedContent` + (またはレガシーな `cached_content`)も受け付け、 + プロバイダーネイティブの `cachedContents/...` ハンドルを転送します。 + Gemini のキャッシュヒットは OpenClaw の `cacheRead` として表示されます ### Google Vertex と Gemini CLI - プロバイダー: `google-vertex`, `google-gemini-cli` -- 認証: Vertex は gcloud ADC を使用、Gemini CLI は独自の OAuth フローを使用 -- 注意: OpenClaw における Gemini CLI OAuth は非公式統合です。サードパーティークライアントの使用後に Google アカウントの制限が報告された例があります。利用する場合は Google の利用規約を確認し、重要でないアカウントを使ってください。 -- Gemini CLI OAuth は、バンドルされた `google` プラグインの一部として提供されます。 +- 認証: Vertex は gcloud ADC を使用し、Gemini CLI は自身の OAuth フローを使用します +- 注意: OpenClaw における Gemini CLI OAuth は非公式な統合です。サードパーティクライアント利用後に Google アカウントの制限が発生したという報告もあります。利用する場合は Google の規約を確認し、重要でないアカウントを使用してください。 +- Gemini CLI OAuth は、バンドル済みの `google` プラグインの一部として提供されます。 - まず Gemini CLI をインストールします: - `brew install gemini-cli` - または `npm install -g @google/gemini-cli` - 有効化: `openclaw plugins enable google` - ログイン: `openclaw models auth login --provider google-gemini-cli --set-default` - デフォルトモデル: `google-gemini-cli/gemini-3-flash-preview` - - 注: `openclaw.json` に client id や secret を貼り付ける必要は**ありません**。CLI ログインフローは + - 注: `openclaw.json` に client id や secret を貼り付ける必要は**ありません**。CLI のログインフローは トークンを Gateway ホスト上の認証プロファイルに保存します。 - ログイン後にリクエストが失敗する場合は、Gateway ホストで `GOOGLE_CLOUD_PROJECT` または `GOOGLE_CLOUD_PROJECT_ID` を設定してください。 - Gemini CLI の JSON 応答は `response` から解析され、使用量は - `stats` にフォールバックします。`stats.cached` は OpenClaw の `cacheRead` に正規化されます。 + `stats` にフォールバックされます。`stats.cached` は OpenClaw の `cacheRead` に正規化されます。 ### Z.AI(GLM) - プロバイダー: `zai` - 認証: `ZAI_API_KEY` -- モデル例: `zai/glm-5` +- モデル例: `zai/glm-5.1` - CLI: `openclaw onboard --auth-choice zai-api-key` - エイリアス: `z.ai/*` と `z-ai/*` は `zai/*` に正規化されます - - `zai-api-key` は一致する Z.AI エンドポイントを自動検出します。`zai-coding-global`、`zai-coding-cn`、`zai-global`、`zai-cn` は特定のサーフェスを強制します + - `zai-api-key` は一致する Z.AI エンドポイントを自動検出します。`zai-coding-global`, `zai-coding-cn`, `zai-global`, `zai-cn` は特定のサーフェスを強制します ### Vercel AI Gateway @@ -307,86 +398,91 @@ OpenClaw には pi‑ai カタログが同梱されています。これらの - CLI: `openclaw onboard --auth-choice kilocode-api-key` - ベース URL: `https://api.kilo.ai/api/gateway/` - 静的フォールバックカタログには `kilocode/kilo/auto` が同梱されており、 - live の `https://api.kilo.ai/api/gateway/models` 検出によりランタイム - カタログをさらに拡張できます。 + live の `https://api.kilo.ai/api/gateway/models` 検出によって + ランタイムカタログがさらに拡張される場合があります。 - `kilocode/kilo/auto` の背後にある正確な上流ルーティングは Kilo Gateway が所有しており、 - OpenClaw にハードコードされていません。 + OpenClaw にはハードコードされていません。 セットアップの詳細は [/providers/kilocode](/ja-JP/providers/kilocode) を参照してください。 ### その他のバンドル済みプロバイダープラグイン -- OpenRouter: `openrouter` (`OPENROUTER_API_KEY`) +- OpenRouter: `openrouter`(`OPENROUTER_API_KEY`) - モデル例: `openrouter/auto` -- OpenClaw は、リクエストが実際に `openrouter.ai` を対象としている場合にのみ、 - OpenRouter の文書化されたアプリ帰属ヘッダーを適用します +- OpenClaw は、リクエストの実際の送信先が `openrouter.ai` の場合にのみ、 + OpenRouter の文書化されたアプリ属性ヘッダーを適用します - OpenRouter 固有の Anthropic `cache_control` マーカーも同様に、 - 任意のプロキシ URL ではなく、検証済み OpenRouter ルートにのみ適用されます -- OpenRouter は引き続きプロキシ型の OpenAI 互換パス上にあるため、 - ネイティブ OpenAI 専用のリクエスト整形(`serviceTier`、Responses `store`、 - プロンプトキャッシュヒント、OpenAI reasoning 互換ペイロード)は転送されません -- Gemini ベースの OpenRouter 参照では、プロキシ Gemini thought-signature サニタイズのみ維持されます。ネイティブ Gemini リプレイ検証とブートストラップ書き換えは無効のままです -- Kilo Gateway: `kilocode` (`KILOCODE_API_KEY`) + 任意のプロキシ URL ではなく検証済みの OpenRouter ルートに対してのみ有効です +- OpenRouter は引き続きプロキシ型の OpenAI 互換パス上にあるため、ネイティブ OpenAI 専用のリクエスト整形(`serviceTier`、Responses の `store`、 + prompt-cache ヒント、OpenAI reasoning 互換ペイロード)は転送されません +- Gemini ベースの OpenRouter 参照では、プロキシ Gemini thought-signature のサニタイズのみが維持されます。 + ネイティブ Gemini のリプレイ検証とブートストラップ書き換えは無効のままです +- Kilo Gateway: `kilocode`(`KILOCODE_API_KEY`) - モデル例: `kilocode/kilo/auto` -- Gemini ベースの Kilo 参照では同じプロキシ Gemini thought-signature - サニタイズ経路が維持されます。`kilocode/kilo/auto` やその他の proxy-reasoning 非対応ヒントでは、プロキシ reasoning 注入をスキップします +- Gemini ベースの Kilo 参照でも、同じプロキシ Gemini thought-signature + サニタイズパスが維持されます。`kilocode/kilo/auto` やその他のプロキシ推論非対応 + ヒントでは、プロキシ推論注入はスキップされます - MiniMax: `minimax`(API キー)および `minimax-portal`(OAuth) - 認証: `minimax` には `MINIMAX_API_KEY`、`minimax-portal` には `MINIMAX_OAUTH_TOKEN` または `MINIMAX_API_KEY` - モデル例: `minimax/MiniMax-M2.7` または `minimax-portal/MiniMax-M2.7` -- MiniMax のオンボーディング/API キー設定では、`input: ["text", "image"]` を持つ明示的な M2.7 モデル定義を書き込みます。バンドルされたプロバイダーカタログでは、そのプロバイダー設定がマテリアライズされるまではチャット参照を text-only のままにします -- Moonshot: `moonshot` (`MOONSHOT_API_KEY`) +- MiniMax のオンボーディング/API キー設定では、 + `input: ["text", "image"]` を持つ明示的な M2.7 モデル定義が書き込まれます。バンドル済みプロバイダーカタログでは、 + そのプロバイダー設定が具体化されるまで、チャット参照は + テキスト専用のままです +- Moonshot: `moonshot`(`MOONSHOT_API_KEY`) - モデル例: `moonshot/kimi-k2.5` -- Kimi Coding: `kimi` (`KIMI_API_KEY` または `KIMICODE_API_KEY`) +- Kimi Coding: `kimi`(`KIMI_API_KEY` または `KIMICODE_API_KEY`) - モデル例: `kimi/kimi-code` -- Qianfan: `qianfan` (`QIANFAN_API_KEY`) +- Qianfan: `qianfan`(`QIANFAN_API_KEY`) - モデル例: `qianfan/deepseek-v3.2` -- Qwen Cloud: `qwen` (`QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, または `DASHSCOPE_API_KEY`) +- Qwen Cloud: `qwen`(`QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, または `DASHSCOPE_API_KEY`) - モデル例: `qwen/qwen3.5-plus` -- NVIDIA: `nvidia` (`NVIDIA_API_KEY`) +- NVIDIA: `nvidia`(`NVIDIA_API_KEY`) - モデル例: `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` -- StepFun: `stepfun` / `stepfun-plan` (`STEPFUN_API_KEY`) +- StepFun: `stepfun` / `stepfun-plan`(`STEPFUN_API_KEY`) - モデル例: `stepfun/step-3.5-flash`, `stepfun-plan/step-3.5-flash-2603` -- Together: `together` (`TOGETHER_API_KEY`) +- Together: `together`(`TOGETHER_API_KEY`) - モデル例: `together/moonshotai/Kimi-K2.5` -- Venice: `venice` (`VENICE_API_KEY`) -- Xiaomi: `xiaomi` (`XIAOMI_API_KEY`) +- Venice: `venice`(`VENICE_API_KEY`) +- Xiaomi: `xiaomi`(`XIAOMI_API_KEY`) - モデル例: `xiaomi/mimo-v2-flash` -- Vercel AI Gateway: `vercel-ai-gateway` (`AI_GATEWAY_API_KEY`) -- Hugging Face Inference: `huggingface` (`HUGGINGFACE_HUB_TOKEN` または `HF_TOKEN`) -- Cloudflare AI Gateway: `cloudflare-ai-gateway` (`CLOUDFLARE_AI_GATEWAY_API_KEY`) -- Volcengine: `volcengine` (`VOLCANO_ENGINE_API_KEY`) +- Vercel AI Gateway: `vercel-ai-gateway`(`AI_GATEWAY_API_KEY`) +- Hugging Face Inference: `huggingface`(`HUGGINGFACE_HUB_TOKEN` または `HF_TOKEN`) +- Cloudflare AI Gateway: `cloudflare-ai-gateway`(`CLOUDFLARE_AI_GATEWAY_API_KEY`) +- Volcengine: `volcengine`(`VOLCANO_ENGINE_API_KEY`) - モデル例: `volcengine-plan/ark-code-latest` -- BytePlus: `byteplus` (`BYTEPLUS_API_KEY`) +- BytePlus: `byteplus`(`BYTEPLUS_API_KEY`) - モデル例: `byteplus-plan/ark-code-latest` -- xAI: `xai` (`XAI_API_KEY`) - - ネイティブにバンドルされた xAI リクエストは xAI Responses パスを使用します - - `/fast` または `params.fastMode: true` は `grok-3`, `grok-3-mini`, - `grok-4`, `grok-4-0709` をそれぞれの `*-fast` バリアントに書き換えます - - `tool_stream` はデフォルトで有効です。 - `agents.defaults.models["xai/"].params.tool_stream` を `false` に設定して - 無効化できます -- Mistral: `mistral` (`MISTRAL_API_KEY`) +- xAI: `xai`(`XAI_API_KEY`) + - ネイティブのバンドル済み xAI リクエストでは、xAI Responses パスを使用します + - `/fast` または `params.fastMode: true` は、`grok-3`, `grok-3-mini`, + `grok-4`, および `grok-4-0709` をそれぞれの `*-fast` バリアントに + 書き換えます + - `tool_stream` はデフォルトで有効です。無効にするには、 + `agents.defaults.models["xai/"].params.tool_stream` を `false` に設定してください +- Mistral: `mistral`(`MISTRAL_API_KEY`) - モデル例: `mistral/mistral-large-latest` - CLI: `openclaw onboard --auth-choice mistral-api-key` -- Groq: `groq` (`GROQ_API_KEY`) -- Cerebras: `cerebras` (`CEREBRAS_API_KEY`) - - Cerebras 上の GLM モデルは `zai-glm-4.7` および `zai-glm-4.6` の ID を使用します。 - - OpenAI 互換ベース URL: `https://api.cerebras.ai/v1`。 -- GitHub Copilot: `github-copilot` (`COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN`) -- Hugging Face Inference のモデル例: `huggingface/deepseek-ai/DeepSeek-R1`。CLI: `openclaw onboard --auth-choice huggingface-api-key`。詳細は [Hugging Face (Inference)](/ja-JP/providers/huggingface) を参照してください。 +- Groq: `groq`(`GROQ_API_KEY`) +- Cerebras: `cerebras`(`CEREBRAS_API_KEY`) + - Cerebras 上の GLM モデルは `zai-glm-4.7` および `zai-glm-4.6` という id を使用します。 + - OpenAI 互換の base URL: `https://api.cerebras.ai/v1` +- GitHub Copilot: `github-copilot`(`COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN`) +- Hugging Face Inference のモデル例: `huggingface/deepseek-ai/DeepSeek-R1`; CLI: `openclaw onboard --auth-choice huggingface-api-key`。 [Hugging Face (Inference)](/ja-JP/providers/huggingface) を参照してください。 -## `models.providers` 経由のプロバイダー(カスタム/ベース URL) +## `models.providers` 経由のプロバイダー(カスタム/base URL) -`models.providers`(または `models.json`)を使用して、**カスタム**プロバイダーまたは -OpenAI/Anthropic 互換プロキシを追加します。 +`models.providers`(または `models.json`)を使うと、**カスタム**プロバイダーや +OpenAI/Anthropic 互換プロキシを追加できます。 以下のバンドル済みプロバイダープラグインの多くは、すでにデフォルトカタログを公開しています。 -デフォルトのベース URL、ヘッダー、モデル一覧を上書きしたい場合にのみ、明示的な `models.providers.` エントリーを使用してください。 +デフォルトの base URL、ヘッダー、またはモデル一覧を上書きしたい場合にのみ、 +明示的な `models.providers.` エントリを使用してください。 ### Moonshot AI(Kimi) -Moonshot はバンドル済みプロバイダープラグインとして提供されます。 -通常は組み込みプロバイダーを使い、ベース URL やモデルメタデータを上書きする必要がある場合にのみ、明示的な `models.providers.moonshot` エントリーを追加してください。 +Moonshot はバンドル済みプロバイダープラグインとして提供されています。デフォルトでは組み込みプロバイダーを使用し、 +base URL またはモデルメタデータを上書きしたい場合にのみ、明示的な `models.providers.moonshot` エントリを追加してください。 - プロバイダー: `moonshot` - 認証: `MOONSHOT_API_KEY` @@ -440,13 +536,13 @@ Kimi Coding は Moonshot AI の Anthropic 互換エンドポイントを使用 } ``` -従来の `kimi/k2p5` も互換モデル ID として引き続き受け付けられます。 +レガシーな `kimi/k2p5` も互換モデル id として引き続き受け付けられます。 ### Volcano Engine(Doubao) -Volcano Engine(火山引擎)は、中国で Doubao やその他のモデルへのアクセスを提供します。 +Volcano Engine(火山引擎)は、中国国内で Doubao などのモデルへのアクセスを提供します。 -- プロバイダー: `volcengine`(コーディング: `volcengine-plan`) +- プロバイダー: `volcengine`(coding: `volcengine-plan`) - 認証: `VOLCANO_ENGINE_API_KEY` - モデル例: `volcengine-plan/ark-code-latest` - CLI: `openclaw onboard --auth-choice volcengine-api-key` @@ -459,22 +555,23 @@ Volcano Engine(火山引擎)は、中国で Doubao やその他のモデル } ``` -オンボーディングはデフォルトでコーディングサーフェスを使用しますが、一般的な `volcengine/*` +オンボーディングでは coding サーフェスがデフォルトですが、一般的な `volcengine/*` カタログも同時に登録されます。 オンボーディング/モデル設定ピッカーでは、Volcengine の認証選択は `volcengine/*` と `volcengine-plan/*` の両方の行を優先します。これらのモデルがまだ読み込まれていない場合、 -OpenClaw は空のプロバイダースコープピッカーを表示する代わりに、フィルターなしカタログへフォールバックします。 +OpenClaw は空のプロバイダー限定ピッカーを表示する代わりに、 +フィルタなしカタログへフォールバックします。 利用可能なモデル: -- `volcengine/doubao-seed-1-8-251228` (Doubao Seed 1.8) +- `volcengine/doubao-seed-1-8-251228`(Doubao Seed 1.8) - `volcengine/doubao-seed-code-preview-251028` -- `volcengine/kimi-k2-5-260127` (Kimi K2.5) -- `volcengine/glm-4-7-251222` (GLM 4.7) -- `volcengine/deepseek-v3-2-251201` (DeepSeek V3.2 128K) +- `volcengine/kimi-k2-5-260127`(Kimi K2.5) +- `volcengine/glm-4-7-251222`(GLM 4.7) +- `volcengine/deepseek-v3-2-251201`(DeepSeek V3.2 128K) -コーディングモデル(`volcengine-plan`): +Coding モデル(`volcengine-plan`): - `volcengine-plan/ark-code-latest` - `volcengine-plan/doubao-seed-code` @@ -482,11 +579,11 @@ OpenClaw は空のプロバイダースコープピッカーを表示する代 - `volcengine-plan/kimi-k2-thinking` - `volcengine-plan/glm-4.7` -### BytePlus(国際版) +### BytePlus(International) BytePlus ARK は、国際ユーザー向けに Volcano Engine と同じモデルへのアクセスを提供します。 -- プロバイダー: `byteplus`(コーディング: `byteplus-plan`) +- プロバイダー: `byteplus`(coding: `byteplus-plan`) - 認証: `BYTEPLUS_API_KEY` - モデル例: `byteplus-plan/ark-code-latest` - CLI: `openclaw onboard --auth-choice byteplus-api-key` @@ -499,20 +596,21 @@ BytePlus ARK は、国際ユーザー向けに Volcano Engine と同じモデル } ``` -オンボーディングはデフォルトでコーディングサーフェスを使用しますが、一般的な `byteplus/*` +オンボーディングでは coding サーフェスがデフォルトですが、一般的な `byteplus/*` カタログも同時に登録されます。 オンボーディング/モデル設定ピッカーでは、BytePlus の認証選択は `byteplus/*` と `byteplus-plan/*` の両方の行を優先します。これらのモデルがまだ読み込まれていない場合、 -OpenClaw は空のプロバイダースコープピッカーを表示する代わりに、フィルターなしカタログへフォールバックします。 +OpenClaw は空のプロバイダー限定ピッカーを表示する代わりに、 +フィルタなしカタログへフォールバックします。 利用可能なモデル: -- `byteplus/seed-1-8-251228` (Seed 1.8) -- `byteplus/kimi-k2-5-260127` (Kimi K2.5) -- `byteplus/glm-4-7-251222` (GLM 4.7) +- `byteplus/seed-1-8-251228`(Seed 1.8) +- `byteplus/kimi-k2-5-260127`(Kimi K2.5) +- `byteplus/glm-4-7-251222`(GLM 4.7) -コーディングモデル(`byteplus-plan`): +Coding モデル(`byteplus-plan`): - `byteplus-plan/ark-code-latest` - `byteplus-plan/doubao-seed-code` @@ -522,7 +620,7 @@ OpenClaw は空のプロバイダースコープピッカーを表示する代 ### Synthetic -Synthetic は、`synthetic` プロバイダーの背後で Anthropic 互換モデルを提供します。 +Synthetic は `synthetic` プロバイダーの背後で Anthropic 互換モデルを提供します。 - プロバイダー: `synthetic` - 認証: `SYNTHETIC_API_KEY` @@ -550,7 +648,7 @@ Synthetic は、`synthetic` プロバイダーの背後で Anthropic 互換モ ### MiniMax -MiniMax はカスタムエンドポイントを使用するため、`models.providers` 経由で設定します。 +MiniMax はカスタムエンドポイントを使用するため、`models.providers` で設定されます。 - MiniMax OAuth(Global): `--auth-choice minimax-global-oauth` - MiniMax OAuth(CN): `--auth-choice minimax-cn-oauth` @@ -561,16 +659,16 @@ MiniMax はカスタムエンドポイントを使用するため、`models.prov セットアップの詳細、モデルオプション、設定スニペットについては [/providers/minimax](/ja-JP/providers/minimax) を参照してください。 -MiniMax の Anthropic 互換ストリーミングパスでは、明示的に設定しない限り OpenClaw は thinking を -デフォルトで無効にし、`/fast on` は +MiniMax の Anthropic 互換ストリーミングパスでは、OpenClaw は +明示的に設定しない限り thinking をデフォルトで無効化し、`/fast on` は `MiniMax-M2.7` を `MiniMax-M2.7-highspeed` に書き換えます。 プラグイン所有の capability 分担: -- テキスト/チャットのデフォルトは `minimax/MiniMax-M2.7` のまま -- 画像生成は `minimax/image-01` または `minimax-portal/image-01` -- 画像理解は、両方の MiniMax 認証パスでプラグイン所有の `MiniMax-VL-01` -- Web 検索は引き続きプロバイダー ID `minimax` +- テキスト/チャットのデフォルトは `minimax/MiniMax-M2.7` のままです +- 画像生成は `minimax/image-01` または `minimax-portal/image-01` です +- 画像理解は、両方の MiniMax 認証パスでプラグイン所有の `MiniMax-VL-01` です +- Web 検索はプロバイダー id `minimax` のままです ### Ollama @@ -582,7 +680,7 @@ Ollama はバンドル済みプロバイダープラグインとして提供さ - インストール: [https://ollama.com/download](https://ollama.com/download) ```bash -# Ollama をインストールし、その後モデルを pull します: +# Ollama をインストールしてから、モデルを pull します: ollama pull llama3.3 ``` @@ -594,27 +692,27 @@ ollama pull llama3.3 } ``` -Ollama は `OLLAMA_API_KEY` でオプトインするとローカルの `http://127.0.0.1:11434` で検出され、 -バンドルされたプロバイダープラグインが Ollama を直接 -`openclaw onboard` とモデルピッカーに追加します。オンボーディング、cloud/local モード、カスタム設定については [/providers/ollama](/ja-JP/providers/ollama) +Ollama は、`OLLAMA_API_KEY` でオプトインしたときに +`http://127.0.0.1:11434` でローカル検出され、バンドル済みプロバイダープラグインは Ollama を直接 +`openclaw onboard` とモデルピッカーに追加します。オンボーディング、クラウド/ローカルモード、カスタム設定については [/providers/ollama](/ja-JP/providers/ollama) を参照してください。 ### vLLM -vLLM は、local/self-hosted な OpenAI 互換 -サーバー向けのバンドル済みプロバイダープラグインとして提供されます。 +vLLM は、ローカル/セルフホスト型の OpenAI 互換 +サーバー向けバンドル済みプロバイダープラグインとして提供されています。 - プロバイダー: `vllm` -- 認証: オプション(サーバー依存) -- デフォルトベース URL: `http://127.0.0.1:8000/v1` +- 認証: 任意(サーバー構成による) +- デフォルトの base URL: `http://127.0.0.1:8000/v1` -ローカルで自動検出にオプトインするには(サーバーが認証を強制しない場合、任意の値で動作します): +ローカルで自動検出を有効化するには(サーバーが認証を強制しない場合は任意の値で動作します): ```bash export VLLM_API_KEY="vllm-local" ``` -その後、モデルを設定します(`/v1/models` が返す ID のいずれかに置き換えてください): +次にモデルを設定します(`/v1/models` が返す ID のいずれかに置き換えてください): ```json5 { @@ -628,21 +726,21 @@ export VLLM_API_KEY="vllm-local" ### SGLang -SGLang は、高速な self-hosted -OpenAI 互換サーバー向けのバンドル済みプロバイダープラグインとして提供されます。 +SGLang は、高速なセルフホスト型 +OpenAI 互換サーバー向けバンドル済みプロバイダープラグインとして提供されています。 - プロバイダー: `sglang` -- 認証: オプション(サーバー依存) -- デフォルトベース URL: `http://127.0.0.1:30000/v1` +- 認証: 任意(サーバー構成による) +- デフォルトの base URL: `http://127.0.0.1:30000/v1` -ローカルで自動検出にオプトインするには(サーバーが -認証を強制しない場合、任意の値で動作します): +ローカルで自動検出を有効化するには(サーバーが +認証を強制しない場合は任意の値で動作します): ```bash export SGLANG_API_KEY="sglang-local" ``` -その後、モデルを設定します(`/v1/models` が返す ID のいずれかに置き換えてください): +次にモデルを設定します(`/v1/models` が返す ID のいずれかに置き換えてください): ```json5 { @@ -691,7 +789,7 @@ export SGLANG_API_KEY="sglang-local" 注: -- カスタムプロバイダーでは、`reasoning`、`input`、`cost`、`contextWindow`、`maxTokens` は省略可能です。 +- カスタムプロバイダーでは、`reasoning`, `input`, `cost`, `contextWindow`, `maxTokens` は任意です。 省略した場合、OpenClaw のデフォルトは次のとおりです: - `reasoning: false` - `input: ["text"]` @@ -699,15 +797,17 @@ export SGLANG_API_KEY="sglang-local" - `contextWindow: 200000` - `maxTokens: 8192` - 推奨: プロキシ/モデルの制限に一致する明示的な値を設定してください。 -- ネイティブでないエンドポイントに対する `api: "openai-completions"` では(ホストが `api.openai.com` ではない任意の非空 `baseUrl`)、OpenClaw は、未対応の `developer` ロールによるプロバイダー 400 エラーを回避するため、`compat.supportsDeveloperRole: false` を強制します。 -- プロキシ型の OpenAI 互換ルートでも、ネイティブ OpenAI 専用のリクエスト整形はスキップされます: - `service_tier` なし、Responses `store` なし、プロンプトキャッシュヒントなし、 - OpenAI reasoning 互換ペイロード整形なし、非表示の OpenClaw 帰属 - ヘッダーなし。 +- ネイティブでないエンドポイント上の `api: "openai-completions"`(`api.openai.com` ではないホストを持つ、空でない `baseUrl`)では、OpenClaw は + サポートされない `developer` ロールによるプロバイダー 400 エラーを避けるため、 + `compat.supportsDeveloperRole: false` を強制します。 +- プロキシ型の OpenAI 互換ルートでは、ネイティブ OpenAI 専用のリクエスト + 整形もスキップされます。`service_tier` なし、Responses の `store` なし、prompt-cache ヒントなし、 + OpenAI reasoning 互換ペイロード整形なし、非表示の OpenClaw 属性 + ヘッダーなしです。 - `baseUrl` が空または省略されている場合、OpenClaw はデフォルトの OpenAI 動作(`api.openai.com` に解決される)を維持します。 - 安全のため、ネイティブでない `openai-completions` エンドポイントでは、明示的な `compat.supportsDeveloperRole: true` も引き続き上書きされます。 -## CLI の例 +## CLI 例 ```bash openclaw onboard --auth-choice opencode-zen diff --git a/docs/ja-JP/concepts/qa-e2e-automation.md b/docs/ja-JP/concepts/qa-e2e-automation.md index 5b6de3a32..8e3b3143e 100644 --- a/docs/ja-JP/concepts/qa-e2e-automation.md +++ b/docs/ja-JP/concepts/qa-e2e-automation.md @@ -1,51 +1,52 @@ --- read_when: - - qa-labまたはqa-channelを拡張する場合 - - リポジトリに裏付けられたQAシナリオを追加する場合 - - Gatewayダッシュボード周辺で、より現実に近いQA自動化を構築する場合 + - qa-lab または qa-channel を拡張する場合 + - リポジトリに基づくQAシナリオを追加する場合 + - Gateway ダッシュボードを中心に、より現実的なQA自動化を構築する場合 summary: qa-lab、qa-channel、シード済みシナリオ、プロトコルレポート向けのプライベートQA自動化の構成 -title: QA E2E自動化 +title: QA E2E 自動化 x-i18n: - generated_at: "2026-04-08T02:13:58Z" + generated_at: "2026-04-08T04:41:52Z" model: gpt-5.4 provider: openai - source_hash: 3b4aa5acc8e77303f4045d4f04372494cae21b89d2fdaba856dbb4855ced9d27 + source_hash: 57da147dc06abf9620290104e01a83b42182db1806514114fd9e8467492cda99 source_path: concepts/qa-e2e-automation.md workflow: 15 --- -# QA E2E自動化 +# QA E2E 自動化 -プライベートQAスタックは、単一のユニットテストよりも、より現実的で -チャネルに近い形でOpenClawを検証することを目的としています。 +プライベートQAスタックは、単一のユニットテストよりも、 +より現実的でチャネルの形に沿った方法でOpenClawを検証することを目的としています。 現在の構成要素: - `extensions/qa-channel`: DM、channel、thread、 - reaction、edit、deleteの各操作面を備えた合成メッセージチャネル。 -- `extensions/qa-lab`: トランスクリプトの観察、 - 受信メッセージの注入、Markdownレポートのエクスポートを行うためのデバッガーUIとQAバス。 -- `qa/`: キックオフタスクとベースラインQA - シナリオ向けの、リポジトリに裏付けられたシードアセット。 + reaction、edit、delete の各操作面を備えた合成メッセージチャネル。 +- `extensions/qa-lab`: トランスクリプトを観察し、 + 受信メッセージを注入し、Markdownレポートをエクスポートするための + デバッガーUIとQAバス。 +- `qa/`: キックオフタスクおよびベースラインQA + シナリオ向けの、リポジトリに基づくシードアセット。 -現在のQAオペレーターのフローは、2ペインのQAサイトです: +現在のQAオペレーターフローは2ペインのQAサイトです: -- 左: エージェントを備えたGatewayダッシュボード(Control UI)。 +- 左: エージェント付きのGateway ダッシュボード(Control UI)。 - 右: Slack風のトランスクリプトとシナリオ計画を表示するQA Lab。 -次のコマンドで実行します: +実行方法: ```bash pnpm qa:lab:up ``` -これによりQAサイトがビルドされ、DockerベースのGatewayレーンが起動し、 -オペレーターまたは自動化ループがエージェントにQA -ミッションを与え、実際のチャネル動作を観察し、成功したこと、失敗したこと、 -またはブロックされたままのことを記録できるQA Labページが公開されます。 +これによりQAサイトがビルドされ、Dockerベースのgatewayレーンが起動し、 +オペレーターまたは自動化ループがエージェントにQAミッションを与え、 +実際のチャネル動作を観察し、何が機能し、何が失敗し、あるいは +何がブロックされたままだったかを記録できるQA Labページが公開されます。 -Dockerイメージを毎回再ビルドせずにQA Lab UIをより高速に反復するには、 -bind mountしたQA Labバンドルでスタックを起動します: +Dockerイメージを毎回再ビルドせずに、より高速にQA Lab UIを反復開発するには、 +bind mountされたQA Labバンドルでスタックを起動します: ```bash pnpm openclaw qa docker-build-image @@ -54,43 +55,44 @@ pnpm qa:lab:up:fast pnpm qa:lab:watch ``` -`qa:lab:up:fast` は、事前ビルド済みイメージ上でDockerサービスを維持しつつ、 +`qa:lab:up:fast` は、Dockerサービスを事前ビルド済みイメージで維持しつつ、 `extensions/qa-lab/web/dist` を `qa-lab` コンテナにbind mountします。`qa:lab:watch` は変更時にそのバンドルを再ビルドし、QA Labアセットのハッシュが変わると -ブラウザは自動的にリロードされます。 +ブラウザは自動的に再読み込みされます。 -## リポジトリに裏付けられたシード +## リポジトリに基づくシード シードアセットは `qa/` にあります: -- `qa/scenarios.md` +- `qa/scenarios/index.md` +- `qa/scenarios/*.md` -これらは、QA計画が人間と -エージェントの両方から見えるように、意図的にgitに置かれています。 -ベースラインの一覧は、次をカバーできる程度に十分広く保つ必要があります: +これらは意図的にgitに含められており、人間と +エージェントの両方がQA計画を確認できます。ベースライン一覧は、少なくとも次を +カバーできるよう十分に広く保つ必要があります: -- DMとchannelチャット -- threadの動作 +- DM と channel のチャット +- thread の動作 - メッセージアクションのライフサイクル -- cronコールバック -- メモリの再呼び出し -- モデル切り替え +- cron コールバック +- メモリの想起 +- モデルの切り替え - サブエージェントへの引き継ぎ -- リポジトリ読み取りとドキュメント読み取り -- Lobster Invadersのような小さなビルドタスクを1つ +- リポジトリの読み取りとドキュメントの読み取り +- Lobster Invaders のような小規模なビルドタスク1件 ## レポート -`qa-lab` は、観測されたバスタイムラインからMarkdownのプロトコルレポートをエクスポートします。 -レポートは次の問いに答える必要があります: +`qa-lab` は、観察されたバスタイムラインからMarkdownのプロトコルレポートをエクスポートします。 +レポートでは次に答える必要があります: -- 何がうまく動作したか +- 何が機能したか - 何が失敗したか - 何がブロックされたままだったか - どのフォローアップシナリオを追加する価値があるか ## 関連ドキュメント -- [Testing](/ja-JP/help/testing) -- [QA Channel](/ja-JP/channels/qa-channel) -- [Dashboard](/web/dashboard) +- [テスト](/ja-JP/help/testing) +- [QAチャネル](/ja-JP/channels/qa-channel) +- [ダッシュボード](/web/dashboard) diff --git a/docs/ja-JP/gateway/configuration-reference.md b/docs/ja-JP/gateway/configuration-reference.md index dfa04c6a1..b49b1dc45 100644 --- a/docs/ja-JP/gateway/configuration-reference.md +++ b/docs/ja-JP/gateway/configuration-reference.md @@ -1,14 +1,14 @@ --- read_when: - - 正確なフィールド単位の設定の意味やデフォルト値が必要 - - チャンネル、モデル、Gateway、またはツールの設定ブロックを検証している -summary: すべてのOpenClaw設定キー、デフォルト値、チャンネル設定の完全なリファレンス + - フィールド単位の正確な設定セマンティクスやデフォルト値が必要な場合 + - チャンネル、モデル、Gateway、またはツールの設定ブロックを検証している場合 +summary: すべてのOpenClaw設定キー、デフォルト値、チャンネル設定の完全リファレンス title: 設定リファレンス x-i18n: - generated_at: "2026-04-08T02:19:47Z" + generated_at: "2026-04-08T04:47:03Z" model: gpt-5.4 provider: openai - source_hash: 2c7991b948cbbb7954a3e26280089ab00088e7f4878ec0b0540c3c9acf222ebb + source_hash: a22899b8f43a7819a2e27fae1bddbe67b29b314bce5a9844fc276482bda9156c source_path: gateway/configuration-reference.md workflow: 15 --- @@ -17,40 +17,40 @@ x-i18n: `~/.openclaw/openclaw.json` で利用できるすべてのフィールド。タスク指向の概要については、[Configuration](/ja-JP/gateway/configuration) を参照してください。 -設定形式は **JSON5** です(コメントと末尾カンマを許可)。すべてのフィールドは省略可能で、省略した場合はOpenClawが安全なデフォルト値を使用します。 +設定形式は **JSON5** です(コメントと末尾カンマを許可)。すべてのフィールドは任意です。省略された場合、OpenClaw は安全なデフォルト値を使用します。 --- ## チャンネル -各チャンネルは、その設定セクションが存在すると自動的に開始されます(`enabled: false` の場合を除く)。 +各チャンネルは、その設定セクションが存在する場合に自動的に開始されます(`enabled: false` の場合を除く)。 -### DM とグループのアクセス +### DM とグループアクセス -すべてのチャンネルはDMポリシーとグループポリシーをサポートします。 +すべてのチャンネルは DM ポリシーとグループポリシーをサポートします。 -| DM policy | 動作 | -| ------------------- | ---------------------------------------------------------------- | -| `pairing` (default) | 未知の送信者には一度だけのペアリングコードが送られ、所有者の承認が必要 | -| `allowlist` | `allowFrom` 内の送信者のみ許可(またはペア済みの許可ストア) | -| `open` | すべての受信DMを許可(`allowFrom: ["*"]` が必要) | -| `disabled` | すべての受信DMを無視 | +| DM ポリシー | 動作 | +| ------------------ | -------------------------------------------------------------- | +| `pairing` (デフォルト) | 未知の送信者には 1 回限りのペアリングコードが送られ、所有者の承認が必要 | +| `allowlist` | `allowFrom` 内の送信者のみ(またはペア済み許可ストア) | +| `open` | すべての受信 DM を許可(`allowFrom: ["*"]` が必要) | +| `disabled` | すべての受信 DM を無視 | -| Group policy | 動作 | -| --------------------- | ---------------------------------------------------------- | -| `allowlist` (default) | 設定された許可リストに一致するグループのみ | +| グループポリシー | 動作 | +| --------------------- | ------------------------------------------------------ | +| `allowlist` (デフォルト) | 設定された許可リストに一致するグループのみ | | `open` | グループ許可リストをバイパス(メンションゲートは引き続き適用) | -| `disabled` | すべてのグループ/ルームメッセージをブロック | +| `disabled` | すべてのグループ/ルームメッセージをブロック | -`channels.defaults.groupPolicy` は、プロバイダーの `groupPolicy` が未設定のときのデフォルトを設定します。 -ペアリングコードの有効期限は1時間です。保留中のDMペアリングリクエストは**チャンネルごとに3件**までです。 -プロバイダーブロックが完全に存在しない場合(`channels.` がない場合)、実行時のグループポリシーは起動時警告付きで `allowlist`(フェイルクローズ)にフォールバックします。 +`channels.defaults.groupPolicy` は、プロバイダーの `groupPolicy` が未設定の場合のデフォルトを設定します。 +ペアリングコードの有効期限は 1 時間です。保留中の DM ペアリングリクエストは **チャンネルごとに 3 件まで** に制限されます。 +プロバイダーブロック自体が完全に欠けている場合(`channels.` が存在しない場合)、ランタイムのグループポリシーは起動時警告付きで `allowlist`(fail-closed)にフォールバックします。 ### チャンネルごとのモデル上書き -`channels.modelByChannel` を使うと、特定のチャンネルIDを特定のモデルに固定できます。値には `provider/model` または設定済みのモデルエイリアスを指定できます。このチャンネルマッピングは、セッションにすでにモデル上書きが存在しない場合(たとえば `/model` で設定された場合)に適用されます。 +特定のチャンネル ID をモデルに固定するには `channels.modelByChannel` を使用します。値には `provider/model` または設定済みモデルエイリアスを指定できます。チャンネルマッピングは、セッションにすでにモデル上書きがない場合(たとえば `/model` で設定された場合)に適用されます。 ```json5 { @@ -71,7 +71,7 @@ x-i18n: } ``` -### チャンネルのデフォルトとハートビート +### チャンネルのデフォルト値とハートビート プロバイダー間で共有するグループポリシーとハートビート動作には `channels.defaults` を使用します。 @@ -91,10 +91,10 @@ x-i18n: } ``` -- `channels.defaults.groupPolicy`: プロバイダーレベルの `groupPolicy` が未設定のときのフォールバックグループポリシー。 -- `channels.defaults.contextVisibility`: すべてのチャンネルの補足コンテキスト表示モードのデフォルト。値: `all`(デフォルト、引用/スレッド/履歴のすべてのコンテキストを含む)、`allowlist`(許可リストにある送信者のコンテキストのみ含む)、`allowlist_quote`(allowlist と同じだが明示的な引用/返信コンテキストは保持)。チャンネルごとの上書き: `channels..contextVisibility`。 -- `channels.defaults.heartbeat.showOk`: ハートビート出力に正常なチャンネル状態を含めます。 -- `channels.defaults.heartbeat.showAlerts`: ハートビート出力に劣化/エラー状態を含めます。 +- `channels.defaults.groupPolicy`: プロバイダーレベルの `groupPolicy` が未設定の場合のフォールバックグループポリシー。 +- `channels.defaults.contextVisibility`: すべてのチャンネルのデフォルト補助コンテキスト可視性モード。値: `all`(デフォルト、引用/スレッド/履歴コンテキストをすべて含む)、`allowlist`(許可リストにある送信者のコンテキストのみ含む)、`allowlist_quote`(allowlist と同じだが明示的な引用/返信コンテキストは保持)。チャンネルごとの上書き: `channels..contextVisibility`。 +- `channels.defaults.heartbeat.showOk`: 正常なチャンネル状態をハートビート出力に含めます。 +- `channels.defaults.heartbeat.showAlerts`: 劣化/エラー状態をハートビート出力に含めます。 - `channels.defaults.heartbeat.useIndicator`: コンパクトなインジケータ形式のハートビート出力を表示します。 ### WhatsApp @@ -132,7 +132,7 @@ WhatsApp は Gateway の web チャンネル(Baileys Web)を通じて動作 } ``` - + ```json5 { @@ -150,9 +150,9 @@ WhatsApp は Gateway の web チャンネル(Baileys Web)を通じて動作 } ``` -- 送信コマンドは、`default` アカウントが存在する場合はそれを、そうでなければ最初に設定されたアカウントID(ソート済み)をデフォルトにします。 -- オプションの `channels.whatsapp.defaultAccount` は、設定済みアカウントIDに一致する場合、このフォールバックのデフォルトアカウント選択を上書きします。 -- 従来の単一アカウント Baileys 認証ディレクトリは、`openclaw doctor` によって `whatsapp/default` に移行されます。 +- 送信コマンドは、`default` アカウントが存在する場合は既定でそれを使用し、存在しない場合は最初に設定されたアカウント ID(ソート順)を使用します。 +- 任意の `channels.whatsapp.defaultAccount` は、設定済みアカウント ID に一致する場合、このフォールバックのデフォルトアカウント選択を上書きします。 +- 旧来の単一アカウント Baileys 認証ディレクトリは、`openclaw doctor` により `whatsapp/default` へ移行されます。 - アカウントごとの上書き: `channels.whatsapp.accounts..sendReadReceipts`、`channels.whatsapp.accounts..dmPolicy`、`channels.whatsapp.accounts..allowFrom`。 @@ -211,13 +211,13 @@ WhatsApp は Gateway の web チャンネル(Baileys Web)を通じて動作 } ``` -- Botトークン: `channels.telegram.botToken` または `channels.telegram.tokenFile`(通常ファイルのみ。シンボリックリンクは拒否)で、デフォルトアカウントのフォールバックとして `TELEGRAM_BOT_TOKEN` も使用できます。 -- オプションの `channels.telegram.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 -- マルチアカウント構成(2つ以上のアカウントID)では、フォールバックルーティングを避けるため明示的なデフォルト(`channels.telegram.defaultAccount` または `channels.telegram.accounts.default`)を設定してください。これが存在しないか無効な場合、`openclaw doctor` が警告します。 +- Bot トークン: `channels.telegram.botToken` または `channels.telegram.tokenFile`(通常ファイルのみ。シンボリックリンクは拒否)で指定し、デフォルトアカウントのフォールバックとして `TELEGRAM_BOT_TOKEN` も使用できます。 +- 任意の `channels.telegram.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 +- 複数アカウント構成(2 つ以上のアカウント ID)では、フォールバックルーティングを避けるために明示的なデフォルト(`channels.telegram.defaultAccount` または `channels.telegram.accounts.default`)を設定してください。これが欠けているか無効な場合、`openclaw doctor` が警告します。 - `configWrites: false` は Telegram 起点の設定書き込み(supergroup ID 移行、`/config set|unset`)をブロックします。 -- `type: "acp"` を持つトップレベルの `bindings[]` エントリは、フォーラムトピック用の永続的な ACP バインディングを設定します(`match.peer.id` には正規の `chatId:topic:topicId` を使用)。フィールドの意味は [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings) と共有されます。 +- `type: "acp"` を持つトップレベルの `bindings[]` エントリーは、フォーラムトピック向けの永続 ACP バインディングを設定します(`match.peer.id` には正規の `chatId:topic:topicId` を使用)。フィールドの意味は [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings) で共通です。 - Telegram のストリームプレビューは `sendMessage` + `editMessageText` を使用します(ダイレクトチャットとグループチャットの両方で動作)。 -- リトライポリシー: [Retry policy](/ja-JP/concepts/retry) を参照してください。 +- 再試行ポリシー: [Retry policy](/ja-JP/concepts/retry) を参照してください。 ### Discord @@ -319,36 +319,36 @@ WhatsApp は Gateway の web チャンネル(Baileys Web)を通じて動作 } ``` -- トークン: `channels.discord.token`。デフォルトアカウントのフォールバックとして `DISCORD_BOT_TOKEN` を使用します。 -- 明示的な Discord `token` を指定する直接送信呼び出しでは、そのトークンが呼び出しに使われます。アカウントのリトライ/ポリシー設定は、アクティブな実行時スナップショット内の選択されたアカウントから引き続き取得されます。 -- オプションの `channels.discord.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 -- 配信ターゲットには `user:`(DM)または `channel:`(guild channel)を使用します。数値IDのみの指定は拒否されます。 -- Guild slug は小文字で、スペースは `-` に置き換えられます。チャンネルキーは slug 化された名前(`#` なし)を使います。guild ID の使用を推奨します。 -- bot 自身が投稿したメッセージはデフォルトで無視されます。`allowBots: true` で有効になります。`allowBots: "mentions"` を使うと、bot をメンションした bot メッセージのみ受け付けます(自分自身のメッセージは引き続き除外)。 -- `channels.discord.guilds..ignoreOtherMentions`(およびチャンネル上書き)は、bot ではなく別のユーザーまたはロールに言及しているメッセージを破棄します(@everyone/@here は除く)。 -- `maxLinesPerMessage`(デフォルト 17)は、2000文字未満でも縦長のメッセージを分割します。 -- `channels.discord.threadBindings` は Discord のスレッドバインド型ルーティングを制御します。 - - `enabled`: スレッドバインドセッション機能の Discord 上書き(`/focus`、`/unfocus`、`/agents`、`/session idle`、`/session max-age`、およびバインドされた配信/ルーティング) +- トークン: `channels.discord.token`。デフォルトアカウントのフォールバックとして `DISCORD_BOT_TOKEN` も使用できます。 +- 明示的な Discord `token` を指定した直接送信呼び出しは、そのトークンをその呼び出しに使用します。アカウントの再試行/ポリシー設定は、アクティブなランタイムスナップショット内で選択されたアカウントから引き続き取得されます。 +- 任意の `channels.discord.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 +- 配信ターゲットには `user:`(DM)または `channel:`(guild channel)を使用します。数字だけの ID は拒否されます。 +- Guild slug は小文字で空白を `-` に置き換えたものです。channel キーには slug 化された名前(`#` なし)を使います。guild ID を推奨します。 +- Bot 自身が投稿したメッセージは既定で無視されます。`allowBots: true` で有効化できます。`allowBots: "mentions"` を使うと、Bot へのメンションを含む bot メッセージのみ受け付けます(自分自身のメッセージは引き続き除外)。 +- `channels.discord.guilds..ignoreOtherMentions`(およびチャンネル上書き)は、bot ではなく別のユーザーやロールに言及しているメッセージを破棄します(@everyone/@here は除外)。 +- `maxLinesPerMessage`(デフォルト 17)は、2000 文字未満でも行数の多いメッセージを分割します。 +- `channels.discord.threadBindings` は Discord のスレッド束縛ルーティングを制御します。 + - `enabled`: スレッド束縛セッション機能(`/focus`、`/unfocus`、`/agents`、`/session idle`、`/session max-age`、および束縛配信/ルーティング)の Discord 上書き - `idleHours`: 非アクティブ時の自動 unfocus を時間単位で指定する Discord 上書き(`0` で無効) - - `maxAgeHours`: ハード最大経過時間の Discord 上書き(時間単位、`0` で無効) - - `spawnSubagentSessions`: `sessions_spawn({ thread: true })` の自動スレッド作成/バインドへのオプトインスイッチ -- `type: "acp"` を持つトップレベル `bindings[]` エントリは、チャンネルとスレッド用の永続 ACP バインディングを設定します(`match.peer.id` には channel/thread id を使用)。フィールドの意味は [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings) と共有されます。 + - `maxAgeHours`: ハード最大寿命を時間単位で指定する Discord 上書き(`0` で無効) + - `spawnSubagentSessions`: `sessions_spawn({ thread: true })` の自動スレッド作成/束縛を有効にするオプトインスイッチ +- `type: "acp"` を持つトップレベルの `bindings[]` エントリーは、チャンネルとスレッド向けの永続 ACP バインディングを設定します(`match.peer.id` には channel/thread id を使用)。フィールドの意味は [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings) で共通です。 - `channels.discord.ui.components.accentColor` は Discord components v2 コンテナのアクセントカラーを設定します。 -- `channels.discord.voice` は Discord ボイスチャンネル会話と、任意の自動参加 + TTS 上書きを有効にします。 +- `channels.discord.voice` は Discord 音声チャンネル会話と、任意の自動参加 + TTS 上書きを有効にします。 - `channels.discord.voice.daveEncryption` と `channels.discord.voice.decryptionFailureTolerance` は `@discordjs/voice` の DAVE オプションにそのまま渡されます(デフォルトは `true` と `24`)。 -- さらに OpenClaw は、復号失敗が繰り返された後にボイスセッションを退出/再参加することで、音声受信の復旧も試みます。 -- `channels.discord.streaming` は正規のストリームモードキーです。従来の `streamMode` とブール値 `streaming` は自動移行されます。 -- `channels.discord.autoPresence` は実行時の可用性を bot presence にマッピングします(healthy => online、degraded => idle、exhausted => dnd)。任意のステータステキスト上書きも可能です。 -- `channels.discord.dangerouslyAllowNameMatching` は、変更可能な name/tag マッチングを再有効化します(緊急回避用の互換モード)。 +- OpenClaw はさらに、復号失敗が繰り返された後に音声セッションから退出して再参加することで、音声受信の復旧も試みます。 +- `channels.discord.streaming` は正規のストリームモードキーです。旧来の `streamMode` と真偽値の `streaming` は自動移行されます。 +- `channels.discord.autoPresence` はランタイムの可用性を bot presence にマッピングし(healthy => online、degraded => idle、exhausted => dnd)、任意のステータステキスト上書きも可能にします。 +- `channels.discord.dangerouslyAllowNameMatching` は可変な name/tag マッチングを再度有効にします(非常用の互換モード)。 - `channels.discord.execApprovals`: Discord ネイティブの exec 承認配信と承認者認可。 - - `enabled`: `true`、`false`、または `"auto"`(デフォルト)。auto モードでは、`approvers` または `commands.ownerAllowFrom` から承認者を解決できるときに exec 承認が有効になります。 - - `approvers`: exec リクエストを承認できる Discord ユーザーID。省略時は `commands.ownerAllowFrom` にフォールバックします。 - - `agentFilter`: オプションの agent ID 許可リスト。省略するとすべてのエージェントの承認を転送します。 - - `sessionFilter`: オプションのセッションキーパターン(部分文字列または正規表現)。 - - `target`: 承認プロンプトの送信先。`"dm"`(デフォルト)は承認者のDMに送信し、`"channel"` は元のチャンネルに送信し、`"both"` は両方に送信します。target に `"channel"` を含む場合、ボタンは解決済み承認者のみ利用できます。 - - `cleanupAfterResolve`: `true` の場合、承認、拒否、タイムアウト後に承認DMを削除します。 + - `enabled`: `true`、`false`、または `"auto"`(デフォルト)。auto モードでは、承認者を `approvers` または `commands.ownerAllowFrom` から解決できる場合に exec 承認が有効化されます。 + - `approvers`: exec リクエストを承認できる Discord ユーザー ID。省略時は `commands.ownerAllowFrom` にフォールバックします。 + - `agentFilter`: 任意の agent ID 許可リスト。省略するとすべての agent の承認を転送します。 + - `sessionFilter`: 任意のセッションキーパターン(部分一致または正規表現)。 + - `target`: 承認プロンプトの送信先。`"dm"`(デフォルト)は承認者の DM に送信し、`"channel"` は発信元チャンネルに送信し、`"both"` は両方に送信します。target に `"channel"` が含まれる場合、ボタンは解決済み承認者のみが使用できます。 + - `cleanupAfterResolve`: `true` の場合、承認、拒否、またはタイムアウト後に承認 DM を削除します。 -**リアクション通知モード:** `off`(なし)、`own`(bot のメッセージ、デフォルト)、`all`(すべてのメッセージ)、`allowlist`(`guilds..users` から、すべてのメッセージ)。 +**リアクション通知モード:** `off`(なし)、`own`(bot のメッセージ、デフォルト)、`all`(すべてのメッセージ)、`allowlist`(`guilds..users` にあるユーザーのすべてのメッセージ)。 ### Google Chat @@ -380,10 +380,10 @@ WhatsApp は Gateway の web チャンネル(Baileys Web)を通じて動作 ``` - サービスアカウント JSON: インライン(`serviceAccount`)またはファイルベース(`serviceAccountFile`)。 -- サービスアカウント SecretRef(`serviceAccountRef`)もサポートされています。 +- サービスアカウントの SecretRef(`serviceAccountRef`)もサポートされます。 - 環境変数フォールバック: `GOOGLE_CHAT_SERVICE_ACCOUNT` または `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`。 - 配信ターゲットには `spaces/` または `users/` を使用します。 -- `channels.googlechat.dangerouslyAllowNameMatching` は、変更可能なメール principal マッチングを再有効化します(緊急回避用の互換モード)。 +- `channels.googlechat.dangerouslyAllowNameMatching` は可変な email principal マッチングを再度有効にします(非常用の互換モード)。 ### Slack @@ -449,28 +449,28 @@ WhatsApp は Gateway の web チャンネル(Baileys Web)を通じて動作 ``` - **Socket mode** には `botToken` と `appToken` の両方が必要です(デフォルトアカウントの環境変数フォールバックは `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`)。 -- **HTTP mode** には `botToken` と `signingSecret`(ルートまたはアカウントごと)が必要です。 -- `botToken`、`appToken`、`signingSecret`、`userToken` は、プレーンテキスト文字列または SecretRef オブジェクトを受け付けます。 -- Slack のアカウントスナップショットは、`botTokenSource`、`botTokenStatus`、`appTokenStatus`、HTTP mode では `signingSecretStatus` のような資格情報ごとの source/status フィールドを公開します。`configured_unavailable` は、そのアカウントが SecretRef 経由で設定されているが、現在のコマンド/実行時パスでは秘密値を解決できなかったことを意味します。 +- **HTTP mode** には `botToken` に加えて `signingSecret` が必要です(ルートまたはアカウントごと)。 +- `botToken`、`appToken`、`signingSecret`、`userToken` は平文文字列または SecretRef オブジェクトを受け付けます。 +- Slack アカウントスナップショットは、`botTokenSource`、`botTokenStatus`、`appTokenStatus`、HTTP mode では `signingSecretStatus` などの資格情報ごとの source/status フィールドを公開します。`configured_unavailable` は、アカウントが SecretRef で設定されているが、現在のコマンド/ランタイム経路では secret 値を解決できなかったことを意味します。 - `configWrites: false` は Slack 起点の設定書き込みをブロックします。 -- オプションの `channels.slack.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 -- `channels.slack.streaming` は正規のストリームモードキーです。従来の `streamMode` とブール値 `streaming` は自動移行されます。 +- 任意の `channels.slack.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 +- `channels.slack.streaming` は正規のストリームモードキーです。旧来の `streamMode` と真偽値の `streaming` は自動移行されます。 - 配信ターゲットには `user:`(DM)または `channel:` を使用します。 **リアクション通知モード:** `off`、`own`(デフォルト)、`all`、`allowlist`(`reactionAllowlist` から)。 -**スレッドセッション分離:** `thread.historyScope` はスレッドごと(デフォルト)またはチャンネル共有です。`thread.inheritParent` は親チャンネルの transcript を新しいスレッドにコピーします。 +**スレッドセッション分離:** `thread.historyScope` はスレッド単位(デフォルト)またはチャンネル共有です。`thread.inheritParent` は親チャンネルトランスクリプトを新しいスレッドにコピーします。 -- `typingReaction` は返信実行中、受信した Slack メッセージに一時的なリアクションを追加し、完了時に削除します。`"hourglass_flowing_sand"` のような Slack 絵文字 shortcode を使用してください。 -- `channels.slack.execApprovals`: Slack ネイティブの exec 承認配信と承認者認可。スキーマは Discord と同じです: `enabled`(`true`/`false`/`"auto"`)、`approvers`(Slack ユーザーID)、`agentFilter`、`sessionFilter`、`target`(`"dm"`、`"channel"`、または `"both"`)。 +- `typingReaction` は、返信実行中に受信 Slack メッセージへ一時的なリアクションを追加し、完了時に削除します。`"hourglass_flowing_sand"` のような Slack 絵文字ショートコードを使用します。 +- `channels.slack.execApprovals`: Slack ネイティブの exec 承認配信と承認者認可。スキーマは Discord と同じです: `enabled`(`true`/`false`/`"auto"`)、`approvers`(Slack ユーザー ID)、`agentFilter`、`sessionFilter`、`target`(`"dm"`、`"channel"`、または `"both"`)。 -| Action group | デフォルト | 注記 | -| ------------ | ---------- | ---------------------- | -| reactions | enabled | リアクション + 一覧表示 | -| messages | enabled | 読み取り/送信/編集/削除 | -| pins | enabled | ピン留め/解除/一覧 | -| memberInfo | enabled | メンバー情報 | -| emojiList | enabled | カスタム絵文字一覧 | +| アクショングループ | デフォルト | 注記 | +| ------------------ | ---------- | ------------------------ | +| reactions | enabled | リアクション + 一覧表示 | +| messages | enabled | 読み取り/送信/編集/削除 | +| pins | enabled | ピン留め/解除/一覧 | +| memberInfo | enabled | メンバー情報 | +| emojiList | enabled | カスタム絵文字一覧 | ### Mattermost @@ -504,18 +504,18 @@ Mattermost はプラグインとして提供されます: `openclaw plugins inst } ``` -チャットモード: `oncall`(@メンション時に応答、デフォルト)、`onmessage`(すべてのメッセージ)、`onchar`(トリガープレフィックスで始まるメッセージ)。 +チャットモード: `oncall`(@-mention で応答、デフォルト)、`onmessage`(すべてのメッセージ)、`onchar`(トリガープレフィックスで始まるメッセージ)。 -Mattermost ネイティブコマンドが有効な場合: +Mattermost のネイティブコマンドが有効な場合: -- `commands.callbackPath` はパスである必要があります(例 `/api/channels/mattermost/command`)。完全なURLは不可です。 +- `commands.callbackPath` はパスである必要があります(例: `/api/channels/mattermost/command`)。完全な URL ではありません。 - `commands.callbackUrl` は OpenClaw Gateway エンドポイントを指し、Mattermost サーバーから到達可能である必要があります。 -- ネイティブ slash callback は、slash command 登録時に Mattermost から返されるコマンドごとのトークンで認証されます。登録に失敗した場合、または有効化されたコマンドがない場合、OpenClaw は callback を `Unauthorized: invalid command token.` で拒否します。 -- プライベート/tailnet/internal な callback host では、Mattermost が `ServiceSettings.AllowedUntrustedInternalConnections` に callback host/domain を含めることを求める場合があります。完全なURLではなく host/domain の値を使ってください。 +- ネイティブスラッシュコールバックは、スラッシュコマンド登録時に Mattermost が返すコマンドごとのトークンで認証されます。登録に失敗した場合、または有効化されたコマンドがない場合、OpenClaw は `Unauthorized: invalid command token.` でコールバックを拒否します。 +- 非公開/tailnet/internal の callback host では、Mattermost で `ServiceSettings.AllowedUntrustedInternalConnections` に callback host/domain を含める必要がある場合があります。完全な URL ではなく host/domain 値を使用してください。 - `channels.mattermost.configWrites`: Mattermost 起点の設定書き込みを許可または拒否します。 -- `channels.mattermost.requireMention`: チャンネルで返信する前に `@mention` を要求します。 -- `channels.mattermost.groups..requireMention`: チャンネルごとのメンションゲート上書き(デフォルトには `"*"`)。 -- オプションの `channels.mattermost.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 +- `channels.mattermost.requireMention`: チャンネルで返信する前に `@mention` を必須にします。 +- `channels.mattermost.groups..requireMention`: チャンネルごとのメンションゲート上書き(デフォルトは `"*"`)。 +- 任意の `channels.mattermost.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 ### Signal @@ -538,13 +538,13 @@ Mattermost ネイティブコマンドが有効な場合: **リアクション通知モード:** `off`、`own`(デフォルト)、`all`、`allowlist`(`reactionAllowlist` から)。 -- `channels.signal.account`: チャンネル起動を特定の Signal アカウント identity に固定します。 +- `channels.signal.account`: チャンネル起動を特定の Signal アカウント ID に固定します。 - `channels.signal.configWrites`: Signal 起点の設定書き込みを許可または拒否します。 -- オプションの `channels.signal.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 +- 任意の `channels.signal.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 ### BlueBubbles -BlueBubbles は推奨される iMessage パスです(プラグインバックドで、`channels.bluebubbles` の下で設定します)。 +BlueBubbles は推奨される iMessage 経路です(プラグインベースで、`channels.bluebubbles` の下に設定します)。 ```json5 { @@ -560,13 +560,13 @@ BlueBubbles は推奨される iMessage パスです(プラグインバック ``` - ここで扱うコアキーパス: `channels.bluebubbles`、`channels.bluebubbles.dmPolicy`。 -- オプションの `channels.bluebubbles.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 -- `type: "acp"` を持つトップレベル `bindings[]` エントリは、BlueBubbles 会話を永続 ACP セッションにバインドできます。`match.peer.id` には BlueBubbles の handle または target string(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)を使用します。共有フィールドの意味: [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings)。 +- 任意の `channels.bluebubbles.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 +- `type: "acp"` を持つトップレベルの `bindings[]` エントリーは、BlueBubbles 会話を永続 ACP セッションに束縛できます。`match.peer.id` には BlueBubbles handle または target string(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)を使用してください。共通フィールド意味: [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings)。 - 完全な BlueBubbles チャンネル設定は [BlueBubbles](/ja-JP/channels/bluebubbles) に記載されています。 ### iMessage -OpenClaw は `imsg rpc`(stdio 上の JSON-RPC)を起動します。daemon や port は不要です。 +OpenClaw は `imsg rpc`(stdio 上の JSON-RPC)を起動します。デーモンやポートは不要です。 ```json5 { @@ -590,15 +590,15 @@ OpenClaw は `imsg rpc`(stdio 上の JSON-RPC)を起動します。daemon } ``` -- オプションの `channels.imessage.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 +- 任意の `channels.imessage.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 - Messages DB への Full Disk Access が必要です。 -- `chat_id:` ターゲットの使用を推奨します。チャット一覧は `imsg chats --limit 20` で取得できます。 -- `cliPath` は SSH ラッパーを指すこともできます。SCP で添付ファイルを取得するには `remoteHost`(`host` または `user@host`)を設定してください。 -- `attachmentRoots` と `remoteAttachmentRoots` は受信添付ファイルのパスを制限します(デフォルト: `/Users/*/Library/Messages/Attachments`)。 -- SCP は strict host-key checking を使うため、中継ホストキーがすでに `~/.ssh/known_hosts` に存在している必要があります。 +- `chat_id:` ターゲットを推奨します。チャット一覧には `imsg chats --limit 20` を使用してください。 +- `cliPath` は SSH ラッパーを指すことができ、SCP 添付取得用に `remoteHost`(`host` または `user@host`)を設定できます。 +- `attachmentRoots` と `remoteAttachmentRoots` は受信添付パスを制限します(デフォルト: `/Users/*/Library/Messages/Attachments`)。 +- SCP は strict host-key checking を使用するため、リレーホストキーがすでに `~/.ssh/known_hosts` に存在していることを確認してください。 - `channels.imessage.configWrites`: iMessage 起点の設定書き込みを許可または拒否します。 -- `type: "acp"` を持つトップレベル `bindings[]` エントリは、iMessage 会話を永続 ACP セッションにバインドできます。`match.peer.id` には正規化された handle または明示的な chat target(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)を使用します。共有フィールドの意味: [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings)。 +- `type: "acp"` を持つトップレベルの `bindings[]` エントリーは、iMessage 会話を永続 ACP セッションに束縛できます。`match.peer.id` には正規化された handle、または明示的チャットターゲット(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)を使用してください。共通フィールド意味: [ACP Agents](/ja-JP/tools/acp-agents#channel-specific-settings)。 @@ -611,7 +611,7 @@ exec ssh -T gateway-host imsg "$@" ### Matrix -Matrix は extension バックドで、`channels.matrix` の下で設定します。 +Matrix は拡張機能ベースで、`channels.matrix` の下に設定します。 ```json5 { @@ -641,25 +641,25 @@ Matrix は extension バックドで、`channels.matrix` の下で設定しま } ``` -- トークン認証には `accessToken`、パスワード認証には `userId` + `password` を使用します。 -- `channels.matrix.proxy` は Matrix HTTP トラフィックを明示的な HTTP(S) proxy 経由にします。名前付きアカウントは `channels.matrix.accounts..proxy` で上書きできます。 -- `channels.matrix.network.dangerouslyAllowPrivateNetwork` はプライベート/内部 homeserver を許可します。`proxy` とこのネットワークオプトインは独立した制御です。 -- `channels.matrix.defaultAccount` はマルチアカウント構成で優先アカウントを選択します。 -- `channels.matrix.autoJoin` のデフォルトは `off` なので、招待された room や新しい DM 形式の招待は、`autoJoin: "allowlist"` と `autoJoinAllowlist` を設定するか、`autoJoin: "always"` を設定するまで無視されます。 +- トークン認証は `accessToken` を使用し、パスワード認証は `userId` + `password` を使用します。 +- `channels.matrix.proxy` は Matrix HTTP 通信を明示的な HTTP(S) プロキシ経由にします。名前付きアカウントでは `channels.matrix.accounts..proxy` で上書きできます。 +- `channels.matrix.network.dangerouslyAllowPrivateNetwork` は private/internal homeserver を許可します。`proxy` とこのネットワークオプトインは独立した制御です。 +- `channels.matrix.defaultAccount` は複数アカウント構成で優先アカウントを選択します。 +- `channels.matrix.autoJoin` のデフォルトは `off` です。そのため、招待されたルームや新しい DM 形式の招待は、`autoJoin: "allowlist"` と `autoJoinAllowlist` または `autoJoin: "always"` を設定するまで無視されます。 - `channels.matrix.execApprovals`: Matrix ネイティブの exec 承認配信と承認者認可。 - - `enabled`: `true`、`false`、または `"auto"`(デフォルト)。auto モードでは、`approvers` または `commands.ownerAllowFrom` から承認者を解決できるときに exec 承認が有効になります。 - - `approvers`: exec リクエストを承認できる Matrix ユーザーID(例 `@owner:example.org`)。 - - `agentFilter`: オプションの agent ID 許可リスト。省略するとすべてのエージェントの承認を転送します。 - - `sessionFilter`: オプションのセッションキーパターン(部分文字列または正規表現)。 - - `target`: 承認プロンプトの送信先。`"dm"`(デフォルト)、`"channel"`(元の room)、または `"both"`。 + - `enabled`: `true`、`false`、または `"auto"`(デフォルト)。auto モードでは、承認者を `approvers` または `commands.ownerAllowFrom` から解決できる場合に exec 承認が有効化されます。 + - `approvers`: exec リクエストを承認できる Matrix user ID(例: `@owner:example.org`)。 + - `agentFilter`: 任意の agent ID 許可リスト。省略するとすべての agent の承認を転送します。 + - `sessionFilter`: 任意のセッションキーパターン(部分一致または正規表現)。 + - `target`: 承認プロンプトの送信先。`"dm"`(デフォルト)、`"channel"`(発信元ルーム)、または `"both"`。 - アカウントごとの上書き: `channels.matrix.accounts..execApprovals`。 -- `channels.matrix.dm.sessionScope` は Matrix DM をどのようにセッションにまとめるかを制御します: `per-user`(デフォルト)はルーティングされた peer ごとに共有し、`per-room` は各 DM room を分離します。 -- Matrix のステータス probe と live directory lookup は、実行時トラフィックと同じ proxy ポリシーを使用します。 -- 完全な Matrix 設定、ターゲティング規則、セットアップ例は [Matrix](/ja-JP/channels/matrix) に記載されています。 +- `channels.matrix.dm.sessionScope` は Matrix DM をどのようにセッションへまとめるかを制御します。`per-user`(デフォルト)はルーティングされた peer ごとに共有し、`per-room` は各 DM ルームを分離します。 +- Matrix の状態プローブとライブディレクトリルックアップは、ランタイム通信と同じプロキシポリシーを使用します。 +- 完全な Matrix 設定、ターゲティングルール、セットアップ例は [Matrix](/ja-JP/channels/matrix) に記載されています。 ### Microsoft Teams -Microsoft Teams は extension バックドで、`channels.msteams` の下で設定します。 +Microsoft Teams は拡張機能ベースで、`channels.msteams` の下に設定します。 ```json5 { @@ -675,11 +675,11 @@ Microsoft Teams は extension バックドで、`channels.msteams` の下で設 ``` - ここで扱うコアキーパス: `channels.msteams`、`channels.msteams.configWrites`。 -- 完全な Teams 設定(資格情報、webhook、DM/グループポリシー、チーム/チャンネルごとの上書き)は [Microsoft Teams](/ja-JP/channels/msteams) に記載されています。 +- 完全な Teams 設定(資格情報、webhook、DM/グループポリシー、チームごと/チャンネルごとの上書き)は [Microsoft Teams](/ja-JP/channels/msteams) に記載されています。 ### IRC -IRC は extension バックドで、`channels.irc` の下で設定します。 +IRC は拡張機能ベースで、`channels.irc` の下に設定します。 ```json5 { @@ -701,12 +701,12 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 ``` - ここで扱うコアキーパス: `channels.irc`、`channels.irc.dmPolicy`、`channels.irc.configWrites`、`channels.irc.nickserv.*`。 -- オプションの `channels.irc.defaultAccount` は、設定済みアカウントIDに一致する場合、デフォルトアカウント選択を上書きします。 +- 任意の `channels.irc.defaultAccount` は、設定済みアカウント ID に一致する場合、デフォルトアカウント選択を上書きします。 - 完全な IRC チャンネル設定(host/port/TLS/channels/allowlists/mention gating)は [IRC](/ja-JP/channels/irc) に記載されています。 -### マルチアカウント(全チャンネル) +### 複数アカウント(すべてのチャンネル) -チャンネルごとに複数アカウントを実行します(それぞれ独自の `accountId` を持ちます)。 +チャンネルごとに複数アカウントを実行できます(各アカウントは独自の `accountId` を持ちます)。 ```json5 { @@ -727,28 +727,28 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 } ``` -- `default` は `accountId` が省略されたときに使用されます(CLI + ルーティング)。 +- `accountId` を省略した場合、`default` が使用されます(CLI + ルーティング)。 - 環境変数トークンは **default** アカウントにのみ適用されます。 - ベースチャンネル設定は、アカウントごとに上書きされない限り、すべてのアカウントに適用されます。 -- `bindings[].match.accountId` を使うと、各アカウントを別のエージェントにルーティングできます。 -- 単一アカウントのトップレベルチャンネル設定のまま、`openclaw channels add`(またはチャンネルのオンボーディング)で非 default アカウントを追加すると、OpenClaw はまずアカウントスコープのトップレベル単一アカウント値をチャンネルのアカウントマップへ昇格させ、元のアカウントが引き続き動作するようにします。ほとんどのチャンネルではそれらを `channels..accounts.default` に移動しますが、Matrix では既存の一致する named/default ターゲットを保持できます。 -- 既存のチャンネル単独のバインディング(`accountId` なし)は default アカウントに引き続き一致します。アカウントスコープのバインディングは任意のままです。 -- `openclaw doctor --fix` も混在した形を修復し、そのチャンネル用に選ばれた昇格先アカウントへアカウントスコープのトップレベル単一アカウント値を移動します。ほとんどのチャンネルでは `accounts.default` を使いますが、Matrix では既存の一致する named/default ターゲットを保持できます。 +- 各アカウントを別の agent にルーティングするには `bindings[].match.accountId` を使用します。 +- `openclaw channels add`(またはチャンネルのオンボーディング)で、まだ単一アカウントのトップレベルチャンネル設定形状のまま non-default アカウントを追加すると、OpenClaw は元のアカウントが引き続き動作するよう、まずアカウント範囲のトップレベル単一アカウント値をチャンネルアカウントマップへ昇格させます。ほとんどのチャンネルでは `channels..accounts.default` に移されますが、Matrix は既存の一致する named/default ターゲットを保持できます。 +- 既存のチャンネル専用バインディング(`accountId` なし)は、引き続き default アカウントに一致します。アカウント範囲バインディングは任意のままです。 +- `openclaw doctor --fix` も混在形状を修復し、そのチャンネル向けに選ばれた昇格アカウントへアカウント範囲トップレベル単一アカウント値を移動します。ほとんどのチャンネルでは `accounts.default` を使い、Matrix は既存の一致する named/default ターゲットを保持できます。 -### その他の extension チャンネル +### その他の拡張チャンネル -多くの extension チャンネルは `channels.` として設定され、それぞれの専用チャンネルページに記載されています(たとえば Feishu、Matrix、LINE、Nostr、Zalo、Nextcloud Talk、Synology Chat、Twitch)。 +多くの拡張チャンネルは `channels.` として設定され、それぞれ専用のチャンネルページに記載されています(例: Feishu、Matrix、LINE、Nostr、Zalo、Nextcloud Talk、Synology Chat、Twitch)。 完全なチャンネル一覧は [Channels](/ja-JP/channels) を参照してください。 ### グループチャットのメンションゲート -グループメッセージはデフォルトで **メンション必須** です(メタデータのメンションまたは安全な正規表現パターン)。WhatsApp、Telegram、Discord、Google Chat、iMessage のグループチャットに適用されます。 +グループメッセージは、デフォルトで **メンション必須** です(メタデータメンションまたは安全な正規表現パターン)。WhatsApp、Telegram、Discord、Google Chat、iMessage のグループチャットに適用されます。 -**メンションの種類:** +**メンション種別:** -- **メタデータメンション**: ネイティブプラットフォームの @-mention。WhatsApp の self-chat mode では無視されます。 -- **テキストパターン**: `agents.list[].groupChat.mentionPatterns` 内の安全な正規表現パターン。無効なパターンや安全でない入れ子の繰り返しは無視されます。 -- メンションゲートは、検出が可能な場合(ネイティブメンションまたは少なくとも1つのパターンがある場合)にのみ適用されます。 +- **メタデータメンション**: ネイティブのプラットフォーム @-mention。WhatsApp の self-chat mode では無視されます。 +- **テキストパターン**: `agents.list[].groupChat.mentionPatterns` の安全な正規表現パターン。無効なパターンや安全でない入れ子反復は無視されます。 +- メンションゲートは、検出が可能な場合(ネイティブメンションまたは少なくとも 1 つのパターンがある場合)にのみ強制されます。 ```json5 { @@ -761,9 +761,9 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 } ``` -`messages.groupChat.historyLimit` はグローバルデフォルトを設定します。チャンネルは `channels..historyLimit`(またはアカウントごと)で上書きできます。`0` に設定すると無効になります。 +`messages.groupChat.historyLimit` はグローバルデフォルトを設定します。チャンネルは `channels..historyLimit`(またはアカウントごと)で上書きできます。無効化するには `0` を設定します。 -#### DM 履歴制限 +#### DM 履歴上限 ```json5 { @@ -778,13 +778,13 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 } ``` -解決順: DM ごとの上書き → プロバイダーデフォルト → 制限なし(すべて保持)。 +解決順序: DM ごとの上書き → プロバイダーデフォルト → 上限なし(すべて保持)。 -対応: `telegram`、`whatsapp`、`discord`、`slack`、`signal`、`imessage`、`msteams`。 +対応対象: `telegram`、`whatsapp`、`discord`、`slack`、`signal`、`imessage`、`msteams`。 #### Self-chat mode -自分の番号を `allowFrom` に含めると self-chat mode が有効になります(ネイティブ @-mention を無視し、テキストパターンにのみ応答します)。 +自分の番号を `allowFrom` に含めると self-chat mode が有効になります(ネイティブ @-mentions を無視し、テキストパターンのみに応答)。 ```json5 { @@ -805,7 +805,7 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 } ``` -### コマンド(チャットコマンド処理) +### Commands(チャットコマンド処理) ```json5 { @@ -826,24 +826,24 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 } ``` - + -- テキストコマンドは先頭に `/` がある**単独の**メッセージである必要があります。 -- `native: "auto"` は Discord/Telegram ではネイティブコマンドを有効にし、Slack では無効のままにします。 -- チャンネルごとの上書き: `channels.discord.commands.native`(bool または `"auto"`)。`false` は以前に登録されたコマンドをクリアします。 -- `channels.telegram.customCommands` は追加の Telegram bot メニュー項目を加えます。 -- `bash: true` はホストシェルへの `! ` を有効にします(エイリアス: `/bash`)。`tools.elevated.enabled` と、送信者が `tools.elevated.allowFrom.` に含まれていることが必要です。 -- `config: true` は `/config`(`openclaw.json` の読み書き)を有効にします。Gateway の `chat.send` クライアントでは、永続的な `/config set|unset` 書き込みには `operator.admin` も必要です。読み取り専用の `/config show` は通常の書き込みスコープを持つ operator クライアントでも利用できます。 +- テキストコマンドは、先頭が `/` の**単独メッセージ**である必要があります。 +- `native: "auto"` は Discord/Telegram のネイティブコマンドを有効化し、Slack は無効のままにします。 +- チャンネルごとの上書き: `channels.discord.commands.native`(bool または `"auto"`)。`false` は以前登録されたコマンドをクリアします。 +- `channels.telegram.customCommands` は Telegram bot メニューエントリーを追加します。 +- `bash: true` はホストシェル向けに `! ` を有効化します。`tools.elevated.enabled` が必要で、送信者が `tools.elevated.allowFrom.` に含まれている必要があります。 +- `config: true` は `/config`(`openclaw.json` の読み書き)を有効にします。Gateway の `chat.send` クライアントでは、永続的な `/config set|unset` 書き込みに `operator.admin` も必要です。読み取り専用の `/config show` は通常の書き込みスコープを持つ operator クライアントでも利用できます。 - `channels..configWrites` はチャンネルごとの設定変更を制御します(デフォルト: true)。 -- マルチアカウントチャンネルでは、`channels..accounts..configWrites` も、そのアカウントを対象とする書き込み(たとえば `/allowlist --config --account ` や `/config set channels..accounts....`)を制御します。 -- `allowFrom` はプロバイダーごとです。設定されている場合、それが**唯一の**認可ソースになります(チャンネル許可リスト/ペアリングおよび `useAccessGroups` は無視されます)。 -- `useAccessGroups: false` は、`allowFrom` が設定されていない場合にコマンドが access-group ポリシーをバイパスできるようにします。 +- 複数アカウントチャンネルでは、`channels..accounts..configWrites` も、そのアカウントを対象にした書き込み(例: `/allowlist --config --account ` や `/config set channels..accounts....`)を制御します。 +- `allowFrom` はプロバイダーごとです。設定されている場合、それが**唯一の**認可ソースになります(チャンネル allowlists/pairing と `useAccessGroups` は無視されます)。 +- `useAccessGroups: false` は、`allowFrom` が設定されていない場合に、コマンドが access-group ポリシーをバイパスできるようにします。 --- -## エージェントのデフォルト +## Agent のデフォルト値 ### `agents.defaults.workspace` @@ -857,7 +857,7 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 ### `agents.defaults.repoRoot` -システムプロンプトの Runtime 行に表示されるオプションのリポジトリルート。未設定の場合、OpenClaw は workspace から上方向にたどって自動検出します。 +システムプロンプトの Runtime 行に表示される任意のリポジトリルート。未設定の場合、OpenClaw は workspace から上方向にたどって自動検出します。 ```json5 { @@ -867,16 +867,16 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 ### `agents.defaults.skills` -`agents.list[].skills` を設定していないエージェント向けの、オプションのデフォルト Skills 許可リスト。 +`agents.list[].skills` を設定していない agent 向けの任意のデフォルト Skills 許可リスト。 ```json5 { agents: { defaults: { skills: ["github", "weather"] }, list: [ - { id: "writer" }, // github, weather を継承 - { id: "docs", skills: ["docs-search"] }, // デフォルトを置き換える - { id: "locked-down", skills: [] }, // Skills なし + { id: "writer" }, // inherits github, weather + { id: "docs", skills: ["docs-search"] }, // replaces defaults + { id: "locked-down", skills: [] }, // no skills ], }, } @@ -884,8 +884,8 @@ IRC は extension バックドで、`channels.irc` の下で設定します。 - デフォルトで Skills を無制限にするには `agents.defaults.skills` を省略します。 - デフォルトを継承するには `agents.list[].skills` を省略します。 -- Skills を使わない場合は `agents.list[].skills: []` を設定します。 -- 空でない `agents.list[].skills` リストは、そのエージェントの最終セットになります。デフォルトとはマージされません。 +- Skills なしにするには `agents.list[].skills: []` を設定します。 +- 空でない `agents.list[].skills` のリストは、その agent の最終セットです。デフォルトとはマージされません。 ### `agents.defaults.skipBootstrap` @@ -899,9 +899,9 @@ workspace bootstrap ファイル(`AGENTS.md`、`SOUL.md`、`TOOLS.md`、`IDENT ### `agents.defaults.contextInjection` -workspace bootstrap ファイルをいつシステムプロンプトに注入するかを制御します。デフォルト: `"always"`。 +workspace bootstrap ファイルをシステムプロンプトに注入するタイミングを制御します。デフォルト: `"always"`。 -- `"continuation-skip"`: 安全な継続ターン(assistant の応答完了後)では workspace bootstrap の再注入をスキップし、プロンプトサイズを削減します。heartbeat 実行とコンパクション後の再試行では引き続きコンテキストが再構築されます。 +- `"continuation-skip"`: 完了した assistant 応答の後の安全な継続ターンでは、workspace bootstrap の再注入をスキップし、プロンプトサイズを削減します。heartbeat 実行と compact 後の再試行では引き続きコンテキストを再構築します。 ```json5 { @@ -911,7 +911,7 @@ workspace bootstrap ファイルをいつシステムプロンプトに注入す ### `agents.defaults.bootstrapMaxChars` -切り詰め前の workspace bootstrap ファイルごとの最大文字数。デフォルト: `20000`。 +切り詰め前の workspace bootstrap ファイル 1 つあたりの最大文字数。デフォルト: `20000`。 ```json5 { @@ -921,7 +921,7 @@ workspace bootstrap ファイルをいつシステムプロンプトに注入す ### `agents.defaults.bootstrapTotalMaxChars` -すべての workspace bootstrap ファイルにわたって注入される合計最大文字数。デフォルト: `150000`。 +すべての workspace bootstrap ファイルから注入される合計最大文字数。デフォルト: `150000`。 ```json5 { @@ -931,12 +931,12 @@ workspace bootstrap ファイルをいつシステムプロンプトに注入す ### `agents.defaults.bootstrapPromptTruncationWarning` -bootstrap コンテキストが切り詰められたときにエージェントへ見える警告文を制御します。 +bootstrap コンテキストが切り詰められたときに、agent に見える警告文をどう扱うかを制御します。 デフォルト: `"once"`。 -- `"off"`: システムプロンプトに警告文を注入しません。 -- `"once"`: 一意の切り詰めシグネチャごとに1回だけ警告を注入します(推奨)。 -- `"always"`: 切り詰めが存在するたびに毎回警告を注入します。 +- `"off"`: 警告文をシステムプロンプトに一切注入しません。 +- `"once"`: 一意の切り詰めシグネチャごとに 1 回だけ警告を注入します(推奨)。 +- `"always"`: 切り詰めが存在するたび毎回警告を注入します。 ```json5 { @@ -946,11 +946,11 @@ bootstrap コンテキストが切り詰められたときにエージェント ### `agents.defaults.imageMaxDimensionPx` -provider 呼び出し前に transcript/tool の画像ブロックで使われる、画像の長辺の最大ピクセルサイズ。 +プロバイダー呼び出し前に transcript/tool の image ブロックで許可される、画像の最長辺の最大ピクセルサイズ。 デフォルト: `1200`。 -値を低くすると通常は vision token 使用量とリクエストペイロードサイズが減ります。 -値を高くすると、より多くの視覚的詳細が保持されます。 +低い値は通常、スクリーンショットが多い実行で vision token 使用量とリクエスト payload サイズを減らします。 +高い値は、より多くの視覚的詳細を保持します。 ```json5 { @@ -960,7 +960,7 @@ provider 呼び出し前に transcript/tool の画像ブロックで使われる ### `agents.defaults.userTimezone` -システムプロンプトのコンテキスト用タイムゾーンです(メッセージタイムスタンプではありません)。ホストのタイムゾーンにフォールバックします。 +システムプロンプトコンテキスト用のタイムゾーンです(メッセージタイムスタンプではありません)。ホストのタイムゾーンにフォールバックします。 ```json5 { @@ -970,7 +970,7 @@ provider 呼び出し前に transcript/tool の画像ブロックで使われる ### `agents.defaults.timeFormat` -システムプロンプト内の時刻形式。デフォルト: `auto`(OS設定)。 +システムプロンプトでの時刻形式。デフォルト: `auto`(OS 設定)。 ```json5 { @@ -1023,43 +1023,43 @@ provider 呼び出し前に transcript/tool の画像ブロックで使われる } ``` -- `model`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)を受け付けます。 +- `model`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)のいずれかを受け付けます。 - 文字列形式は primary model のみを設定します。 - - オブジェクト形式は primary に加えて順序付き failover model も設定します。 -- `imageModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)を受け付けます。 - - `image` ツールパスが vision-model 設定として使用します。 - - 選択/デフォルトのモデルが画像入力を受け付けない場合の fallback ルーティングにも使用されます。 -- `imageGenerationModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)を受け付けます。 - - 共通の画像生成 capability と、将来の画像生成ツール/プラグイン surface で使用されます。 - - 一般的な値: ネイティブ Gemini 画像生成なら `google/gemini-3.1-flash-image-preview`、fal なら `fal/fal-ai/flux/dev`、OpenAI Images なら `openai/gpt-image-1`。 - - provider/model を直接選ぶ場合は、対応する provider auth/API key も設定してください(例: `google/*` には `GEMINI_API_KEY` または `GOOGLE_API_KEY`、`openai/*` には `OPENAI_API_KEY`、`fal/*` には `FAL_KEY`)。 - - 省略しても、`image_generate` は auth がある provider のデフォルトを推論できます。最初に現在の default provider を試し、その後、残りの登録済み画像生成 provider を provider-id 順で試します。 -- `musicGenerationModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)を受け付けます。 - - 共通の音楽生成 capability と組み込み `music_generate` ツールで使用されます。 - - 一般的な値: `google/lyria-3-clip-preview`、`google/lyria-3-pro-preview`、`minimax/music-2.5+`。 - - 省略しても、`music_generate` は auth がある provider のデフォルトを推論できます。最初に現在の default provider を試し、その後、残りの登録済み音楽生成 provider を provider-id 順で試します。 - - provider/model を直接選ぶ場合は、対応する provider auth/API key も設定してください。 -- `videoGenerationModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)を受け付けます。 - - 共通の動画生成 capability と組み込み `video_generate` ツールで使用されます。 - - 一般的な値: `qwen/wan2.6-t2v`、`qwen/wan2.6-i2v`、`qwen/wan2.6-r2v`、`qwen/wan2.6-r2v-flash`、`qwen/wan2.7-r2v`。 - - 省略しても、`video_generate` は auth がある provider のデフォルトを推論できます。最初に現在の default provider を試し、その後、残りの登録済み動画生成 provider を provider-id 順で試します。 - - provider/model を直接選ぶ場合は、対応する provider auth/API key も設定してください。 - - 同梱の Qwen 動画生成 provider は現在、最大で出力動画1件、入力画像1件、入力動画4件、長さ10秒、および provider レベルの `size`、`aspectRatio`、`resolution`、`audio`、`watermark` オプションをサポートします。 -- `pdfModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)を受け付けます。 - - `pdf` ツールがモデルルーティングに使用します。 - - 省略した場合、PDF ツールは `imageModel`、その次に解決された session/default model にフォールバックします。 -- `pdfMaxBytesMb`: `pdf` ツールで呼び出し時に `maxBytesMb` が渡されない場合のデフォルト PDF サイズ制限。 -- `pdfMaxPages`: `pdf` ツールの抽出 fallback mode で考慮するデフォルトの最大ページ数。 -- `verboseDefault`: エージェントのデフォルト verbose レベル。値: `"off"`、`"on"`、`"full"`。デフォルト: `"off"`。 -- `elevatedDefault`: エージェントのデフォルト elevated-output レベル。値: `"off"`、`"on"`、`"ask"`、`"full"`。デフォルト: `"on"`。 -- `model.primary`: 形式は `provider/model`(例 `openai/gpt-5.4`)。provider を省略すると、OpenClaw は最初に alias を試し、その後、その正確な model id に一致する一意の configured-provider を試し、最後に configured default provider にフォールバックします(非推奨の互換動作なので、明示的な `provider/model` を推奨)。その provider が設定済み default model をもう公開していない場合、OpenClaw は古い削除済み provider デフォルトを表示する代わりに、最初の configured provider/model にフォールバックします。 -- `models`: `/model` 用の configured model catalog と allowlist。各エントリには `alias`(短縮名)と `params`(provider 固有、例 `temperature`、`maxTokens`、`cacheRetention`、`context1m`)を含められます。 -- `params`: すべての model に適用されるグローバルな default provider parameters。`agents.defaults.params` に設定します(例 `{ cacheRetention: "long" }`)。 -- `params` のマージ優先順位(config): `agents.defaults.params`(グローバルベース)は `agents.defaults.models["provider/model"].params`(model ごと)で上書きされ、その後 `agents.list[].params`(一致する agent id)がキーごとに上書きします。詳細は [Prompt Caching](/ja-JP/reference/prompt-caching) を参照してください。 -- これらのフィールドを書き換える config writer(例 `/models set`、`/models set-image`、fallback の追加/削除コマンド)は、正規のオブジェクト形式で保存し、可能な限り既存の fallback リストを保持します。 -- `maxConcurrent`: セッションをまたいだ並列 agent 実行の最大数(各セッション自体は引き続き直列化されます)。デフォルト: 4。 + - オブジェクト形式は primary に加えて順序付き failover model を設定します。 +- `imageModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)のいずれかを受け付けます。 + - `image` tool 経路の vision-model 設定として使用されます。 + - 選択/デフォルト model が image 入力を受け取れない場合のフォールバックルーティングにも使用されます。 +- `imageGenerationModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)のいずれかを受け付けます。 + - 共有の image-generation capability と、今後の image 生成を行う tool/plugin surface で使用されます。 + - 典型的な値: ネイティブ Gemini 画像生成には `google/gemini-3.1-flash-image-preview`、fal には `fal/fal-ai/flux/dev`、OpenAI Images には `openai/gpt-image-1`。 + - provider/model を直接選択する場合は、対応する provider auth/API key も設定してください(例: `google/*` には `GEMINI_API_KEY` または `GOOGLE_API_KEY`、`openai/*` には `OPENAI_API_KEY`、`fal/*` には `FAL_KEY`)。 + - 省略時でも `image_generate` は auth に支えられた provider デフォルトを推論できます。まず現在の default provider を試し、その後 provider-id 順で残りの登録済み image-generation provider を試します。 +- `musicGenerationModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)のいずれかを受け付けます。 + - 共有の music-generation capability と組み込み `music_generate` tool で使用されます。 + - 典型的な値: `google/lyria-3-clip-preview`、`google/lyria-3-pro-preview`、または `minimax/music-2.5+`。 + - 省略時でも `music_generate` は auth に支えられた provider デフォルトを推論できます。まず現在の default provider を試し、その後 provider-id 順で残りの登録済み music-generation provider を試します。 + - provider/model を直接選択する場合は、対応する provider auth/API key も設定してください。 +- `videoGenerationModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)のいずれかを受け付けます。 + - 共有の video-generation capability と組み込み `video_generate` tool で使用されます。 + - 典型的な値: `qwen/wan2.6-t2v`、`qwen/wan2.6-i2v`、`qwen/wan2.6-r2v`、`qwen/wan2.6-r2v-flash`、または `qwen/wan2.7-r2v`。 + - 省略時でも `video_generate` は auth に支えられた provider デフォルトを推論できます。まず現在の default provider を試し、その後 provider-id 順で残りの登録済み video-generation provider を試します。 + - provider/model を直接選択する場合は、対応する provider auth/API key も設定してください。 + - 同梱の Qwen video-generation provider は現在、最大 1 本の出力動画、1 枚の入力画像、4 本の入力動画、10 秒の長さ、および provider レベルの `size`、`aspectRatio`、`resolution`、`audio`、`watermark` オプションをサポートします。 +- `pdfModel`: 文字列(`"provider/model"`)またはオブジェクト(`{ primary, fallbacks }`)のいずれかを受け付けます。 + - `pdf` tool の model routing に使用されます。 + - 省略時、PDF tool は `imageModel` にフォールバックし、さらに解決済み session/default model にフォールバックします。 +- `pdfMaxBytesMb`: `pdf` tool で呼び出し時に `maxBytesMb` が渡されない場合のデフォルト PDF サイズ上限。 +- `pdfMaxPages`: `pdf` tool の抽出フォールバックモードで考慮するデフォルト最大ページ数。 +- `verboseDefault`: agent のデフォルト verbose レベル。値: `"off"`、`"on"`、`"full"`。デフォルト: `"off"`。 +- `elevatedDefault`: agent のデフォルト elevated-output レベル。値: `"off"`、`"on"`、`"ask"`、`"full"`。デフォルト: `"on"`。 +- `model.primary`: 形式は `provider/model`(例: `openai/gpt-5.4`)。provider を省略した場合、OpenClaw はまず alias を試し、次にその正確な model id に対する一意の configured-provider 一致を試し、それでもなければ configured default provider にフォールバックします(これは非推奨の互換動作なので、明示的な `provider/model` を推奨します)。その provider が設定済み default model をもはや公開していない場合、OpenClaw は古い削除済み provider default をそのまま使うのではなく、最初の configured provider/model にフォールバックします。 +- `models`: 設定済み model catalog および `/model` 用の allowlist。各エントリーには `alias`(ショートカット)と `params`(provider 固有、例: `temperature`、`maxTokens`、`cacheRetention`、`context1m`)を含められます。 +- `params`: すべての model に適用されるグローバルデフォルト provider parameter。`agents.defaults.params` に設定します(例: `{ cacheRetention: "long" }`)。 +- `params` のマージ優先順位(config): `agents.defaults.params`(グローバルベース)が `agents.defaults.models["provider/model"].params`(model ごと)で上書きされ、さらに `agents.list[].params`(一致する agent id)がキーごとに上書きします。詳細は [Prompt Caching](/ja-JP/reference/prompt-caching) を参照してください。 +- これらのフィールドを変更する config writer(例: `/models set`、`/models set-image`、fallback add/remove コマンド)は、可能な限り既存の fallback リストを保持しつつ、正規のオブジェクト形式で保存します。 +- `maxConcurrent`: セッション間での並列 agent 実行の最大数(各セッション自体は直列処理)。デフォルト: 4。 -**組み込みの alias 短縮名**(model が `agents.defaults.models` にある場合のみ適用): +**組み込み alias ショートハンド**(model が `agents.defaults.models` にある場合のみ適用): | Alias | Model | | ------------------- | -------------------------------------- | @@ -1074,13 +1074,13 @@ provider 呼び出し前に transcript/tool の画像ブロックで使われる 設定済み alias は常にデフォルトより優先されます。 -Z.AI GLM-4.x model は、`--thinking off` を設定するか、`agents.defaults.models["zai/"].params.thinking` を自分で定義しない限り、自動的に thinking mode を有効にします。 -Z.AI model は、tool call streaming 用にデフォルトで `tool_stream` を有効にします。無効にするには `agents.defaults.models["zai/"].params.tool_stream` を `false` に設定してください。 +Z.AI GLM-4.x model は、`--thinking off` を設定するか `agents.defaults.models["zai/"].params.thinking` を自分で定義しない限り、自動的に thinking mode を有効にします。 +Z.AI model は tool call streaming のためにデフォルトで `tool_stream` を有効にします。無効にするには `agents.defaults.models["zai/"].params.tool_stream` を `false` に設定してください。 Anthropic Claude 4.6 model は、明示的な thinking level が設定されていない場合、デフォルトで `adaptive` thinking を使用します。 ### `agents.defaults.cliBackends` -テキスト専用の fallback 実行(tool call なし)用のオプションの CLI backend。API provider が失敗したときのバックアップとして便利です。 +テキストのみのフォールバック実行向けの任意の CLI backend(tool call なし)。API provider が失敗したときのバックアップとして有用です。 ```json5 { @@ -1108,13 +1108,13 @@ Anthropic Claude 4.6 model は、明示的な thinking level が設定されて } ``` -- CLI backend はテキスト優先で、tool は常に無効です。 -- `sessionArg` が設定されている場合は session をサポートします。 -- `imageArg` がファイルパスを受け付ける場合は画像のパススルーをサポートします。 +- CLI backend は text-first であり、tools は常に無効です。 +- `sessionArg` が設定されている場合は sessions をサポートします。 +- `imageArg` が file path を受け取る場合は image pass-through をサポートします。 ### `agents.defaults.heartbeat` -定期的な heartbeat 実行。 +定期 heartbeat 実行。 ```json5 { @@ -1139,13 +1139,13 @@ Anthropic Claude 4.6 model は、明示的な thinking level が設定されて } ``` -- `every`: 期間文字列(ms/s/m/h)。デフォルトは `30m`(API-key auth)または `1h`(OAuth auth)。無効にするには `0m` を設定します。 -- `suppressToolErrorWarnings`: `true` の場合、heartbeat 実行中の tool error warning payload を抑制します。 -- `directPolicy`: direct/DM 配信ポリシー。`allow`(デフォルト)は direct ターゲット配信を許可します。`block` は direct ターゲット配信を抑制し、`reason=dm-blocked` を出力します。 -- `lightContext`: `true` の場合、heartbeat 実行は軽量 bootstrap context を使用し、workspace bootstrap ファイルのうち `HEARTBEAT.md` のみを保持します。 -- `isolatedSession`: `true` の場合、各 heartbeat 実行は prior conversation history を持たない新しい session で実行されます。cron の `sessionTarget: "isolated"` と同じ分離パターンです。heartbeat ごとの token コストを約 100K から約 2-5K token に削減します。 -- agent ごと: `agents.list[].heartbeat` を設定します。いずれかの agent が `heartbeat` を定義すると、heartbeat を実行するのは**それらの agent のみ**になります。 -- heartbeat は完全な agent turn を実行するため、間隔を短くすると token 消費が増えます。 +- `every`: 期間文字列(ms/s/m/h)。デフォルト: `30m`(API-key auth)または `1h`(OAuth auth)。無効にするには `0m` を設定します。 +- `suppressToolErrorWarnings`: true の場合、heartbeat 実行中に tool error warning payload を抑制します。 +- `directPolicy`: 直接/DM 配信ポリシー。`allow`(デフォルト)は direct-target 配信を許可します。`block` は direct-target 配信を抑止し、`reason=dm-blocked` を出力します。 +- `lightContext`: true の場合、heartbeat 実行は軽量 bootstrap context を使用し、workspace bootstrap ファイルのうち `HEARTBEAT.md` のみを保持します。 +- `isolatedSession`: true の場合、各 heartbeat 実行は prior conversation history を持たない fresh session で行われます。cron の `sessionTarget: "isolated"` と同じ分離パターンです。heartbeat ごとの token コストを約 100K から約 2-5K token に削減します。 +- agent ごと: `agents.list[].heartbeat` を設定します。いずれかの agent が `heartbeat` を定義している場合、heartbeat を実行するのは**それらの agent のみ**です。 +- heartbeat は完全な agent turn を実行します。間隔が短いほど token を多く消費します。 ### `agents.defaults.compaction` @@ -1176,18 +1176,18 @@ Anthropic Claude 4.6 model は、明示的な thinking level が設定されて ``` - `mode`: `default` または `safeguard`(長い履歴向けのチャンク化要約)。[Compaction](/ja-JP/concepts/compaction) を参照してください。 -- `provider`: 登録済み compaction provider plugin の id。設定すると、組み込み LLM 要約の代わりに provider の `summarize()` が呼び出されます。失敗時は組み込みにフォールバックします。provider を設定すると `mode: "safeguard"` が強制されます。[Compaction](/ja-JP/concepts/compaction) を参照してください。 -- `timeoutSeconds`: OpenClaw が中断するまでに単一の compaction 操作へ許可する最大秒数。デフォルト: `900`。 -- `identifierPolicy`: `strict`(デフォルト)、`off`、または `custom`。`strict` は compaction 要約中に組み込みの opaque identifier 保持ガイダンスを先頭に追加します。 -- `identifierInstructions`: `identifierPolicy=custom` のときに使われるオプションのカスタム identifier 保持テキスト。 -- `postCompactionSections`: compaction 後に再注入する AGENTS.md の H2/H3 セクション名のオプション指定。デフォルトは `["Session Startup", "Red Lines"]` で、`[]` にすると再注入を無効化します。未設定またはそのデフォルトのペアが明示設定されている場合は、古い `Every Session`/`Safety` 見出しも従来互換の fallback として受け入れられます。 -- `model`: compaction 要約専用のオプション `provider/model-id` 上書き。メイン session は同じ model を維持しつつ、compaction 要約のみ別 model で実行したい場合に使用します。未設定の場合、compaction は session の primary model を使用します。 -- `notifyUser`: `true` の場合、compaction 開始時にユーザーへ短い通知(例 `"Compacting context..."`)を送ります。デフォルトでは無効で、compaction を静かに保ちます。 -- `memoryFlush`: auto-compaction 前に durable memory を保存する silent agentic turn。workspace が read-only の場合はスキップされます。 +- `provider`: 登録済み compaction provider plugin の id。設定すると、組み込み LLM 要約の代わりにその provider の `summarize()` が呼び出されます。失敗時は組み込みにフォールバックします。provider を設定すると `mode: "safeguard"` が強制されます。[Compaction](/ja-JP/concepts/compaction) を参照してください。 +- `timeoutSeconds`: 単一の compaction 操作に OpenClaw が許容する最大秒数。デフォルト: `900`。 +- `identifierPolicy`: `strict`(デフォルト)、`off`、または `custom`。`strict` は compaction 要約時に組み込みの opaque identifier 保持ガイダンスを前置します。 +- `identifierInstructions`: `identifierPolicy=custom` のときに使用する、任意のカスタム identifier 保持文。 +- `postCompactionSections`: compaction 後に再注入する任意の AGENTS.md H2/H3 セクション名。デフォルトは `["Session Startup", "Red Lines"]` です。無効にするには `[]` を設定します。未設定、またはそのデフォルトのペアに明示設定されている場合、古い `Every Session`/`Safety` 見出しも legacy fallback として受け入れられます。 +- `model`: compaction 要約専用の任意の `provider/model-id` 上書き。メインセッションでは 1 つの model を使い続けつつ、compaction summary は別 model で実行したい場合に使用します。未設定時、compaction は session の primary model を使用します。 +- `notifyUser`: `true` の場合、compaction 開始時にユーザーへ簡単な通知(例: 「Compacting context...」)を送ります。既定では compaction を静かに保つため無効です。 +- `memoryFlush`: 自動 compaction 前に durable memory を保存するためのサイレント agentic turn。workspace が read-only の場合はスキップされます。 ### `agents.defaults.contextPruning` -LLM に送信する前に、インメモリコンテキストから**古い tool result** を剪定します。ディスク上の session history は変更しません。 +LLM へ送信する前に、メモリ内コンテキストから**古い tool result** を剪定します。ディスク上の session history は変更しません。 ```json5 { @@ -1211,9 +1211,9 @@ LLM に送信する前に、インメモリコンテキストから**古い tool -- `mode: "cache-ttl"` で pruning pass が有効になります。 -- `ttl` は、前回の cache touch 後に pruning を再度実行できる頻度を制御します。 -- pruning はまず oversized な tool result を soft-trim し、その後必要に応じて古い tool result を hard-clear します。 +- `mode: "cache-ttl"` は剪定パスを有効にします。 +- `ttl` は、最後の cache touch 後に再び剪定を実行できる頻度を制御します。 +- 剪定はまず大きすぎる tool result を soft-trim し、その後必要に応じて古い tool result を hard-clear します。 **Soft-trim** は先頭と末尾を保持し、中間に `...` を挿入します。 @@ -1221,15 +1221,15 @@ LLM に送信する前に、インメモリコンテキストから**古い tool 注記: -- image block は決して trim/clear されません。 -- ratio は token 数ではなく文字数ベースの概算です。 -- `keepLastAssistants` 未満の assistant message しか存在しない場合、pruning はスキップされます。 +- image block は切り詰めもクリアもされません。 +- 比率は文字数ベース(概算)であり、正確な token 数ではありません。 +- `keepLastAssistants` 未満の assistant message しか存在しない場合、剪定はスキップされます。 動作の詳細は [Session Pruning](/ja-JP/concepts/session-pruning) を参照してください。 -### ブロックストリーミング +### Block streaming ```json5 { @@ -1245,13 +1245,13 @@ LLM に送信する前に、インメモリコンテキストから**古い tool } ``` -- Telegram 以外のチャンネルでは、ブロック返信を有効にするには明示的な `*.blockStreaming: true` が必要です。 -- チャンネルごとの上書き: `channels..blockStreamingCoalesce`(およびアカウントごとの変種)。Signal/Slack/Discord/Google Chat のデフォルトは `minChars: 1500` です。 -- `humanDelay`: ブロック返信間のランダムな待機時間。`natural` = 800–2500ms。agent ごとの上書き: `agents.list[].humanDelay`。 +- Telegram 以外のチャンネルでは、block reply を有効にするには明示的な `*.blockStreaming: true` が必要です。 +- チャンネルごとの上書き: `channels..blockStreamingCoalesce`(およびアカウントごとの variants)。Signal/Slack/Discord/Google Chat のデフォルトは `minChars: 1500` です。 +- `humanDelay`: block reply 間のランダムな待機時間。`natural` = 800–2500ms。agent ごとの上書き: `agents.list[].humanDelay`。 動作と chunking の詳細は [Streaming](/ja-JP/concepts/streaming) を参照してください。 -### タイピングインジケーター +### Typing indicators ```json5 { @@ -1264,8 +1264,8 @@ LLM に送信する前に、インメモリコンテキストから**古い tool } ``` -- デフォルト: direct chat/mention では `instant`、メンションされていない group chat では `message`。 -- session ごとの上書き: `session.typingMode`、`session.typingIntervalSeconds`。 +- デフォルト: direct chat/mention では `instant`、メンションなし group chat では `message`。 +- セッションごとの上書き: `session.typingMode`、`session.typingIntervalSeconds`。 [Typing Indicators](/ja-JP/concepts/typing-indicators) を参照してください。 @@ -1273,7 +1273,7 @@ LLM に送信する前に、インメモリコンテキストから**古い tool ### `agents.defaults.sandbox` -埋め込み agent 向けのオプションの sandbox 化。完全なガイドは [Sandboxing](/ja-JP/gateway/sandboxing) を参照してください。 +埋め込み agent 向けの任意 sandboxing。完全ガイドは [Sandboxing](/ja-JP/gateway/sandboxing) を参照してください。 ```json5 { @@ -1368,24 +1368,24 @@ LLM に送信する前に、インメモリコンテキストから**古い tool } ``` - + **Backend:** - `docker`: ローカル Docker runtime(デフォルト) -- `ssh`: 汎用 SSH バックド remote runtime +- `ssh`: 汎用 SSH ベースの remote runtime - `openshell`: OpenShell runtime -`backend: "openshell"` を選択した場合、runtime 固有の設定は -`plugins.entries.openshell.config` に移ります。 +`backend: "openshell"` を選択した場合、runtime 固有設定は +`plugins.entries.openshell.config` に移動します。 -**SSH backend 設定:** +**SSH backend config:** -- `target`: `user@host[:port]` 形式の SSH ターゲット +- `target`: `user@host[:port]` 形式の SSH target - `command`: SSH client command(デフォルト: `ssh`) -- `workspaceRoot`: scope ごとの workspace に使う絶対 remote root +- `workspaceRoot`: スコープごとの workspace に使う絶対 remote root - `identityFile` / `certificateFile` / `knownHostsFile`: OpenSSH に渡される既存のローカルファイル -- `identityData` / `certificateData` / `knownHostsData`: OpenClaw が runtime で temp file に materialize する inline content または SecretRef +- `identityData` / `certificateData` / `knownHostsData`: インライン内容または SecretRef。OpenClaw はランタイム時にこれらを temp file に materialize します - `strictHostKeyChecking` / `updateHostKeys`: OpenSSH の host-key policy ノブ **SSH auth の優先順位:** @@ -1393,29 +1393,29 @@ LLM に送信する前に、インメモリコンテキストから**古い tool - `identityData` は `identityFile` より優先 - `certificateData` は `certificateFile` より優先 - `knownHostsData` は `knownHostsFile` より優先 -- SecretRef バックドの `*Data` 値は、sandbox session 開始前にアクティブな secrets runtime snapshot から解決されます +- SecretRef ベースの `*Data` 値は、sandbox session 開始前に active secrets runtime snapshot から解決されます **SSH backend の動作:** -- create または recreate の後に remote workspace を一度 seed する -- その後は remote SSH workspace を正規のものとして維持する -- `exec`、file tool、media path を SSH 経由にルーティングする -- remote での変更を host に自動同期しない -- sandbox browser container はサポートしない +- create または recreate の後、remote workspace を 1 度 seed します +- その後は remote SSH workspace を canonical として維持します +- `exec`、file tools、media path を SSH 経由でルーティングします +- remote の変更は自動的にホストへ同期されません +- sandbox browser container はサポートしません **Workspace access:** -- `none`: `~/.openclaw/sandboxes` 配下の scope ごとの sandbox workspace -- `ro`: `/workspace` に sandbox workspace、`/agent` に agent workspace を読み取り専用で mount -- `rw`: agent workspace を `/workspace` に読み書き可能で mount +- `none`: `~/.openclaw/sandboxes` 配下のスコープごとの sandbox workspace +- `ro`: `/workspace` に sandbox workspace、`/agent` に agent workspace を read-only マウント +- `rw`: `/workspace` に agent workspace を read/write マウント **Scope:** -- `session`: session ごとの container + workspace -- `agent`: agent ごとに1つの container + workspace(デフォルト) +- `session`: セッションごとの container + workspace +- `agent`: agent ごとに 1 つの container + workspace(デフォルト) - `shared`: 共有 container と workspace(セッション間分離なし) -**OpenShell plugin 設定:** +**OpenShell plugin config:** ```json5 { @@ -1443,30 +1443,29 @@ LLM に送信する前に、インメモリコンテキストから**古い tool **OpenShell mode:** -- `mirror`: exec 前に local から remote へ seed し、exec 後に同期し戻す。local workspace が正規のまま維持される -- `remote`: sandbox 作成時に一度 remote へ seed し、その後は remote workspace を正規のものとして維持する +- `mirror`: 実行前に local から remote へ seed し、実行後に逆同期します。local workspace が canonical のままです +- `remote`: sandbox 作成時に 1 度だけ remote へ seed し、その後は remote workspace を canonical として維持します -`remote` mode では、OpenClaw の外で行われた host-local の編集は、seed ステップ後に sandbox へ自動同期されません。 -transport は OpenShell sandbox への SSH ですが、plugin が sandbox lifecycle と任意の mirror sync を所有します。 +`remote` mode では、seed ステップ後に OpenClaw の外で行われた host-local 編集は自動的には sandbox に同期されません。 +transport は OpenShell sandbox への SSH ですが、sandbox lifecycle と任意の mirror sync は plugin が管理します。 -**`setupCommand`** は container 作成後に1回だけ実行されます(`sh -lc` 経由)。network egress、書き込み可能な root、root user が必要です。 +**`setupCommand`** は container 作成後に 1 回(`sh -lc` 経由で)実行されます。network egress、writable root、root user が必要です。 -**Container のデフォルトは `network: "none"`** です。agent が外向きアクセスを必要とする場合は `"bridge"`(またはカスタム bridge network)に設定してください。 -`"host"` はブロックされます。`"container:"` もデフォルトではブロックされますが、 -`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` を明示設定した場合にのみ許可されます(緊急回避用)。 +**Container のデフォルトは `network: "none"`** です。agent が outbound access を必要とする場合は `"bridge"`(または custom bridge network)に設定してください。 +`"host"` はブロックされます。`"container:"` は、`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` を明示設定しない限り(非常用)、既定でブロックされます。 -**受信添付ファイル** はアクティブな workspace の `media/inbound/*` に staged されます。 +**Inbound attachment** は、active workspace の `media/inbound/*` に stage されます。 -**`docker.binds`** は追加の host ディレクトリを mount します。グローバルと agent ごとの bind はマージされます。 +**`docker.binds`** は追加のホストディレクトリをマウントします。グローバル bind と agent ごとの bind はマージされます。 -**Sandboxed browser**(`sandbox.browser.enabled`): container 内の Chromium + CDP。noVNC URL がシステムプロンプトへ注入されます。`openclaw.json` で `browser.enabled` は不要です。 -noVNC の observer access ではデフォルトで VNC auth が使われ、OpenClaw は共有URLにパスワードを露出させる代わりに短命の token URL を出力します。 +**Sandboxed browser**(`sandbox.browser.enabled`): container 内の Chromium + CDP。noVNC URL は system prompt に注入されます。`openclaw.json` の `browser.enabled` は不要です。 +noVNC observer access は既定で VNC auth を使用し、OpenClaw は共有 URL にパスワードを露出する代わりに短命トークン URL を発行します。 -- `allowHostControl: false`(デフォルト)は、sandbox 化された session が host browser をターゲットにすることを防ぎます。 -- `network` のデフォルトは `openclaw-sandbox-browser`(専用 bridge network)です。明示的にグローバル bridge 接続を望む場合のみ `bridge` に設定してください。 -- `cdpSourceRange` は、container エッジで CDP ingress を CIDR 範囲(例 `172.21.0.1/32`)に制限できます。 -- `sandbox.browser.binds` は追加の host ディレクトリを browser container のみに mount します。設定された場合(`[]` を含む)、browser container では `docker.binds` の代わりに使われます。 -- 起動デフォルトは `scripts/sandbox-browser-entrypoint.sh` に定義されており、container host 向けに調整されています: +- `allowHostControl: false`(デフォルト)は、sandboxed session がホスト browser をターゲットにすることをブロックします。 +- `network` のデフォルトは `openclaw-sandbox-browser`(専用 bridge network)です。グローバル bridge 接続を明示的に望む場合にのみ `bridge` に設定してください。 +- `cdpSourceRange` は、container edge で CDP ingress を CIDR 範囲(例: `172.21.0.1/32`)に制限できます。 +- `sandbox.browser.binds` は追加の host directory を sandbox browser container のみにマウントします。設定された場合(`[]` を含む)、browser container については `docker.binds` を置き換えます。 +- 起動デフォルトは `scripts/sandbox-browser-entrypoint.sh` に定義され、container host 向けに調整されています: - `--remote-debugging-address=127.0.0.1` - `--remote-debugging-port=` - `--user-data-dir=${HOME}/.chrome` @@ -1484,17 +1483,11 @@ noVNC の observer access ではデフォルトで VNC auth が使われ、OpenC - `--no-zygote` - `--metrics-recording-only` - `--disable-extensions`(デフォルトで有効) - - `--disable-3d-apis`、`--disable-software-rasterizer`、`--disable-gpu` は - デフォルトで有効で、WebGL/3D 利用で必要な場合は - `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0` で無効にできます。 - - ワークフローが extension に依存する場合は - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` で再有効化できます。 - - `--renderer-process-limit=2` は - `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=` で変更できます。`0` にすると Chromium の - デフォルト process limit を使います。 - - 加えて、`noSandbox` が有効なときは `--no-sandbox` と `--disable-setuid-sandbox`。 - - デフォルトは container image のベースラインです。container デフォルトを変更するには、 - custom browser image と custom entrypoint を使用してください。 + - `--disable-3d-apis`、`--disable-software-rasterizer`、`--disable-gpu` はデフォルトで有効で、WebGL/3D 使用で必要な場合は `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0` で無効にできます。 + - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` で、ワークフローが依存している場合に extensions を再有効化できます。 + - `--renderer-process-limit=2` は `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=` で変更できます。Chromium のデフォルト process limit を使うには `0` を設定します。 + - さらに、`noSandbox` が有効な場合は `--no-sandbox` と `--disable-setuid-sandbox`。 + - これらのデフォルトは container image の baseline です。container のデフォルトを変更するには custom entrypoint を持つ custom browser image を使用してください。 @@ -1556,25 +1549,25 @@ scripts/sandbox-browser-setup.sh # optional browser image ``` - `id`: 安定した agent id(必須)。 -- `default`: 複数設定されている場合は最初のものが勝ちます(警告が記録されます)。何も設定されていない場合は list の最初のエントリが default になります。 -- `model`: 文字列形式は `primary` のみを上書きし、オブジェクト形式 `{ primary, fallbacks }` は両方を上書きします(`[]` でグローバル fallback を無効化)。`primary` のみを上書きする cron job は、`fallbacks: []` を設定しない限りデフォルト fallback を引き継ぎます。 -- `params`: 選択された model エントリに対して `agents.defaults.models` からマージされる agent ごとの stream params。`cacheRetention`、`temperature`、`maxTokens` のような agent 固有の上書きに使います。model catalog 全体を複製する必要はありません。 -- `skills`: オプションの agent ごとの Skills 許可リスト。省略時は、設定されていれば agent は `agents.defaults.skills` を継承します。明示的なリストはデフォルトをマージせず置き換え、`[]` は Skills なしを意味します。 -- `thinkingDefault`: オプションの agent ごとのデフォルト thinking level(`off | minimal | low | medium | high | xhigh | adaptive`)。メッセージごとまたは session ごとの上書きがない場合、この agent の `agents.defaults.thinkingDefault` を上書きします。 -- `reasoningDefault`: オプションの agent ごとのデフォルト reasoning visibility(`on | off | stream`)。メッセージごとまたは session ごとの reasoning 上書きがない場合に適用されます。 -- `fastModeDefault`: オプションの agent ごとの fast mode デフォルト(`true | false`)。メッセージごとまたは session ごとの fast-mode 上書きがない場合に適用されます。 -- `runtime`: オプションの agent ごとの runtime descriptor。agent がデフォルトで ACP harness session を使うべき場合は、`type: "acp"` と `runtime.acp` のデフォルト(`agent`、`backend`、`mode`、`cwd`)を使用します。 +- `default`: 複数設定されている場合は最初のものが優先されます(警告を記録)。どれも設定されていない場合、最初の list エントリーが default です。 +- `model`: 文字列形式は `primary` のみを上書きし、オブジェクト形式 `{ primary, fallbacks }` は両方を上書きします(`[]` でグローバル fallback を無効化)。`primary` のみを上書きする cron job では、`fallbacks: []` を設定しない限り default fallback を継承します。 +- `params`: 選択された `agents.defaults.models` 内の model entry に対してマージされる agent ごとの stream params。`cacheRetention`、`temperature`、`maxTokens` などの agent 固有上書きを、model catalog 全体を複製せずに行うために使います。 +- `skills`: 任意の agent ごとの Skills 許可リスト。省略時、その agent は `agents.defaults.skills` が設定されていればそれを継承します。明示的リストはデフォルトをマージせず置き換え、`[]` は Skills なしを意味します。 +- `thinkingDefault`: 任意の agent ごとのデフォルト thinking level(`off | minimal | low | medium | high | xhigh | adaptive`)。メッセージごとまたはセッション上書きが設定されていない場合、この agent に対して `agents.defaults.thinkingDefault` を上書きします。 +- `reasoningDefault`: 任意の agent ごとのデフォルト reasoning visibility(`on | off | stream`)。メッセージごとまたはセッション上書きが設定されていない場合に適用されます。 +- `fastModeDefault`: 任意の agent ごとのデフォルト fast mode(`true | false`)。メッセージごとまたはセッション上書きが設定されていない場合に適用されます。 +- `runtime`: 任意の agent ごとの runtime descriptor。agent が ACP harness session をデフォルトにする必要がある場合は `type: "acp"` と `runtime.acp` デフォルト(`agent`、`backend`、`mode`、`cwd`)を使います。 - `identity.avatar`: workspace 相対パス、`http(s)` URL、または `data:` URI。 - `identity` はデフォルトを導出します: `emoji` から `ackReaction`、`name`/`emoji` から `mentionPatterns`。 -- `subagents.allowAgents`: `sessions_spawn` 用の agent id 許可リスト(`["*"]` = 任意、デフォルト: 同じ agent のみ)。 -- Sandbox 継承ガード: リクエスター session が sandbox 化されている場合、`sessions_spawn` は sandbox 化されないターゲットを拒否します。 -- `subagents.requireAgentId`: `true` の場合、`agentId` を省略した `sessions_spawn` 呼び出しをブロックします(明示的な profile 選択を強制。デフォルト: false)。 +- `subagents.allowAgents`: `sessions_spawn` 用の agent id 許可リスト(`["*"]` = 任意。デフォルト: 同じ agent のみ)。 +- Sandbox 継承ガード: 要求元 session が sandboxed の場合、`sessions_spawn` は unsandboxed で実行される target を拒否します。 +- `subagents.requireAgentId`: true の場合、`agentId` を省略した `sessions_spawn` 呼び出しをブロックします(明示的な profile 選択を強制。デフォルト: false)。 --- -## マルチエージェントルーティング +## マルチ agent ルーティング -1つの Gateway 内で複数の分離された agent を実行します。[Multi-Agent](/ja-JP/concepts/multi-agent) を参照してください。 +1 つの Gateway 内で複数の分離された agent を実行します。[Multi-Agent](/ja-JP/concepts/multi-agent) を参照してください。 ```json5 { @@ -1591,29 +1584,29 @@ scripts/sandbox-browser-setup.sh # optional browser image } ``` -### バインディングの一致フィールド +### Binding の match フィールド -- `type`(オプション): 通常ルーティング用の `route`(type がない場合は route がデフォルト)、永続 ACP 会話バインディング用の `acp` +- `type`(任意): 通常ルーティングは `route`(type 省略時も route)、永続 ACP 会話バインディングは `acp` - `match.channel`(必須) -- `match.accountId`(オプション。`*` = 任意のアカウント、省略 = default アカウント) -- `match.peer`(オプション。`{ kind: direct|group|channel, id }`) -- `match.guildId` / `match.teamId`(オプション。チャンネル固有) -- `acp`(オプション。`type: "acp"` のときのみ): `{ mode, label, cwd, backend }` +- `match.accountId`(任意。`*` = 任意のアカウント、省略 = default アカウント) +- `match.peer`(任意。`{ kind: direct|group|channel, id }`) +- `match.guildId` / `match.teamId`(任意。チャンネル固有) +- `acp`(任意。`type: "acp"` の場合のみ): `{ mode, label, cwd, backend }` -**決定的な一致順序:** +**決定的な match 順序:** 1. `match.peer` 2. `match.guildId` 3. `match.teamId` -4. `match.accountId`(完全一致。peer/guild/team なし) +4. `match.accountId`(正確一致、peer/guild/team なし) 5. `match.accountId: "*"`(チャンネル全体) -6. デフォルト agent +6. Default agent -各 tier 内では、最初に一致した `bindings` エントリが勝ちます。 +各 tier 内では、最初に一致した `bindings` エントリーが優先されます。 -`type: "acp"` エントリでは、OpenClaw は正確な会話 identity(`match.channel` + account + `match.peer.id`)で解決し、上記の route binding tier 順序は使用しません。 +`type: "acp"` のエントリーについては、OpenClaw は正確な会話 ID(`match.channel` + account + `match.peer.id`)で解決し、上記の route binding tier 順序は使用しません。 -### agent ごとのアクセスプロファイル +### Agent ごとのアクセスプロファイル @@ -1633,7 +1626,7 @@ scripts/sandbox-browser-setup.sh # optional browser image - + ```json5 { @@ -1712,7 +1705,7 @@ scripts/sandbox-browser-setup.sh # optional browser image --- -## セッション +## Session ```json5 { @@ -1759,43 +1752,43 @@ scripts/sandbox-browser-setup.sh # optional browser image } ``` - + -- **`scope`**: group-chat context 向けのベース session grouping strategy。 - - `per-sender`(デフォルト): チャンネルコンテキスト内で送信者ごとに分離された session。 - - `global`: チャンネルコンテキスト内の全参加者で1つの session を共有します(共有コンテキストを意図する場合のみ使用してください)。 -- **`dmScope`**: DM のグループ化方法。 - - `main`: すべての DM が main session を共有します。 - - `per-peer`: チャンネルをまたいで送信者 id ごとに分離します。 - - `per-channel-peer`: チャンネル + 送信者ごとに分離します(マルチユーザー inbox に推奨)。 - - `per-account-channel-peer`: アカウント + チャンネル + 送信者ごとに分離します(マルチアカウントに推奨)。 -- **`identityLinks`**: channel 間の session 共有用に、canonical id を provider 接頭辞付き peer へマップします。 -- **`reset`**: プライマリ reset policy。`daily` はローカル時刻の `atHour` に reset し、`idle` は `idleMinutes` 後に reset します。両方が設定されている場合、先に期限切れになる方が適用されます。 -- **`resetByType`**: type ごとの上書き(`direct`、`group`、`thread`)。従来の `dm` も `direct` の別名として受け付けます。 -- **`parentForkMaxTokens`**: fork された thread session を作成するときに許可される親 session の `totalTokens` 最大値(デフォルト `100000`)。 - - 親の `totalTokens` がこの値を超えている場合、OpenClaw は親 transcript history を継承せず、新しい thread session を開始します。 - - `0` に設定するとこのガードを無効にし、常に親 fork を許可します。 -- **`mainKey`**: 従来フィールド。runtime は現在常に direct-chat bucket の main に `"main"` を使用します。 -- **`agentToAgent.maxPingPongTurns`**: agent-to-agent exchange 中に agent 間で許可される返信往復 turn の最大数(整数、範囲: `0`–`5`)。`0` で ping-pong chaining を無効化します。 -- **`sendPolicy`**: `channel`、`chatType`(`direct|group|channel`。従来の `dm` 別名あり)、`keyPrefix`、または `rawKeyPrefix` で一致します。最初の deny が勝ちます。 +- **`scope`**: group-chat context 向けの基本 session grouping 戦略。 + - `per-sender`(デフォルト): チャンネル context 内で送信者ごとに分離された session。 + - `global`: チャンネル context 内の全参加者が 1 つの session を共有します(共有 context が意図される場合にのみ使用)。 +- **`dmScope`**: DM をどうまとめるか。 + - `main`: すべての DM が main session を共有。 + - `per-peer`: チャンネルをまたいで送信者 ID ごとに分離。 + - `per-channel-peer`: チャンネル + 送信者ごとに分離(複数ユーザー inbox 向け推奨)。 + - `per-account-channel-peer`: アカウント + チャンネル + 送信者ごとに分離(複数アカウント向け推奨)。 +- **`identityLinks`**: cross-channel session 共有のため、正規 ID を provider 接頭辞付き peer にマップします。 +- **`reset`**: 基本 reset ポリシー。`daily` はローカル時間の `atHour` に reset し、`idle` は `idleMinutes` 後に reset します。両方設定されている場合、先に期限切れになる方が優先されます。 +- **`resetByType`**: タイプごとの上書き(`direct`、`group`、`thread`)。旧来の `dm` は `direct` のエイリアスとして受け付けられます。 +- **`parentForkMaxTokens`**: forked thread session 作成時に許可される parent-session `totalTokens` の最大値(デフォルト `100000`)。 + - parent の `totalTokens` がこの値を超えている場合、OpenClaw は parent transcript history を継承する代わりに fresh thread session を開始します。 + - このガードを無効にして常に parent fork を許可するには `0` を設定します。 +- **`mainKey`**: 旧来フィールド。ランタイムは現在、main direct-chat bucket に常に `"main"` を使用します。 +- **`agentToAgent.maxPingPongTurns`**: agent-to-agent 交換中の agent 間 reply-back turn の最大数(整数、範囲: `0`–`5`)。`0` は ping-pong chaining を無効にします。 +- **`sendPolicy`**: `channel`、`chatType`(`direct|group|channel`、旧来の `dm` エイリアスあり)、`keyPrefix`、または `rawKeyPrefix` でマッチします。最初の deny が優先されます。 - **`maintenance`**: session-store の cleanup + retention 制御。 - - `mode`: `warn` は警告のみ出し、`enforce` は cleanup を適用します。 - - `pruneAfter`: stale entry の age cutoff(デフォルト `30d`)。 + - `mode`: `warn` は警告のみを出力し、`enforce` は cleanup を適用します。 + - `pruneAfter`: 古い entry の age cutoff(デフォルト `30d`)。 - `maxEntries`: `sessions.json` 内の最大 entry 数(デフォルト `500`)。 - - `rotateBytes`: `sessions.json` がこのサイズを超えたら rotate します(デフォルト `10mb`)。 - - `resetArchiveRetention`: `*.reset.` transcript archive の retention。デフォルトは `pruneAfter`。無効化するには `false` を設定します。 - - `maxDiskBytes`: オプションの sessions ディレクトリ disk budget。`warn` mode では警告を出し、`enforce` mode では最も古い artifact/session から削除します。 - - `highWaterBytes`: budget cleanup 後のオプション目標。デフォルトは `maxDiskBytes` の `80%`。 + - `rotateBytes`: `sessions.json` がこのサイズを超えると rotate します(デフォルト `10mb`)。 + - `resetArchiveRetention`: `*.reset.` transcript archive の retention。デフォルトは `pruneAfter`。無効にするには `false` を設定します。 + - `maxDiskBytes`: 任意の sessions-directory disk budget。`warn` mode では警告を記録し、`enforce` mode では最も古い artifact/session から順に削除します。 + - `highWaterBytes`: budget cleanup 後の任意の目標値。デフォルトは `maxDiskBytes` の `80%`。 - **`threadBindings`**: thread-bound session 機能のグローバルデフォルト。 - - `enabled`: マスターデフォルトスイッチ(provider が上書き可能。Discord は `channels.discord.threadBindings.enabled` を使います) - - `idleHours`: 非アクティブ時の自動 unfocus のデフォルト時間数(`0` で無効。provider が上書き可能) - - `maxAgeHours`: ハード最大経過時間のデフォルト時間数(`0` で無効。provider が上書き可能) + - `enabled`: マスター default switch(provider が上書き可能。Discord は `channels.discord.threadBindings.enabled` を使用) + - `idleHours`: 非アクティブ時の auto-unfocus のデフォルト時間(`0` で無効。provider が上書き可能) + - `maxAgeHours`: hard max age のデフォルト時間(`0` で無効。provider が上書き可能) --- -## メッセージ +## Messages ```json5 { @@ -1829,34 +1822,34 @@ scripts/sandbox-browser-setup.sh # optional browser image チャンネル/アカウントごとの上書き: `channels..responsePrefix`、`channels..accounts..responsePrefix`。 -解決順(最も具体的なものが優先): account → channel → global。`""` は無効化して cascade を止めます。`"auto"` は `[{identity.name}]` を導出します。 +解決順序(最も具体的なものが優先): account → channel → global。`""` は無効化し、cascade を停止します。`"auto"` は `[{identity.name}]` を導出します。 **テンプレート変数:** -| Variable | 説明 | 例 | -| ----------------- | -------------------------- | --------------------------- | -| `{model}` | 短いモデル名 | `claude-opus-4-6` | -| `{modelFull}` | 完全なモデル識別子 | `anthropic/claude-opus-4-6` | -| `{provider}` | プロバイダー名 | `anthropic` | -| `{thinkingLevel}` | 現在の thinking level | `high`, `low`, `off` | -| `{identity.name}` | エージェント identity 名 | (`"auto"` と同じ) | +| 変数 | 説明 | 例 | +| ----------------- | ------------------------ | --------------------------- | +| `{model}` | 短い model 名 | `claude-opus-4-6` | +| `{modelFull}` | 完全な model identifier | `anthropic/claude-opus-4-6` | +| `{provider}` | Provider 名 | `anthropic` | +| `{thinkingLevel}` | 現在の thinking level | `high`, `low`, `off` | +| `{identity.name}` | Agent identity 名 | (`"auto"` と同じ) | -変数は大文字小文字を区別しません。`{think}` は `{thinkingLevel}` の別名です。 +変数は大文字小文字を区別しません。`{think}` は `{thinkingLevel}` のエイリアスです。 ### Ack reaction -- デフォルトはアクティブ agent の `identity.emoji`、なければ `"👀"`。無効にするには `""` を設定します。 +- デフォルトは active agent の `identity.emoji`、それ以外は `"👀"`。無効化するには `""` を設定します。 - チャンネルごとの上書き: `channels..ackReaction`、`channels..accounts..ackReaction`。 -- 解決順: account → channel → `messages.ackReaction` → identity fallback。 -- Scope: `group-mentions`(デフォルト)、`group-all`、`direct`、`all`。 -- `removeAckAfterReply`: Slack、Discord、Telegram で返信後に ack を削除します。 +- 解決順序: account → channel → `messages.ackReaction` → identity fallback。 +- スコープ: `group-mentions`(デフォルト)、`group-all`、`direct`、`all`。 +- `removeAckAfterReply`: Slack、Discord、Telegram で reply 後に ack を削除します。 - `messages.statusReactions.enabled`: Slack、Discord、Telegram で lifecycle status reaction を有効にします。 Slack と Discord では、未設定だと ack reaction が有効な場合に status reaction も有効のままになります。 - Telegram では、lifecycle status reaction を有効にするには明示的に `true` を設定してください。 + Telegram では、lifecycle status reaction を有効にするには明示的に `true` に設定してください。 ### Inbound debounce -同じ送信者からの連続するテキストのみのメッセージを1つの agent turn にまとめます。media/attachment は即時 flush されます。control command は debouncing をバイパスします。 +同じ送信者からの短時間の text-only message を 1 つの agent turn にまとめます。media/attachment は即時 flush されます。control command は debounce をバイパスします。 ### TTS(text-to-speech) @@ -1899,18 +1892,18 @@ scripts/sandbox-browser-setup.sh # optional browser image } ``` -- `auto` は auto-TTS を制御します。`/tts off|always|inbound|tagged` は session ごとに上書きします。 +- `auto` は auto-TTS を制御します。`/tts off|always|inbound|tagged` はセッションごとに上書きします。 - `summaryModel` は auto-summary 用に `agents.defaults.model.primary` を上書きします。 -- `modelOverrides` はデフォルトで有効です。`modelOverrides.allowProvider` のデフォルトは `false`(明示的な opt-in)。 -- API key は `ELEVENLABS_API_KEY`/`XI_API_KEY` および `OPENAI_API_KEY` にフォールバックします。 -- `openai.baseUrl` は OpenAI TTS endpoint を上書きします。解決順は config、次に `OPENAI_TTS_BASE_URL`、次に `https://api.openai.com/v1` です。 -- `openai.baseUrl` が非 OpenAI endpoint を指す場合、OpenClaw はそれを OpenAI 互換 TTS server として扱い、model/voice の検証を緩和します。 +- `modelOverrides` はデフォルトで有効です。`modelOverrides.allowProvider` のデフォルトは `false`(オプトイン)です。 +- API key は `ELEVENLABS_API_KEY`/`XI_API_KEY` と `OPENAI_API_KEY` にフォールバックします。 +- `openai.baseUrl` は OpenAI TTS endpoint を上書きします。解決順序は config、次に `OPENAI_TTS_BASE_URL`、最後に `https://api.openai.com/v1` です。 +- `openai.baseUrl` が非 OpenAI endpoint を指す場合、OpenClaw はそれを OpenAI 互換 TTS server と見なし、model/voice validation を緩和します。 --- ## Talk -Talk mode(macOS/iOS/Android)のデフォルト。 +Talk mode(macOS/iOS/Android)のデフォルト値。 ```json5 { @@ -1934,51 +1927,51 @@ Talk mode(macOS/iOS/Android)のデフォルト。 } ``` -- `talk.provider` は、複数の Talk provider が設定されている場合、`talk.providers` のキーと一致する必要があります。 -- 従来のフラットな Talk キー(`talk.voiceId`、`talk.voiceAliases`、`talk.modelId`、`talk.outputFormat`、`talk.apiKey`)は互換用のみで、`talk.providers.` に自動移行されます。 +- `talk.provider` は、複数の Talk provider を設定している場合、`talk.providers` 内のキーに一致している必要があります。 +- 旧来のフラットな Talk キー(`talk.voiceId`、`talk.voiceAliases`、`talk.modelId`、`talk.outputFormat`、`talk.apiKey`)は互換専用であり、自動的に `talk.providers.` へ移行されます。 - Voice ID は `ELEVENLABS_VOICE_ID` または `SAG_VOICE_ID` にフォールバックします。 -- `providers.*.apiKey` はプレーンテキスト文字列または SecretRef オブジェクトを受け付けます。 -- `ELEVENLABS_API_KEY` のフォールバックは、Talk API key が設定されていない場合にのみ適用されます。 -- `providers.*.voiceAliases` により、Talk の directive で親しみやすい名前を使用できます。 -- `silenceTimeoutMs` は、Talk mode がユーザーの無音後に transcript を送信するまで待機する時間を制御します。未設定の場合、プラットフォームのデフォルト pause window を使用します(`macOS と Android では 700 ms、iOS では 900 ms`)。 +- `providers.*.apiKey` は平文文字列または SecretRef オブジェクトを受け付けます。 +- `ELEVENLABS_API_KEY` のフォールバックは、Talk API key が未設定の場合にのみ適用されます。 +- `providers.*.voiceAliases` により、Talk directive でフレンドリー名を使用できます。 +- `silenceTimeoutMs` は、Talk mode がユーザーの無音後に transcript を送信するまで待機する時間を制御します。未設定の場合、プラットフォームデフォルトの pause window を維持します(macOS と Android では `700 ms`、iOS では `900 ms`)。 --- -## ツール +## Tools -### ツールプロファイル +### Tool profile -`tools.profile` は `tools.allow`/`tools.deny` の前にベース許可リストを設定します。 +`tools.profile` は `tools.allow`/`tools.deny` の前にベース allowlist を設定します。 -ローカルオンボーディングでは、未設定の新しいローカル設定に対して `tools.profile: "coding"` をデフォルトで設定します(既存の明示的な profile は保持されます)。 +ローカルオンボーディングでは、未設定の新しい local config に既定で `tools.profile: "coding"` を設定します(既存の明示 profile は保持されます)。 -| Profile | 含まれるもの | -| ----------- | ------------------------------------------------------------------------------------------------------------------------------ | -| `minimal` | `session_status` のみ | -| `coding` | `group:fs`、`group:runtime`、`group:web`、`group:sessions`、`group:memory`、`cron`、`image`、`image_generate`、`video_generate` | -| `messaging` | `group:messaging`、`sessions_list`、`sessions_history`、`sessions_send`、`session_status` | -| `full` | 制限なし(未設定と同じ) | +| Profile | 含まれるもの | +| ----------- | ------------------------------------------------------------------------------------------------------------------------- | +| `minimal` | `session_status` のみ | +| `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` | +| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` | +| `full` | 制限なし(未設定と同じ) | -### ツールグループ +### Tool group -| Group | ツール | -| ------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `group:runtime` | `exec`、`process`、`code_execution`(`bash` は `exec` の別名として受け付けられます) | -| `group:fs` | `read`、`write`、`edit`、`apply_patch` | -| `group:sessions` | `sessions_list`、`sessions_history`、`sessions_send`、`sessions_spawn`、`sessions_yield`、`subagents`、`session_status` | -| `group:memory` | `memory_search`、`memory_get` | -| `group:web` | `web_search`、`x_search`、`web_fetch` | -| `group:ui` | `browser`、`canvas` | -| `group:automation` | `cron`、`gateway` | -| `group:messaging` | `message` | -| `group:nodes` | `nodes` | -| `group:agents` | `agents_list` | -| `group:media` | `image`、`image_generate`、`video_generate`、`tts` | -| `group:openclaw` | すべての組み込みツール(provider plugin を除く) | +| グループ | Tools | +| ------------------ | ---------------------------------------------------------------------------------------------------------------------- | +| `group:runtime` | `exec`, `process`, `code_execution`(`bash` は `exec` のエイリアスとして受け付けられます) | +| `group:fs` | `read`, `write`, `edit`, `apply_patch` | +| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` | +| `group:memory` | `memory_search`, `memory_get` | +| `group:web` | `web_search`, `x_search`, `web_fetch` | +| `group:ui` | `browser`, `canvas` | +| `group:automation` | `cron`, `gateway` | +| `group:messaging` | `message` | +| `group:nodes` | `nodes` | +| `group:agents` | `agents_list` | +| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | +| `group:openclaw` | すべての組み込み tools(provider plugin は除く) | ### `tools.allow` / `tools.deny` -グローバルな tool allow/deny policy(deny が優先)。大文字小文字を区別せず、`*` ワイルドカードをサポートします。Docker sandbox がオフでも適用されます。 +グローバルな tool の allow/deny ポリシー(deny 優先)。大文字小文字を区別せず、`*` ワイルドカードをサポートします。Docker sandbox が無効でも適用されます。 ```json5 { @@ -1988,7 +1981,7 @@ Talk mode(macOS/iOS/Android)のデフォルト。 ### `tools.byProvider` -特定の provider または model 向けにツールをさらに制限します。順序: base profile → provider profile → allow/deny。 +特定の provider または model 向けに、tools をさらに制限します。順序: base profile → provider profile → allow/deny。 ```json5 { @@ -2004,7 +1997,7 @@ Talk mode(macOS/iOS/Android)のデフォルト。 ### `tools.elevated` -sandbox 外での elevated exec アクセスを制御します。 +sandbox 外での elevated exec access を制御します。 ```json5 { @@ -2021,7 +2014,7 @@ sandbox 外での elevated exec アクセスを制御します。 ``` - agent ごとの上書き(`agents.list[].tools.elevated`)は、さらに制限することしかできません。 -- `/elevated on|off|ask|full` は状態を session ごとに保存します。インライン directive は単一メッセージに適用されます。 +- `/elevated on|off|ask|full` はセッションごとに状態を保存します。inline directive は 1 メッセージのみに適用されます。 - Elevated `exec` は sandboxing をバイパスし、設定された escape path(デフォルトは `gateway`、exec target が `node` の場合は `node`)を使用します。 ### `tools.exec` @@ -2046,8 +2039,8 @@ sandbox 外での elevated exec アクセスを制御します。 ### `tools.loopDetection` -tool-loop の安全チェックは**デフォルトで無効**です。有効化するには `enabled: true` を設定してください。 -設定はグローバルに `tools.loopDetection` で定義し、agent ごとに `agents.list[].tools.loopDetection` で上書きできます。 +Tool-loop 安全チェックは**デフォルトで無効**です。有効にするには `enabled: true` を設定します。 +設定はグローバルに `tools.loopDetection` で定義でき、agent ごとに `agents.list[].tools.loopDetection` で上書きできます。 ```json5 { @@ -2068,14 +2061,14 @@ tool-loop の安全チェックは**デフォルトで無効**です。有効化 } ``` -- `historySize`: loop analysis 用に保持する tool-call history の最大数。 -- `warningThreshold`: 警告を出す繰り返し no-progress pattern のしきい値。 -- `criticalThreshold`: 深刻な loop をブロックするための、より高い繰り返ししきい値。 -- `globalCircuitBreakerThreshold`: あらゆる no-progress run に対する hard stop しきい値。 -- `detectors.genericRepeat`: 同じ tool/同じ args 呼び出しの繰り返しで警告します。 -- `detectors.knownPollNoProgress`: 既知の poll tool(`process.poll`、`command_status` など)で no-progress を警告/ブロックします。 -- `detectors.pingPong`: no-progress の交互ペアパターンを警告/ブロックします。 -- `warningThreshold >= criticalThreshold` または `criticalThreshold >= globalCircuitBreakerThreshold` の場合、検証は失敗します。 +- `historySize`: loop 分析のために保持する tool-call history の最大数。 +- `warningThreshold`: 繰り返しの no-progress パターンで警告を出す閾値。 +- `criticalThreshold`: 深刻な loop をブロックするための、より高い繰り返し閾値。 +- `globalCircuitBreakerThreshold`: あらゆる no-progress 実行に対するハード停止閾値。 +- `detectors.genericRepeat`: 同一 tool/同一 args の繰り返し呼び出しで警告します。 +- `detectors.knownPollNoProgress`: 既知の poll tool(`process.poll`、`command_status` など)で警告/ブロックします。 +- `detectors.pingPong`: 交互に発生する no-progress ペアパターンで警告/ブロックします。 +- `warningThreshold >= criticalThreshold` または `criticalThreshold >= globalCircuitBreakerThreshold` の場合、validation は失敗します。 ### `tools.web` @@ -2141,32 +2134,32 @@ tool-loop の安全チェックは**デフォルトで無効**です。有効化 } ``` - + -**Provider エントリ**(`type: "provider"` または省略時): +**Provider entry**(`type: "provider"` または省略時): - `provider`: API provider id(`openai`、`anthropic`、`google`/`gemini`、`groq` など) - `model`: model id 上書き -- `profile` / `preferredProfile`: `auth-profiles.json` の profile 選択 +- `profile` / `preferredProfile`: `auth-profiles.json` profile 選択 -**CLI エントリ**(`type: "cli"`): +**CLI entry**(`type: "cli"`): - `command`: 実行する executable - `args`: テンプレート化された args(`{{MediaPath}}`、`{{Prompt}}`、`{{MaxChars}}` などをサポート) **共通フィールド:** -- `capabilities`: オプションのリスト(`image`、`audio`、`video`)。デフォルト: `openai`/`anthropic`/`minimax` → image、`google` → image+audio+video、`groq` → audio。 -- `prompt`、`maxChars`、`maxBytes`、`timeoutSeconds`、`language`: エントリごとの上書き。 -- 失敗した場合は次のエントリにフォールバックします。 +- `capabilities`: 任意のリスト(`image`、`audio`、`video`)。デフォルト: `openai`/`anthropic`/`minimax` → image、`google` → image+audio+video、`groq` → audio。 +- `prompt`、`maxChars`、`maxBytes`、`timeoutSeconds`、`language`: エントリーごとの上書き。 +- 失敗時は次のエントリーにフォールバックします。 -Provider auth は標準の順序に従います: `auth-profiles.json` → 環境変数 → `models.providers.*.apiKey`。 +Provider auth は標準順序に従います: `auth-profiles.json` → env vars → `models.providers.*.apiKey`。 **Async completion フィールド:** -- `asyncCompletion.directSend`: `true` の場合、完了した async `music_generate` - と `video_generate` タスクはまず直接チャンネル配信を試みます。デフォルト: `false` - (従来の requester-session wake/model-delivery パス)。 +- `asyncCompletion.directSend`: `true` の場合、完了した非同期 `music_generate` + と `video_generate` タスクは、まず直接チャンネル配信を試みます。デフォルト: `false` + (旧来の requester-session wake/model-delivery 経路)。 @@ -2185,9 +2178,9 @@ Provider auth は標準の順序に従います: `auth-profiles.json` → 環境 ### `tools.sessions` -session tool(`sessions_list`、`sessions_history`、`sessions_send`)でターゲットにできる session を制御します。 +session tools(`sessions_list`、`sessions_history`、`sessions_send`)でどの session を対象にできるかを制御します。 -デフォルト: `tree`(現在の session と、そこから spawn された session。subagent など)。 +デフォルト: `tree`(現在の session + そこから spawn された session、たとえば subagent)。 ```json5 { @@ -2204,13 +2197,13 @@ session tool(`sessions_list`、`sessions_history`、`sessions_send`)でタ - `self`: 現在の session key のみ。 - `tree`: 現在の session + 現在の session から spawn された session(subagent)。 -- `agent`: 現在の agent id に属するすべての session(同じ agent id の下で per-sender session を実行している場合は他のユーザーも含まれる可能性があります)。 -- `all`: すべての session。cross-agent ターゲティングには引き続き `tools.agentToAgent` が必要です。 -- Sandbox clamp: 現在の session が sandbox 化されていて、`agents.defaults.sandbox.sessionToolsVisibility="spawned"` の場合、`tools.sessions.visibility="all"` であっても visibility は `tree` に強制されます。 +- `agent`: 現在の agent id に属する任意の session(同じ agent id 配下で per-sender session を運用している場合は他ユーザーの session も含まれることがあります)。 +- `all`: 任意の session。cross-agent targeting には引き続き `tools.agentToAgent` が必要です。 +- Sandbox clamp: 現在の session が sandboxed で、`agents.defaults.sandbox.sessionToolsVisibility="spawned"` の場合、`tools.sessions.visibility="all"` であっても visibility は `tree` に強制されます。 ### `tools.sessions_spawn` -`sessions_spawn` のインライン添付ファイルサポートを制御します。 +`sessions_spawn` の inline attachment サポートを制御します。 ```json5 { @@ -2230,16 +2223,16 @@ session tool(`sessions_list`、`sessions_history`、`sessions_send`)でタ 注記: -- 添付ファイルは `runtime: "subagent"` でのみサポートされます。ACP runtime では拒否されます。 +- Attachment は `runtime: "subagent"` でのみサポートされます。ACP runtime では拒否されます。 - ファイルは child workspace の `.openclaw/attachments//` に `.manifest.json` とともに materialize されます。 -- 添付ファイルの内容は transcript persistence から自動的に redaction されます。 +- Attachment 内容は transcript persistence から自動的に redact されます。 - Base64 入力は厳密な alphabet/padding チェックと decode 前サイズガードで検証されます。 -- ファイル権限はディレクトリが `0700`、ファイルが `0600` です。 -- cleanup は `cleanup` policy に従います。`delete` は常に添付ファイルを削除し、`keep` は `retainOnSessionKeep: true` の場合のみ保持します。 +- File permission は directory が `0700`、file が `0600` です。 +- Cleanup は `cleanup` policy に従います。`delete` は常に attachment を削除し、`keep` は `retainOnSessionKeep: true` の場合にのみ保持します。 ### `tools.experimental` -実験的な組み込み tool フラグ。runtime 固有の自動有効化ルールが適用されない限り、デフォルトは off。 +実験的な組み込み tool フラグ。runtime 固有の auto-enable ルールが適用される場合を除き、デフォルトでは無効です。 ```json5 { @@ -2253,9 +2246,9 @@ session tool(`sessions_list`、`sessions_history`、`sessions_send`)でタ 注記: -- `planTool`: 非自明な複数ステップ作業の追跡用に、構造化された `update_plan` tool を有効にします。 -- デフォルト: 非 OpenAI provider では `false`。OpenAI と OpenAI Codex 実行では自動有効化されます。 -- 有効な場合、システムプロンプトにも使用ガイダンスが追加され、実質的な作業にのみ使い、`in_progress` なステップを最大1つに保つようになります。 +- `planTool`: 重要な複数ステップ作業の追跡に使う、構造化された `update_plan` tool を有効にします。 +- デフォルト: 非 OpenAI provider では `false`。OpenAI と OpenAI Codex 実行では未設定時に自動有効化されます。これを無効にするには `false` を設定してください。 +- 有効時、system prompt にも使用ガイダンスが追加され、model は実質的な作業にのみこれを使い、`in_progress` の step を最大 1 つだけ維持します。 ### `agents.defaults.subagents` @@ -2275,14 +2268,14 @@ session tool(`sessions_list`、`sessions_history`、`sessions_send`)でタ } ``` -- `model`: spawn された sub-agent のデフォルト model。省略すると、sub-agent は呼び出し元の model を継承します。 -- `allowAgents`: リクエスター agent が自身の `subagents.allowAgents` を設定していない場合の、`sessions_spawn` 用ターゲット agent id のデフォルト許可リスト(`["*"]` = 任意。デフォルト: 同じ agent のみ)。 -- `runTimeoutSeconds`: tool call が `runTimeoutSeconds` を省略した場合の `sessions_spawn` 用デフォルト timeout(秒)。`0` は timeout なしを意味します。 -- sub-agent ごとの tool policy: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`。 +- `model`: spawn される sub-agent のデフォルト model。省略時、sub-agent は呼び出し元の model を継承します。 +- `allowAgents`: リクエスター agent が独自の `subagents.allowAgents` を設定していない場合に、`sessions_spawn` で使う target agent id のデフォルト許可リスト(`["*"]` = 任意。デフォルト: 同じ agent のみ)。 +- `runTimeoutSeconds`: tool call で `runTimeoutSeconds` を省略した場合に `sessions_spawn` が使うデフォルト timeout(秒)。`0` は timeout なしを意味します。 +- subagent ごとの tool policy: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`。 --- -## カスタムプロバイダーと base URL +## カスタム provider と base URL OpenClaw は組み込み model catalog を使用します。カスタム provider は config の `models.providers` または `~/.openclaw/agents//agent/models.json` で追加します。 @@ -2313,47 +2306,47 @@ OpenClaw は組み込み model catalog を使用します。カスタム provide } ``` -- カスタム認証が必要な場合は `authHeader: true` + `headers` を使用してください。 -- agent config root は `OPENCLAW_AGENT_DIR`(または従来の環境変数別名 `PI_CODING_AGENT_DIR`)で上書きできます。 +- カスタム auth には `authHeader: true` + `headers` を使用します。 +- Agent config root を上書きするには `OPENCLAW_AGENT_DIR`(または旧来の環境変数エイリアス `PI_CODING_AGENT_DIR`)を使います。 - 一致する provider ID に対するマージ優先順位: - 空でない agent `models.json` の `baseUrl` 値が優先されます。 - 空でない agent `apiKey` 値は、その provider が現在の config/auth-profile context で SecretRef 管理されていない場合にのみ優先されます。 - - SecretRef 管理の provider `apiKey` 値は、解決済み secret を永続化する代わりに source marker(env ref なら `ENV_VAR_NAME`、file/exec ref なら `secretref-managed`)から更新されます。 - - SecretRef 管理の provider header 値は source marker(env ref なら `secretref-env:ENV_VAR_NAME`、file/exec ref なら `secretref-managed`)から更新されます。 + - SecretRef 管理の provider `apiKey` 値は、解決済み secret を永続化する代わりに source marker(env ref は `ENV_VAR_NAME`、file/exec ref は `secretref-managed`)から更新されます。 + - SecretRef 管理の provider header 値は、source marker(env ref は `secretref-env:ENV_VAR_NAME`、file/exec ref は `secretref-managed`)から更新されます。 - 空または欠落している agent `apiKey`/`baseUrl` は config の `models.providers` にフォールバックします。 - - 一致する model の `contextWindow`/`maxTokens` には、明示的 config と暗黙の catalog 値のうち高い方を使用します。 - - 一致する model の `contextTokens` は、明示的な runtime cap が存在する場合それを保持します。ネイティブな model metadata を変えずに、有効な context budget を制限したい場合に使用してください。 - - config で `models.json` を完全に書き換えたい場合は `models.mode: "replace"` を使用してください。 - - marker の永続化は source authoritative です。marker は、解決済み runtime secret 値からではなく、アクティブな source config snapshot(解決前)から書き込まれます。 + - 一致する model の `contextWindow`/`maxTokens` は、明示設定値と暗黙 catalog 値のうち大きい方を使用します。 + - 一致する model の `contextTokens` は、明示的 runtime cap がある場合はそれを保持します。native model metadata を変更せずに有効コンテキストを制限したい場合に使用してください。 + - config で `models.json` を完全に書き換えたい場合は `models.mode: "replace"` を使用します。 + - Marker persistence は source-authoritative です。marker は解決済み runtime secret 値からではなく、active source config snapshot(解決前)から書き込まれます。 -### Provider フィールドの詳細 +### Provider フィールド詳細 - `models.mode`: provider catalog の動作(`merge` または `replace`)。 -- `models.providers`: provider id をキーとするカスタム provider map。 +- `models.providers`: provider id をキーにしたカスタム provider map。 - `models.providers.*.api`: request adapter(`openai-completions`、`openai-responses`、`anthropic-messages`、`google-generative-ai` など)。 -- `models.providers.*.apiKey`: provider credential(SecretRef/env substitution の利用を推奨)。 +- `models.providers.*.apiKey`: provider credential(SecretRef/env substitution 推奨)。 - `models.providers.*.auth`: auth strategy(`api-key`、`token`、`oauth`、`aws-sdk`)。 -- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` 用に、request へ `options.num_ctx` を注入します(デフォルト: `true`)。 -- `models.providers.*.authHeader`: 必要な場合に credential を `Authorization` header で送ることを強制します。 -- `models.providers.*.baseUrl`: 上流 API の base URL。 -- `models.providers.*.headers`: proxy/tenant routing 用の追加の static header。 -- `models.providers.*.request`: model-provider HTTP request 用の transport 上書き。 - - `request.headers`: 追加の header(provider デフォルトとマージ)。値は SecretRef を受け付けます。 - - `request.auth`: auth strategy 上書き。mode: `"provider-default"`(provider 組み込み auth を使用)、`"authorization-bearer"`(`token` を使用)、`"header"`(`headerName`、`value`、オプションの `prefix` を使用)。 - - `request.proxy`: HTTP proxy 上書き。mode: `"env-proxy"`(`HTTP_PROXY`/`HTTPS_PROXY` 環境変数を使用)、`"explicit-proxy"`(`url` を使用)。両 mode ともオプションの `tls` サブオブジェクトを受け付けます。 - - `request.tls`: direct connection 用の TLS 上書き。フィールド: `ca`、`cert`、`key`、`passphrase`(すべて SecretRef を受け付けます)、`serverName`、`insecureSkipVerify`。 -- `models.providers.*.models`: 明示的な provider model catalog エントリ。 -- `models.providers.*.models.*.contextWindow`: ネイティブ model context window metadata。 -- `models.providers.*.models.*.contextTokens`: オプションの runtime context cap。model のネイティブ `contextWindow` より小さい有効 context budget にしたい場合に使います。 -- `models.providers.*.models.*.compat.supportsDeveloperRole`: オプションの互換性ヒント。`api: "openai-completions"` で `baseUrl` が空でない non-native URL(host が `api.openai.com` ではない)の場合、OpenClaw は runtime でこれを `false` に強制します。空または省略された `baseUrl` では OpenAI のデフォルト動作を維持します。 -- `models.providers.*.models.*.compat.requiresStringContent`: string-only の OpenAI 互換 chat endpoint 用のオプション互換性ヒント。`true` の場合、OpenClaw は request を送る前に、純粋なテキスト `messages[].content` 配列をプレーン文字列へ flatten します。 -- `plugins.entries.amazon-bedrock.config.discovery`: Bedrock auto-discovery 設定ルート。 -- `plugins.entries.amazon-bedrock.config.discovery.enabled`: 暗黙の discovery を有効/無効にします。 +- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` 向けに、request へ `options.num_ctx` を注入します(デフォルト: `true`)。 +- `models.providers.*.authHeader`: 必要に応じて `Authorization` header で credential を送るよう強制します。 +- `models.providers.*.baseUrl`: 上流 API base URL。 +- `models.providers.*.headers`: proxy/tenant routing 用の追加 static header。 +- `models.providers.*.request`: model-provider HTTP request 用の transport override。 + - `request.headers`: 追加 header(provider デフォルトとマージ)。値は SecretRef を受け付けます。 + - `request.auth`: auth strategy override。モード: `"provider-default"`(provider の組み込み auth を使用)、`"authorization-bearer"`(`token` 使用)、`"header"`(`headerName`、`value`、任意の `prefix` を使用)。 + - `request.proxy`: HTTP proxy override。モード: `"env-proxy"`(`HTTP_PROXY`/`HTTPS_PROXY` env vars を使用)、`"explicit-proxy"`(`url` 使用)。両モードとも任意の `tls` サブオブジェクトを受け付けます。 + - `request.tls`: 直接接続時の TLS override。フィールド: `ca`、`cert`、`key`、`passphrase`(すべて SecretRef を受け付けます)、`serverName`、`insecureSkipVerify`。 +- `models.providers.*.models`: 明示的な provider model catalog entry。 +- `models.providers.*.models.*.contextWindow`: native model context window metadata。 +- `models.providers.*.models.*.contextTokens`: 任意の runtime context cap。model の native `contextWindow` より小さい有効 context budget を使いたい場合に利用します。 +- `models.providers.*.models.*.compat.supportsDeveloperRole`: 任意の互換ヒント。`api: "openai-completions"` で空でない非 native `baseUrl`(host が `api.openai.com` ではない)の場合、OpenClaw はランタイムでこれを `false` に強制します。空または省略した `baseUrl` はデフォルト OpenAI 動作を維持します。 +- `models.providers.*.models.*.compat.requiresStringContent`: string-only の OpenAI 互換 chat endpoint 向け任意の互換ヒント。`true` の場合、OpenClaw は pure text の `messages[].content` array を送信前に plain string に flatten します。 +- `plugins.entries.amazon-bedrock.config.discovery`: Bedrock 自動 discovery 設定のルート。 +- `plugins.entries.amazon-bedrock.config.discovery.enabled`: 暗黙 discovery のオン/オフ。 - `plugins.entries.amazon-bedrock.config.discovery.region`: discovery 用 AWS region。 -- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: 対象を絞った discovery 用のオプション provider-id filter。 -- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: discovery refresh の polling interval。 -- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: discovery された model 用の fallback context window。 -- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: discovery された model 用の fallback max output tokens。 +- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: targeted discovery 用の任意の provider-id filter。 +- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: discovery refresh の polling 間隔。 +- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: discovered model 用の fallback context window。 +- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: discovered model 用の fallback max output tokens。 ### Provider の例 @@ -2391,7 +2384,7 @@ OpenClaw は組み込み model catalog を使用します。カスタム provide } ``` -Cerebras には `cerebras/zai-glm-4.7` を、Z.AI direct には `zai/glm-4.7` を使用してください。 +Cerebras には `cerebras/zai-glm-4.7` を使用し、Z.AI 直結には `zai/glm-4.7` を使用します。 @@ -2408,7 +2401,7 @@ Cerebras には `cerebras/zai-glm-4.7` を、Z.AI direct には `zai/glm-4.7` } ``` -`OPENCODE_API_KEY`(または `OPENCODE_ZEN_API_KEY`)を設定してください。Zen catalog には `opencode/...` 参照を、Go catalog には `opencode-go/...` 参照を使用します。ショートカット: `openclaw onboard --auth-choice opencode-zen` または `openclaw onboard --auth-choice opencode-go`。 +`OPENCODE_API_KEY`(または `OPENCODE_ZEN_API_KEY`)を設定してください。Zen catalog には `opencode/...` 参照を使い、Go catalog には `opencode-go/...` 参照を使います。ショートカット: `openclaw onboard --auth-choice opencode-zen` または `openclaw onboard --auth-choice opencode-go`。 @@ -2425,11 +2418,11 @@ Cerebras には `cerebras/zai-glm-4.7` を、Z.AI direct には `zai/glm-4.7` } ``` -`ZAI_API_KEY` を設定してください。`z.ai/*` と `z-ai/*` は受け付けられる別名です。ショートカット: `openclaw onboard --auth-choice zai-api-key`。 +`ZAI_API_KEY` を設定してください。`z.ai/*` と `z-ai/*` は受け付けられるエイリアスです。ショートカット: `openclaw onboard --auth-choice zai-api-key`。 -- 汎用 endpoint: `https://api.z.ai/api/paas/v4` -- コーディング endpoint(デフォルト): `https://api.z.ai/api/coding/paas/v4` -- 汎用 endpoint を使う場合は、base URL 上書き付きのカスタム provider を定義してください。 +- General endpoint: `https://api.z.ai/api/paas/v4` +- Coding endpoint(デフォルト): `https://api.z.ai/api/coding/paas/v4` +- General endpoint を使う場合は、base URL override 付きの custom provider を定義してください。 @@ -2468,9 +2461,9 @@ Cerebras には `cerebras/zai-glm-4.7` を、Z.AI direct には `zai/glm-4.7` } ``` -中国向け endpoint では `baseUrl: "https://api.moonshot.cn/v1"` または `openclaw onboard --auth-choice moonshot-api-key-cn` を使用してください。 +中国 endpoint には次を使用します: `baseUrl: "https://api.moonshot.cn/v1"` または `openclaw onboard --auth-choice moonshot-api-key-cn`。 -ネイティブ Moonshot endpoint は共有 `openai-completions` transport での streaming 使用互換性を公開しており、OpenClaw は現在それを組み込み provider id 単独ではなく endpoint capability に基づいて判定します。 +ネイティブ Moonshot endpoint は共有 `openai-completions` transport 上で streaming usage 互換性を公開しており、OpenClaw は現在、これを組み込み provider id 単体ではなく endpoint capability に基づいて判定します。 @@ -2488,11 +2481,11 @@ Cerebras には `cerebras/zai-glm-4.7` を、Z.AI direct には `zai/glm-4.7` } ``` -Anthropic 互換の組み込み provider です。ショートカット: `openclaw onboard --auth-choice kimi-code-api-key`。 +Anthropic 互換、組み込み provider です。ショートカット: `openclaw onboard --auth-choice kimi-code-api-key`。 - + ```json5 { @@ -2527,11 +2520,11 @@ Anthropic 互換の組み込み provider です。ショートカット: `opencl } ``` -base URL には `/v1` を含めないでください(Anthropic client が付加します)。ショートカット: `openclaw onboard --auth-choice synthetic-api-key`。 +Base URL には `/v1` を含めないでください(Anthropic client が付加します)。ショートカット: `openclaw onboard --auth-choice synthetic-api-key`。 - + ```json5 { @@ -2571,16 +2564,13 @@ base URL には `/v1` を含めないでください(Anthropic client が付 `openclaw onboard --auth-choice minimax-global-api` または `openclaw onboard --auth-choice minimax-cn-api`。 model catalog は現在 M2.7 のみをデフォルトにしています。 -Anthropic 互換 streaming path では、OpenClaw は MiniMax の thinking を -自分で明示設定しない限りデフォルトで無効にします。`/fast on` または -`params.fastMode: true` は `MiniMax-M2.7` を -`MiniMax-M2.7-highspeed` に書き換えます。 +Anthropic 互換 streaming path では、OpenClaw は明示的に `thinking` を設定しない限り、デフォルトで MiniMax thinking を無効にします。`/fast on` または `params.fastMode: true` は `MiniMax-M2.7` を `MiniMax-M2.7-highspeed` に書き換えます。 -[Local Models](/ja-JP/gateway/local-models) を参照してください。要点: 十分なハードウェア上で LM Studio Responses API 経由の大きなローカル model を実行し、fallback 用にホスト型 model を merge したままにしておいてください。 +[Local Models](/ja-JP/gateway/local-models) を参照してください。要約すると、本格的なハードウェア上では LM Studio Responses API 経由で大規模ローカルモデルを実行し、フォールバック用にホスト型モデルを merged のまま維持します。 @@ -2611,16 +2601,16 @@ Anthropic 互換 streaming path では、OpenClaw は MiniMax の thinking を } ``` -- `allowBundled`: bundled Skills のみを対象にするオプション許可リストです(managed/workspace Skills には影響しません)。 -- `load.extraDirs`: 追加の共有 skill ルート(最も低い優先順位)。 -- `install.preferBrew`: `true` の場合、`brew` が利用可能なら、他の installer 種別へフォールバックする前に Homebrew installer を優先します。 -- `install.nodeManager`: `metadata.openclaw.install` 仕様向けの node installer 優先設定(`npm` | `pnpm` | `yarn` | `bun`)。 -- `entries..enabled: false` は、その skill が bundled/installed されていても無効化します。 -- `entries..apiKey`: primary env var を宣言する skill のための簡易 API key フィールド(プレーンテキスト文字列または SecretRef オブジェクト)。 +- `allowBundled`: bundled skill のみを対象とする任意の許可リスト(managed/workspace skill には影響しません)。 +- `load.extraDirs`: 追加の共有 skill root(最も低い優先順位)。 +- `install.preferBrew`: true の場合、`brew` が利用可能なら他の installer kind にフォールバックする前に Homebrew installer を優先します。 +- `install.nodeManager`: `metadata.openclaw.install` spec 用の node installer 優先設定(`npm` | `pnpm` | `yarn` | `bun`)。 +- `entries..enabled: false` は、その skill が bundled/installed されていても無効にします。 +- `entries..apiKey`: primary env var を宣言する skill 向けの簡易 API key フィールド(平文文字列または SecretRef オブジェクト)。 --- -## プラグイン +## Plugins ```json5 { @@ -2644,8 +2634,11 @@ Anthropic 互換 streaming path では、OpenClaw は MiniMax の thinking を } ``` -- `~/.openclaw/extensions`、`/.openclaw/extensions`、および `plugins.load.paths` からロードされます。 -- discovery は、ネイティブ OpenClaw plugin に加え、互換性のある Codex bundle と Claude bundle、manifest を持たない Claude デフォルトレイアウト bundle も受け付けます。 -- **設定変更には Gateway の再起動が必要です。** -- `allow`: オプションの許可リスト(列挙された plugin のみロード)。`deny` が優先されます。 -- ` \ No newline at end of file +- `~/.openclaw/extensions`、`/.openclaw/extensions`、および `plugins.load.paths` から読み込まれます。 +- Discovery は、ネイティブ OpenClaw plugin に加え、manifestless Claude default-layout bundle を含む互換 Codex bundle と Claude bundle も受け付けます。 +- **Config の変更には Gateway の再起動が必要です。** +- `allow`: 任意の許可リスト(列挙された plugin のみ読み込まれます)。`deny` が優先されます。 +- `plugins.entries..apiKey`: plugin がサポートする場合の plugin レベル API key 簡易フィールド。 +- `plugins.entries..env`: plugin スコープの env var map。 +- `plugins.entries..hooks.allowPromptInjection`: `false` の場合、core は `before_prompt_build` をブロックし、legacy `before_agent_start` の prompt 変更フィールドを無視します。一方で legacy `modelOverride` と `providerOverride` は保持されます。ネイティブ plugin hook と、対応する bundle 提供 hook directory に適用されます。 +- `plugins.entries..subagent.allowModelOverride`: この plugin が background subagent run に対して run ごとの `provider` および `model` 上書きを要求することを明示的 \ No newline at end of file diff --git a/docs/ja-JP/plugins/memory-wiki.md b/docs/ja-JP/plugins/memory-wiki.md new file mode 100644 index 000000000..9d3cf44b7 --- /dev/null +++ b/docs/ja-JP/plugins/memory-wiki.md @@ -0,0 +1,343 @@ +--- +read_when: + - 単なる MEMORY.md ノートを超える永続的な知識が必要な場合 + - バンドルされた memory-wiki plugin を設定している場合 + - wiki_search、wiki_get、または bridge モードを理解したい場合 +summary: 'memory-wiki: 出典、主張、ダッシュボード、bridge モードを備えたコンパイル済みナレッジボールト' +title: Memory Wiki +x-i18n: + generated_at: "2026-04-08T04:42:15Z" + model: gpt-5.4 + provider: openai + source_hash: b78dd6a4ef4451dae6b53197bf0c7c2a2ba846b08e4a3a93c1026366b1598d82 + source_path: plugins/memory-wiki.md + workflow: 15 +--- + +# Memory Wiki + +`memory-wiki` は、永続メモリをコンパイル済みのナレッジボールトに変換するバンドルされた plugin です。 + +これはアクティブな memory plugin を**置き換えるものではありません**。アクティブな memory plugin は引き続き、想起、昇格、インデックス作成、dreaming を担います。`memory-wiki` はその隣に位置し、永続的な知識を、決定論的なページ、構造化された主張、出典、ダッシュボード、機械可読なダイジェストを備えた、たどれる wiki にコンパイルします。 + +メモリを Markdown ファイルの山というより、維持管理された知識レイヤーのように扱いたい場合に使います。 + +## 追加されるもの + +- 決定論的なページレイアウトを持つ専用 wiki ボールト +- 単なる散文ではない、構造化された主張と証拠のメタデータ +- ページ単位の出典、信頼度、矛盾、未解決の疑問 +- agent/runtime コンシューマー向けのコンパイル済みダイジェスト +- wiki ネイティブな search/get/apply/lint ツール +- アクティブな memory plugin から公開アーティファクトを取り込むオプションの bridge モード +- オプションの Obsidian 対応レンダーモードと CLI 統合 + +## メモリとの関係 + +分担は次のように考えるとわかりやすいです。 + +| レイヤー | 担当 | +| ------------------------------------------------------- | ------------------------------------------------------------------------------------------ | +| アクティブな memory plugin (`memory-core`, QMD, Honcho など) | 想起、セマンティック検索、昇格、dreaming、メモリ runtime | +| `memory-wiki` | コンパイル済み wiki ページ、出典が豊富な統合、ダッシュボード、wiki 固有の search/get/apply | + +アクティブな memory plugin が共有想起アーティファクトを公開している場合、OpenClaw は `memory_search corpus=all` で両レイヤーを一度に検索できます。 + +wiki 固有のランキング、出典、またはページへの直接アクセスが必要な場合は、代わりに wiki ネイティブのツールを使ってください。 + +## ボールトモード + +`memory-wiki` は 3 つのボールトモードをサポートします。 + +### `isolated` + +独自のボールト、独自のソース、`memory-core` への依存なし。 + +wiki をそれ自体でキュレートされた知識ストアにしたい場合に使います。 + +### `bridge` + +公開された plugin SDK の継ぎ目を通じて、アクティブな memory plugin から公開メモリアーティファクトと memory event を読み取ります。 + +非公開の plugin 内部実装に踏み込まずに、memory plugin がエクスポートしたアーティファクトを wiki でコンパイルして整理したい場合に使います。 + +bridge モードでは次をインデックスできます。 + +- エクスポートされたメモリアーティファクト +- dream レポート +- daily note +- memory ルートファイル +- memory event ログ + +### `unsafe-local` + +ローカルの非公開パスに対する、同一マシン専用の明示的なエスケープハッチです。 + +このモードは意図的に実験的で、移植性がありません。信頼境界を理解しており、bridge モードでは提供できないローカルファイルシステムアクセスが明確に必要な場合にのみ使ってください。 + +## ボールトレイアウト + +plugin は次のようなボールトを初期化します。 + +```text +/ + AGENTS.md + WIKI.md + index.md + inbox.md + entities/ + concepts/ + syntheses/ + sources/ + reports/ + _attachments/ + _views/ + .openclaw-wiki/ +``` + +管理対象のコンテンツは生成ブロック内に保持されます。人間が書いたノートブロックは保持されます。 + +主なページグループは次のとおりです。 + +- `sources/`: 取り込んだ原資料と bridge に支えられたページ +- `entities/`: 永続的なもの、人、システム、プロジェクト、オブジェクト +- `concepts/`: アイデア、抽象概念、パターン、ポリシー +- `syntheses/`: コンパイル済みの要約と保守されたロールアップ +- `reports/`: 生成されたダッシュボード + +## 構造化された主張と証拠 + +ページには、自由形式のテキストだけでなく、構造化された `claims` frontmatter を持たせることができます。 + +各主張には次を含めることができます。 + +- `id` +- `text` +- `status` +- `confidence` +- `evidence[]` +- `updatedAt` + +証拠エントリには次を含めることができます。 + +- `sourceId` +- `path` +- `lines` +- `weight` +- `note` +- `updatedAt` + +これにより、wiki は受動的なノート置き場というより、信念レイヤーのように振る舞います。主張は追跡、採点、異議申し立て、そしてソースへの解決ができます。 + +## コンパイルパイプライン + +コンパイルステップでは wiki ページを読み取り、要約を正規化し、安定した機械向けアーティファクトを次に出力します。 + +- `.openclaw-wiki/cache/agent-digest.json` +- `.openclaw-wiki/cache/claims.jsonl` + +これらのダイジェストがあることで、agents や runtime コードは Markdown ページをスクレイプしなくて済みます。 + +コンパイル済み出力は、次にも利用されます。 + +- search/get フロー向けの初回 wiki インデックス作成 +- claim id から所有ページへの逆引き +- コンパクトなプロンプト補足 +- レポート/ダッシュボード生成 + +## ダッシュボードとヘルスレポート + +`render.createDashboards` が有効な場合、コンパイルは `reports/` 配下でダッシュボードを維持します。 + +組み込みレポートは次のとおりです。 + +- `reports/open-questions.md` +- `reports/contradictions.md` +- `reports/low-confidence.md` +- `reports/claim-health.md` +- `reports/stale-pages.md` + +これらのレポートは、次のようなものを追跡します。 + +- 矛盾メモのクラスター +- 競合する主張のクラスター +- 構造化された証拠が不足している主張 +- 低信頼度のページと主張 +- 古い、または鮮度不明の情報 +- 未解決の疑問があるページ + +## 検索と取得 + +`memory-wiki` は 2 つの検索バックエンドをサポートします。 + +- `shared`: 利用可能な場合は共有メモリ検索フローを使う +- `local`: wiki をローカルで検索する + +また、3 つの corpus をサポートします。 + +- `wiki` +- `memory` +- `all` + +重要な動作: + +- `wiki_search` と `wiki_get` は、可能な場合はコンパイル済みダイジェストを最初のパスとして使います +- claim id は所有ページへ解決できます +- 異議あり / 古い / 新しい主張がランキングに影響します +- 出典ラベルは結果に引き継がれる場合があります + +実用的なルール: + +- 広く想起したい場合は `memory_search corpus=all` を使う +- wiki 固有のランキング、出典、またはページ単位の信念構造を重視する場合は `wiki_search` + `wiki_get` を使う + +## Agent ツール + +plugin は次のツールを登録します。 + +- `wiki_status` +- `wiki_search` +- `wiki_get` +- `wiki_apply` +- `wiki_lint` + +それぞれの役割: + +- `wiki_status`: 現在のボールトモード、健全性、Obsidian CLI の利用可否 +- `wiki_search`: wiki ページを検索し、設定されていれば共有メモリ corpus も検索する +- `wiki_get`: id/path で wiki ページを読み取り、失敗した場合は共有メモリ corpus にフォールバックする +- `wiki_apply`: 自由形式のページ編集なしで、限定的な統合/メタデータ変更を行う +- `wiki_lint`: 構造チェック、出典の欠落、矛盾、未解決の疑問 + +plugin はさらに、非排他的な memory corpus supplement も登録するため、アクティブな memory plugin が corpus 選択をサポートしていれば、共有の `memory_search` と `memory_get` から wiki にアクセスできます。 + +## プロンプトとコンテキストの動作 + +`context.includeCompiledDigestPrompt` が有効な場合、メモリプロンプトセクションには `agent-digest.json` からのコンパクトなコンパイル済みスナップショットが追加されます。 + +そのスナップショットは意図的に小さく、高シグナルです。 + +- 上位ページのみ +- 上位主張のみ +- 矛盾数 +- 疑問数 +- 信頼度 / 鮮度の修飾子 + +これはプロンプト形状を変えるためオプトインです。主に、メモリ補足を明示的に利用する context engine やレガシーなプロンプト組み立てで役立ちます。 + +## 設定 + +設定は `plugins.entries.memory-wiki.config` に置きます。 + +```json5 +{ + plugins: { + entries: { + "memory-wiki": { + enabled: true, + config: { + vaultMode: "isolated", + vault: { + path: "~/.openclaw/wiki/main", + renderMode: "obsidian", + }, + obsidian: { + enabled: true, + useOfficialCli: true, + vaultName: "OpenClaw Wiki", + openAfterWrites: false, + }, + bridge: { + enabled: false, + readMemoryArtifacts: true, + indexDreamReports: true, + indexDailyNotes: true, + indexMemoryRoot: true, + followMemoryEvents: true, + }, + ingest: { + autoCompile: true, + maxConcurrentJobs: 1, + allowUrlIngest: true, + }, + search: { + backend: "shared", + corpus: "wiki", + }, + context: { + includeCompiledDigestPrompt: false, + }, + render: { + preserveHumanBlocks: true, + createBacklinks: true, + createDashboards: true, + }, + }, + }, + }, + }, +} +``` + +主な切り替え項目: + +- `vaultMode`: `isolated`、`bridge`、`unsafe-local` +- `vault.renderMode`: `native` または `obsidian` +- `bridge.readMemoryArtifacts`: アクティブな memory plugin の公開アーティファクトを取り込む +- `bridge.followMemoryEvents`: bridge モードで event ログを含める +- `search.backend`: `shared` または `local` +- `search.corpus`: `wiki`、`memory`、または `all` +- `context.includeCompiledDigestPrompt`: コンパクトなダイジェストスナップショットをメモリプロンプトセクションに追加する +- `render.createBacklinks`: 決定論的な関連ブロックを生成する +- `render.createDashboards`: ダッシュボードページを生成する + +## CLI + +`memory-wiki` はトップレベルの CLI surface も公開します。 + +```bash +openclaw wiki status +openclaw wiki doctor +openclaw wiki init +openclaw wiki ingest ./notes/alpha.md +openclaw wiki compile +openclaw wiki lint +openclaw wiki search "alpha" +openclaw wiki get entity.alpha +openclaw wiki apply synthesis "Alpha Summary" --body "..." --source-id source.alpha +openclaw wiki bridge import +openclaw wiki obsidian status +``` + +完全なコマンドリファレンスは [CLI: wiki](/cli/wiki) を参照してください。 + +## Obsidian サポート + +`vault.renderMode` が `obsidian` の場合、plugin は Obsidian 対応の Markdown を書き出し、オプションで公式の `obsidian` CLI を使用できます。 + +サポートされるワークフローには次が含まれます。 + +- ステータスの確認 +- ボールト検索 +- ページを開く +- Obsidian コマンドを呼び出す +- daily note に移動する + +これはオプションです。wiki は Obsidian なしでも native モードで引き続き動作します。 + +## 推奨ワークフロー + +1. 想起 / 昇格 / dreaming には既存のアクティブな memory plugin を使い続けます。 +2. `memory-wiki` を有効にします。 +3. bridge モードを明確に必要としない限り、`isolated` モードから始めます。 +4. 出典が重要なときは `wiki_search` / `wiki_get` を使います。 +5. 限定的な統合やメタデータ更新には `wiki_apply` を使います。 +6. 意味のある変更の後には `wiki_lint` を実行します。 +7. 古さや矛盾の可視性が必要ならダッシュボードを有効にします。 + +## 関連ドキュメント + +- [Memory Overview](/ja-JP/concepts/memory) +- [CLI: memory](/cli/memory) +- [CLI: wiki](/cli/wiki) +- [Plugin SDK overview](/ja-JP/plugins/sdk-overview) diff --git a/docs/ja-JP/providers/glm.md b/docs/ja-JP/providers/glm.md index 23b4f4571..732e418cd 100644 --- a/docs/ja-JP/providers/glm.md +++ b/docs/ja-JP/providers/glm.md @@ -1,39 +1,39 @@ --- read_when: - - OpenClawでGLMモデルを使いたい場合 - - モデル命名規則とセットアップが必要な場合 -summary: GLMモデルファミリーの概要とOpenClawでの使い方 -title: GLM Models + - OpenClawでGLMモデルを使いたい + - モデルの命名規則と設定方法が必要 +summary: GLMモデルファミリーの概要と、OpenClawでの使い方 +title: GLMモデル x-i18n: - generated_at: "2026-04-05T12:53:32Z" + generated_at: "2026-04-08T04:41:47Z" model: gpt-5.4 provider: openai - source_hash: 59622edab5094d991987f9788fbf08b33325e737e7ff88632b0c3ac89412d4c7 + source_hash: 79a55acfa139847b4b85dbc09f1068cbd2febb1e49f984a23ea9e3b43bc910eb source_path: providers/glm.md workflow: 15 --- -# GLM Models +# GLMモデル -GLMは、Z.AIプラットフォームで利用できる**モデルファミリー**(企業名ではありません)です。OpenClawでは、GLM -モデルは `zai` providerと、`zai/glm-5` のようなmodel ID経由で利用します。 +GLMは、Z.AIプラットフォームで利用できる**モデルファミリー**(企業ではありません)です。OpenClawでは、GLM +モデルは`zai`プロバイダーと、`zai/glm-5`のようなモデルIDを通じて利用します。 ## CLIセットアップ ```bash -# Generic API-key setup with endpoint auto-detection +# エンドポイント自動検出を使った汎用APIキー設定 openclaw onboard --auth-choice zai-api-key -# Coding Plan Global, recommended for Coding Plan users +# Coding Plan Global。Coding Planユーザーに推奨 openclaw onboard --auth-choice zai-coding-global -# Coding Plan CN (China region), recommended for Coding Plan users +# Coding Plan CN(中国リージョン)。Coding Planユーザーに推奨 openclaw onboard --auth-choice zai-coding-cn # General API openclaw onboard --auth-choice zai-global -# General API CN (China region) +# General API CN(中国リージョン) openclaw onboard --auth-choice zai-cn ``` @@ -42,17 +42,17 @@ openclaw onboard --auth-choice zai-cn ```json5 { env: { ZAI_API_KEY: "sk-..." }, - agents: { defaults: { model: { primary: "zai/glm-5" } } }, + agents: { defaults: { model: { primary: "zai/glm-5.1" } } }, } ``` -`zai-api-key` を使うと、OpenClawはキーから対応するZ.AI endpointを検出し、 -正しいbase URLを自動適用します。特定のCoding Planまたはgeneral API surfaceを -強制したい場合は、明示的なリージョンchoiceを使ってください。 +`zai-api-key`を使うと、OpenClawはキーから対応するZ.AIエンドポイントを検出し、 +正しいベースURLを自動的に適用できます。特定のCoding PlanまたはGeneral APIの利用先を +明示的に固定したい場合は、リージョンを明示した選択肢を使用してください。 -## 現在同梱されているGLMモデル +## 現在バンドルされているGLMモデル -OpenClawは現在、bundled `zai` providerに次のGLM refsを初期投入しています: +OpenClawは現在、バンドルされた`zai`プロバイダーに以下のGLM参照を初期登録しています。 - `glm-5.1` - `glm-5` @@ -70,6 +70,6 @@ OpenClawは現在、bundled `zai` providerに次のGLM refsを初期投入して ## 注意 -- GLMのversionと提供状況は変わることがあるため、最新情報はZ.AIのdocsを確認してください。 -- デフォルトのbundled model refは `zai/glm-5` です。 -- providerの詳細は [/providers/zai](/providers/zai) を参照してください。 +- GLMのバージョンと提供状況は変更されることがあります。最新情報はZ.AIのドキュメントを確認してください。 +- デフォルトでバンドルされているモデル参照は`zai/glm-5.1`です。 +- プロバイダーの詳細は[/providers/zai](/ja-JP/providers/zai)を参照してください。 diff --git a/docs/ja-JP/providers/zai.md b/docs/ja-JP/providers/zai.md index 996139d77..b51ec41cd 100644 --- a/docs/ja-JP/providers/zai.md +++ b/docs/ja-JP/providers/zai.md @@ -1,32 +1,33 @@ --- read_when: - - OpenClawでZ.AI / GLM modelsを使いたいとき - - シンプルな `ZAI_API_KEY` セットアップが必要なとき -summary: OpenClawでZ.AI(GLM models)を使う + - OpenClawでZ.AI / GLMモデルを使いたい + - シンプルなZAI_API_KEYのセットアップが必要 +summary: OpenClawでZ.AI(GLMモデル)を使う title: Z.AI x-i18n: - generated_at: "2026-04-05T12:54:49Z" + generated_at: "2026-04-08T04:41:48Z" model: gpt-5.4 provider: openai - source_hash: 48006cdd580484f0c62e2877b27a6a68d7bc44795b3e97a28213d95182d9acf9 + source_hash: 66cbd9813ee28d202dcae34debab1b0cf9927793acb00743c1c62b48d9e381f9 source_path: providers/zai.md workflow: 15 --- # Z.AI -Z.AIは **GLM** models向けのAPIプラットフォームです。GLM向けREST APIを提供し、認証にはAPI keysを使用します。Z.AI consoleでAPI keyを作成してください。OpenClawは `zai` providerをZ.AI API keyとともに使用します。 +Z.AIは**GLM**モデル向けのAPIプラットフォームです。GLM向けのREST APIを提供し、認証にはAPIキーを使用します。 +APIキーはZ.AIコンソールで作成してください。OpenClawは、Z.AI APIキーとともに`zai`プロバイダーを使用します。 ## CLIセットアップ ```bash -# endpoint自動検出付きの汎用API-keyセットアップ +# エンドポイント自動検出を使った汎用APIキー設定 openclaw onboard --auth-choice zai-api-key -# Coding Plan Global。Coding Plan利用者向けの推奨 +# Coding Plan Global、Coding Planユーザーに推奨 openclaw onboard --auth-choice zai-coding-global -# Coding Plan CN(中国リージョン)。Coding Plan利用者向けの推奨 +# Coding Plan CN(中国リージョン)、Coding Planユーザーに推奨 openclaw onboard --auth-choice zai-coding-cn # General API @@ -36,22 +37,22 @@ openclaw onboard --auth-choice zai-global openclaw onboard --auth-choice zai-cn ``` -## Config snippet +## 設定スニペット ```json5 { env: { ZAI_API_KEY: "sk-..." }, - agents: { defaults: { model: { primary: "zai/glm-5" } } }, + agents: { defaults: { model: { primary: "zai/glm-5.1" } } }, } ``` -`zai-api-key` を使うと、OpenClawはkeyから一致するZ.AI endpointを検出し、 -正しいbase URLを自動的に適用できます。特定のCoding Planまたはgeneral API surfaceを -強制したい場合は、明示的なリージョン選択を使ってください。 +`zai-api-key`を使うと、OpenClawはキーから対応するZ.AIエンドポイントを検出し、 +正しいベースURLを自動的に適用できます。特定のCoding PlanまたはGeneral APIサーフェスを +強制したい場合は、明示的なリージョン選択を使用してください。 -## Bundled GLM catalog +## バンドル済みGLMカタログ -OpenClawは現在、bundledの `zai` providerを次で初期化します。 +OpenClawは現在、バンドル済みの`zai`プロバイダーに次をシードしています。 - `glm-5.1` - `glm-5` @@ -67,14 +68,14 @@ OpenClawは現在、bundledの `zai` providerを次で初期化します。 - `glm-4.5-flash` - `glm-4.5v` -## 注 +## 注意 -- GLM modelsは `zai/` として利用できます(例: `zai/glm-5`)。 -- デフォルトのbundled model ref: `zai/glm-5` -- 未知の `glm-5*` idも、idが現在のGLM-5 family形状に一致する場合は - `glm-4.7` templateからprovider所有metadataを合成することで、 - bundled provider path上でforward-resolveされます。 -- Z.AIのtool-call streamingでは、`tool_stream` はデフォルトで有効です。無効にするには - `agents.defaults.models["zai/"].params.tool_stream` を `false` に設定してください。 -- model familyの概要は [/providers/glm](/providers/glm) を参照してください。 -- Z.AIは、API keyを使ったBearer authを使用します。 +- GLMモデルは`zai/`として利用できます(例: `zai/glm-5`)。 +- デフォルトのバンドル済みモデル参照: `zai/glm-5.1` +- 不明な`glm-5*` IDも、IDが現在のGLM-5ファミリーの形式に一致する場合、 + `glm-4.7`テンプレートからプロバイダー所有のメタデータを合成することで、 + バンドル済みプロバイダーパス上で引き続き解決されます。 +- Z.AIのツールコールストリーミングでは、`tool_stream`がデフォルトで有効です。無効にするには、 + `agents.defaults.models["zai/"].params.tool_stream`を`false`に設定してください。 +- モデルファミリーの概要は[/providers/glm](/ja-JP/providers/glm)を参照してください。 +- Z.AIは、APIキーを使ったBearer認証を使用します。 diff --git a/docs/ja-JP/refactor/qa.md b/docs/ja-JP/refactor/qa.md index c9e9e1243..fedd1ae6b 100644 --- a/docs/ja-JP/refactor/qa.md +++ b/docs/ja-JP/refactor/qa.md @@ -1,137 +1,137 @@ --- x-i18n: - generated_at: "2026-04-08T02:19:22Z" + generated_at: "2026-04-08T04:42:35Z" model: gpt-5.4 provider: openai - source_hash: 0e156cc8e2fe946a0423862f937754a7caa1fe7e6863b50a80bff49a1c86e1e8 + source_hash: 4a9066b2a939c5a9ba69141d75405f0e8097997b523164340e2f0e9a0d5060dd source_path: refactor/qa.md workflow: 15 --- -# QAリファクタリング +# QA リファクタリング -ステータス: 基盤となる移行は完了しました。 +ステータス: 基盤となる移行は着地済み。 ## 目標 -OpenClawのQAを分割定義モデルから単一の信頼できる情報源へ移行します: +OpenClaw QA を分割定義モデルから単一の信頼できる情報源へ移行する: - シナリオメタデータ - モデルに送信されるプロンプト -- セットアップとクリーンアップ +- セットアップとティアダウン - ハーネスロジック - アサーションと成功条件 - アーティファクトとレポートのヒント -目指す最終状態は、TypeScriptに大半の動作をハードコードするのではなく、 -強力なシナリオ定義ファイルを読み込む汎用QAハーネスです。 +望ましい最終状態は、TypeScript にほとんどの動作をハードコードするのではなく、強力なシナリオ定義ファイルを読み込む汎用 QA ハーネスです。 ## 現在の状態 -現在の主要な信頼できる情報源は `qa/scenarios.md` にあります。 +現在の主要な信頼できる情報源は `qa/scenarios/index.md` と、`qa/scenarios/*.md` 配下のシナリオごとの 1 ファイルにあります。 実装済み: -- `qa/scenarios.md` - - 正規のQAパック - - operator identity +- `qa/scenarios/index.md` + - 正式な QA パックメタデータ + - オペレーター ID - キックオフミッション +- `qa/scenarios/*.md` + - シナリオごとに 1 つの markdown ファイル - シナリオメタデータ - ハンドラーバインディング + - シナリオ固有の実行設定 - `extensions/qa-lab/src/scenario-catalog.ts` - - Markdownパックパーサー + zod検証 + - markdown パックパーサー + zod バリデーション - `extensions/qa-lab/src/qa-agent-bootstrap.ts` - - Markdownパックからのプラン描画 + - markdown パックからのプラン描画 - `extensions/qa-lab/src/qa-agent-workspace.ts` - - 互換ファイルと `QA_SCENARIOS.md` を生成するシード + - 互換性ファイル群に加えて `QA_SCENARIOS.md` を生成して配置 - `extensions/qa-lab/src/suite.ts` - - Markdownで定義されたハンドラーバインディングを通じて実行可能なシナリオを選択 -- QAバスプロトコル + UI - - 画像/動画/音声/ファイル表示向けの汎用インライン添付ファイル + - markdown 定義のハンドラーバインディングを通じて実行可能なシナリオを選択 +- QA バスプロトコル + UI + - 画像/動画/音声/ファイル描画用の汎用インライン添付ファイル -残っている分割サーフェス: +分割されたまま残っている面: - `extensions/qa-lab/src/suite.ts` - - 依然として実行可能なカスタムハンドラーロジックの大半を所有 + - 依然として実行可能なカスタムハンドラーロジックの大半を保持 - `extensions/qa-lab/src/report.ts` - - 依然としてランタイム出力からレポート構造を導出 + - 依然として実行時出力からレポート構造を導出 -そのため、信頼できる情報源の分割は修正されましたが、実行は依然として完全に宣言的というより、 -主にハンドラーバックです。 +つまり、信頼できる情報源の分割は修正されたものの、実行はまだ完全な宣言型ではなく、主にハンドラーバックのままです。 -## 実際のシナリオサーフェスの姿 +## 実際のシナリオ面はどう見えるか -現在のsuiteを読むと、いくつかの異なるシナリオクラスがあります。 +現在のスイートを読むと、いくつかの異なるシナリオクラスが見えてきます。 -### 単純なインタラクション +### シンプルなインタラクション - チャネルベースライン -- DMベースライン +- DM ベースライン - スレッド化されたフォローアップ - モデル切り替え -- 承認の完遂 -- reaction/edit/delete +- 承認の継続実行 +- リアクション/編集/削除 ### 設定とランタイムの変更 -- config patch によるskill無効化 -- config apply による再起動ウェイクアップ -- config再起動による機能切り替え -- ランタイムインベントリ差分チェック +- 設定パッチによる Skill 無効化 +- 設定適用後の再起動ウェイクアップ +- 再起動時の設定機能切り替え +- ランタイムインベントリドリフトチェック ### ファイルシステムとリポジトリアサーション -- ソース/ドキュメント探索レポート -- Lobster Invaders のビルド +- ソース/ドキュメント検出レポート +- Lobster Invaders をビルド - 生成画像アーティファクトの検索 ### メモリオーケストレーション -- メモリ再呼び出し +- メモリリコール - チャネルコンテキストでのメモリツール - メモリ失敗フォールバック - セッションメモリランキング - スレッドメモリ分離 -- メモリdreaming sweep +- メモリ dreaming sweep -### ツールとプラグイン統合 +### ツールと plugin 連携 - MCP plugin-tools 呼び出し -- skill可視性 -- skillホットインストール +- Skill の可視性 +- Skill のホットインストール - ネイティブ画像生成 - 画像ラウンドトリップ - 添付ファイルからの画像理解 ### マルチターンとマルチアクター -- subagent handoff -- subagent fanout synthesis -- 再起動復旧スタイルのフロー +- サブエージェントのハンドオフ +- サブエージェントのファンアウト統合 +- 再起動リカバリ系フロー -これらのカテゴリはDSL要件を左右するため重要です。プロンプト + 期待テキストの -フラットな一覧だけでは不十分です。 +これらのカテゴリは DSL 要件を左右するため重要です。プロンプト + 期待されるテキストの単純な一覧だけでは不十分です。 ## 方向性 ### 単一の信頼できる情報源 -作成対象の信頼できる情報源として `qa/scenarios.md` を使います。 +`qa/scenarios/index.md` と `qa/scenarios/*.md` を、作成時の信頼できる情報源として使います。 -このパックは次の状態を維持する必要があります: +パックは次を維持するべきです: -- レビューで人間が読みやすい -- 機械が解析できる -- 次を駆動できるだけの十分な情報量がある: - - suite実行 - - QA workspaceブートストラップ - - QA Lab UIメタデータ - - ドキュメント/探索プロンプト +- レビューで人が読みやすい +- 機械解析可能 +- 次を駆動できるだけの豊かさを持つ: + - スイート実行 + - QA ワークスペースのブートストラップ + - QA Lab UI メタデータ + - ドキュメント/検出プロンプト - レポート生成 -### 推奨する作成形式 +### 推奨する記述フォーマット -トップレベル形式としてMarkdownを使い、その中に構造化YAMLを入れます。 +トップレベルのフォーマットとして markdown を使い、その中に構造化 YAML を入れます。 推奨形状: @@ -144,11 +144,11 @@ OpenClawのQAを分割定義モデルから単一の信頼できる情報源へ - code refs - model/provider overrides - prerequisites -- 散文セクション +- 説明文セクション - objective - notes - debugging hints -- フェンス付きYAMLブロック +- フェンス付き YAML ブロック - setup - steps - assertions @@ -156,13 +156,13 @@ OpenClawのQAを分割定義モデルから単一の信頼できる情報源へ これにより次が得られます: -- 巨大なJSONより優れたPR可読性 -- 純粋なYAMLより豊かなコンテキスト -- 厳密な解析とzod検証 +- 巨大な JSON よりも優れた PR 可読性 +- 純粋な YAML よりも豊かなコンテキスト +- 厳密なパースと zod バリデーション -生のJSONは、中間生成形式としてのみ許容されます。 +生の JSON は、中間的な生成形式としてのみ許容されます。 -## 提案するシナリオファイル形状 +## 提案されるシナリオファイル形状 例: @@ -187,7 +187,7 @@ codeRefs: # Objective -Verify generated media is reattached on the follow-up turn. +生成されたメディアがフォローアップターンで再添付されることを確認する。 # Setup @@ -208,7 +208,7 @@ Verify generated media is reattached on the follow-up turn. - action: agent.send session: agent:qa:image-roundtrip message: | - Image generation check: generate a QA lighthouse image and summarize it in one short sentence. + 画像生成チェック: QA 用の灯台画像を生成し、それを 1 文の短い文で要約してください。 - action: artifact.capture kind: generated-image promptSnippet: Image generation check @@ -216,7 +216,7 @@ Verify generated media is reattached on the follow-up turn. - action: agent.send session: agent:qa:image-roundtrip message: | - Roundtrip image inspection check: describe the generated lighthouse attachment in one short sentence. + ラウンドトリップ画像検査チェック: 生成された灯台の添付画像を 1 文の短い文で説明してください。 attachments: - fromArtifact: lighthouseImage ``` @@ -235,9 +235,9 @@ Verify generated media is reattached on the follow-up turn. ``` ```` -## DSLがカバーすべきランナー機能 +## DSL がカバーすべきランナー機能 -現在のsuiteに基づくと、汎用ランナーはプロンプト実行以上のものを必要とします。 +現在のスイートに基づくと、汎用ランナーにはプロンプト実行以上のものが必要です。 ### 環境およびセットアップアクション @@ -248,7 +248,7 @@ Verify generated media is reattached on the follow-up turn. - `thread.create` - `workspace.writeSkill` -### agentターンアクション +### エージェントターンアクション - `agent.send` - `agent.wait` @@ -273,7 +273,7 @@ Verify generated media is reattached on the follow-up turn. - `artifact.captureGeneratedImage` - `artifact.capturePath` -### メモリおよびcronアクション +### メモリおよび cron アクション - `memory.indexForce` - `memory.searchCli` @@ -283,7 +283,7 @@ Verify generated media is reattached on the follow-up turn. - `cron.waitCompletion` - `sessionTranscript.write` -### MCPアクション +### MCP アクション - `mcp.callTool` @@ -305,134 +305,135 @@ Verify generated media is reattached on the follow-up turn. ## 変数とアーティファクト参照 -DSLは、保存された出力とその後の参照をサポートする必要があります。 +DSL は、保存された出力と後続参照をサポートする必要があります。 -現在のsuiteからの例: +現在のスイートの例: - スレッドを作成し、その後 `threadId` を再利用する - セッションを作成し、その後 `sessionKey` を再利用する - 画像を生成し、次のターンでそのファイルを添付する -- wake marker文字列を生成し、それが後で現れることをアサートする +- ウェイクマーカー文字列を生成し、それが後で現れることをアサートする 必要な機能: - `saveAs` - `${vars.name}` - `${artifacts.name}` -- パス、セッションキー、thread id、marker、ツール出力向けの型付き参照 +- パス、セッションキー、スレッド ID、マーカー、ツール出力の型付き参照 -変数サポートがなければ、ハーネスはシナリオロジックをTypeScriptへ逆流させ続けます。 +変数サポートがなければ、ハーネスはシナリオロジックを TypeScript に逆流させ続けることになります。 ## エスケープハッチとして残すべきもの -フェーズ1で完全に純粋な宣言的ランナーを実現するのは現実的ではありません。 +フェーズ 1 で完全に純粋な宣言型ランナーを実現するのは現実的ではありません。 一部のシナリオは本質的にオーケストレーション負荷が高いです: -- メモリdreaming sweep -- config apply による再起動ウェイクアップ -- config再起動による機能切り替え +- memory dreaming sweep +- 設定適用後の再起動ウェイクアップ +- 再起動時の設定機能切り替え - タイムスタンプ/パスによる生成画像アーティファクト解決 - discovery-report 評価 -これらは当面、明示的なカスタムハンドラーを使うべきです。 +これらは、当面は明示的なカスタムハンドラーを使うべきです。 推奨ルール: -- 85〜90%は宣言的 +- 85-90% は宣言型 - 残りの難しい部分には明示的な `customHandler` ステップ -- カスタムハンドラーは名前付きかつ文書化されたもののみ -- シナリオファイル内に匿名インラインコードは置かない +- 名前付きで文書化されたカスタムハンドラーのみ +- シナリオファイル内に匿名のインラインコードは禁止 -これにより、汎用エンジンをクリーンに保ちながら進展も可能になります。 +これにより、進捗を維持しつつ汎用エンジンをクリーンに保てます。 ## アーキテクチャ変更 ### 現在 -シナリオMarkdownはすでに次の信頼できる情報源です: +シナリオ markdown はすでに次の信頼できる情報源です: -- suite実行 -- workspaceブートストラップファイル -- QA Lab UIシナリオカタログ +- スイート実行 +- ワークスペースブートストラップファイル +- QA Lab UI シナリオカタログ - レポートメタデータ -- 探索プロンプト +- discovery prompts -生成される互換性: +生成される互換性要素: -- シード済みworkspaceには依然として `QA_KICKOFF_TASK.md` が含まれる -- シード済みworkspaceには依然として `QA_SCENARIO_PLAN.md` が含まれる -- シード済みworkspaceには現在 `QA_SCENARIOS.md` も含まれる +- シードされたワークスペースには依然として `QA_KICKOFF_TASK.md` が含まれる +- シードされたワークスペースには依然として `QA_SCENARIO_PLAN.md` が含まれる +- シードされたワークスペースには теперь `QA_SCENARIOS.md` も含まれる ## リファクタリング計画 -### フェーズ1: ローダーとスキーマ +### フェーズ 1: ローダーとスキーマ 完了。 -- `qa/scenarios.md` を追加 -- 名前付きMarkdown YAMLパック内容向けパーサーを追加 -- zodで検証 -- 利用側を解析済みパックへ切り替え +- `qa/scenarios/index.md` を追加 +- シナリオを `qa/scenarios/*.md` に分割 +- 名前付き markdown YAML パック内容用のパーサーを追加 +- zod でバリデーション +- パース済みパックを使うようコンシューマーを切り替え - リポジトリレベルの `qa/seed-scenarios.json` と `qa/QA_KICKOFF_TASK.md` を削除 -### フェーズ2: 汎用エンジン +### フェーズ 2: 汎用エンジン -- `extensions/qa-lab/src/suite.ts` を次のように分割: - - ローダー - - エンジン - - アクションレジストリ - - アサーションレジストリ - - カスタムハンドラー +- `extensions/qa-lab/src/suite.ts` を次に分割: + - loader + - engine + - action registry + - assertion registry + - custom handlers - 既存のヘルパー関数はエンジン操作として維持 成果物: -- エンジンが単純な宣言的シナリオを実行する +- エンジンがシンプルな宣言型シナリオを実行する -まずは、主にプロンプト + 待機 + アサートで構成されるシナリオから始めます: +まずは主に prompt + wait + assert で構成されるシナリオから始める: - スレッド化されたフォローアップ - 添付ファイルからの画像理解 -- skill可視性と呼び出し +- Skill の可視性と呼び出し - チャネルベースライン 成果物: -- 汎用エンジン経由で提供される、最初の実際のMarkdown定義シナリオ +- 汎用エンジン経由で出荷される、最初の実際の markdown 定義シナリオ -### フェーズ4: 中程度のシナリオを移行 +### フェーズ 4: 中程度のシナリオを移行 - 画像生成ラウンドトリップ - チャネルコンテキストでのメモリツール - セッションメモリランキング -- subagent handoff -- subagent fanout synthesis +- サブエージェントのハンドオフ +- サブエージェントのファンアウト統合 成果物: -- 変数、アーティファクト、ツールアサーション、request-logアサーションが実証される +- 変数、アーティファクト、ツールアサーション、request-log アサーションが実証される -### フェーズ5: 難しいシナリオはカスタムハンドラーのまま維持 +### フェーズ 5: 難しいシナリオはカスタムハンドラーに残す -- メモリdreaming sweep -- config apply による再起動ウェイクアップ -- config再起動による機能切り替え -- ランタイムインベントリ差分 +- memory dreaming sweep +- 設定適用後の再起動ウェイクアップ +- 再起動時の設定機能切り替え +- ランタイムインベントリドリフト 成果物: -- 同じ作成形式だが、必要に応じて明示的なカスタムステップブロックを使用 +- 同じ記述フォーマットだが、必要な箇所に明示的な custom-step ブロックを使う -### フェーズ6: ハードコードされたシナリオマップを削除 +### フェーズ 6: ハードコードされたシナリオマップを削除 パックのカバレッジが十分になったら: -- `extensions/qa-lab/src/suite.ts` から、シナリオ固有のTypeScript分岐の大半を削除 +- `extensions/qa-lab/src/suite.ts` からシナリオ固有の TypeScript 分岐の大半を削除 ## Fake Slack / リッチメディア対応 -現在のQAバスはテキスト優先です。 +現在の QA バスは text-first です。 関連ファイル: @@ -442,17 +443,17 @@ DSLは、保存された出力とその後の参照をサポートする必要 - `extensions/qa-lab/src/bus-server.ts` - `extensions/qa-lab/web/src/ui-render.ts` -現在のQAバスがサポートしているもの: +今日の QA バスが対応しているもの: - テキスト -- reaction -- thread +- リアクション +- スレッド -まだインラインメディア添付はモデル化していません。 +まだインラインメディア添付ファイルはモデル化されていません。 -### 必要な転送コントラクト +### 必要なトランスポート契約 -汎用QAバス添付モデルを追加します: +汎用的な QA バス添付ファイルモデルを追加します: ```ts type QaBusAttachment = { @@ -471,67 +472,67 @@ type QaBusAttachment = { }; ``` -その後、次に `attachments?: QaBusAttachment[]` を追加します: +そのうえで `attachments?: QaBusAttachment[]` を次に追加します: - `QaBusMessage` - `QaBusInboundMessageInput` - `QaBusOutboundMessageInput` -### なぜ最初に汎用化するのか +### なぜまず汎用化なのか -Slack専用のメディアモデルを作らないでください。 +Slack 専用のメディアモデルを作らないでください。 代わりに: -- 1つの汎用QA転送モデル +- 1 つの汎用 QA トランスポートモデル - その上に複数のレンダラー - - 現在のQA Labチャット - - 将来のfake Slack web - - その他のfake転送ビュー + - 現在の QA Lab チャット + - 将来の fake Slack web + - その他の fake transport views -これによりロジックの重複を防ぎ、メディアシナリオを転送非依存に保てます。 +これによりロジックの重複を防ぎ、メディアシナリオをトランスポート非依存に保てます。 -### 必要なUI作業 +### 必要な UI 作業 -QA UIを更新して次を描画します: +QA UI を更新して次を描画します: - インライン画像プレビュー - インライン音声プレーヤー - インライン動画プレーヤー - ファイル添付チップ -現在のUIはすでにthreadとreactionを描画できるため、添付描画は同じメッセージカードモデルの上に重ねられるはずです。 +現在の UI はすでにスレッドとリアクションを描画できるため、添付ファイル描画は同じメッセージカードモデルに積み重ねられるはずです。 -### メディア転送によって可能になるシナリオ作業 +### メディアトランスポートによって可能になるシナリオ作業 -添付ファイルがQAバスを通って流れるようになれば、より豊かなfake-chatシナリオを追加できます: +添付ファイルが QA バスを流れるようになれば、より豊かな fake-chat シナリオを追加できます: -- fake Slackでのインライン画像返信 -- 音声添付理解 -- 動画添付理解 -- 混在する添付順序 +- fake Slack でのインライン画像返信 +- 音声添付ファイルの理解 +- 動画添付ファイルの理解 +- 混在添付ファイルの順序 - メディアを保持したスレッド返信 -## 推奨 +## 推奨事項 -次の実装チャンクは次の順にするべきです: +次の実装チャンクは、次にするべきです: -1. Markdownシナリオローダー + zodスキーマを追加 -2. Markdownから現在のカタログを生成 -3. まずいくつかの単純なシナリオを移行 -4. 汎用QAバス添付サポートを追加 -5. QA UIでインライン画像を描画 +1. markdown シナリオローダー + zod スキーマを追加 +2. markdown から現在のカタログを生成 +3. まずいくつかのシンプルなシナリオを移行 +4. 汎用 QA バス添付ファイル対応を追加 +5. QA UI でインライン画像を描画 6. その後、音声と動画へ拡張 これは、両方の目標を実証する最小の道筋です: -- 汎用のMarkdown定義QA -- より豊かなfakeメッセージングサーフェス +- 汎用的な markdown 定義 QA +- より豊かな fake messaging surfaces ## 未解決の質問 -- シナリオファイルで、変数補間付きの埋め込みMarkdownプロンプトテンプレートを許可するべきか -- setup/cleanup は名前付きセクションにするべきか、それとも単なる順序付きアクション一覧にするべきか -- アーティファクト参照はスキーマで強く型付けするべきか、それとも文字列ベースにするべきか -- カスタムハンドラーは1つのレジストリに置くべきか、それともサーフェスごとのレジストリにするべきか -- 移行中、生成されるJSON互換ファイルを引き続きチェックインしておくべきか +- シナリオファイルで、変数補間付きの埋め込み markdown プロンプトテンプレートを許可するかどうか +- setup/cleanup を名前付きセクションにするか、単なる順序付きアクションリストにするか +- アーティファクト参照をスキーマ上で強く型付けするか、文字列ベースにするか +- カスタムハンドラーを 1 つのレジストリに置くか、surface ごとのレジストリにするか +- 移行期間中、生成される JSON 互換性ファイルを引き続きチェックインしておくべきかどうか