@amaster.ai/pi-memory-mem0 0.1.2-beta.24 → 0.1.2-beta.25
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 +83 -61
- package/package.json +4 -2
- package/preview.png +0 -0
package/README.md
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
# @amaster.ai/pi-memory-mem0
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Passive semantic memory extension powered by [Mem0](https://mem0.ai) — supports both Platform (cloud) and Open-Source (local SQLite) modes.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## How It Works
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
After each conversation turn, user + assistant messages are automatically sent to Mem0 for fact extraction and vector storage. Before the next turn, relevant memories are recalled via semantic search and injected into the system prompt.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Zero effort required** — memory storage and recall are fully automatic.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|------|---------|------|---------|
|
|
15
|
-
| `platform` | Mem0 Cloud | MEM0_API_KEY | 快速上手,多设备同步 |
|
|
16
|
-
| `open-source` | 本地 SQLite (`~/.mem0/vector_store.db`) | LLM + Embedding API | 数据私有,零外部服务 |
|
|
13
|
+
## Two Modes
|
|
17
14
|
|
|
18
|
-
|
|
15
|
+
| Mode | Storage | Dependencies | Use Case |
|
|
16
|
+
|------|---------|--------------|----------|
|
|
17
|
+
| `platform` | Mem0 Cloud | `MEM0_API_KEY` | Quick start, multi-device sync |
|
|
18
|
+
| `open-source` | Local SQLite (`~/.pi/agent/memories/mem0.db`) | LLM + Embedding API | Data privacy, no external services |
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### Platform Mode
|
|
21
23
|
|
|
22
24
|
```json
|
|
23
25
|
{
|
|
@@ -29,9 +31,9 @@ Mem0 被动语义记忆扩展 — 支持 Platform (云端) 和 Open-Source (本
|
|
|
29
31
|
}
|
|
30
32
|
```
|
|
31
33
|
|
|
32
|
-
### Open-Source
|
|
34
|
+
### Open-Source Mode (Recommended)
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
Reuses API keys from pi's configured model providers by default — **no extra environment variables needed**.
|
|
35
37
|
|
|
36
38
|
```json
|
|
37
39
|
{
|
|
@@ -42,9 +44,9 @@ Mem0 被动语义记忆扩展 — 支持 Platform (云端) 和 Open-Source (本
|
|
|
42
44
|
}
|
|
43
45
|
```
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
Defaults to OpenAI `text-embedding-3-small` (embedding) + `gpt-4.1-nano` (extraction). API keys are automatically resolved from pi's model registry.
|
|
46
48
|
|
|
47
|
-
###
|
|
49
|
+
### Custom LLM / Embedding
|
|
48
50
|
|
|
49
51
|
```json
|
|
50
52
|
{
|
|
@@ -65,7 +67,7 @@ Mem0 被动语义记忆扩展 — 支持 Platform (云端) 和 Open-Source (本
|
|
|
65
67
|
}
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
###
|
|
70
|
+
### Fully Local (Ollama)
|
|
69
71
|
|
|
70
72
|
```json
|
|
71
73
|
{
|
|
@@ -87,43 +89,63 @@ Mem0 被动语义记忆扩展 — 支持 Platform (云端) 和 Open-Source (本
|
|
|
87
89
|
}
|
|
88
90
|
```
|
|
89
91
|
|
|
90
|
-
##
|
|
91
|
-
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
| `mode` | `"platform"` \| `"open-source"` | `"platform"` |
|
|
95
|
-
| `apiKey` | string | — |
|
|
96
|
-
| `baseUrl` | string | `https://api.mem0.ai` |
|
|
97
|
-
| `userId` | string | `$USER`
|
|
98
|
-
| `topK` | number | `5` |
|
|
99
|
-
| `useRegistryKeys` | boolean | `true` | OSS
|
|
100
|
-
| `oss.llm` | object | OpenAI gpt-4.1-nano | OSS
|
|
101
|
-
| `oss.embedder` | object | OpenAI text-embedding-3-small | OSS embedding
|
|
102
|
-
| `oss.vectorStore` | object | SQLite (
|
|
103
|
-
| `oss.disableHistory` | boolean | `false` |
|
|
104
|
-
|
|
105
|
-
##
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
92
|
+
## Configuration Reference
|
|
93
|
+
|
|
94
|
+
| Field | Type | Default | Description |
|
|
95
|
+
|-------|------|---------|-------------|
|
|
96
|
+
| `mode` | `"platform"` \| `"open-source"` | `"platform"` | Operating mode |
|
|
97
|
+
| `apiKey` | string | — | Required for platform mode. Supports `${MEM0_API_KEY}` |
|
|
98
|
+
| `baseUrl` | string | `https://api.mem0.ai` | Custom platform endpoint |
|
|
99
|
+
| `userId` | string | `$USER` or `"default-user"` | Memory scoping identifier |
|
|
100
|
+
| `topK` | number | `5` | Max recalled memories per turn |
|
|
101
|
+
| `useRegistryKeys` | boolean | `true` | Whether OSS mode resolves keys from pi registry |
|
|
102
|
+
| `oss.llm` | object | OpenAI gpt-4.1-nano | OSS extraction model |
|
|
103
|
+
| `oss.embedder` | object | OpenAI text-embedding-3-small | OSS embedding model |
|
|
104
|
+
| `oss.vectorStore` | object | SQLite (default) | Custom vector store |
|
|
105
|
+
| `oss.disableHistory` | boolean | `false` | Disable operation history |
|
|
106
|
+
|
|
107
|
+
## Installation Notes
|
|
108
|
+
|
|
109
|
+
Open-Source mode depends on `better-sqlite3` (native addon, transitive dependency of `mem0ai`).
|
|
110
|
+
|
|
111
|
+
**For pi-agent users**: pi-agent's `package.json` includes `better-sqlite3` in `pnpm.onlyBuiltDependencies` — it compiles automatically during `pnpm install`. No extra steps needed.
|
|
112
|
+
|
|
113
|
+
**For standalone users**: If your project's pnpm config blocks build scripts, add to your root `package.json`:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"pnpm": {
|
|
118
|
+
"onlyBuiltDependencies": ["better-sqlite3"]
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Or run `pnpm approve-builds` to approve manually.
|
|
124
|
+
|
|
125
|
+
**System requirements**: Node.js >= 22, build toolchain (macOS: Xcode CLI Tools, Linux: `build-essential`, Windows: `windows-build-tools`). In most cases, `better-sqlite3` downloads a prebuilt binary and does not require local compilation.
|
|
126
|
+
|
|
127
|
+
## Data Storage Location
|
|
128
|
+
|
|
129
|
+
| Mode | Location |
|
|
130
|
+
|------|----------|
|
|
109
131
|
| Platform | Mem0 Cloud (api.mem0.ai) |
|
|
110
|
-
| Open-Source | `~/.pi/agent/memories/mem0.db` (SQLite
|
|
132
|
+
| Open-Source | `~/.pi/agent/memories/mem0.db` (SQLite, alongside pi-memory's MEMORY.md/USER.md) |
|
|
111
133
|
|
|
112
|
-
|
|
134
|
+
Customizable via `oss.vectorStore.config.dbPath`. The `PI_AGENT_HOME` environment variable changes the default directory.
|
|
113
135
|
|
|
114
|
-
## API Key
|
|
136
|
+
## API Key Resolution (OSS Mode)
|
|
115
137
|
|
|
116
|
-
LLM
|
|
138
|
+
LLM and Embedder API keys are **resolved independently**, in this order:
|
|
117
139
|
|
|
118
|
-
1.
|
|
119
|
-
2.
|
|
120
|
-
3.
|
|
140
|
+
1. Explicit config in `oss.llm.config.apiKey` / `oss.embedder.config.apiKey`
|
|
141
|
+
2. Pi model registry key for the corresponding provider (when `useRegistryKeys: true`)
|
|
142
|
+
3. Environment variables (`OPENAI_API_KEY`, `DEEPSEEK_API_KEY`, etc. — read by mem0 SDK internally)
|
|
121
143
|
|
|
122
|
-
|
|
144
|
+
For example, `"llm": { "provider": "deepseek" }` + `"embedder": { "provider": "openai" }` resolves the deepseek key for LLM and the openai key for embedder, each from pi's registry.
|
|
123
145
|
|
|
124
|
-
###
|
|
146
|
+
### Proxy API Calls (e.g. amaster)
|
|
125
147
|
|
|
126
|
-
|
|
148
|
+
If your embedding/LLM goes through a unified proxy (like amaster credits), configure `baseUrl` forwarding:
|
|
127
149
|
|
|
128
150
|
```json
|
|
129
151
|
{
|
|
@@ -143,29 +165,29 @@ LLM 和 Embedder 的 API key **各自独立解析**,按以下顺序:
|
|
|
143
165
|
}
|
|
144
166
|
```
|
|
145
167
|
|
|
146
|
-
|
|
168
|
+
Keys resolve from pi registry's `openai` provider, but requests are sent to the amaster endpoint.
|
|
147
169
|
|
|
148
|
-
##
|
|
170
|
+
## Tools
|
|
149
171
|
|
|
150
|
-
|
|
|
151
|
-
|
|
152
|
-
| `mem0_search` |
|
|
153
|
-
| `mem0_profile` |
|
|
154
|
-
| `mem0_save` |
|
|
172
|
+
| Tool | Description |
|
|
173
|
+
|------|-------------|
|
|
174
|
+
| `mem0_search` | Semantic search over long-term memories |
|
|
175
|
+
| `mem0_profile` | List all stored memories |
|
|
176
|
+
| `mem0_save` | Store a fact verbatim (bypasses LLM extraction) |
|
|
155
177
|
|
|
156
|
-
##
|
|
178
|
+
## Commands
|
|
157
179
|
|
|
158
180
|
```
|
|
159
|
-
/mem0 status #
|
|
160
|
-
/mem0 search <query> #
|
|
161
|
-
/mem0 profile #
|
|
181
|
+
/mem0 status # Show current status
|
|
182
|
+
/mem0 search <query> # Semantic search
|
|
183
|
+
/mem0 profile # List all memories
|
|
162
184
|
```
|
|
163
185
|
|
|
164
|
-
##
|
|
186
|
+
## Relationship with pi-memory
|
|
165
187
|
|
|
166
|
-
`pi-memory-mem0`
|
|
188
|
+
`pi-memory-mem0` and `pi-memory` run **independently in parallel** as separate extensions:
|
|
167
189
|
|
|
168
|
-
- `pi-memory
|
|
169
|
-
- `pi-memory-mem0
|
|
190
|
+
- `pi-memory`: Active memory — agent explicitly manages via tools, local `.md` files, hard char limits
|
|
191
|
+
- `pi-memory-mem0`: Passive memory — automatic extraction and storage, semantic retrieval, no capacity limits
|
|
170
192
|
|
|
171
|
-
|
|
193
|
+
They do not interfere with each other and each injects into the system prompt separately.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amaster.ai/pi-memory-mem0",
|
|
3
|
-
"version": "0.1.2-beta.
|
|
3
|
+
"version": "0.1.2-beta.25",
|
|
4
4
|
"description": "Mem0 passive memory extension for pi — dual-mode: Platform (cloud) or Open-Source (local SQLite).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -30,12 +30,14 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"pi": {
|
|
33
|
+
"image": "https://raw.githubusercontent.com/TGYD-helige/pi/master/packages/pi-memory-mem0/preview.png",
|
|
33
34
|
"extensions": [
|
|
34
35
|
"./dist/index.js"
|
|
35
36
|
]
|
|
36
37
|
},
|
|
37
38
|
"files": [
|
|
38
39
|
"dist",
|
|
40
|
+
"preview.png",
|
|
39
41
|
"README.md"
|
|
40
42
|
],
|
|
41
43
|
"publishConfig": {
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
},
|
|
49
51
|
"dependencies": {
|
|
50
52
|
"mem0ai": "^3.0.6",
|
|
51
|
-
"@amaster.ai/pi-shared": "0.1.2-beta.
|
|
53
|
+
"@amaster.ai/pi-shared": "0.1.2-beta.25"
|
|
52
54
|
},
|
|
53
55
|
"peerDependencies": {
|
|
54
56
|
"@earendil-works/pi-coding-agent": ">=0.74.0",
|
package/preview.png
ADDED
|
Binary file
|