@memorilabs/openclaw-memori 0.0.11 → 0.0.13

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/README.md CHANGED
@@ -75,7 +75,7 @@ It runs **after the agent responds** and does not impact latency.
75
75
 
76
76
  ---
77
77
 
78
- ### 2. Agent-controlled recall
78
+ ### 2. Agent-Controlled Intelligent Recall
79
79
 
80
80
  Recall is **explicit and initiated by the agent**.
81
81
 
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { handleAugmentation } from './handlers/augmentation.js';
2
2
  import { PLUGIN_CONFIG } from './constants.js';
3
3
  import { MemoriLogger, loadSkillsContent } from './utils/index.js';
4
- import { registerAllTools } from './tools/index.js';
4
+ import { registerUtilityTools, registerAuthenticatedTools } from './tools/index.js';
5
5
  import { registerCliCommands } from './cli/commands.js';
6
6
  const memoriPlugin = {
7
7
  id: PLUGIN_CONFIG.ID,
@@ -15,19 +15,20 @@ const memoriPlugin = {
15
15
  entityId: rawConfig?.entityId,
16
16
  projectId: rawConfig?.projectId,
17
17
  };
18
+ const logger = new MemoriLogger(api);
19
+ const skillsContent = loadSkillsContent(api.resolvePath.bind(api));
20
+ registerUtilityTools({ api, config, logger });
18
21
  if (!config.apiKey || !config.entityId) {
19
22
  api.logger.warn(`${PLUGIN_CONFIG.LOG_PREFIX} Missing apiKey or entityId in config. Plugin disabled.`);
20
23
  return;
21
24
  }
22
- const logger = new MemoriLogger(api);
23
- const skillsContent = loadSkillsContent(api.resolvePath.bind(api));
24
25
  logger.info(`\n=== ${PLUGIN_CONFIG.LOG_PREFIX} INITIALIZING PLUGIN ===`);
25
26
  logger.info(`${PLUGIN_CONFIG.LOG_PREFIX} Tracking Entity ID: ${config.entityId}`);
26
27
  if (skillsContent) {
27
28
  api.on('before_prompt_build', () => ({ appendSystemContext: skillsContent }));
28
29
  }
29
30
  api.on('agent_end', (event, ctx) => handleAugmentation(event, ctx, config, logger));
30
- registerAllTools({ api, config, logger });
31
+ registerAuthenticatedTools({ api, config, logger });
31
32
  },
32
33
  };
33
34
  export default memoriPlugin;
@@ -1,3 +1,4 @@
1
1
  import type { ToolDeps } from './types.js';
2
- export declare function registerAllTools(deps: ToolDeps): void;
2
+ export declare function registerUtilityTools(deps: ToolDeps): void;
3
+ export declare function registerAuthenticatedTools(deps: ToolDeps): void;
3
4
  export type { ToolDeps };
@@ -3,10 +3,12 @@ import { createMemoriQuotaTool } from './memori-quota.js';
3
3
  import { createMemoriRecallTool } from './memori-recall.js';
4
4
  import { createMemoriRecallSummaryTool } from './memori-recall-summary.js';
5
5
  import { createMemoriFeedbackTool } from './memori-feedback.js';
