diff --git a/docs/tools/acp-agents.md b/docs/tools/acp-agents.md index 50700fca463..74f02cba305 100644 --- a/docs/tools/acp-agents.md +++ b/docs/tools/acp-agents.md @@ -140,6 +140,9 @@ What this means in practice: - `--bind here` can still create a new ACP session if you are spawning fresh work. The bind attaches that session to the current conversation. - `--bind here` does not create a child Discord thread or Telegram topic by itself. - The ACP runtime can still have its own working directory (`cwd`) or backend-managed workspace on disk. That runtime workspace is separate from the chat surface and does not imply a new messaging thread. +- If you spawn to a different ACP agent and do not pass `--cwd`, OpenClaw inherits the **target agent's** workspace by default, not the requester's. +- If that inherited workspace path is missing (`ENOENT`/`ENOTDIR`), OpenClaw falls back to the backend default cwd instead of silently reusing the wrong tree. +- If the inherited workspace exists but cannot be accessed (for example `EACCES`), spawn returns the real access error instead of dropping `cwd`. Mental model: @@ -318,6 +321,8 @@ Behavior: - Messages in that channel or topic route to the configured ACP session. - In bound conversations, `/new` and `/reset` reset the same ACP session key in place. - Temporary runtime bindings (for example created by thread-focus flows) still apply where present. +- For cross-agent ACP spawns without an explicit `cwd`, OpenClaw inherits the target agent workspace from agent config. +- Missing inherited workspace paths fall back to the backend default cwd; non-missing access failures surface as spawn errors. ## Start ACP sessions (interfaces) @@ -351,7 +356,7 @@ Interface details: - default is `run` - if `thread: true` and mode omitted, OpenClaw may default to persistent behavior per runtime path - `mode: "session"` requires `thread: true` -- `cwd` (optional): requested runtime working directory (validated by backend/runtime policy). +- `cwd` (optional): requested runtime working directory (validated by backend/runtime policy). If omitted, ACP spawn inherits the target agent workspace when configured; missing inherited paths fall back to backend defaults, while real access errors are returned. - `label` (optional): operator-facing label used in session/banner text. - `resumeSessionId` (optional): resume an existing ACP session instead of creating a new one. The agent replays its conversation history via `session/load`. Requires `runtime: "acp"`. - `streamTo` (optional): `"parent"` streams initial ACP run progress summaries back to the requester session as system events.