memory-mimir 2.5.6 → 2.5.7
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 +124 -49
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -93,65 +93,133 @@ function writeConfig(configPath, apiKey, mimirUrl) {
|
|
|
93
93
|
const SKILL_MD = `---
|
|
94
94
|
name: mimir-memory
|
|
95
95
|
description: >
|
|
96
|
-
Long-term memory powered by Mimir.
|
|
97
|
-
|
|
98
|
-
You
|
|
96
|
+
Long-term memory powered by Mimir. You can remember across conversations.
|
|
97
|
+
A <memories> block is automatically injected before each conversation with relevant context.
|
|
98
|
+
You have tools to search deeper and store important facts — use them proactively and silently.
|
|
99
99
|
---
|
|
100
100
|
|
|
101
101
|
# Mimir Memory — Behavioral Guide
|
|
102
102
|
|
|
103
103
|
## Core Principle
|
|
104
104
|
|
|
105
|
-
You have long-term memory. Use it naturally
|
|
105
|
+
You have long-term memory. Use it naturally. From the user's perspective, you simply **remember** — never mention tool names, never say "let me search my memory", never expose the mechanics.
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 1. Reading Your Memories
|
|
110
|
+
|
|
111
|
+
Before each conversation, a \\\`<memories>\\\` block may appear with auto-recalled context. Understand its scope:
|
|
112
|
+
|
|
113
|
+
**What auto-recall covers:**
|
|
114
|
+
- Factual records (event_log): things the user did, said, decided
|
|
115
|
+
- Known entities: people, places, projects the user mentioned
|
|
116
|
+
- Relationships: how entities connect to each other
|
|
108
117
|
|
|
109
|
-
|
|
118
|
+
**What auto-recall does NOT cover:**
|
|
119
|
+
- Full conversation summaries (episodes) — it never searches these
|
|
120
|
+
- Raw documents — it never searches these
|
|
121
|
+
- Predictions/plans (foresights) — it never searches these
|
|
110
122
|
|
|
111
|
-
|
|
112
|
-
-
|
|
123
|
+
**How auto-recall constructs its query:**
|
|
124
|
+
- Short messages (≤100 chars): uses the user's exact words
|
|
125
|
+
- Long messages (>100 chars): extracts up to 8 English keywords, or first 200 chars for Chinese/Japanese/Korean
|
|
126
|
+
- Basic time keywords (昨天, last week, 上个月, etc.) are auto-detected and used as filters
|
|
127
|
+
|
|
128
|
+
**What this means for you:**
|
|
129
|
+
- If the user asks a simple factual question and \\\`<memories>\\\` has the answer → just answer
|
|
130
|
+
- If the user references a past conversation or wants a summary → \\\`<memories>\\\` won't have it, you need to search
|
|
131
|
+
- If the user's message is long/complex → keyword extraction may have missed key terms, consider searching with a focused query
|
|
132
|
+
- If \\\`<memories>\\\` is empty or doesn't match the question → search proactively
|
|
133
|
+
|
|
134
|
+
---
|
|
113
135
|
|
|
114
|
-
|
|
136
|
+
## 2. When to Proactively Search
|
|
115
137
|
|
|
116
|
-
|
|
138
|
+
Don't wait for the user to ask you to search. Detect these cues and act silently:
|
|
117
139
|
|
|
118
|
-
|
|
140
|
+
### Must search (auto-recall can't help)
|
|
119
141
|
|
|
120
|
-
|
|
142
|
+
| Pattern | Why | How to search |
|
|
143
|
+
|---------|-----|---------------|
|
|
144
|
+
| "总结一下我们上次讨论的..." / "summarize what we talked about..." | Needs conversation summaries | \\\`memory_types: ["episode"]\\\` |
|
|
145
|
+
| "我之前发给你的那个文档..." / "that document I shared..." | Needs raw documents | \\\`memory_types: ["raw_doc"]\\\` |
|
|
146
|
+
| References a complex relationship chain | Auto-recall uses fast search without graph traversal | Search without type filter for broadest coverage |
|
|
121
147
|
|
|
122
|
-
|
|
123
|
-
|----------------------------|------------|
|
|
124
|
-
| "还记得我们之前聊的那个项目吗" / "remember when we discussed..." | Search with \\\`memory_types: ["episode"]\\\` — auto-recall doesn't include conversation summaries |
|
|
125
|
-
| "上周我跟你说过..." / "last Tuesday I mentioned..." | Search with time filters (\\\`start_time\\\`/\\\`end_time\\\`) — auto-recall doesn't filter by time |
|
|
126
|
-
| "跟我说说关于 X 的所有信息" / "tell me everything about X" | Search broadly, omit memory_types for widest coverage |
|
|
127
|
-
| You see \\\`<memories>\\\` but they don't answer the user's question | Search with more specific query terms or different memory_types |
|
|
128
|
-
| User asks about a person, place, or relationship | Search with \\\`memory_types: ["entity", "relation"]\\\` |
|
|
129
|
-
| User asks a factual question about the past | Search with \\\`memory_types: ["event_log"]\\\` |
|
|
148
|
+
### Should search (auto-recall likely insufficient)
|
|
130
149
|
|
|
131
|
-
|
|
150
|
+
| Pattern | Why | How to search |
|
|
151
|
+
|---------|-----|---------------|
|
|
152
|
+
| \\\`<memories>\\\` present but doesn't answer the question | Query keywords didn't match | Rephrase with more specific terms |
|
|
153
|
+
| "跟我说说关于 X 的所有事" / "tell me everything about X" | Needs multiple types | Omit memory_types for broadest results |
|
|
154
|
+
| "具体是哪天..." / "exactly when did..." | Needs precise time filtering | Use explicit \\\`start_time\\\`/\\\`end_time\\\` in ISO 8601 |
|
|
155
|
+
| User mentions a person + context auto-recall missed | Auto-recall limited to 12 items | Search with \\\`memory_types: ["entity", "relation"]\\\` and the person's name |
|
|
132
156
|
|
|
133
|
-
Don't
|
|
134
|
-
- User: "还记得上次我跟你说我想换工作的事吗" → query: "换工作 职业规划"
|
|
135
|
-
- User: "Caroline 生日送什么好" → query: "Caroline birthday gift"
|
|
136
|
-
- User: "我们之前讨论的 Chrome 扩展进展怎么样了" → query: "Chrome extension project"
|
|
157
|
+
### Don't search (auto-recall is enough)
|
|
137
158
|
|
|
138
|
-
|
|
159
|
+
- \\\`<memories>\\\` already contains the answer
|
|
160
|
+
- User is asking about something new (not past conversations)
|
|
161
|
+
- User is giving you new information, not asking about old
|
|
139
162
|
|
|
140
|
-
|
|
163
|
+
### Query construction tips
|
|
141
164
|
|
|
142
|
-
|
|
165
|
+
Extract the core topic from the user's message — don't pass their full sentence:
|
|
143
166
|
|
|
144
|
-
|
|
145
|
-
|
|
167
|
+
\\\`\\\`\\\`
|
|
168
|
+
User: "还记得上次我跟你说我想换工作的事吗"
|
|
169
|
+
→ query: "换工作 职业规划"
|
|
146
170
|
|
|
147
|
-
|
|
171
|
+
User: "我跟 Caroline 上周讨论的那个设计方案怎么样了"
|
|
172
|
+
→ query: "Caroline 设计方案"
|
|
148
173
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- Redundant facts already in \\\`<memories>\\\`
|
|
174
|
+
User: "what did we decide about the API rate limiting?"
|
|
175
|
+
→ query: "API rate limiting decision"
|
|
176
|
+
\\\`\\\`\\\`
|
|
153
177
|
|
|
154
|
-
|
|
178
|
+
Include: names, dates, topic keywords.
|
|
179
|
+
Avoid: filler words, full sentences, vague references like "that thing".
|
|
180
|
+
|
|
181
|
+
### Time filtering
|
|
182
|
+
|
|
183
|
+
Auto-recall already detects basic patterns (yesterday, 上周, last month). But for precise control:
|
|
184
|
+
|
|
185
|
+
| User says | start_time | end_time |
|
|
186
|
+
|-----------|-----------|---------|
|
|
187
|
+
| "三月份的" | 2026-03-01T00:00:00Z | 2026-03-31T23:59:59Z |
|
|
188
|
+
| "去年夏天" | 2025-06-01T00:00:00Z | 2025-09-01T00:00:00Z |
|
|
189
|
+
| "最近三天" | (3 days ago) | (now) |
|
|
190
|
+
|
|
191
|
+
### memory_types reference
|
|
192
|
+
|
|
193
|
+
| Type | Contains | When to use |
|
|
194
|
+
|------|----------|-------------|
|
|
195
|
+
| \\\`event_log\\\` | Atomic facts, decisions, events with timestamps | "What did I eat Tuesday?" |
|
|
196
|
+
| \\\`entity\\\` | People, places, projects, concepts | "Who is Caroline?" |
|
|
197
|
+
| \\\`relation\\\` | How entities connect | "How do Arthur and Caroline know each other?" |
|
|
198
|
+
| \\\`episode\\\` | Full conversation summaries | "Summarize our Chrome extension discussion" |
|
|
199
|
+
| \\\`raw_doc\\\` | Documents the user shared | "That PDF I sent you" |
|
|
200
|
+
| \\\`foresight\\\` | Plans, predictions, future intentions | "What did I plan for next quarter?" |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 3. When to Store
|
|
205
|
+
|
|
206
|
+
**After each conversation, the full dialogue is automatically saved.** You don't need to store what was already said.
|
|
207
|
+
|
|
208
|
+
Use explicit storage ONLY for:
|
|
209
|
+
|
|
210
|
+
- **User explicitly asks**: "记住我不喝咖啡" / "remember I'm allergic to shellfish"
|
|
211
|
+
- **Critical atomic facts** that might get buried in a long conversation: a decision, a deadline, a preference
|
|
212
|
+
|
|
213
|
+
Rules:
|
|
214
|
+
- One fact per store call
|
|
215
|
+
- Include the person's name: "Arthur prefers dark roast coffee" not "prefers dark roast coffee"
|
|
216
|
+
- Don't store things the user just said (auto-capture will save the full conversation)
|
|
217
|
+
- Don't store facts already present in \\\`<memories>\\\`
|
|
218
|
+
- Don't ask "should I remember this?" — if it's clearly important, just store it
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 4. First Conversation (Onboarding)
|
|
155
223
|
|
|
156
224
|
If no \\\`<memories>\\\` block is present, the user just installed Mimir. Welcome them:
|
|
157
225
|
|
|
@@ -166,23 +234,30 @@ If no \\\`<memories>\\\` block is present, the user just installed Mimir. Welcom
|
|
|
166
234
|
你聊天的重要内容我也会自动捕捉,不用每次都说"记住"。
|
|
167
235
|
---
|
|
168
236
|
|
|
169
|
-
Match the user's language. Keep it short. Do NOT repeat
|
|
237
|
+
Match the user's language. Keep it short. Do NOT repeat onboarding in later conversations where \\\`<memories>\\\` is present.
|
|
170
238
|
|
|
171
|
-
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 5. Using \\\`<memories>\\\` Naturally
|
|
172
242
|
|
|
173
|
-
|
|
174
|
-
-
|
|
175
|
-
- If
|
|
176
|
-
- If \\\`<memories>\\\`
|
|
177
|
-
- If \\\`<memories>\\\` is insufficient for the user's question, silently search deeper
|
|
243
|
+
- Weave memories into your response — don't list them like a database query result
|
|
244
|
+
- If the answer is in \\\`<memories>\\\`, just answer directly — never say "based on my memory records" or "I found in my memory"
|
|
245
|
+
- If \\\`<memories>\\\` conflicts with what the user just said, **trust the user** — they may have changed their mind
|
|
246
|
+
- If \\\`<memories>\\\` is insufficient, search deeper **silently**, then answer
|
|
178
247
|
|
|
179
|
-
|
|
248
|
+
---
|
|
180
249
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
250
|
+
## 6. Anti-patterns
|
|
251
|
+
|
|
252
|
+
| Never do this | Do this instead |
|
|
253
|
+
|---------------|-----------------|
|
|
254
|
+
| "让我搜索一下记忆..." | Silently search, then answer |
|
|
255
|
+
| "根据我的记忆数据库..." | "你之前提过..." or just answer directly |
|
|
256
|
+
| "I'll use mimir_search to find that" | Just find it and answer |
|
|
257
|
+
| "I found 5 results matching your query" | Synthesize the results into a natural answer |
|
|
258
|
+
| Store every single thing the user says | Let auto-capture handle it |
|
|
259
|
+
| "Do you want me to remember that?" | If it's important, just remember |
|
|
260
|
+
| Show raw memory entries to the user | Paraphrase and integrate naturally |
|
|
186
261
|
`;
|
|
187
262
|
function installSkill() {
|
|
188
263
|
try {
|
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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"}
|