memory-mimir 2.3.0 → 2.3.1
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/cli.js +95 -11
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -98,23 +98,107 @@ function installPlugin() {
|
|
|
98
98
|
return false;
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
const SKILL_MD = `---
|
|
102
|
+
name: mimir-memory
|
|
103
|
+
description: >
|
|
104
|
+
Long-term memory for AI agents powered by Mimir (knowledge graph + vector + BM25).
|
|
105
|
+
Use when: (1) The user asks about past conversations, people, events, or preferences,
|
|
106
|
+
(2) The user says "remember this" or shares important facts to save,
|
|
107
|
+
(3) The user references something discussed before ("remember when...", "what did I say about..."),
|
|
108
|
+
(4) The user wants to forget or delete stored memories,
|
|
109
|
+
(5) Auto-recalled memories are insufficient and a deeper search is needed,
|
|
110
|
+
(6) The user asks a time-specific question about the past ("last week", "in January").
|
|
111
|
+
Available tools: mimir_search (active memory lookup), mimir_store (save facts), mimir_forget (delete memories).
|
|
112
|
+
Auto-recall injects basic context automatically before each conversation — use mimir_search for deeper queries.
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
# Mimir Memory
|
|
116
|
+
|
|
117
|
+
## How Memory Works
|
|
118
|
+
|
|
119
|
+
- **Auto-recall**: Before each conversation, relevant memories are silently injected as \\\`<memories>\\\` context. No action needed.
|
|
120
|
+
- **mimir_search**: Actively search memory when auto-recall is insufficient.
|
|
121
|
+
- **mimir_store**: Save important facts, preferences, or notes the user wants remembered.
|
|
122
|
+
- **mimir_forget**: Look up and preview memories for deletion.
|
|
123
|
+
|
|
124
|
+
## Using mimir_search
|
|
125
|
+
|
|
126
|
+
### Query Crafting
|
|
127
|
+
|
|
128
|
+
Be specific. Include names, dates, and topic keywords.
|
|
129
|
+
|
|
130
|
+
\\\`\\\`\\\`
|
|
131
|
+
GOOD: "Arthur's Chrome extension project in March"
|
|
132
|
+
BAD: "that project"
|
|
133
|
+
|
|
134
|
+
GOOD: "Caroline's birthday gift ideas"
|
|
135
|
+
BAD: "gift ideas"
|
|
136
|
+
\\\`\\\`\\\`
|
|
137
|
+
|
|
138
|
+
### memory_types Selection
|
|
139
|
+
|
|
140
|
+
| Goal | memory_types | Example query |
|
|
141
|
+
|------|-------------|---------------|
|
|
142
|
+
| Specific facts/events | \\\`["event_log"]\\\` | "What did I eat last Tuesday?" |
|
|
143
|
+
| People/places/things | \\\`["entity"]\\\` | "Who is Caroline?" |
|
|
144
|
+
| How things connect | \\\`["relation"]\\\` | "How do Arthur and Caroline know each other?" |
|
|
145
|
+
| Full conversation context | \\\`["episode"]\\\` | "Summarize our Chrome extension discussion" |
|
|
146
|
+
| Best general results | \\\`["event_log", "entity", "relation"]\\\` | "Tell me about the Japan trip" |
|
|
147
|
+
| Broad exploratory | *(omit)* | When unsure what type to look for |
|
|
148
|
+
|
|
149
|
+
### Time Filtering
|
|
150
|
+
|
|
151
|
+
When the user mentions time, convert to ISO 8601 and pass \\\`start_time\\\`/\\\`end_time\\\`:
|
|
152
|
+
|
|
153
|
+
- "last week" → 7 days ago to now
|
|
154
|
+
- "in March 2025" → \\\`2025-03-01\\\` to \\\`2025-03-31\\\`
|
|
155
|
+
- "yesterday" → yesterday 00:00 to 23:59
|
|
156
|
+
|
|
157
|
+
### Parameters
|
|
158
|
+
|
|
159
|
+
\\\`\\\`\\\`
|
|
160
|
+
mimir_search({
|
|
161
|
+
query: string, // Required. Specific search query.
|
|
162
|
+
memory_types?: string[],// Optional. Filter: "event_log", "entity", "relation", "episode", "raw_doc", "foresight"
|
|
163
|
+
start_time?: string, // Optional. ISO 8601 start.
|
|
164
|
+
end_time?: string, // Optional. ISO 8601 end.
|
|
165
|
+
top_k?: number // Optional. Max results (default 10, max 30).
|
|
166
|
+
})
|
|
167
|
+
\\\`\\\`\\\`
|
|
168
|
+
|
|
169
|
+
## Using mimir_store
|
|
170
|
+
|
|
171
|
+
Save when the user explicitly asks to remember something, or shares clearly important personal information (preferences, plans, decisions).
|
|
172
|
+
|
|
173
|
+
\\\`\\\`\\\`
|
|
174
|
+
mimir_store({ content: "Arthur prefers dark roast coffee, no sugar." })
|
|
175
|
+
\\\`\\\`\\\`
|
|
176
|
+
|
|
177
|
+
Keep content atomic — one fact per call. Include the person's name for attribution.
|
|
178
|
+
|
|
179
|
+
## Installation
|
|
180
|
+
|
|
181
|
+
\\\`\\\`\\\`bash
|
|
182
|
+
# With invite code (closed beta)
|
|
183
|
+
npx memory-mimir init --code XXXXXX
|
|
184
|
+
|
|
185
|
+
# Or with existing API key
|
|
186
|
+
npx memory-mimir setup --api-key sk-mimir-xxx
|
|
187
|
+
\\\`\\\`\\\`
|
|
188
|
+
|
|
189
|
+
Use the same invite code on any device to recover your memory. Restart the AI agent after setup.
|
|
190
|
+
`;
|
|
191
|
+
function installSkill() {
|
|
102
192
|
console.log("\x1b[2m Installing Mimir SKILL...\x1b[0m");
|
|
103
193
|
try {
|
|
104
|
-
const res = await fetch(`${serverUrl}/SKILL.md`);
|
|
105
|
-
if (!res.ok)
|
|
106
|
-
throw new Error(`HTTP ${res.status}`);
|
|
107
|
-
const content = await res.text();
|
|
108
|
-
// Write to ~/.openclaw/skills/memory-mimir/SKILL.md
|
|
109
194
|
const skillDir = path.join(os.homedir(), ".openclaw", "skills", "memory-mimir");
|
|
110
195
|
fs.mkdirSync(skillDir, { recursive: true });
|
|
111
|
-
fs.writeFileSync(path.join(skillDir, "SKILL.md"),
|
|
196
|
+
fs.writeFileSync(path.join(skillDir, "SKILL.md"), SKILL_MD);
|
|
112
197
|
console.log("\x1b[2m SKILL installed → ~/.openclaw/skills/memory-mimir/SKILL.md\x1b[0m");
|
|
113
198
|
return true;
|
|
114
199
|
}
|
|
115
200
|
catch {
|
|
116
|
-
console.log("\x1b[33m ⚠ Could not
|
|
117
|
-
console.log(`\x1b[2m curl -o ~/.openclaw/skills/memory-mimir/SKILL.md ${serverUrl}/SKILL.md\x1b[0m`);
|
|
201
|
+
console.log("\x1b[33m ⚠ Could not install SKILL.md\x1b[0m");
|
|
118
202
|
return false;
|
|
119
203
|
}
|
|
120
204
|
}
|
|
@@ -186,7 +270,7 @@ async function cmdInit(url, code) {
|
|
|
186
270
|
}
|
|
187
271
|
// Install plugin + SKILL (best-effort)
|
|
188
272
|
installPlugin();
|
|
189
|
-
|
|
273
|
+
installSkill();
|
|
190
274
|
// Write config
|
|
191
275
|
const configPath = path.join(os.homedir(), ".openclaw", "openclaw.json");
|
|
192
276
|
writeConfig(configPath, deviceData.device_key, url);
|
|
@@ -236,7 +320,7 @@ async function cmdSetup(url, apiKey) {
|
|
|
236
320
|
}
|
|
237
321
|
// Install plugin + SKILL (best-effort)
|
|
238
322
|
installPlugin();
|
|
239
|
-
|
|
323
|
+
installSkill();
|
|
240
324
|
// Write config
|
|
241
325
|
const configPath = path.join(os.homedir(), ".openclaw", "openclaw.json");
|
|
242
326
|
writeConfig(configPath, apiKey, url);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|