openclaw - 💡(How to fix) Fix Bug: Plugin tool name conflict — openviking memory_search rejected due to core built-in collision

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

The openviking plugin's memory_search tool registration is silently rejected because OpenClaw core already registers a built-in memory_search tool. This causes the openviking plugin's resource/skill search functionality to be unavailable.

Error Message

Repeated conflict warnings in the OpenClaw logs:

[plugins] plugin tool name conflict (openviking): memory_search

This conflict occurred 73 times in the past 48 hours, indicating the plugin is continuously attempting (and failing) to register the tool on every gateway restart/agent session.

Root Cause

The openviking plugin's memory_search tool registration is silently rejected because OpenClaw core already registers a built-in memory_search tool. This causes the openviking plugin's resource/skill search functionality to be unavailable.

Code Example

[plugins] plugin tool name conflict (openviking): memory_search

---

{
  "id": "openviking",
  "contracts": {
    "tools": [
      "ov_import",
      "memory_search",    // <-- Conflicts with core built-in
      "memory_recall",
      "memory_store",
      "memory_forget",
      "ov_archive_search",
      "ov_archive_expand"
    ]
  }
}

---

api.registerTool(
  (ctx: ToolContext) => ({
    name: "memory_search",
    label: "Memory Search (OpenViking)",
    description: "Search OpenViking resources and skills.",
    // ...
  }),
  { name: "memory_search" },
);
RAW_BUFFERClick to expand / collapse

Summary

The openviking plugin's memory_search tool registration is silently rejected because OpenClaw core already registers a built-in memory_search tool. This causes the openviking plugin's resource/skill search functionality to be unavailable.

Environment

  • OpenClaw version: Latest (2026.5.17)
  • Plugin: openviking (context-engine plugin for memory management)
  • Platform: Linux x64

Evidence

Log Output

Repeated conflict warnings in the OpenClaw logs:

[plugins] plugin tool name conflict (openviking): memory_search

This conflict occurred 73 times in the past 48 hours, indicating the plugin is continuously attempting (and failing) to register the tool on every gateway restart/agent session.

Plugin Manifest

The openviking plugin declares memory_search in its contracts.tools:

{
  "id": "openviking",
  "contracts": {
    "tools": [
      "ov_import",
      "memory_search",    // <-- Conflicts with core built-in
      "memory_recall",
      "memory_store",
      "memory_forget",
      "ov_archive_search",
      "ov_archive_expand"
    ]
  }
}

Tool Registration Code

In extensions/openviking/index.ts:

api.registerTool(
  (ctx: ToolContext) => ({
    name: "memory_search",
    label: "Memory Search (OpenViking)",
    description: "Search OpenViking resources and skills.",
    // ...
  }),
  { name: "memory_search" },
);

Expected Behavior

The openviking plugin should be able to register its memory_search tool without conflict, or OpenClaw should provide a mechanism for plugins to override/extend core tools.

Actual Behavior

The tool registration is silently rejected with a warning log. The openviking plugin's memory_search tool (which searches OpenViking resources and skills) is not available to agents.

Impact

  1. OpenViking resource search is broken — Users cannot search imported OpenViking resources/skills via the memory_search tool
  2. Silent failure — No error is surfaced to the user; the tool simply doesn't appear in the agent's available tools
  3. Plugin ecosystem limitation — Third-party plugins that need to extend or override core memory tools cannot do so

Suggestion

Possible approaches to resolve this:

  1. Plugin tool override mechanism — Allow plugins to explicitly override core tools when they declare the same name in contracts.tools
  2. Tool namespacing — Prefix plugin tools with plugin ID (e.g., openviking_memory_search) to avoid conflicts
  3. Tool merging — When a plugin registers a tool with the same name as a core tool, merge the functionality rather than rejecting
  4. Configuration option — Allow users to configure which plugin provides memory_search (core vs. openviking)

Related

  • This is distinct from issue #82977 (active-memory sub-agent tool resolution) — that issue is about embedded agent tool loading, while this is about plugin tool registration conflicts
  • OpenViking plugin: https://github.com/volcengine/OpenViking

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Bug: Plugin tool name conflict — openviking memory_search rejected due to core built-in collision