fix: apply ACP spawn model defaults

This commit is contained in:
Peter Steinberger
2026-05-31 15:07:24 +01:00
parent fdf6092494
commit ff22b1e9e6
6 changed files with 281 additions and 24 deletions

View File

@@ -560,6 +560,10 @@ Two ways to start an ACP session:
normalize OpenAI refs such as `openai/gpt-5.4` to Codex ACP startup
config before `session/new`; slash forms such as `openai/gpt-5.4/high`
also set Codex ACP reasoning effort.
When omitted, `sessions_spawn({ runtime: "acp" })` uses existing
subagent model defaults (`agents.defaults.subagents.model` or
`agents.list[].subagents.model`) when configured; otherwise it lets the
ACP harness use its own default model.
Other harnesses must advertise ACP `models` and support
`session/set_model`; otherwise OpenClaw/acpx fails clearly instead of
silently falling back to the target agent default.
@@ -568,6 +572,9 @@ Two ways to start an ACP session:
Explicit thinking/reasoning effort. For Codex ACP, `minimal` maps to
low effort, `low`/`medium`/`high`/`xhigh` map directly, and `off`
omits the reasoning-effort startup override.
When omitted, ACP spawns use existing subagent thinking defaults and
per-model `agents.defaults.models["provider/model"].params.thinking`
for the selected model.
</ParamField>
## Spawn bind and thread modes

View File

@@ -139,8 +139,8 @@ session to confirm the effective tool list.
**Defaults:**
- **Model:** inherits the caller unless you set `agents.defaults.subagents.model` (or per-agent `agents.list[].subagents.model`); an explicit `sessions_spawn.model` still wins.
- **Thinking:** inherits the caller unless you set `agents.defaults.subagents.thinking` (or per-agent `agents.list[].subagents.thinking`); an explicit `sessions_spawn.thinking` still wins.
- **Model:** native sub-agents inherit the caller unless you set `agents.defaults.subagents.model` (or per-agent `agents.list[].subagents.model`). ACP runtime spawns use the same configured subagent model when present; otherwise the ACP harness keeps its own default. An explicit `sessions_spawn.model` still wins.
- **Thinking:** native sub-agents inherit the caller unless you set `agents.defaults.subagents.thinking` (or per-agent `agents.list[].subagents.thinking`). ACP runtime spawns also apply `agents.defaults.models["provider/model"].params.thinking` for the selected model. An explicit `sessions_spawn.thinking` still wins.
- **Run timeout:** if `sessions_spawn.runTimeoutSeconds` is omitted, OpenClaw uses `agents.defaults.subagents.runTimeoutSeconds` when set; otherwise it falls back to `0` (no timeout).
- **Task delivery:** native sub-agents receive the delegated task in their first visible `[Subagent Task]` message. The sub-agent system prompt carries runtime rules and routing context, not a hidden duplicate of the task.