| レイヤー | 例 | 意味 |
|---|---|---|
| Provider | openai, anthropic, openai-codex | OpenClawがどのように認証し、モデルを検出し、model refに名前を付けるか。 |
| Model | gpt-5.5, claude-opus-4-6 | agentターンに選択されたモデル。 |
| Agent runtime | pi, codex, ACP-backed runtimes | 準備済みターンを実行する低レベルループ。 |
| Channel | Telegram, Discord, Slack, WhatsApp | メッセージがOpenClawに入出力される場所。 |
codex runtimeを実装します。互換性のためconfigキー名は引き続きembeddedHarnessですが、ユーザー向けドキュメントやstatus出力では、通常はruntimeと表記すべきです。
一般的なCodexセットアップでは、openai providerとcodex runtimeを使用します。
Runtime ownership
runtimeごとに、ループのどこまでを担当するかは異なります。| Surface | OpenClaw Pi embedded | Codex app-server |
|---|---|---|
| モデルループの所有者 | PI embedded runnerを通したOpenClaw | Codex app-server |
| 正式なスレッド状態 | OpenClaw transcript | Codex thread、およびOpenClaw transcript mirror |
| OpenClaw dynamic tools | ネイティブなOpenClawツールループ | Codex adapterを介してブリッジ |
| ネイティブshellおよびfile tools | Pi/OpenClaw経路 | Codexネイティブtools。サポートされる場合はnative hooks経由でブリッジ |
| コンテキストエンジン | ネイティブなOpenClawコンテキスト組み立て | OpenClawがプロジェクト化したコンテキストをCodexターンに組み立て |
| Compaction | OpenClawまたは選択されたコンテキストエンジン | CodexネイティブCompaction。OpenClaw通知とmirror維持付き |
| Channel配信 | OpenClaw | OpenClaw |
- OpenClawがsurfaceを所有している場合、OpenClawは通常のplugin hook動作を提供できます。
- ネイティブruntimeがsurfaceを所有している場合、OpenClawにはruntime eventsまたはnative hooksが必要です。
- ネイティブruntimeが正式なスレッド状態を所有している場合、OpenClawはmirrorとコンテキスト投影を行うべきであり、未サポートの内部実装を書き換えるべきではありません。
Runtime selection
OpenClawは、providerとmodelの解決後に埋め込みruntimeを選択します。- セッションに記録されたruntimeが優先されます。config変更によって、既存transcriptを別のネイティブthread systemへホットスイッチすることはありません。
OPENCLAW_AGENT_RUNTIME=<id>は、新規またはリセットされたセッションに対してそのruntimeを強制します。agents.defaults.embeddedHarness.runtimeまたはagents.list[].embeddedHarness.runtimeで、auto、pi、またはcodexのような登録済みruntime idを設定できます。autoモードでは、登録済みplugin runtimeが対応するprovider/modelの組み合わせを引き受けることができます。autoモードでどのruntimeもターンを引き受けず、fallback: "pi"が設定されている場合(デフォルト)、OpenClawは互換性フォールバックとしてPiを使用します。未一致のautoモード選択を失敗させたい場合は、fallback: "none"を設定してください。
runtime: "codex"は、同じ上書きスコープでfallback: "pi"を設定しない限り、Codexまたは明確な選択エラーを意味します。runtime overrideはより広いfallback設定を継承しないため、agentレベルのruntime: "codex"が、defaultsでfallback: "pi"を使っていたからといって、暗黙にPiへ戻されることはありません。
Compatibility contract
runtimeがPiでない場合、そのruntimeは、どのOpenClaw surfaceをサポートするかを文書化すべきです。runtimeドキュメントには次の形式を使用してください。| 問い | 重要である理由 |
|---|---|
| 誰がモデルループを所有するか | リトライ、ツール継続、最終回答の判断がどこで行われるかを決定します。 |
| 誰が正式なスレッド履歴を所有するか | OpenClawが履歴を編集できるのか、mirrorしかできないのかを決定します。 |
| OpenClaw dynamic toolsは動作するか | メッセージング、セッション、Cron、およびOpenClaw所有toolsはこれに依存します。 |
| dynamic tool hooksは動作するか | pluginは、OpenClaw所有toolsの周囲でbefore_tool_call、after_tool_call、middlewareを期待します。 |
| native tool hooksは動作するか | shell、patch、runtime所有toolsには、ポリシーと観測のためnative hookサポートが必要です。 |
| コンテキストエンジンのライフサイクルは動作するか | メモリとコンテキストpluginは、assemble、ingest、after-turn、Compactionライフサイクルに依存します。 |
| どのCompactionデータが公開されるか | pluginによっては通知だけで十分ですが、保持/破棄メタデータが必要なものもあります。 |
| 意図的に未サポートなものは何か | ネイティブruntimeがより多くの状態を所有する場合、ユーザーはPi同等と想定すべきではありません。 |
Status labels
status出力にはExecutionとRuntimeの両方のラベルが表示されることがあります。これらはprovider名ではなく診断情報として読んでください。
openai/gpt-5.5のようなmodel refは、選択されたprovider/modelを示します。codexのようなruntime idは、どのループがそのターンを実行しているかを示します。- TelegramやDiscordのようなchannel labelは、会話がどこで行われているかを示します。
/newで新しいセッションを開始するか、/resetで現在のセッションをクリアしてください。既存セッションは記録されたruntimeを保持するため、1つのtranscriptが互換性のない2つのネイティブsession systemを通して再生されることはありません。