diff --git a/docs/concepts/system-prompt.md b/docs/concepts/system-prompt.md
index 39375e37877..da7effc3a43 100644
--- a/docs/concepts/system-prompt.md
+++ b/docs/concepts/system-prompt.md
@@ -19,7 +19,10 @@ The prompt is intentionally compact and uses fixed sections:
- **Tooling**: current tool list + short descriptions.
- **Safety**: short guardrail reminder to avoid power-seeking behavior or bypassing oversight.
- **Skills** (when available): tells the model how to load skill instructions on demand.
-- **OpenClaw Self-Update**: how to run `config.apply` and `update.run`.
+- **OpenClaw Self-Update**: how to inspect config safely with
+ `config.schema.lookup`, patch config with `config.patch`, replace the full
+ config with `config.apply`, and run `update.run` only on explicit user
+ request.
- **Workspace**: working directory (`agents.defaults.workspace`).
- **Documentation**: local path to OpenClaw docs (repo or npm package) and when to read them.
- **Workspace Files (injected)**: indicates bootstrap files are included below.
diff --git a/docs/help/faq.md b/docs/help/faq.md
index 9a860d83c4d..e2aee596aa7 100644
--- a/docs/help/faq.md
+++ b/docs/help/faq.md
@@ -1602,6 +1602,8 @@ for usage/billing and raise limits as needed.
- Use `openclaw config set` for small changes.
- Use `openclaw configure` for interactive edits.
+ - Use `config.schema.lookup` first when you are not sure about an exact path or field shape.
+ - Use `config.patch` for partial RPC edits; keep `config.apply` for full-config replacement only.
Docs: [Config](/cli/config), [Configure](/cli/configure), [Doctor](/gateway/doctor).
@@ -1771,7 +1773,13 @@ for usage/billing and raise limits as needed.
- Yes. `config.apply` validates + writes the full config and restarts the Gateway as part of the operation.
+ Yes.
+
+ - `config.schema.lookup`: inspect one config subtree with field docs before writing
+ - `config.get`: fetch the current snapshot + hash
+ - `config.patch`: safe partial update (preferred for most RPC edits)
+ - `config.apply`: validate + replace the full config, then restart
+
@@ -2192,6 +2200,8 @@ for usage/billing and raise limits as needed.
- edit `agents.defaults.model` in `~/.openclaw/openclaw.json`
Avoid `config.apply` with a partial object unless you intend to replace the whole config.
+ For RPC edits, inspect with `config.schema.lookup` first and prefer `config.patch`
+ for partial updates.
If you did overwrite config, restore from backup or re-run `openclaw doctor` to repair.
Docs: [Models](/concepts/models), [Configure](/cli/configure), [Config](/cli/config), [Doctor](/gateway/doctor).
diff --git a/docs/tools/index.md b/docs/tools/index.md
index 28438c0aa88..2b7fc8ed497 100644
--- a/docs/tools/index.md
+++ b/docs/tools/index.md
@@ -53,20 +53,20 @@ OpenClaw has three layers that work together:
These tools ship with OpenClaw and are available without installing any plugins:
-| Tool | What it does | Page |
-| ------------------------------------------ | -------------------------------------------------------- | --------------------------------------- |
-| `exec` / `process` | Run shell commands, manage background processes | [Exec](/tools/exec) |
-| `code_execution` | Run sandboxed remote Python analysis | [Code Execution](/tools/code-execution) |
-| `browser` | Control a Chromium browser (navigate, click, screenshot) | [Browser](/tools/browser) |
-| `web_search` / `x_search` / `web_fetch` | Search the web, search X posts, fetch page content | [Web](/tools/web) |
-| `read` / `write` / `edit` | File I/O in the workspace | |
-| `apply_patch` | Multi-hunk file patches | [Apply Patch](/tools/apply-patch) |
-| `message` | Send messages across all channels | [Agent Send](/tools/agent-send) |
-| `canvas` | Drive node Canvas (present, eval, snapshot) | |
-| `nodes` | Discover and target paired devices | |
-| `cron` / `gateway` | Manage scheduled jobs, restart gateway | |
-| `image` / `image_generate` | Analyze or generate images | |
-| `sessions_*` / `subagents` / `agents_list` | Session management, status, and sub-agent orchestration | [Sub-agents](/tools/subagents) |
+| Tool | What it does | Page |
+| ------------------------------------------ | --------------------------------------------------------------------- | --------------------------------------- |
+| `exec` / `process` | Run shell commands, manage background processes | [Exec](/tools/exec) |
+| `code_execution` | Run sandboxed remote Python analysis | [Code Execution](/tools/code-execution) |
+| `browser` | Control a Chromium browser (navigate, click, screenshot) | [Browser](/tools/browser) |
+| `web_search` / `x_search` / `web_fetch` | Search the web, search X posts, fetch page content | [Web](/tools/web) |
+| `read` / `write` / `edit` | File I/O in the workspace | |
+| `apply_patch` | Multi-hunk file patches | [Apply Patch](/tools/apply-patch) |
+| `message` | Send messages across all channels | [Agent Send](/tools/agent-send) |
+| `canvas` | Drive node Canvas (present, eval, snapshot) | |
+| `nodes` | Discover and target paired devices | |
+| `cron` / `gateway` | Manage scheduled jobs; inspect, patch, restart, or update the gateway | |
+| `image` / `image_generate` | Analyze or generate images | |
+| `sessions_*` / `subagents` / `agents_list` | Session management, status, and sub-agent orchestration | [Sub-agents](/tools/subagents) |
For image work, use `image` for analysis and `image_generate` for generation or editing. If you target `openai/*`, `google/*`, `fal/*`, or another non-default image provider, configure that provider's auth/API key first.
@@ -76,6 +76,17 @@ optionally set a per-session model override; `model=default` clears that
override. Like `/status`, it can backfill sparse token/cache counters and the
active runtime model label from the latest transcript usage entry.
+`gateway` is the owner-only runtime tool for gateway operations:
+
+- `config.schema.lookup` for one path-scoped config subtree before edits
+- `config.get` for the current config snapshot + hash
+- `config.patch` for partial config updates with restart
+- `config.apply` only for full-config replacement
+- `update.run` for explicit self-update + restart
+
+For partial changes, prefer `config.schema.lookup` then `config.patch`. Use
+`config.apply` only when you intentionally replace the entire config.
+
### Plugin-provided tools
Plugins can register additional tools. Some examples: