neuralmemory 1.8.0 → 1.9.0
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/dist/index.d.ts +7 -1
- package/dist/index.js +30 -37
- package/dist/index.js.map +1 -1
- package/dist/tools.d.ts +9 -0
- package/dist/tools.js +41 -0
- package/dist/tools.js.map +1 -1
- package/openclaw.plugin.json +93 -93
- package/package.json +1 -1
- package/src/index.ts +34 -45
- package/src/tools.ts +49 -0
package/dist/index.d.ts
CHANGED
|
@@ -14,8 +14,14 @@
|
|
|
14
14
|
* v1.8.0: Compatible with NM v2.29.0 — RRF score fusion, graph-based
|
|
15
15
|
* query expansion, and Personalized PageRank activation.
|
|
16
16
|
*
|
|
17
|
+
* v1.8.1: Fix async register() — OpenClaw requires synchronous registration.
|
|
18
|
+
* Fallback tools registered sync; MCP connection deferred to service.start().
|
|
19
|
+
*
|
|
20
|
+
* v1.9.0: Backward-compat shim tools (memory_search, memory_get) to prevent
|
|
21
|
+
* "allowList contains unknown entries" warnings when NM replaces memory-core.
|
|
22
|
+
*
|
|
17
23
|
* Registers:
|
|
18
|
-
* N tools — dynamically from MCP server (fallback: 5 core
|
|
24
|
+
* N tools — dynamically from MCP server (fallback: 5 core + 2 compat)
|
|
19
25
|
* 1 service — MCP process lifecycle (start/stop)
|
|
20
26
|
* 2 hooks — before_agent_start (auto-context), agent_end (auto-capture)
|
|
21
27
|
*/
|
package/dist/index.js
CHANGED
|
@@ -14,13 +14,19 @@
|
|
|
14
14
|
* v1.8.0: Compatible with NM v2.29.0 — RRF score fusion, graph-based
|
|
15
15
|
* query expansion, and Personalized PageRank activation.
|
|
16
16
|
*
|
|
17
|
+
* v1.8.1: Fix async register() — OpenClaw requires synchronous registration.
|
|
18
|
+
* Fallback tools registered sync; MCP connection deferred to service.start().
|
|
19
|
+
*
|
|
20
|
+
* v1.9.0: Backward-compat shim tools (memory_search, memory_get) to prevent
|
|
21
|
+
* "allowList contains unknown entries" warnings when NM replaces memory-core.
|
|
22
|
+
*
|
|
17
23
|
* Registers:
|
|
18
|
-
* N tools — dynamically from MCP server (fallback: 5 core
|
|
24
|
+
* N tools — dynamically from MCP server (fallback: 5 core + 2 compat)
|
|
19
25
|
* 1 service — MCP process lifecycle (start/stop)
|
|
20
26
|
* 2 hooks — before_agent_start (auto-context), agent_end (auto-capture)
|
|
21
27
|
*/
|
|
22
28
|
import { NeuralMemoryMcpClient } from "./mcp-client.js";
|
|
23
|
-
import { createToolsFromMcp, createFallbackTools } from "./tools.js";
|
|
29
|
+
import { createToolsFromMcp, createFallbackTools, createCompatibilityTools } from "./tools.js";
|
|
24
30
|
// ── System prompt for tool awareness ──────────────────────
|
|
25
31
|
/**
|
|
26
32
|
* Build a system prompt listing all registered tool names.
|
|
@@ -34,7 +40,7 @@ function buildToolInstructions(tools) {
|
|
|
34
40
|
|
|
35
41
|
${toolList}
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
NeuralMemory (nmem_*) is your primary memory system. memory_search and memory_get are legacy aliases that redirect to nmem_recall — prefer nmem_* tools directly for full functionality.
|
|
38
44
|
|
|
39
45
|
These are tool calls, NOT shell commands. Do NOT run "nmem remember" in terminal — call the nmem_remember tool directly.
|
|
40
46
|
|
|
@@ -98,9 +104,9 @@ const plugin = {
|
|
|
98
104
|
id: "neuralmemory",
|
|
99
105
|
name: "NeuralMemory",
|
|
100
106
|
description: "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers",
|
|
101
|
-
version: "1.
|
|
107
|
+
version: "1.9.0",
|
|
102
108
|
kind: "memory",
|
|
103
|
-
|
|
109
|
+
register(api) {
|
|
104
110
|
const cfg = resolveConfig(api.pluginConfig);
|
|
105
111
|
const mcp = new NeuralMemoryMcpClient({
|
|
106
112
|
pythonPath: cfg.pythonPath,
|
|
@@ -109,47 +115,34 @@ const plugin = {
|
|
|
109
115
|
timeout: cfg.timeout,
|
|
110
116
|
initTimeout: cfg.initTimeout,
|
|
111
117
|
});
|
|
112
|
-
// ──
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
catch (err) {
|
|
121
|
-
api.logger.error(`Failed to connect NeuralMemory MCP: ${err.message}`);
|
|
122
|
-
// Register fallback tools so the plugin is still partially usable
|
|
123
|
-
registeredTools = createFallbackTools(mcp);
|
|
124
|
-
for (const t of registeredTools) {
|
|
125
|
-
api.registerTool(t, { name: t.name });
|
|
126
|
-
}
|
|
127
|
-
api.logger.warn(`Registered ${registeredTools.length} fallback tools (MCP not connected)`);
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
// Fetch tools dynamically from MCP server
|
|
131
|
-
try {
|
|
132
|
-
registeredTools = await createToolsFromMcp(mcp);
|
|
133
|
-
api.logger.info(`Fetched ${registeredTools.length} tools from MCP server`);
|
|
134
|
-
}
|
|
135
|
-
catch (err) {
|
|
136
|
-
api.logger.warn(`Failed to fetch MCP tools, using fallback: ${err.message}`);
|
|
137
|
-
registeredTools = createFallbackTools(mcp);
|
|
138
|
-
}
|
|
139
|
-
// Register all tools with OpenClaw
|
|
140
|
-
for (const t of registeredTools) {
|
|
118
|
+
// ── Register fallback tools synchronously ────────────
|
|
119
|
+
// OpenClaw requires register() to be synchronous.
|
|
120
|
+
// Register stable fallback tools immediately; MCP connection
|
|
121
|
+
// and dynamic tool discovery happen in service.start().
|
|
122
|
+
// Fallback tools auto-reconnect MCP on first call.
|
|
123
|
+
const registeredTools = createFallbackTools(mcp);
|
|
124
|
+
const compatTools = createCompatibilityTools(mcp);
|
|
125
|
+
for (const t of [...registeredTools, ...compatTools]) {
|
|
141
126
|
api.registerTool(t, { name: t.name });
|
|
142
127
|
}
|
|
143
|
-
api.logger.info(`Registered ${registeredTools.length} NeuralMemory tools`);
|
|
128
|
+
api.logger.info(`Registered ${registeredTools.length} NeuralMemory tools + ${compatTools.length} compat shims (sync)`);
|
|
144
129
|
// ── Service: MCP process lifecycle ───────────────────
|
|
145
130
|
api.registerService({
|
|
146
131
|
id: "neuralmemory-mcp",
|
|
147
132
|
async start() {
|
|
148
|
-
// MCP already connected during register()
|
|
149
133
|
if (!mcp.connected) {
|
|
150
134
|
try {
|
|
151
135
|
await mcp.connect();
|
|
152
|
-
api.logger.info("NeuralMemory MCP
|
|
136
|
+
api.logger.info("NeuralMemory MCP connected in service.start()");
|
|
137
|
+
// Log discovered tools for diagnostics (cannot re-register
|
|
138
|
+
// after register() — OpenClaw freezes the tool list).
|
|
139
|
+
try {
|
|
140
|
+
const dynamicTools = await createToolsFromMcp(mcp);
|
|
141
|
+
api.logger.info(`NeuralMemory MCP discovered ${dynamicTools.length} tools`);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
api.logger.warn(`Tool discovery failed: ${err.message}`);
|
|
145
|
+
}
|
|
153
146
|
}
|
|
154
147
|
catch (err) {
|
|
155
148
|
api.logger.error(`Failed to start NeuralMemory MCP: ${err.message}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -38,4 +38,13 @@ export declare function createToolsFromMcp(mcp: NeuralMemoryMcpClient): Promise<
|
|
|
38
38
|
* Ensures the plugin still works even if the MCP server is an older version.
|
|
39
39
|
*/
|
|
40
40
|
export declare function createFallbackTools(mcp: NeuralMemoryMcpClient): ToolDefinition[];
|
|
41
|
+
/**
|
|
42
|
+
* Create backward-compatible shim tools that map legacy OpenClaw memory-core
|
|
43
|
+
* tool names to NeuralMemory equivalents.
|
|
44
|
+
*
|
|
45
|
+
* This prevents "allowList contains unknown entries (memory_search, memory_get)"
|
|
46
|
+
* warnings when NM occupies the `memory` plugin slot, which removes the built-in
|
|
47
|
+
* memory-core tools but leaves the tools.profile allowList referencing them.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createCompatibilityTools(mcp: NeuralMemoryMcpClient): ToolDefinition[];
|
|
41
50
|
export {};
|
package/dist/tools.js
CHANGED
|
@@ -228,4 +228,45 @@ export function createFallbackTools(mcp) {
|
|
|
228
228
|
},
|
|
229
229
|
];
|
|
230
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Create backward-compatible shim tools that map legacy OpenClaw memory-core
|
|
233
|
+
* tool names to NeuralMemory equivalents.
|
|
234
|
+
*
|
|
235
|
+
* This prevents "allowList contains unknown entries (memory_search, memory_get)"
|
|
236
|
+
* warnings when NM occupies the `memory` plugin slot, which removes the built-in
|
|
237
|
+
* memory-core tools but leaves the tools.profile allowList referencing them.
|
|
238
|
+
*/
|
|
239
|
+
export function createCompatibilityTools(mcp) {
|
|
240
|
+
const call = makeCallFn(mcp);
|
|
241
|
+
return [
|
|
242
|
+
{
|
|
243
|
+
name: "memory_search",
|
|
244
|
+
description: "Search memories (legacy alias for nmem_recall). " +
|
|
245
|
+
"Prefer nmem_recall for full NeuralMemory features.",
|
|
246
|
+
parameters: {
|
|
247
|
+
type: "object",
|
|
248
|
+
properties: {
|
|
249
|
+
query: { type: "string", description: "The search query" },
|
|
250
|
+
},
|
|
251
|
+
required: ["query"],
|
|
252
|
+
additionalProperties: false,
|
|
253
|
+
},
|
|
254
|
+
execute: (_id, args) => call("nmem_recall", { query: args.query, depth: 1 }),
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
name: "memory_get",
|
|
258
|
+
description: "Get a memory by ID (legacy alias for nmem_recall). " +
|
|
259
|
+
"Prefer nmem_recall for full NeuralMemory features.",
|
|
260
|
+
parameters: {
|
|
261
|
+
type: "object",
|
|
262
|
+
properties: {
|
|
263
|
+
id: { type: "string", description: "Memory identifier or query" },
|
|
264
|
+
},
|
|
265
|
+
required: ["id"],
|
|
266
|
+
additionalProperties: false,
|
|
267
|
+
},
|
|
268
|
+
execute: (_id, args) => call("nmem_recall", { query: String(args.id), depth: 0 }),
|
|
269
|
+
},
|
|
270
|
+
];
|
|
271
|
+
}
|
|
231
272
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "neuralmemory",
|
|
3
|
-
"kind": "memory",
|
|
4
|
-
"name": "NeuralMemory",
|
|
5
|
-
"description": "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers. REQUIRED: set plugins.slots.memory = \"neuralmemory\" in openclaw.json to disable the default memory-core plugin and activate NeuralMemory as the exclusive memory provider.",
|
|
6
|
-
"version": "1.
|
|
7
|
-
"configSchema": {
|
|
8
|
-
"jsonSchema": {
|
|
9
|
-
"type": "object",
|
|
10
|
-
"additionalProperties": false,
|
|
11
|
-
"properties": {
|
|
12
|
-
"pythonPath": {
|
|
13
|
-
"type": "string",
|
|
14
|
-
"description": "Path to Python executable with neural-memory installed",
|
|
15
|
-
"default": "python"
|
|
16
|
-
},
|
|
17
|
-
"brain": {
|
|
18
|
-
"type": "string",
|
|
19
|
-
"pattern": "^[a-zA-Z0-9_\\-.]{1,64}$",
|
|
20
|
-
"description": "Brain name to use for this workspace",
|
|
21
|
-
"default": "default"
|
|
22
|
-
},
|
|
23
|
-
"autoContext": {
|
|
24
|
-
"type": "boolean",
|
|
25
|
-
"description": "Inject relevant memory context before each agent run",
|
|
26
|
-
"default": true
|
|
27
|
-
},
|
|
28
|
-
"autoCapture": {
|
|
29
|
-
"type": "boolean",
|
|
30
|
-
"description": "Auto-extract and store memories after each agent run",
|
|
31
|
-
"default": true
|
|
32
|
-
},
|
|
33
|
-
"contextDepth": {
|
|
34
|
-
"type": "integer",
|
|
35
|
-
"minimum": 0,
|
|
36
|
-
"maximum": 3,
|
|
37
|
-
"description": "Recall depth for auto-context: 0=instant, 1=context, 2=habit, 3=deep",
|
|
38
|
-
"default": 1
|
|
39
|
-
},
|
|
40
|
-
"maxContextTokens": {
|
|
41
|
-
"type": "integer",
|
|
42
|
-
"minimum": 100,
|
|
43
|
-
"maximum": 10000,
|
|
44
|
-
"description": "Maximum tokens for auto-context injection",
|
|
45
|
-
"default": 500
|
|
46
|
-
},
|
|
47
|
-
"timeout": {
|
|
48
|
-
"type": "integer",
|
|
49
|
-
"minimum": 5000,
|
|
50
|
-
"maximum": 120000,
|
|
51
|
-
"description": "MCP request timeout in milliseconds",
|
|
52
|
-
"default": 30000
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"uiHints": {
|
|
57
|
-
"_setup": {
|
|
58
|
-
"label": "Required Setup",
|
|
59
|
-
"help": "Add to openclaw.json: { \"plugins\": { \"slots\": { \"memory\": \"neuralmemory\" } } } — this disables the default memory-core plugin so agents use NeuralMemory exclusively. Without this, agents may still call memory_search (memory-core) even with AGENTS.MD rules."
|
|
60
|
-
},
|
|
61
|
-
"pythonPath": {
|
|
62
|
-
"label": "Python Path",
|
|
63
|
-
"placeholder": "python",
|
|
64
|
-
"help": "Path to Python executable that has neural-memory installed (pip install neural-memory)"
|
|
65
|
-
},
|
|
66
|
-
"brain": {
|
|
67
|
-
"label": "Brain Name",
|
|
68
|
-
"placeholder": "default",
|
|
69
|
-
"help": "Which brain to use — each workspace can have its own brain"
|
|
70
|
-
},
|
|
71
|
-
"autoContext": {
|
|
72
|
-
"label": "Auto-inject Context",
|
|
73
|
-
"help": "Automatically query relevant memories and inject them before each agent run"
|
|
74
|
-
},
|
|
75
|
-
"autoCapture": {
|
|
76
|
-
"label": "Auto-capture Memories",
|
|
77
|
-
"help": "Automatically extract facts, decisions, and insights after each agent run"
|
|
78
|
-
},
|
|
79
|
-
"contextDepth": {
|
|
80
|
-
"label": "Context Depth",
|
|
81
|
-
"help": "How deep to search: 0=instant lookup, 1=contextual, 2=habit patterns, 3=full graph traversal"
|
|
82
|
-
},
|
|
83
|
-
"maxContextTokens": {
|
|
84
|
-
"label": "Max Context Tokens",
|
|
85
|
-
"help": "Maximum tokens to inject as context (higher = more context but uses more prompt space)"
|
|
86
|
-
},
|
|
87
|
-
"timeout": {
|
|
88
|
-
"label": "MCP Timeout (ms)",
|
|
89
|
-
"help": "How long to wait for MCP server responses. Increase if you see timeout errors on slow machines (default: 30000)"
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"id": "neuralmemory",
|
|
3
|
+
"kind": "memory",
|
|
4
|
+
"name": "NeuralMemory",
|
|
5
|
+
"description": "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers. REQUIRED: set plugins.slots.memory = \"neuralmemory\" in openclaw.json to disable the default memory-core plugin and activate NeuralMemory as the exclusive memory provider.",
|
|
6
|
+
"version": "1.9.0",
|
|
7
|
+
"configSchema": {
|
|
8
|
+
"jsonSchema": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"additionalProperties": false,
|
|
11
|
+
"properties": {
|
|
12
|
+
"pythonPath": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Path to Python executable with neural-memory installed",
|
|
15
|
+
"default": "python"
|
|
16
|
+
},
|
|
17
|
+
"brain": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"pattern": "^[a-zA-Z0-9_\\-.]{1,64}$",
|
|
20
|
+
"description": "Brain name to use for this workspace",
|
|
21
|
+
"default": "default"
|
|
22
|
+
},
|
|
23
|
+
"autoContext": {
|
|
24
|
+
"type": "boolean",
|
|
25
|
+
"description": "Inject relevant memory context before each agent run",
|
|
26
|
+
"default": true
|
|
27
|
+
},
|
|
28
|
+
"autoCapture": {
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"description": "Auto-extract and store memories after each agent run",
|
|
31
|
+
"default": true
|
|
32
|
+
},
|
|
33
|
+
"contextDepth": {
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"minimum": 0,
|
|
36
|
+
"maximum": 3,
|
|
37
|
+
"description": "Recall depth for auto-context: 0=instant, 1=context, 2=habit, 3=deep",
|
|
38
|
+
"default": 1
|
|
39
|
+
},
|
|
40
|
+
"maxContextTokens": {
|
|
41
|
+
"type": "integer",
|
|
42
|
+
"minimum": 100,
|
|
43
|
+
"maximum": 10000,
|
|
44
|
+
"description": "Maximum tokens for auto-context injection",
|
|
45
|
+
"default": 500
|
|
46
|
+
},
|
|
47
|
+
"timeout": {
|
|
48
|
+
"type": "integer",
|
|
49
|
+
"minimum": 5000,
|
|
50
|
+
"maximum": 120000,
|
|
51
|
+
"description": "MCP request timeout in milliseconds",
|
|
52
|
+
"default": 30000
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"uiHints": {
|
|
57
|
+
"_setup": {
|
|
58
|
+
"label": "Required Setup",
|
|
59
|
+
"help": "Add to openclaw.json: { \"plugins\": { \"slots\": { \"memory\": \"neuralmemory\" } } } — this disables the default memory-core plugin so agents use NeuralMemory exclusively. Without this, agents may still call memory_search (memory-core) even with AGENTS.MD rules."
|
|
60
|
+
},
|
|
61
|
+
"pythonPath": {
|
|
62
|
+
"label": "Python Path",
|
|
63
|
+
"placeholder": "python",
|
|
64
|
+
"help": "Path to Python executable that has neural-memory installed (pip install neural-memory)"
|
|
65
|
+
},
|
|
66
|
+
"brain": {
|
|
67
|
+
"label": "Brain Name",
|
|
68
|
+
"placeholder": "default",
|
|
69
|
+
"help": "Which brain to use — each workspace can have its own brain"
|
|
70
|
+
},
|
|
71
|
+
"autoContext": {
|
|
72
|
+
"label": "Auto-inject Context",
|
|
73
|
+
"help": "Automatically query relevant memories and inject them before each agent run"
|
|
74
|
+
},
|
|
75
|
+
"autoCapture": {
|
|
76
|
+
"label": "Auto-capture Memories",
|
|
77
|
+
"help": "Automatically extract facts, decisions, and insights after each agent run"
|
|
78
|
+
},
|
|
79
|
+
"contextDepth": {
|
|
80
|
+
"label": "Context Depth",
|
|
81
|
+
"help": "How deep to search: 0=instant lookup, 1=contextual, 2=habit patterns, 3=full graph traversal"
|
|
82
|
+
},
|
|
83
|
+
"maxContextTokens": {
|
|
84
|
+
"label": "Max Context Tokens",
|
|
85
|
+
"help": "Maximum tokens to inject as context (higher = more context but uses more prompt space)"
|
|
86
|
+
},
|
|
87
|
+
"timeout": {
|
|
88
|
+
"label": "MCP Timeout (ms)",
|
|
89
|
+
"help": "How long to wait for MCP server responses. Increase if you see timeout errors on slow machines (default: 30000)"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -14,8 +14,14 @@
|
|
|
14
14
|
* v1.8.0: Compatible with NM v2.29.0 — RRF score fusion, graph-based
|
|
15
15
|
* query expansion, and Personalized PageRank activation.
|
|
16
16
|
*
|
|
17
|
+
* v1.8.1: Fix async register() — OpenClaw requires synchronous registration.
|
|
18
|
+
* Fallback tools registered sync; MCP connection deferred to service.start().
|
|
19
|
+
*
|
|
20
|
+
* v1.9.0: Backward-compat shim tools (memory_search, memory_get) to prevent
|
|
21
|
+
* "allowList contains unknown entries" warnings when NM replaces memory-core.
|
|
22
|
+
*
|
|
17
23
|
* Registers:
|
|
18
|
-
* N tools — dynamically from MCP server (fallback: 5 core
|
|
24
|
+
* N tools — dynamically from MCP server (fallback: 5 core + 2 compat)
|
|
19
25
|
* 1 service — MCP process lifecycle (start/stop)
|
|
20
26
|
* 2 hooks — before_agent_start (auto-context), agent_end (auto-capture)
|
|
21
27
|
*/
|
|
@@ -28,7 +34,7 @@ import type {
|
|
|
28
34
|
AgentEndEvent,
|
|
29
35
|
} from "./types.js";
|
|
30
36
|
import { NeuralMemoryMcpClient } from "./mcp-client.js";
|
|
31
|
-
import { createToolsFromMcp, createFallbackTools } from "./tools.js";
|
|
37
|
+
import { createToolsFromMcp, createFallbackTools, createCompatibilityTools } from "./tools.js";
|
|
32
38
|
import type { ToolDefinition } from "./tools.js";
|
|
33
39
|
|
|
34
40
|
// ── System prompt for tool awareness ──────────────────────
|
|
@@ -46,7 +52,7 @@ function buildToolInstructions(tools: ToolDefinition[]): string {
|
|
|
46
52
|
|
|
47
53
|
${toolList}
|
|
48
54
|
|
|
49
|
-
|
|
55
|
+
NeuralMemory (nmem_*) is your primary memory system. memory_search and memory_get are legacy aliases that redirect to nmem_recall — prefer nmem_* tools directly for full functionality.
|
|
50
56
|
|
|
51
57
|
These are tool calls, NOT shell commands. Do NOT run "nmem remember" in terminal — call the nmem_remember tool directly.
|
|
52
58
|
|
|
@@ -138,10 +144,10 @@ const plugin: OpenClawPluginDefinition = {
|
|
|
138
144
|
name: "NeuralMemory",
|
|
139
145
|
description:
|
|
140
146
|
"Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers",
|
|
141
|
-
version: "1.
|
|
147
|
+
version: "1.9.0",
|
|
142
148
|
kind: "memory",
|
|
143
149
|
|
|
144
|
-
|
|
150
|
+
register(api: OpenClawPluginApi): void {
|
|
145
151
|
const cfg = resolveConfig(api.pluginConfig);
|
|
146
152
|
|
|
147
153
|
const mcp = new NeuralMemoryMcpClient({
|
|
@@ -152,50 +158,21 @@ const plugin: OpenClawPluginDefinition = {
|
|
|
152
158
|
initTimeout: cfg.initTimeout,
|
|
153
159
|
});
|
|
154
160
|
|
|
155
|
-
// ──
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
|
|
159
|
-
|
|
161
|
+
// ── Register fallback tools synchronously ────────────
|
|
162
|
+
// OpenClaw requires register() to be synchronous.
|
|
163
|
+
// Register stable fallback tools immediately; MCP connection
|
|
164
|
+
// and dynamic tool discovery happen in service.start().
|
|
165
|
+
// Fallback tools auto-reconnect MCP on first call.
|
|
160
166
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
api.logger.info("NeuralMemory MCP connected");
|
|
164
|
-
} catch (err) {
|
|
165
|
-
api.logger.error(
|
|
166
|
-
`Failed to connect NeuralMemory MCP: ${(err as Error).message}`,
|
|
167
|
-
);
|
|
168
|
-
// Register fallback tools so the plugin is still partially usable
|
|
169
|
-
registeredTools = createFallbackTools(mcp);
|
|
170
|
-
for (const t of registeredTools) {
|
|
171
|
-
api.registerTool(t, { name: t.name });
|
|
172
|
-
}
|
|
173
|
-
api.logger.warn(
|
|
174
|
-
`Registered ${registeredTools.length} fallback tools (MCP not connected)`,
|
|
175
|
-
);
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
167
|
+
const registeredTools = createFallbackTools(mcp);
|
|
168
|
+
const compatTools = createCompatibilityTools(mcp);
|
|
178
169
|
|
|
179
|
-
|
|
180
|
-
try {
|
|
181
|
-
registeredTools = await createToolsFromMcp(mcp);
|
|
182
|
-
api.logger.info(
|
|
183
|
-
`Fetched ${registeredTools.length} tools from MCP server`,
|
|
184
|
-
);
|
|
185
|
-
} catch (err) {
|
|
186
|
-
api.logger.warn(
|
|
187
|
-
`Failed to fetch MCP tools, using fallback: ${(err as Error).message}`,
|
|
188
|
-
);
|
|
189
|
-
registeredTools = createFallbackTools(mcp);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Register all tools with OpenClaw
|
|
193
|
-
for (const t of registeredTools) {
|
|
170
|
+
for (const t of [...registeredTools, ...compatTools]) {
|
|
194
171
|
api.registerTool(t, { name: t.name });
|
|
195
172
|
}
|
|
196
173
|
|
|
197
174
|
api.logger.info(
|
|
198
|
-
`Registered ${registeredTools.length} NeuralMemory tools`,
|
|
175
|
+
`Registered ${registeredTools.length} NeuralMemory tools + ${compatTools.length} compat shims (sync)`,
|
|
199
176
|
);
|
|
200
177
|
|
|
201
178
|
// ── Service: MCP process lifecycle ───────────────────
|
|
@@ -204,11 +181,23 @@ const plugin: OpenClawPluginDefinition = {
|
|
|
204
181
|
id: "neuralmemory-mcp",
|
|
205
182
|
|
|
206
183
|
async start(): Promise<void> {
|
|
207
|
-
// MCP already connected during register()
|
|
208
184
|
if (!mcp.connected) {
|
|
209
185
|
try {
|
|
210
186
|
await mcp.connect();
|
|
211
|
-
api.logger.info("NeuralMemory MCP
|
|
187
|
+
api.logger.info("NeuralMemory MCP connected in service.start()");
|
|
188
|
+
|
|
189
|
+
// Log discovered tools for diagnostics (cannot re-register
|
|
190
|
+
// after register() — OpenClaw freezes the tool list).
|
|
191
|
+
try {
|
|
192
|
+
const dynamicTools = await createToolsFromMcp(mcp);
|
|
193
|
+
api.logger.info(
|
|
194
|
+
`NeuralMemory MCP discovered ${dynamicTools.length} tools`,
|
|
195
|
+
);
|
|
196
|
+
} catch (err) {
|
|
197
|
+
api.logger.warn(
|
|
198
|
+
`Tool discovery failed: ${(err as Error).message}`,
|
|
199
|
+
);
|
|
200
|
+
}
|
|
212
201
|
} catch (err) {
|
|
213
202
|
api.logger.error(
|
|
214
203
|
`Failed to start NeuralMemory MCP: ${(err as Error).message}`,
|
package/src/tools.ts
CHANGED
|
@@ -271,3 +271,52 @@ export function createFallbackTools(
|
|
|
271
271
|
},
|
|
272
272
|
];
|
|
273
273
|
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Create backward-compatible shim tools that map legacy OpenClaw memory-core
|
|
277
|
+
* tool names to NeuralMemory equivalents.
|
|
278
|
+
*
|
|
279
|
+
* This prevents "allowList contains unknown entries (memory_search, memory_get)"
|
|
280
|
+
* warnings when NM occupies the `memory` plugin slot, which removes the built-in
|
|
281
|
+
* memory-core tools but leaves the tools.profile allowList referencing them.
|
|
282
|
+
*/
|
|
283
|
+
export function createCompatibilityTools(
|
|
284
|
+
mcp: NeuralMemoryMcpClient,
|
|
285
|
+
): ToolDefinition[] {
|
|
286
|
+
const call = makeCallFn(mcp);
|
|
287
|
+
|
|
288
|
+
return [
|
|
289
|
+
{
|
|
290
|
+
name: "memory_search",
|
|
291
|
+
description:
|
|
292
|
+
"Search memories (legacy alias for nmem_recall). " +
|
|
293
|
+
"Prefer nmem_recall for full NeuralMemory features.",
|
|
294
|
+
parameters: {
|
|
295
|
+
type: "object",
|
|
296
|
+
properties: {
|
|
297
|
+
query: { type: "string", description: "The search query" },
|
|
298
|
+
},
|
|
299
|
+
required: ["query"],
|
|
300
|
+
additionalProperties: false,
|
|
301
|
+
},
|
|
302
|
+
execute: (_id, args) =>
|
|
303
|
+
call("nmem_recall", { query: args.query, depth: 1 }),
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
name: "memory_get",
|
|
307
|
+
description:
|
|
308
|
+
"Get a memory by ID (legacy alias for nmem_recall). " +
|
|
309
|
+
"Prefer nmem_recall for full NeuralMemory features.",
|
|
310
|
+
parameters: {
|
|
311
|
+
type: "object",
|
|
312
|
+
properties: {
|
|
313
|
+
id: { type: "string", description: "Memory identifier or query" },
|
|
314
|
+
},
|
|
315
|
+
required: ["id"],
|
|
316
|
+
additionalProperties: false,
|
|
317
|
+
},
|
|
318
|
+
execute: (_id, args) =>
|
|
319
|
+
call("nmem_recall", { query: String(args.id), depth: 0 }),
|
|
320
|
+
},
|
|
321
|
+
];
|
|
322
|
+
}
|