Stop heartbeat tool turns from asking for HEARTBEAT_OK (#76338)

* fix heartbeat tool prompt sentinel

* fix: remove agent runtime fallback config
This commit is contained in:
pashpashpash
2026-05-02 21:46:26 -07:00
committed by GitHub
parent 775c27433f
commit 8f4eaa9c00
58 changed files with 603 additions and 595 deletions

View File

@@ -98,7 +98,6 @@ Computer Use available before a thread starts:
model: "openai/gpt-5.5",
agentRuntime: {
id: "codex",
fallback: "none",
},
},
},

View File

@@ -61,7 +61,6 @@ Then enable the bundled `codex` plugin and force the Codex runtime:
model: "openai/gpt-5.5",
agentRuntime: {
id: "codex",
fallback: "none",
},
},
},
@@ -305,7 +304,6 @@ adds a separate Codex agent:
defaults: {
agentRuntime: {
id: "auto",
fallback: "pi",
},
},
list: [
@@ -358,8 +356,8 @@ routing.
## Codex-only deployments
Force the Codex harness when you need to prove that every embedded agent turn
uses Codex. Explicit plugin runtimes default to no PI fallback, so
`fallback: "none"` is optional but often useful as documentation:
uses Codex. Explicit plugin runtimes fail closed and are never silently retried
through PI:
```json5
{
@@ -368,7 +366,6 @@ uses Codex. Explicit plugin runtimes default to no PI fallback, so
model: "openai/gpt-5.5",
agentRuntime: {
id: "codex",
fallback: "none",
},
},
},
@@ -382,9 +379,7 @@ OPENCLAW_AGENT_RUNTIME=codex openclaw gateway run
```
With Codex forced, OpenClaw fails early if the Codex plugin is disabled, the
app-server is too old, or the app-server cannot start. Set
`OPENCLAW_AGENT_HARNESS_FALLBACK=pi` only if you intentionally want PI to handle
missing harness selection.
app-server is too old, or the app-server cannot start.
## Per-agent Codex
@@ -397,7 +392,6 @@ auto-selection:
defaults: {
agentRuntime: {
id: "auto",
fallback: "pi",
},
},
list: [
@@ -412,7 +406,6 @@ auto-selection:
model: "openai/gpt-5.5",
agentRuntime: {
id: "codex",
fallback: "none",
},
},
],
@@ -711,7 +704,6 @@ Minimal config:
model: "openai/gpt-5.5",
agentRuntime: {
id: "codex",
fallback: "none",
},
},
},
@@ -1059,9 +1051,8 @@ new configs. Select an `openai/gpt-*` model with
**OpenClaw uses PI instead of Codex:** `agentRuntime.id: "auto"` can still use PI as the
compatibility backend when no Codex harness claims the run. Set
`agentRuntime.id: "codex"` to force Codex selection while testing. A
forced Codex runtime now fails instead of falling back to PI unless you
explicitly set `agentRuntime.fallback: "pi"`. Once Codex app-server is
selected, its failures surface directly without extra fallback config.
forced Codex runtime fails instead of falling back to PI. Once Codex app-server
is selected, its failures surface directly.
**The app-server is rejected:** upgrade Codex so the app-server handshake
reports version `0.125.0` or newer. Same-version prereleases or build-suffixed

View File

@@ -201,25 +201,20 @@ model refs remain compatibility aliases for the native harness.
When this mode runs, Codex owns the native thread id, resume behavior,
compaction, and app-server execution. OpenClaw still owns the chat channel,
visible transcript mirror, tool policy, approvals, media delivery, and session
selection. Use `agentRuntime.id: "codex"` without a `fallback` override
when you need to prove that only the Codex app-server path can claim the run.
Explicit plugin runtimes already fail closed by default. Set `fallback: "pi"`
only when you intentionally want PI to handle missing harness selection. Codex
app-server failures already fail directly instead of retrying through PI.
selection. Use `agentRuntime.id: "codex"` when you need to prove that only the
Codex app-server path can claim the run. Explicit plugin runtimes fail closed;
Codex app-server selection failures and runtime failures are not retried through
PI.
## Disable PI fallback
## Runtime strictness
By default, OpenClaw runs embedded agents with `agents.defaults.agentRuntime`
set to `{ id: "auto", fallback: "pi" }`. In `auto` mode, registered plugin
harnesses can claim a provider/model pair. If none match, OpenClaw falls back
to PI.
In `auto` mode, set `fallback: "none"` when you need missing plugin harness
selection to fail instead of using PI. Explicit plugin runtimes such as
`agentRuntime.id: "codex"` already fail closed by default, unless
`fallback: "pi"` is set in the same config or environment override scope.
Selected plugin harness failures always fail hard. This does not block an
explicit `agentRuntime.id: "pi"` or `OPENCLAW_AGENT_RUNTIME=pi`.
By default, OpenClaw runs embedded agents with OpenClaw Pi. In `auto` mode,
registered plugin harnesses can claim a provider/model pair, and PI handles the
turn when none match. Use an explicit plugin runtime such as
`agentRuntime.id: "codex"` when missing harness selection should fail instead
of routing through PI. Selected plugin harness failures always fail hard. This
does not block an explicit `agentRuntime.id: "pi"` or
`OPENCLAW_AGENT_RUNTIME=pi`.
For Codex-only embedded runs:
@@ -236,17 +231,15 @@ For Codex-only embedded runs:
}
```
If you want any registered plugin harness to claim matching models but never
want OpenClaw to silently fall back to PI, keep `runtime: "auto"` and disable
the fallback:
If you want any registered plugin harness to claim matching models and otherwise
use PI, set `id: "auto"`:
```json
{
"agents": {
"defaults": {
"agentRuntime": {
"id": "auto",
"fallback": "none"
"id": "auto"
}
}
}
@@ -259,39 +252,30 @@ Per-agent overrides use the same shape:
{
"agents": {
"defaults": {
"agentRuntime": {
"id": "auto",
"fallback": "pi"
}
"agentRuntime": { "id": "auto" }
},
"list": [
{
"id": "codex-only",
"model": "openai/gpt-5.5",
"agentRuntime": {
"id": "codex",
"fallback": "none"
}
"agentRuntime": { "id": "codex" }
}
]
}
}
```
`OPENCLAW_AGENT_RUNTIME` still overrides the configured runtime. Use
`OPENCLAW_AGENT_HARNESS_FALLBACK=none` to disable PI fallback from the
environment.
`OPENCLAW_AGENT_RUNTIME` still overrides the configured runtime.
```bash
OPENCLAW_AGENT_RUNTIME=codex \
OPENCLAW_AGENT_HARNESS_FALLBACK=none \
openclaw gateway run
OPENCLAW_AGENT_RUNTIME=codex openclaw gateway run
```
With fallback disabled, a session fails early when the requested harness is not
registered, does not support the resolved provider/model, or fails before
producing turn side effects. That is intentional for Codex-only deployments and
for live tests that must prove the Codex app-server path is actually in use.
With an explicit plugin runtime, a session fails early when the requested
harness is not registered, does not support the resolved provider/model, or
fails before producing turn side effects. That is intentional for Codex-only
deployments and for live tests that must prove the Codex app-server path is
actually in use.
This setting only controls the embedded agent harness. It does not disable
image, video, music, TTS, PDF, or other provider-specific model routing.