6
- export function registerAllTools(deps) {
6
+ export function registerUtilityTools(deps) {
7
7
  deps.api.registerTool(createMemoriSignupTool(deps));
8
- deps.api.registerTool(createMemoriQuotaTool(deps));
8
+ }
9
+ export function registerAuthenticatedTools(deps) {
9
10
  deps.api.registerTool(createMemoriRecallTool(deps));
10
11
  deps.api.registerTool(createMemoriRecallSummaryTool(deps));
11
12
  deps.api.registerTool(createMemoriFeedbackTool(deps));
13
+ deps.api.registerTool(createMemoriQuotaTool(deps));
12
14
  }
@@ -6,10 +6,6 @@ export declare function createMemoriRecallTool(deps: ToolDeps): {
6
6
  parameters: {
7
7
  type: string;
8
8
  properties: {
9
- query: {
10
- type: string;
11
- description: string;
12
- };
13
9
  dateStart: {
14
10
  type: string;
15
11
  description: string;
@@ -37,10 +33,8 @@ export declare function createMemoriRecallTool(deps: ToolDeps): {
37
33
  enum: string[];
38
34
  };
39
35
  };
40
- required: string[];
41
36
  };
42
37
  execute(_toolCallId: string, params: {
43
- query: string;
44
38
  dateStart?: string;
45
39
  dateEnd?: string;
46
40
  projectId?: string;
@@ -8,10 +8,6 @@ export function createMemoriRecallTool(deps) {
8
8
  parameters: {
9
9
  type: 'object',
10
10
  properties: {
11
- query: {
12
- type: 'string',
13
- description: 'REQUIRED: The natural language search query to find specific facts (e.g., "What database did we decide to use?", "Ryan\'s dogs"). DO NOT use wildcards like "*" or regex. This is a semantic search, so use real words.',
14
- },
15
11
  dateStart: {
16
12
  type: 'string',
17
13
  description: 'ISO 8601 (MUST be UTC) date string to filter memories created on or after this time',
@@ -58,8 +54,6 @@ export function createMemoriRecallTool(deps) {
58
54
  ],
59
55
  },
60
56
  },
61
- // Force the LLM to ALWAYS provide a search query
62
- required: ['query'],
63
57
  },
64
58
  async execute(_toolCallId, params) {
65
59
  try {
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.0.11";
1
+ export declare const SDK_VERSION = "0.0.13";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const SDK_VERSION = '0.0.11';
1
+ export const SDK_VERSION = '0.0.13';
@@ -1,12 +1,18 @@
1
1
  {
2
2
  "id": "openclaw-memori",
3
3
  "name": "Memori System",
4
- "version": "0.0.10",
4
+ "version": "0.0.13",
5
5
  "description": "Hosted memory backend",
6
6
  "kind": "memory",
7
7
  "main": "dist/index.js",
8
8
  "contracts": {
9
- "tools": ["memori_recall", "memori_recall_summary", "memori_feedback"]
9
+ "tools": [
10
+ "memori_recall",
11
+ "memori_recall_summary",
12
+ "memori_feedback",
13
+ "memori_signup",
14
+ "memori_quota"
15
+ ]
10
16
  },
11
17
  "uiHints": {
12
18
  "apiKey": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memorilabs/openclaw-memori",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "description": "Official MemoriLabs.ai long-term memory plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: memori
3
3
  id: '@memorilabs/openclaw-memori'
4
- description: Long-term memory for OpenClaw agents using the Memori SDK. Automatically captures conversations and execution trace, and equips the agent with explicit tools to recall context, manage its account, and monitor usage across sessions.
5
- license: MIT
4
+ description: Agent-native memory for OpenClaw that structures memory from agent trace, execution history, decisions, tool calls, and conversations into durable long-term memory primitives.
5
+ license: Apache-2.0
6
+ homepage: https://github.com/MemoriLabs/Memori
7
+ repository: https://github.com/MemoriLabs/Memori.git
6
8
  compatibility:
7
9
  - openclaw
8
10
  metadata:
@@ -19,290 +21,191 @@ metadata:
19
21
  - https://api.memorilabs.ai
20
22
  ---
21
23
 
22
- # Memori skills file
24
+ # Memori - Structured Long-term Memory for OpenClaw
23
25
 
24
- You have access to Memori, agent-native memory infrastructure: an LLM-agnostic layer that structures memory from not just natural language, but also from agent trace that comes from execution.
26
+ Give your OpenClaw agents persistent, structured memory derived from agent execution, tool usage, workflow history, and conversations. Memori integrates seamlessly in the background via lifecycle hooks and provides agents with the tools to retrieve context when it is relevant.
25
27
 
26
- Memori automatically captures and structures memory from conversation and execution trace — including the agent's actions, tool results, decisions, and outcomes — and allows you to retrieve it on demand. Use it to maintain continuity across sessions, preserve decisions and constraints, and help the agent understand what it actually did so the next time it completes a task, it is more accurate and efficient.
28
+ ## Core Workflow
27
29
 
28
- ---
29
-
30
- ## Core instruction
31
-
32
- At the start of a session, you should check the `SKILL.md` file
33
-
34
- Use it to understand:
35
-
36
- - Available capabilities
37
- - Tooling and integrations
38
- - Expected behaviors and constraints
39
-
40
- Treat `SKILL.md` as a source of truth for what you can do before taking action.
41
-
42
- ---
43
-
44
- ## When to use Memori
45
-
46
- Use Memori when:
47
-
48
- - The task depends on prior context
49
- - The user refers to previous sessions or decisions
50
- - You need known constraints, preferences, or patterns
51
- - You are starting a session and need current state
52
- - You want to understand what has already been done
53
-
54
- ---
55
-
56
- ## When not to use Memori
57
-
58
- Do not use Memori when:
30
+ Memori operates on two parallel tracks through standard OpenClaw lifecycle hooks:
59
31
 
60
- - The task is fully self-contained
61
- - The answer depends only on the current prompt
62
- - No historical context is required
63
- - The query is simple or one-off
32
+ ### 1. Advanced Augmentation (automatic)
64
33
 
65
- Avoid unnecessary recall.
34
+ After each interaction, Memori converts raw session data into structured, reusable memories asynchronously.
66
35
 
67
- ---
68
-
69
- ## Recall behavior
36
+ - Transforms raw agent sessions into structured memory units
37
+ - Captures the agent's actions, reasoning, tool usage, responses, corrections, and failures
38
+ - Organizes into classes to enable efficient retrieval
39
+ - Generates embeddings for semantic retrieval
40
+ - Updates structured memory and the knowledge graph
70
41
 
71
- Recall is **agent-controlled and intentional**.
42
+ This is how structured memory is continuously built and updated over time. It runs after the agent responds and does not impact latency.
72
43
 
73
- Prefer targeted recall over broad queries.
44
+ ### 2. Agent-Controlled-Intelligent Recall
74
45
 
75
- ### Supported parameters (recall only)
46
+ Recall is explicit and initiated by the agent.
76
47
 
77
- - `entityId` user, agent, or system context
78
- - `projectId` → project or workspace context
79
- - `sessionId` → specific session
80
- - `dateStart` / `dateEnd` → time-bounded recall
81
- - `source` → type of memory
82
- - `signal` → how the memory was derived
48
+ Memori separates memory creation from memory recall:
83
49
 
84
- > Note: If a `sessionId` is provided, a `projectId` must also be provided.
85
- > All timestamps are stored in **UTC**.
50
+ - Creation is automatic (advanced augmentation)
51
+ - Recall is intentional (agent-controlled)
86
52
 
87
- ### Memory filters
53
+ Agents decide:
88
54
 
89
- - `source`:
90
- - constraint
91
- - decision
92
- - execution
93
- - fact
94
- - insight
95
- - instruction
96
- - status
97
- - strategy
98
- - task
55
+ - When to recall
56
+ - What scope to recall from
57
+ - How much history to include
99
58
 
100
- - `signal`:
101
- - commit
102
- - discovery
103
- - failure
104
- - inference
105
- - pattern
106
- - result
107
- - update
108
- - verification
59
+ To maintain an efficient context window, Memori equips the agent with specific tools to retrieve history when required for the conversation:
109
60
 
110
- Use `source` and `signal` to prioritize high-signal memory when possible.
61
+ 1. **`memori_recall`**: Searches the structured memory graph for specific facts, constraints, and prior decisions.
62
+ 2. **`memori_recall_summary`**: Retrieves structured daily briefs and rolling summaries of prior sessions.
63
+ 3. **`memori_feedback`**: Reports on memory quality to improve extraction accuracy.
111
64
 
112
- ### Default behavior (recall)
65
+ ## Installation
113
66
 
114
- - No date range → **all-time memory**
115
- - Use time bounds when narrowing results is necessary
67
+ ```bash
68
+ openclaw plugins install @memorilabs/openclaw-memori
69
+ ```
116
70
 
117
- ### Best practices
71
+ ## Configuration
118
72
 
119
- - Start narrow (entity + project)
120
- - Add time bounds only when needed
121
- - Use `source` and `signal` to refine results
122
- - Expand scope only if needed
123
- - Do not recall on every turn
73
+ Add to your `~/.openclaw/openclaw.json` or use the `openclaw memori init` CLI command to set up your workspace:
124
74
 
125
- ---
75
+ ```bash
76
+ openclaw memori init \
77
+ --api-key "YOUR_MEMORI_API_KEY" \
78
+ --entity-id "your-entity-id" \
79
+ --project-id "your-project-id"
80
+ ```
126
81
 
127
- ## Summary behavior
82
+ Alternatively, configure it directly via JSON:
128
83
 
129
- Summaries are used for **state awareness**, not precise retrieval.
84
+ ```json
85
+ {
86
+ "plugins": {
87
+ "entries": {
88
+ "openclaw-memori": {
89
+ "enabled": true,
90
+ "config": {
91
+ "apiKey": "${MEMORI_API_KEY}",
92
+ "entityId": "openclaw-user",
93
+ "projectId": "default-project"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ ```
130
100
 
131
- Use:
101
+ ### Configuration Options
132
102
 
133
- - `memori_recall_summary`
103
+ - **apiKey** (required): Your Memori API key from [memorilabs.ai](https://app.memorilabs.ai/signup)
104
+ - **entityId** (required): Unique identifier for this user's memories
105
+ - **projectId** (required): Scopes all memories to a specific project or workspace
134
106
 
135
- ### Supported parameters (summaries)
107
+ ## Agentic Tool Guidelines
136
108
 
137
- - `projectId`
138
- - `sessionId`
139
- - `dateStart`
140
- - `dateEnd`
109
+ When this plugin is active, the agent is equipped with tools to manage long-term context. The agent should use its discretion to call these tools when helpful:
141
110
 
142
- > Summaries do **not** support `source` or `signal`.
111
+ - **Contextual Recall**: The agent can run a `memori_recall` search to retrieve relevant details if context is missing regarding user preferences.
112
+ - **Summaries**: The agent can utilize the `memori_recall_summary` tool to construct a brief if a user requests a recap.
113
+ - **Account Creation**: If a user explicitly asks to create an account, the agent can use the `memori_signup` tool to initiate the process by asking for an email address. Keys are never returned in the chat. The system securely emails the credentials to the user, who must then manually configure them to activate the plugin.
114
+ - **Quota Monitoring**: The agent can use the `memori_quota` tool to check the user's current memory usage and storage limits to communicate quota status or gracefully degrade behavior if limits are reached.
115
+ - **Date Defaults**: If the agent chooses to search memory, providing specific start/end dates is recommended to keep context windows efficient. Omitting dates will search all available history.
143
116
 
144
- ### Default behavior (summaries)
117
+ ## Verification
145
118
 
146
- - No date range **last 24 hours**
119
+ Check that the plugin is working and securely connected:
147
120
 
148
- ---
121
+ ```bash
122
+ # Verify plugin is securely connected to the API
123
+ openclaw memori status --check
149
124
 
150
- ## Daily brief behavior
125
+ # Check for Memori logs in gateway output
126
+ openclaw gateway logs --filter "[Memori]"
127
+ ```
151
128
 
152
- At the start of a meaningful session, retrieve a structured summary.
129
+ ## Quota Management
153
130
 
154
- Use the daily brief to understand:
131
+ Check your current API quota:
155
132
 
156
- - Current state
157
- - Prior decisions
158
- - Constraints
159
- - Open work
133
+ ```bash
134
+ memori quota
135
+ ```
160
136
 
161
- ### Expected daily brief structure
137
+ **Example output:**
162
138
 
163
- - Today at a glance
164
- - Top 3 next actions
165
- - Top 3 risks
166
- - Verify before acting
167
- - Recent decisions
168
- - Mission stack
169
- - Hard constraints
170
- - Current status
171
- - Open loops
172
- - Known failures and anti-patterns
173
- - Staleness warnings
139
+ ```
140
+ __ __ _
141
+ | \/ | ___ _ __ ___ ___ _ __(_)
142
+ | |\/| |/ _ \ '_ ` _ \ / _ \| '__| |
143
+ | | | | __/ | | | | | (_) | | | |
144
+ |_| |_|\___|_| |_| |_|\___/|_| |_|
145
+ perfectam memoriam
146
+ memorilabs.ai
174
147
 
175
- Treat this as the working state of the system.
148
+ + Maximum # of Memories: 100
149
+ + Current # of Memories: 0
176
150
 
177
- ---
151
+ + You are not currently over quota.
152
+ ```
178
153
 
179
- ## Typical workflow
154
+ Use this to monitor usage and upgrade if needed.
180
155
 
181
- 1. Start of session → retrieve summary
182
- 2. During task → use targeted recall
183
- 3. When memory is missing or incorrect → send feedback
184
- 4. When limits are reached → degrade gracefully
156
+ ## Performance
185
157
 
186
- ---
158
+ - **Automatic deduplication** prevents memory bloat
159
+ - **Agent-controlled retrieval** ensures token usage remains targeted, compact, and actionable
160
+ - **Semantic ranking** ensures relevant memories surface first
187
161
 
188
- ## Safety and correctness
162
+ ## Privacy, Consent & Data Handling
189
163
 
190
- - Do not invent memory
191
- - Do not assume memory is correct if it conflicts with the user
192
- - Verify before acting when needed
193
- - Treat recent instructions as higher priority than recalled memory
164
+ **Explicit Opt-In Required:** Memori requires the user to explicitly configure an API key (`MEMORI_API_KEY`) and an `entityId`. **No data is captured or transmitted unless these credentials are actively provided by the user.**
194
165
 
195
- ---
166
+ - ✅ Conversations are securely transmitted to the Memori backend (`https://api.memorilabs.ai`) only when the plugin is fully configured by the user.
167
+ - ✅ Data is encrypted in transit and at rest.
168
+ - ✅ Users control their data scope via their specific `projectId` and `entityId`.
169
+ - ✅ The backend automatically filters sensitive data (API keys, passwords, secrets) prior to storage.
196
170
 
197
- ## Memori system guidance
171
+ For details: [Memori Privacy Policy](https://memorilabs.ai/privacy)
198
172
 
199
- This section defines how you should interact with Memori beyond basic recall.
173
+ ## Memory Persistence
200
174
 
201
- ---
175
+ Memories persist safely across:
202
176
 
203
- ### 1. Feedback (`memori_feedback`)
177
+ - Session restarts
178
+ - Gateway restarts
179
+ - System reboots
180
+ - OpenClaw upgrades
204
181
 
205
- You are equipped with the `memori_feedback` tool to improve memory quality over time.
182
+ All storage is handled by the Memori backend and is scoped safely alongside your local `MEMORY.md` file without overwriting it.
206
183
 
207
- You may send feedback at any time, and should do so at the end of a session when appropriate.
184
+ ## Troubleshooting
208
185
 
209
- Feedback should be sent when:
186
+ **Plugin not loading:**
210
187
 
211
- - Recall results are irrelevant or missing key context
212
- - Important decisions or constraints were not captured
213
- - Memory quality degrades across sessions
214
- - Something works particularly well and should be reinforced
215
-
216
- Examples:
217
-
218
- - "Send feedback that recall missed a pricing constraint."
219
- - "Tell Memori the daily brief was accurate."
220
- - "Submit a bug report: you didn't remember my preferred language."
221
-
222
- #### Purpose
223
-
224
- Feedback improves:
225
-
226
- - Memory extraction quality
227
- - Recall relevance
228
- - Summary accuracy
229
-
230
- ---
188
+ - Verify `enabled: true` in openclaw.json
189
+ - Check API key: `echo $MEMORI_API_KEY`
190
+ - Restart gateway: `openclaw gateway restart`
231
191
 
232
- ### 2. Updates
192
+ **No memories captured:**
233
193
 
234
- Memori evolves over time (new features, improved recall, better summaries).
194
+ - Check gateway logs for `[Memori]` errors
195
+ - Verify API endpoint reachable
196
+ - Test API key: `memori quota`
235
197
 
236
- When updates are exposed:
198
+ **Memories not recalled:**
237
199
 
238
- - Check for updates via system message or tool
239
- - Adapt behavior to use new capabilities
200
+ - Did the agent utilize the retrieval tool? Check your gateway logs for `memori_recall` tool execution. If it didn't use the tool, you can prompt it to search its memory.
201
+ - Ensure `entityId` and `projectId` are consistent across sessions.
202
+ - Verify memories exist: `memori quota` shows count > 0.
240
203
 
241
- When an update is detected:
204
+ **Quota exceeded:**
242
205
 
243
- - Prefer newer recall patterns when available
244
- - Use improved summaries or classification outputs
245
- - Continue operating normally if no changes are required
246
-
247
- ---
248
-
249
- ### 3. Account Creation and Onboarding (`memori_signup`)
250
-
251
- You are equipped with the `memori_signup` tool to securely create an account and provision an API key for the user via the Memori CLI.
252
-
253
- Use this tool when:
254
-
255
- - The user explicitly asks to sign up, create an account, or get an API key for Memori.
256
- - You encounter an error indicating a missing `MEMORI_API_KEY` and the user provides their email address to get one.
257
-
258
- #### Behavior:
259
-
260
- - **Email Required:** If the user asks to sign up but **does not** provide an email address, you MUST ask them for their email first. Do not attempt to guess or hallucinate an email.
261
- - **Execution:** Once they provide an email, run `memori_signup` with that email.
262
- - **Follow-up:** The tool will trigger the underlying CLI and return a success or error message. Relay that message to the user, remind them to check their inbox for the API key, and instruct them to add it to their configuration (`~/.openclaw/openclaw.json` or `.env` file).
263
- - **Troubleshooting Errors:** If the tool fails with a `Permission denied`, `EACCES`, or `command not found` error, do not ask the user for permission to troubleshoot. Instead, immediately tell them that their CLI installation is broken or missing, and explicitly instruct them to run `npm install -g @memorilabs/memori` in their terminal to fix it.
264
-
265
- ---
266
-
267
- ### 4. Quota Awareness and Upgrades (`memori_quota`)
268
-
269
- You are equipped with the `memori_quota` tool to check the user's current memory usage and limits via the Memori CLI.
270
-
271
- Use this tool when:
272
-
273
- - The user explicitly asks about their quota, usage, storage, or how many memories they have left.
274
- - You encounter errors suggesting memory limits have been reached and want to confirm before degrading behavior.
275
-
276
- #### Behavior:
277
-
278
- - **No Parameters Required:** Simply invoke `memori_quota` — it requires no arguments.
279
- - **Execution:** The tool runs the underlying CLI and returns the user's current usage and quota.
280
- - **Follow-up:** Relay the result clearly to the user. If they are near or at their limit, explain the impact and suggest an upgrade.
281
- - **Troubleshooting Errors:** If the tool fails with a `Permission denied`, `EACCES`, or `command not found` error, do not ask the user for permission to troubleshoot. Instead, immediately tell them that their CLI installation is broken or missing, and explicitly instruct them to run `npm install -g @memorilabs/memori` in their terminal to fix it.
282
-
283
- #### When limits are reached or nearing:
284
-
285
- #### a. Degrade gracefully
286
-
287
- - Reduce recall scope (shorter time ranges)
288
- - Prioritize high-signal memory (decisions, constraints, key facts)
289
- - Avoid unnecessary or repeated recall calls
290
-
291
- #### b. Inform the human/operator
292
-
293
- Clearly communicate when limits impact performance.
294
-
295
- Example:
296
-
297
- > "Memory limits have been reached. I can continue with limited recall, or you can upgrade to restore full functionality."
298
-
299
- #### c. Suggest upgrades appropriately
300
-
301
- - Only prompt when performance is affected
302
- - Avoid repetitive or disruptive messaging
303
- - Keep messaging neutral and helpful
304
-
305
- ---
206
+ - Run `memori quota` to check usage
207
+ - Upgrade at [memorilabs.ai](https://app.memorilabs.ai/)
208
+ - Or clear old memories via dashboard
306
209
 
307
210
  ## Learn More
308
211
 
@@ -311,3 +214,7 @@ Example:
311
214
  - **Documentation**: https://memorilabs.ai/docs/memori-cloud/openclaw/overview/
312
215
  - **API Dashboard**: https://app.memorilabs.ai/
313
216
  - **Support**: [GitHub Issues](https://github.com/MemoriLabs/Memori/issues)
217
+
218
+ ## Notes
219
+
220
+ This skill informs the agent about the Memori plugin. The plugin must be installed separately via npm. Once installed, memory capture happens in the background, and the agent is empowered to explicitly query its memories when needed.