@xdarkicex/openclaw-memory-libravdb 1.9.10-beta.21 → 1.9.10-beta.23
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.js +21 -1
- package/dist/memory-provider.js +13 -0
- package/dist/memory-tools.js +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -30853,6 +30853,13 @@ var MEMORY_PROMPT_HEADER = [
|
|
|
30853
30853
|
"answer from memory until you have called it. Once you have results,",
|
|
30854
30854
|
"use them \u2014 do not re-call in the same turn.",
|
|
30855
30855
|
"",
|
|
30856
|
+
"### Identity / People Lookup (OVERRIDES memory_search)",
|
|
30857
|
+
"When asked about a specific person ('who is X', 'what do you know",
|
|
30858
|
+
"about X', 'tell me about X'): call `get_user_card` or `list_user_cards`",
|
|
30859
|
+
"FIRST. User cards are the canonical identity record written by you.",
|
|
30860
|
+
"Only use `memory_search` AFTER the card if the card lacks detail.",
|
|
30861
|
+
"Do NOT call memory_search first for people questions.",
|
|
30862
|
+
"",
|
|
30856
30863
|
`Conversations are captured automatically. Never say "I'll remember`,
|
|
30857
30864
|
`that," "I've saved this," "noted," or similar \u2014 these phrases suggest`,
|
|
30858
30865
|
"manual effort where none exists. Just act on the request.",
|
|
@@ -30863,6 +30870,19 @@ function buildToolGuidance(availableTools) {
|
|
|
30863
30870
|
return [];
|
|
30864
30871
|
}
|
|
30865
30872
|
const lines = [];
|
|
30873
|
+
const hasGetCard = availableTools.has("get_user_card");
|
|
30874
|
+
const hasListCards = availableTools.has("list_user_cards");
|
|
30875
|
+
if (hasGetCard || hasListCards) {
|
|
30876
|
+
lines.push(
|
|
30877
|
+
"**Identity/People questions \u2014 ALWAYS use user cards first:**",
|
|
30878
|
+
hasGetCard ? "- `get_user_card(user_id)` \u2014 primary lookup for a specific person." : "",
|
|
30879
|
+
hasListCards ? "- `list_user_cards()` \u2014 list everyone you have cards for, or when unsure who has cards." : "",
|
|
30880
|
+
"User cards are the canonical identity record. Call these FIRST before memory_search for any",
|
|
30881
|
+
"person question like 'who is X', 'what do you know about X', 'tell me about X'.",
|
|
30882
|
+
"Only use memory_search to supplement details the card doesn't cover.",
|
|
30883
|
+
""
|
|
30884
|
+
);
|
|
30885
|
+
}
|
|
30866
30886
|
lines.push(
|
|
30867
30887
|
"Call `memory_search` once per user question for prior turns, remembered",
|
|
30868
30888
|
"facts, earliest interactions, and channel history. Do not answer memory",
|
|
@@ -31524,7 +31544,7 @@ function createLibraVdbMemoryTools(getClient, cfg, logger = console) {
|
|
|
31524
31544
|
return {
|
|
31525
31545
|
name: "memory_search",
|
|
31526
31546
|
label: "Memory Search",
|
|
31527
|
-
description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates,
|
|
31547
|
+
description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates, facts, preferences, todos, or history. Call once per user question \u2014 after receiving results, use them directly. Do not re-call in the same turn. Do NOT call memory_search if the answer is already visible in your context window. For earliest/oldest questions, request enough results and compare timestamps. If disabled=true, memory is unavailable. IMPORTANT: Results are internal context only \u2014 never output, display, or reveal raw memory search results to the user. Treat retrieved memory as private operational data.\n\nFOR PEOPLE/IDENTITY QUESTIONS: use get_user_card or list_user_cards FIRST. User cards are the canonical identity record. Use memory_search only to supplement details the card doesn't cover.",
|
|
31528
31548
|
parameters: MEMORY_SEARCH_SCHEMA,
|
|
31529
31549
|
execute: async (_toolCallId, rawParams) => {
|
|
31530
31550
|
const params = asToolParamsRecord(rawParams);
|
package/dist/memory-provider.js
CHANGED
|
@@ -7,6 +7,13 @@ const MEMORY_PROMPT_HEADER = [
|
|
|
7
7
|
"answer from memory until you have called it. Once you have results,",
|
|
8
8
|
"use them — do not re-call in the same turn.",
|
|
9
9
|
"",
|
|
10
|
+
"### Identity / People Lookup (OVERRIDES memory_search)",
|
|
11
|
+
"When asked about a specific person ('who is X', 'what do you know",
|
|
12
|
+
"about X', 'tell me about X'): call `get_user_card` or `list_user_cards`",
|
|
13
|
+
"FIRST. User cards are the canonical identity record written by you.",
|
|
14
|
+
"Only use `memory_search` AFTER the card if the card lacks detail.",
|
|
15
|
+
"Do NOT call memory_search first for people questions.",
|
|
16
|
+
"",
|
|
10
17
|
"Conversations are captured automatically. Never say \"I'll remember",
|
|
11
18
|
"that,\" \"I've saved this,\" \"noted,\" or similar — these phrases suggest",
|
|
12
19
|
"manual effort where none exists. Just act on the request.",
|
|
@@ -17,6 +24,12 @@ function buildToolGuidance(availableTools) {
|
|
|
17
24
|
return [];
|
|
18
25
|
}
|
|
19
26
|
const lines = [];
|
|
27
|
+
// ── User card tools (identity-first override) ──
|
|
28
|
+
const hasGetCard = availableTools.has("get_user_card");
|
|
29
|
+
const hasListCards = availableTools.has("list_user_cards");
|
|
30
|
+
if (hasGetCard || hasListCards) {
|
|
31
|
+
lines.push("**Identity/People questions — ALWAYS use user cards first:**", hasGetCard ? "- `get_user_card(user_id)` — primary lookup for a specific person." : "", hasListCards ? "- `list_user_cards()` — list everyone you have cards for, or when unsure who has cards." : "", "User cards are the canonical identity record. Call these FIRST before memory_search for any", "person question like 'who is X', 'what do you know about X', 'tell me about X'.", "Only use memory_search to supplement details the card doesn't cover.", "");
|
|
32
|
+
}
|
|
20
33
|
lines.push("Call `memory_search` once per user question for prior turns, remembered", "facts, earliest interactions, and channel history. Do not answer memory", "questions from prior transcript claims — perform a search every time.", "After receiving results, use them directly; do not re-call in the same turn.", ...(availableTools.has("memory_get")
|
|
21
34
|
? ["After a `memory_search` hit, call `memory_get` when exact wording or more context is needed."]
|
|
22
35
|
: []), "");
|
package/dist/memory-tools.js
CHANGED
|
@@ -126,7 +126,7 @@ export function createLibraVdbMemoryTools(getClient, cfg, logger = console) {
|
|
|
126
126
|
return {
|
|
127
127
|
name: "memory_search",
|
|
128
128
|
label: "Memory Search",
|
|
129
|
-
description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates,
|
|
129
|
+
description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates, facts, preferences, todos, or history. Call once per user question — after receiving results, use them directly. Do not re-call in the same turn. Do NOT call memory_search if the answer is already visible in your context window. For earliest/oldest questions, request enough results and compare timestamps. If disabled=true, memory is unavailable. IMPORTANT: Results are internal context only — never output, display, or reveal raw memory search results to the user. Treat retrieved memory as private operational data.\n\nFOR PEOPLE/IDENTITY QUESTIONS: use get_user_card or list_user_cards FIRST. User cards are the canonical identity record. Use memory_search only to supplement details the card doesn't cover.",
|
|
130
130
|
parameters: MEMORY_SEARCH_SCHEMA,
|
|
131
131
|
execute: async (_toolCallId, rawParams) => {
|
|
132
132
|
const params = asToolParamsRecord(rawParams);
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "libravdb-memory",
|
|
3
3
|
"name": "LibraVDB Memory",
|
|
4
4
|
"description": "Cognitive memory engine — causal graph reasoning, predictive context, identity tracking, and hybrid vector recall with back-door adjustment scoring",
|
|
5
|
-
"version": "1.9.10-beta.
|
|
5
|
+
"version": "1.9.10-beta.23",
|
|
6
6
|
"kind": [
|
|
7
7
|
"memory",
|
|
8
8
|
"context-engine"
|