Problem
ClawVoice tools are registered via api.registerTool() with registrationMode=full, but they do not appear in agent sessions. The agent (Pip) confirms it has zero clawvoice_* tools despite the plugin loading and initializing successfully.
Evidence
Gateway logs show tools registering:
[clawvoice] registerTool: clawvoice_call (registrationMode=full)
[clawvoice] registerTool: clawvoice_hangup (registrationMode=full)
...9 tools total
But when asked directly, the agent says:
Q: Do you have a tool called clawvoice_call?
A: NO
Config
plugins.allow includes "clawvoice"
plugins.entries.clawvoice.enabled: true
plugins.installs.clawvoice has proper provenance
tools.alsoAllow includes all tool names
tools.profile: "full"
- OpenClaw version: 2026.3.23-2
What was tried
tools.alsoAllow: ["group:plugins"] — no such group exists
tools.alsoAllow: ["clawvoice"] (plugin ID)
tools.alsoAllow: ["clawvoice_call", ...] (explicit tool names)
- Proper
openclaw plugins install with provenance
/new session reset
- Gateway restart
- Removing init guard
- All combinations above
Suspected root cause
The Pi embedded session calls resolvePluginTools which calls getActivePluginRegistry(). The gateway does NOT call setActivePluginRegistry — it only calls pinActivePluginHttpRouteRegistry. So the Pi session falls through to loadOpenClawPlugins independently. Either the independent load doesn't find ClawVoice's tools, or there's a registry object mismatch.
Workaround
The CLI (openclaw clawvoice call) works. Agent uses exec tool to shell out.
Problem
ClawVoice tools are registered via
api.registerTool()withregistrationMode=full, but they do not appear in agent sessions. The agent (Pip) confirms it has zeroclawvoice_*tools despite the plugin loading and initializing successfully.Evidence
Gateway logs show tools registering:
But when asked directly, the agent says:
Config
plugins.allowincludes"clawvoice"plugins.entries.clawvoice.enabled: trueplugins.installs.clawvoicehas proper provenancetools.alsoAllowincludes all tool namestools.profile: "full"What was tried
tools.alsoAllow: ["group:plugins"]— no such group existstools.alsoAllow: ["clawvoice"](plugin ID)tools.alsoAllow: ["clawvoice_call", ...](explicit tool names)openclaw plugins installwith provenance/newsession resetSuspected root cause
The Pi embedded session calls
resolvePluginToolswhich callsgetActivePluginRegistry(). The gateway does NOT callsetActivePluginRegistry— it only callspinActivePluginHttpRouteRegistry. So the Pi session falls through toloadOpenClawPluginsindependently. Either the independent load doesn't find ClawVoice's tools, or there's a registry object mismatch.Workaround
The CLI (
openclaw clawvoice call) works. Agent usesexectool to shell out.