openclaw-sc 5.38.0 → 5.38.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +179 -13
- package/openclaw.plugin.json +2 -2
- package/package.json +6 -2
- package/tools/mcp-tools.config.json +1 -1
package/README.md
CHANGED
|
@@ -1,22 +1,185 @@
|
|
|
1
1
|
# OpenClaw sc
|
|
2
2
|
|
|
3
|
-
sc is an OpenClaw
|
|
4
|
-
dispatch
|
|
5
|
-
|
|
3
|
+
sc is an OpenClaw agent control plane. It gives an OpenClaw main agent a bounded
|
|
4
|
+
way to dispatch sub-agents, route tools, run local worker jobs, collect
|
|
5
|
+
completion events, search memory, fetch web evidence, edit files, and validate
|
|
6
|
+
code without turning the human chat into a coordination log.
|
|
7
|
+
|
|
8
|
+
The short version: sc is not just a bag of tools. It is the execution layer that
|
|
9
|
+
lets an agent act like a task commander while still leaving behind artifacts
|
|
10
|
+
that a human or a main agent can inspect.
|
|
6
11
|
|
|
7
12
|
This repository is the public source package. It excludes private runtime
|
|
8
|
-
state, local logs, task inbox files, backups, service binaries, and
|
|
13
|
+
state, local logs, task inbox files, backups, service binaries, credentials, and
|
|
14
|
+
machine-specific OpenClaw memory.
|
|
15
|
+
|
|
16
|
+
## Why This Exists
|
|
17
|
+
|
|
18
|
+
Most agent runtimes can call tools, but larger work quickly needs more than
|
|
19
|
+
one-off tool calls:
|
|
20
|
+
|
|
21
|
+
- A main agent needs to send bounded work to sub-agents.
|
|
22
|
+
- Sub-agents need fewer permissions than the main agent.
|
|
23
|
+
- Results need to come back as inspectable completion events, not noisy chat.
|
|
24
|
+
- Repetitive local work should run in cheap deterministic workers.
|
|
25
|
+
- Code edits need a validation path.
|
|
26
|
+
- Memory and web evidence need short, bounded returns.
|
|
27
|
+
- Large fan-out needs run IDs, collector discipline, and timeout behavior.
|
|
28
|
+
|
|
29
|
+
sc is built around those operational problems.
|
|
30
|
+
|
|
31
|
+
## What Makes sc Different
|
|
32
|
+
|
|
33
|
+
| Strength | What it means |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| Agent control plane | `spawnAgent` and `taskPipeline` create bounded AI sub-tasks instead of asking the main agent to do every step. |
|
|
36
|
+
| Completion inbox | Sub-agent completion events can be stored, reported, acknowledged, and kept out of the human chat when desired. |
|
|
37
|
+
| Tool boundary model | Main and sub-agent tool sets are different. Sub-agents cannot recursively spawn agents or trigger high-risk controls. |
|
|
38
|
+
| Deterministic worker lane | `spawnWorker` handles search, analyze, semantic, diff, and stats work without spending model tokens. |
|
|
39
|
+
| Evidence-friendly tools | `grep`, `glob`, `memorySearch`, and `webSearch` return bounded evidence for review instead of uncontrolled dumps. |
|
|
40
|
+
| Validation guardrails | Sub-agent code edits can be followed by `validate` checks such as syntax, module load, and diff review. |
|
|
41
|
+
| Batch orchestration | `taskPipeline` supports multi-group dispatch, staggered fan-out, fire-and-return behavior, and collector fields. |
|
|
42
|
+
| Memory retrieval hooks | Dialog search, semantic search, full memory query, and compressed recall can be exposed through one memory tool. |
|
|
43
|
+
| Local-first package | The public package ships source and contracts, not private logs, inbox state, credentials, service binaries, or backups. |
|
|
44
|
+
|
|
45
|
+
## Core Capabilities
|
|
46
|
+
|
|
47
|
+
### 1. Sub-agent dispatch
|
|
48
|
+
|
|
49
|
+
`spawnAgent` sends a single bounded AI task with a self-contained prompt and
|
|
50
|
+
optional task-card fields such as:
|
|
51
|
+
|
|
52
|
+
- `runId`
|
|
53
|
+
- `runDir`
|
|
54
|
+
- `taskName`
|
|
55
|
+
- `batchName`
|
|
56
|
+
- `groupName`
|
|
57
|
+
- `collector`
|
|
58
|
+
- `budgets`
|
|
59
|
+
- `acceptance`
|
|
60
|
+
- `evidence`
|
|
61
|
+
- `toolPolicy`
|
|
62
|
+
|
|
63
|
+
The point is not only to start another model. The point is to make the task
|
|
64
|
+
auditable: what was requested, which tools were allowed, what evidence was
|
|
65
|
+
expected, and how the result should be collected.
|
|
66
|
+
|
|
67
|
+
### 2. Multi-agent pipelines
|
|
68
|
+
|
|
69
|
+
`taskPipeline` dispatches multiple named groups. It is designed for fan-out work
|
|
70
|
+
such as:
|
|
71
|
+
|
|
72
|
+
- multi-perspective audits
|
|
73
|
+
- competing implementation ideas
|
|
74
|
+
- independent research slices
|
|
75
|
+
- batch code review
|
|
76
|
+
- large workspace inventory
|
|
77
|
+
- task trees where each group has a different prompt
|
|
78
|
+
|
|
79
|
+
It can wait for completion, stop waiting after `maxWait`, or fire-and-return
|
|
80
|
+
when the caller wants to collect results later through the inbox and task-state
|
|
81
|
+
artifacts.
|
|
82
|
+
|
|
83
|
+
### 3. Completion inbox
|
|
9
84
|
|
|
10
|
-
|
|
85
|
+
The `scInbox` tool and sidecar endpoints turn sub-agent results into completion
|
|
86
|
+
events:
|
|
11
87
|
|
|
12
|
-
|
|
88
|
+
- `pending` returns unacknowledged completions.
|
|
89
|
+
- `recent` returns recent completions, including acknowledged ones.
|
|
90
|
+
- `report` builds a concise completion report.
|
|
91
|
+
- `ack` marks events handled.
|
|
92
|
+
- `stats` gives inbox health.
|
|
93
|
+
|
|
94
|
+
This solves a practical coordination issue: the main agent can know that a
|
|
95
|
+
sub-agent finished, while the human chat can stay clean. A deployment can run in
|
|
96
|
+
`notify-only` mode so completion state is delivered to the host without
|
|
97
|
+
injecting every sub-agent result into the user-facing conversation.
|
|
98
|
+
|
|
99
|
+
### 4. Tool bridge
|
|
100
|
+
|
|
101
|
+
sc exposes a compact MCP-style tool surface:
|
|
102
|
+
|
|
103
|
+
| Tool | Purpose |
|
|
13
104
|
| --- | --- |
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
105
|
+
| `stats` | Worker pool and queue snapshot. |
|
|
106
|
+
| `memorySearch` | Smart memory lookup, dialog search, semantic search, full query, or compressed recall. |
|
|
107
|
+
| `webSearch` | Web search and web fetch through configured backends. |
|
|
108
|
+
| `glob` | Workspace file discovery. |
|
|
109
|
+
| `grep` | Fast ripgrep-backed search with bounded output modes. |
|
|
110
|
+
| `codeEditor` | Review or precise text replacement edits. |
|
|
111
|
+
| `batchVision` | Serial image analysis for GPU-friendly visual inspection. |
|
|
112
|
+
| `fileManager` | Read, write, list, copy, and move within allowed boundaries. |
|
|
113
|
+
| `spawnWorker` | Local deterministic worker tasks. |
|
|
114
|
+
| `spawnAgent` | Single AI sub-agent task. |
|
|
115
|
+
| `taskPipeline` | Multi-group AI task orchestration. |
|
|
116
|
+
| `scInbox` | Completion event collection and acknowledgement. |
|
|
117
|
+
| `validate` | Syntax, module-load, and diff validation for sub-agent edits. |
|
|
118
|
+
| `emergencyStop` | Explicit high-risk stop path. Not for routine status checks. |
|
|
119
|
+
|
|
120
|
+
### 5. Local worker path
|
|
121
|
+
|
|
122
|
+
Not every task needs another model call. The worker lane is for deterministic,
|
|
123
|
+
cheap, local work:
|
|
124
|
+
|
|
125
|
+
- keyword search
|
|
126
|
+
- file analysis
|
|
127
|
+
- semantic helper jobs
|
|
128
|
+
- diff checks
|
|
129
|
+
- pool stats
|
|
130
|
+
|
|
131
|
+
The plugin entry maintains worker-pool behavior such as queue handling, worker
|
|
132
|
+
replacement, and backpressure-oriented status reporting. This gives the agent a
|
|
133
|
+
faster path for mechanical work and keeps model budget for judgment-heavy work.
|
|
134
|
+
|
|
135
|
+
### 6. Safety model
|
|
136
|
+
|
|
137
|
+
sc intentionally gives sub-agents a narrower tool surface than the main agent.
|
|
138
|
+
For example:
|
|
139
|
+
|
|
140
|
+
- sub-agents cannot call `spawnAgent`
|
|
141
|
+
- sub-agents cannot call `taskPipeline`
|
|
142
|
+
- sub-agents cannot call `scInbox`
|
|
143
|
+
- sub-agents cannot call `batchVision`
|
|
144
|
+
- sub-agents cannot use `emergencyStop`
|
|
145
|
+
- file operations do not expose delete
|
|
146
|
+
- write operations are restricted by workspace policy
|
|
147
|
+
- validation is available to sub-agents after code edits
|
|
148
|
+
|
|
149
|
+
This does not make arbitrary tasks safe by itself. It gives the host a clearer
|
|
150
|
+
place to enforce task cards, budgets, tool policy, and review gates.
|
|
151
|
+
|
|
152
|
+
## Typical Use Cases
|
|
153
|
+
|
|
154
|
+
- Let one main OpenClaw agent dispatch 3 to 10 bounded review tasks and collect
|
|
155
|
+
structured completion events.
|
|
156
|
+
- Run a background search or workspace inventory without flooding the chat.
|
|
157
|
+
- Give sub-agents enough tools to inspect and edit code while blocking recursive
|
|
158
|
+
spawning and emergency controls.
|
|
159
|
+
- Combine AI sub-agents with zero-token local workers for faster triage.
|
|
160
|
+
- Keep memory and web retrieval short enough for a main agent to verify.
|
|
161
|
+
- Build a task pipeline where each slice has its own model, timeout, and
|
|
162
|
+
success criteria.
|
|
163
|
+
- Keep human-facing chat focused on decisions while machine-facing inboxes
|
|
164
|
+
carry raw completion state.
|
|
165
|
+
|
|
166
|
+
## Architecture
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
OpenClaw main agent
|
|
170
|
+
-> tools/bridge.js
|
|
171
|
+
-> grep / glob / memorySearch / webSearch / fileManager / codeEditor
|
|
172
|
+
-> spawnWorker -> workers/worker.js
|
|
173
|
+
-> spawnAgent -> tools/sidecar/subagent-runner.cjs
|
|
174
|
+
-> taskPipeline -> multiple sub-agent runner tasks
|
|
175
|
+
-> tools/sidecar/sidecar-server.cjs
|
|
176
|
+
-> completion inbox
|
|
177
|
+
-> task state artifacts
|
|
178
|
+
-> pending / recent / report / ack / stats
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
The bridge is the tool boundary. The sidecar is the completion and task-state
|
|
182
|
+
boundary. The worker pool is the deterministic local execution boundary.
|
|
20
183
|
|
|
21
184
|
## Requirements
|
|
22
185
|
|
|
@@ -70,14 +233,17 @@ Keep real secrets out of git. Common settings:
|
|
|
70
233
|
| `SC_RG_PATH` | Optional explicit path to `rg`; otherwise sc tries bundled rg, then system `rg`. |
|
|
71
234
|
| `SC_SIDECAR_PORT` | Sidecar port when the sidecar server is used. |
|
|
72
235
|
| `SC_INBOX_DELIVERY_MODE` | Inbox completion delivery mode, for example `notify-only`. |
|
|
236
|
+
| `SC_INBOX_NOTIFY_ACK` | Whether background notification should acknowledge delivered inbox events. |
|
|
73
237
|
| `SC_INBOX_CHAT_INJECT` | Whether inbox completion messages are injected into chat. |
|
|
238
|
+
| `SC_INBOX_AUTO_NOTIFY` | Whether the bridge should notify the host automatically when completions arrive. |
|
|
74
239
|
|
|
75
240
|
## Main Files
|
|
76
241
|
|
|
77
242
|
| Path | Purpose |
|
|
78
243
|
| --- | --- |
|
|
79
|
-
| `index.js` | OpenClaw plugin entry. |
|
|
244
|
+
| `index.js` | OpenClaw plugin entry and worker-pool integration. |
|
|
80
245
|
| `openclaw.plugin.json` | Plugin metadata and tool contracts. |
|
|
246
|
+
| `tools/mcp-tools.config.json` | Public tool schema and main/sub-agent tool boundaries. |
|
|
81
247
|
| `lib/` | Core routing, task, memory, security, and orchestration modules. |
|
|
82
248
|
| `tools/bridge.js` | Tool bridge and MCP-style tool handlers. |
|
|
83
249
|
| `tools/sidecar/sidecar-server.cjs` | Sidecar server for completion delivery. |
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "sc",
|
|
3
3
|
"name": "sc",
|
|
4
|
-
"version": "5.38.
|
|
5
|
-
"description": "sc v5.38.
|
|
4
|
+
"version": "5.38.1",
|
|
5
|
+
"description": "sc v5.38.1 - OpenClaw agent control plane with sub-agent orchestration, tool routing, worker jobs, completion inboxes, and validation guardrails.",
|
|
6
6
|
"activation": {
|
|
7
7
|
"onStartup": true
|
|
8
8
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw-sc",
|
|
3
|
-
"version": "5.38.
|
|
4
|
-
"description": "OpenClaw
|
|
3
|
+
"version": "5.38.1",
|
|
4
|
+
"description": "OpenClaw agent control plane for sub-agent orchestration, MCP tool routing, completion inboxes, worker jobs, memory/search, and validation guardrails.",
|
|
5
5
|
"changelog": "v5.5.0 → v5.7.1: 司令铁律补丁(patch-before-tool-call.ps1) / 内置工具走before_tool_call / 路由守卫全覆盖 / 备份加时间戳防回滚旧版 / 紧急模式恢复防抖60秒",
|
|
6
6
|
"changelogDetail": "v5.7.1: 路由修复: routeQuick集成L0-L7分类 / 代码去重 / 文档同步",
|
|
7
7
|
"type": "module",
|
|
@@ -41,7 +41,11 @@
|
|
|
41
41
|
"openclaw",
|
|
42
42
|
"agent",
|
|
43
43
|
"subagent",
|
|
44
|
+
"agent-control-plane",
|
|
45
|
+
"orchestration",
|
|
46
|
+
"completion-inbox",
|
|
44
47
|
"mcp",
|
|
48
|
+
"tool-bridge",
|
|
45
49
|
"memory",
|
|
46
50
|
"worker"
|
|
47
51
|
],
|