Summary
When using the built-in coding tools profile with a non-OpenAI provider (e.g. Anthropic), the gateway logs a warning on every session init:
[tools] tools.profile (coding) allowlist contains unknown entries (apply_patch).
These entries won't match any tool unless the plugin is enabled.
This fires repeatedly — on every session start, reset, and tool policy evaluation.
Root Cause
The coding profile's allowlist includes apply_patch (which is an OpenAI-specific tool for multi-file patches). When the active provider is Anthropic/Claude, apply_patch is never registered as a tool, so stripPluginOnlyAllowlist() in tool-policy-pipeline.ts flags it as an unknown entry.
The tool IS in DEFAULT_TOOL_ALLOW and TRUSTED_TOOL_RESULT_MEDIA, so it's intentionally part of the ecosystem — it's just provider-specific.
Impact
- Warning noise in logs on every session lifecycle event
- Confusing for users who haven't configured anything custom — the warning suggests misconfiguration but it's the built-in profile
- Makes it harder to spot real warnings in log output
Expected Behavior
Provider-specific tools in built-in profiles should either:
- Be silently ignored when the provider doesn't support them (no warning)
- Be conditionally included in the profile based on the active provider
- At minimum, the warning should be downgraded to
debug level for built-in profile entries
Reproduction
- Set
tools.profile: "coding" in openclaw.json (or use it as default)
- Use any non-OpenAI provider (e.g.
anthropic/claude-sonnet-4-6)
- Start a session
- Check
gateway.err.log — warning appears
Environment
- OpenClaw 2026.3.7
- Provider: anthropic/claude-opus-4-6
- Config:
tools.profile: "coding", tools.exec.security: "full"
Summary
When using the built-in
codingtools profile with a non-OpenAI provider (e.g. Anthropic), the gateway logs a warning on every session init:This fires repeatedly — on every session start, reset, and tool policy evaluation.
Root Cause
The
codingprofile's allowlist includesapply_patch(which is an OpenAI-specific tool for multi-file patches). When the active provider is Anthropic/Claude,apply_patchis never registered as a tool, sostripPluginOnlyAllowlist()intool-policy-pipeline.tsflags it as an unknown entry.The tool IS in
DEFAULT_TOOL_ALLOWandTRUSTED_TOOL_RESULT_MEDIA, so it's intentionally part of the ecosystem — it's just provider-specific.Impact
Expected Behavior
Provider-specific tools in built-in profiles should either:
debuglevel for built-in profile entriesReproduction
tools.profile: "coding"in openclaw.json (or use it as default)anthropic/claude-sonnet-4-6)gateway.err.log— warning appearsEnvironment
tools.profile: "coding",tools.exec.security: "full"