fix(plugins): discover alsoAllow plugin tools

Summary:
- Discover optional plugin tools named in tools.alsoAllow without treating additive alsoAllow as a restrictive plugin-tool allowlist.
- Preserve explicit alsoAllow wildcards and keep default non-optional plugin tools visible.
- Document llm-task and lobster enablement and add changelog coverage.

Verification:
- pnpm test src/agents/tool-policy.test.ts src/gateway/tools-invoke-http.test.ts src/agents/pi-tools.create-openclaw-coding-tools.test.ts src/plugins/tools.optional.test.ts
- pnpm exec oxfmt --check --threads=1 src/agents/sandbox-tool-policy.ts src/agents/tool-policy.ts src/agents/tool-policy.test.ts src/agents/pi-tools.create-openclaw-coding-tools.test.ts src/gateway/tools-invoke-http.test.ts src/plugins/tools.ts src/plugins/tools.optional.test.ts
- git diff --check
- Blacksmith Testbox tbx_01kqr05924hz9kw50myxrqmsf9: pnpm check:changed

Fixes #76616
This commit is contained in:
Peter Steinberger
2026-05-03 23:46:14 +01:00
committed by GitHub
parent 0bf19f540d
commit e5ec14a06a
10 changed files with 126 additions and 18 deletions

View File

@@ -26,21 +26,18 @@ without writing custom OpenClaw code for each workflow.
}
```
2. Allowlist the tool (it is registered with `optional: true`):
2. Allow the optional tool:
```json
{
"agents": {
"list": [
{
"id": "main",
"tools": { "allow": ["llm-task"] }
}
]
"tools": {
"alsoAllow": ["llm-task"]
}
}
```
Use `tools.allow` only when you want restrictive allowlist mode.
## Config (optional)
```json

View File

@@ -191,7 +191,7 @@ Or per-agent:
Avoid using `tools.allow: ["lobster"]` unless you intend to run in restrictive allowlist mode.
<Note>
Allowlists are opt-in for optional plugins. If your allowlist only names plugin tools (like `lobster`), OpenClaw keeps core tools enabled. To restrict core tools, include the core tools or groups you want in the allowlist too.
Allowlists are opt-in for optional plugins. `alsoAllow` enables only the named optional plugin tools while preserving the normal core tool set. To restrict core tools, use `tools.allow` with the core tools or groups you want.
</Note>
## Example: Email triage