You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/channels/qa-channel.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ read_when:
7
7
- You are iterating on end-to-end QA automation
8
8
---
9
9
10
-
`qa-channel` is a bundled synthetic message transport for automated OpenClaw QA. It is not a production channel — it exists to exercise the same channel plugin boundary used by real transports while keeping state deterministic and fully inspectable.
10
+
`qa-channel` is a bundled synthetic message transport for automated OpenClaw QA. It is not a production channel - it exists to exercise the same channel plugin boundary used by real transports while keeping state deterministic and fully inspectable.
11
11
12
12
## What it does
13
13
@@ -38,20 +38,20 @@ read_when:
38
38
39
39
Account keys:
40
40
41
-
-`enabled`— master toggle for this account.
42
-
-`name`— optional display label.
43
-
-`baseUrl`— synthetic bus URL.
44
-
-`botUserId`— Matrix-style bot user id used in target grammar.
45
-
-`botDisplayName`— display name for outbound messages.
46
-
-`pollTimeoutMs`— long-poll wait window. Integer between 100 and 30000.
47
-
-`allowFrom`— sender allowlist (user ids or `"*"`).
48
-
-`defaultTo`— fallback target when none is supplied.
Copy file name to clipboardExpand all lines: docs/concepts/agent.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,14 +5,14 @@ read_when:
5
5
title: "Agent runtime"
6
6
---
7
7
8
-
OpenClaw runs a **single embedded agent runtime**— one agent process per
8
+
OpenClaw runs a **single embedded agent runtime**- one agent process per
9
9
Gateway, with its own workspace, bootstrap files, and session store. This page
10
10
covers that runtime contract: what the workspace must contain, which files get
11
11
injected, and how sessions bootstrap against it.
12
12
13
13
## Workspace (required)
14
14
15
-
OpenClaw uses a single agent workspace directory (`agents.defaults.workspace`) as the agent’s **only** working directory (`cwd`) for tools and context.
15
+
OpenClaw uses a single agent workspace directory (`agents.defaults.workspace`) as the agent's **only** working directory (`cwd`) for tools and context.
16
16
17
17
Recommended: use `openclaw setup` to create `~/.openclaw/openclaw.json` if missing and initialize the workspace files.
18
18
@@ -26,18 +26,18 @@ per-session workspaces under `agents.defaults.sandbox.workspaceRoot` (see
26
26
27
27
Inside `agents.defaults.workspace`, OpenClaw expects these user-editable files:
-`BOOTSTRAP.md`- one-time first-run ritual (deleted after completion)
33
+
-`IDENTITY.md`- agent name/vibe/emoji
34
+
-`USER.md`- user profile + preferred address
35
35
36
36
On the first turn of a new session, OpenClaw injects the contents of these files into the system prompt's Project Context.
37
37
38
38
Blank files are skipped. Large files are trimmed and truncated with a marker so prompts stay lean (read the file for full content).
39
39
40
-
If a file is missing, OpenClaw injects a single “missing file” marker line (and `openclaw setup` will create a safe default template).
40
+
If a file is missing, OpenClaw injects a single "missing file" marker line (and `openclaw setup` will create a safe default template).
41
41
42
42
`BOOTSTRAP.md` is only created for a **brand new workspace** (no other bootstrap files present). While it is pending, OpenClaw keeps it in Project Context and adds system-prompt bootstrap guidance for the initial ritual instead of copying it into the user message. If you delete it after completing the ritual, it should not be recreated on later restarts.
-`otel.flushIntervalMs`: periodic telemetry flush interval in ms.
973
973
-`otel.captureContent`: opt-in raw content capture for OTEL span attributes. Defaults to off. Boolean `true` captures non-system message/tool content; the object form lets you enable `inputMessages`, `outputMessages`, `toolInputs`, `toolOutputs`, and `systemPrompt` explicitly.
974
974
-`OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental`: environment toggle for latest experimental GenAI span provider attributes. By default spans keep the legacy `gen_ai.system` attribute for compatibility; GenAI metrics use bounded semantic attributes.
@@ -998,7 +998,7 @@ Notes:
998
998
}
999
999
```
1000
1000
1001
-
-`channel`: release channel for npm/git installs —`"stable"`, `"beta"`, or `"dev"`.
1001
+
-`channel`: release channel for npm/git installs -`"stable"`, `"beta"`, or `"dev"`.
1002
1002
-`checkOnStart`: check for npm updates when the gateway starts (default: `true`).
1003
1003
-`auto.enabled`: enable background auto-update for package installs (default: `false`).
1004
1004
-`auto.stableDelayHours`: minimum delay in hours before stable-channel auto-apply (default: `6`; max: `168`).
@@ -1162,9 +1162,9 @@ Current builds no longer include the TCP bridge. Nodes connect over the Gateway
1162
1162
}
1163
1163
```
1164
1164
1165
-
-`maxAttempts`: maximum retries for one-shot jobs on transient errors (default: `3`; range: `0`–`10`).
1166
-
-`backoffMs`: array of backoff delays in ms for each retry attempt (default: `[30000, 60000, 300000]`; 1–10 entries).
1167
-
-`retryOn`: error types that trigger retries —`"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Omit to retry all transient types.
1165
+
-`maxAttempts`: maximum retries for one-shot jobs on transient errors (default: `3`; range: `0`-`10`).
1166
+
-`backoffMs`: array of backoff delays in ms for each retry attempt (default: `[30000, 60000, 300000]`; 1-10 entries).
1167
+
-`retryOn`: error types that trigger retries -`"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Omit to retry all transient types.
1168
1168
1169
1169
Applies only to one-shot cron jobs. Recurring jobs use separate failure handling.
1170
1170
@@ -1189,7 +1189,7 @@ Applies only to one-shot cron jobs. Recurring jobs use separate failure handling
1189
1189
-`after`: consecutive failures before an alert fires (positive integer, min: `1`).
1190
1190
-`cooldownMs`: minimum milliseconds between repeated alerts for the same job (non-negative integer).
1191
1191
-`includeSkipped`: count consecutive skipped runs toward the alert threshold (default: `false`). Skipped runs are tracked separately and do not affect execution-error backoff.
1192
-
-`mode`: delivery mode —`"announce"` sends via a channel message; `"webhook"` posts to the configured webhook.
1192
+
-`mode`: delivery mode -`"announce"` sends via a channel message; `"webhook"` posts to the configured webhook.
1193
1193
-`accountId`: optional account or channel id to scope alert delivery.
Copy file name to clipboardExpand all lines: docs/gateway/tools-invoke-http-api.md
+14-16Lines changed: 14 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,9 +6,7 @@ read_when:
6
6
title: "Tools invoke API"
7
7
---
8
8
9
-
# Tools Invoke (HTTP)
10
-
11
-
OpenClaw’s Gateway exposes a simple HTTP endpoint for invoking a single tool directly. It is always enabled and uses Gateway auth plus tool policy. Like the OpenAI-compatible `/v1/*` surface, shared-secret bearer auth is treated as trusted operator access for the whole gateway.
9
+
OpenClaw's Gateway exposes a simple HTTP endpoint for invoking a single tool directly. It is always enabled and uses Gateway auth plus tool policy. Like the OpenAI-compatible `/v1/*` surface, shared-secret bearer auth is treated as trusted operator access for the whole gateway.
12
10
13
11
-`POST /tools/invoke`
14
12
- Same port as the Gateway (WS + HTTP multiplex): `http://<gateway-host>:<port>/tools/invoke`
@@ -103,19 +101,19 @@ Important boundary notes:
103
101
104
102
Gateway HTTP also applies a hard deny list by default (even if session policy allows the tool):
105
103
106
-
-`exec`— direct command execution (RCE surface)
107
-
-`spawn`— arbitrary child process creation (RCE surface)
108
-
-`shell`— shell command execution (RCE surface)
109
-
-`fs_write`— arbitrary file mutation on the host
110
-
-`fs_delete`— arbitrary file deletion on the host
111
-
-`fs_move`— arbitrary file move/rename on the host
112
-
-`apply_patch`— patch application can rewrite arbitrary files
113
-
-`sessions_spawn`— session orchestration; spawning agents remotely is RCE
114
-
-`sessions_send`— cross-session message injection
115
-
-`cron`— persistent automation control plane
116
-
-`gateway`— gateway control plane; prevents reconfiguration via HTTP
117
-
-`nodes`— node command relay can reach system.run on paired hosts
118
-
-`whatsapp_login`— interactive setup requiring terminal QR scan; hangs on HTTP
104
+
-`exec`- direct command execution (RCE surface)
105
+
-`spawn`- arbitrary child process creation (RCE surface)
106
+
-`shell`- shell command execution (RCE surface)
107
+
-`fs_write`- arbitrary file mutation on the host
108
+
-`fs_delete`- arbitrary file deletion on the host
109
+
-`fs_move`- arbitrary file move/rename on the host
110
+
-`apply_patch`- patch application can rewrite arbitrary files
111
+
-`sessions_spawn`- session orchestration; spawning agents remotely is RCE
112
+
-`sessions_send`- cross-session message injection
113
+
-`cron`- persistent automation control plane
114
+
-`gateway`- gateway control plane; prevents reconfiguration via HTTP
115
+
-`nodes`- node command relay can reach system.run on paired hosts
116
+
-`whatsapp_login`- interactive setup requiring terminal QR scan; hangs on HTTP
119
117
120
118
You can customize this deny list via `gateway.tools`:
**Claim:** in group contexts requiring mention, an unauthorized “control command” cannot bypass mention gating.
90
+
**Claim:** in group contexts requiring mention, an unauthorized "control command" cannot bypass mention gating.
91
91
92
92
- Green:
93
93
-`make ingress-gating`
@@ -109,11 +109,11 @@ These are follow-on models that tighten fidelity around real-world failure modes
109
109
110
110
### Pairing store concurrency / idempotency
111
111
112
-
**Claim:** a pairing store should enforce `MaxPending` and idempotency even under interleavings (i.e., “check-then-write” must be atomic / locked; refresh shouldn’t create duplicates).
112
+
**Claim:** a pairing store should enforce `MaxPending` and idempotency even under interleavings (i.e., "check-then-write" must be atomic / locked; refresh shouldn't create duplicates).
113
113
114
114
What it means:
115
115
116
-
- Under concurrent requests, you can’t exceed `MaxPending` for a channel.
116
+
- Under concurrent requests, you can't exceed `MaxPending` for a channel.
117
117
- Repeated requests/refreshes for the same `(channel, sender)` should not create duplicate live pending rows.
0 commit comments