@pcircle/memesh 4.3.0 → 4.5.0
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/README.de.md +35 -12
- package/README.es.md +13 -9
- package/README.fr.md +33 -10
- package/README.ja.md +13 -9
- package/README.ko.md +14 -10
- package/README.md +18 -11
- package/README.pt.md +32 -9
- package/README.th.md +18 -8
- package/README.vi.md +34 -11
- package/README.zh-CN.md +14 -10
- package/README.zh-TW.md +14 -10
- package/dashboard/dist/index.html +10 -10
- package/dist/cli/view-live.js +2 -2
- package/dist/cli/view.js +1 -1
- package/dist/core/analytics.d.ts +4 -0
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/analytics.js +8 -8
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/auto-tagger.d.ts.map +1 -1
- package/dist/core/auto-tagger.js.map +1 -1
- package/dist/core/config.d.ts +5 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +28 -13
- package/dist/core/config.js.map +1 -1
- package/dist/core/demo.d.ts +1 -0
- package/dist/core/demo.d.ts.map +1 -1
- package/dist/core/demo.js +24 -0
- package/dist/core/demo.js.map +1 -1
- package/dist/core/digest-validator.d.ts.map +1 -1
- package/dist/core/digest-validator.js +3 -1
- package/dist/core/digest-validator.js.map +1 -1
- package/dist/core/doctor.d.ts +2 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +70 -60
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/dreamer.d.ts +21 -1
- package/dist/core/dreamer.d.ts.map +1 -1
- package/dist/core/dreamer.js +86 -8
- package/dist/core/dreamer.js.map +1 -1
- package/dist/core/embedder.d.ts +1 -4
- package/dist/core/embedder.d.ts.map +1 -1
- package/dist/core/embedder.js +5 -92
- package/dist/core/embedder.js.map +1 -1
- package/dist/core/failure-analyzer.d.ts.map +1 -1
- package/dist/core/failure-analyzer.js +2 -1
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/llm-client.d.ts.map +1 -1
- package/dist/core/llm-client.js.map +1 -1
- package/dist/core/llm-validator.d.ts +1 -0
- package/dist/core/llm-validator.d.ts.map +1 -1
- package/dist/core/llm-validator.js +33 -10
- package/dist/core/llm-validator.js.map +1 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +10 -3
- package/dist/core/operations.js.map +1 -1
- package/dist/core/output-language.d.ts +6 -0
- package/dist/core/output-language.d.ts.map +1 -0
- package/dist/core/output-language.js +25 -0
- package/dist/core/output-language.js.map +1 -0
- package/dist/core/patterns.d.ts +0 -1
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +1 -5
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/transcript-extractor.d.ts +89 -0
- package/dist/core/transcript-extractor.d.ts.map +1 -0
- package/dist/core/transcript-extractor.js +437 -0
- package/dist/core/transcript-extractor.js.map +1 -0
- package/dist/core/transcript-source.d.ts +21 -0
- package/dist/core/transcript-source.d.ts.map +1 -0
- package/dist/core/transcript-source.js +142 -0
- package/dist/core/transcript-source.js.map +1 -0
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/verifier.js +1 -1
- package/dist/core/verifier.js.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +10 -0
- package/dist/db.js.map +1 -1
- package/dist/skills-manifest.json +11 -11
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +229 -65
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/http/server.d.ts +7 -0
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +145 -50
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +1 -1
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +3 -2
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js.map +1 -1
- package/package.json +2 -11
- package/scripts/hooks/post-commit.js +8 -2
- package/scripts/hooks/pre-compact.js +9 -0
- package/scripts/hooks/session-start.js +1 -1
- package/skills/agentic-orchestration/SKILL.md +1 -1
- package/skills/memesh/SKILL.md +2 -0
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ flowchart TB
|
|
|
83
83
|
| Use the `/memesh` skill inside a Claude Code conversation | Path A (plugin) |
|
|
84
84
|
| Get auto-capture (sessions → lessons → recall) in Claude Code | Path A (plugin) |
|
|
85
85
|
| Run `memesh remember` / `memesh recall` / `memesh doctor` in any terminal | Path B (npm-global) |
|
|
86
|
-
| Open the local dashboard via `memesh` (no `npx` lookup delay) | Path B (npm-global) |
|
|
86
|
+
| Open the local dashboard via `memesh serve` (no `npx` lookup delay) | Path B (npm-global) |
|
|
87
87
|
| Plug `memesh-mcp` into Cursor, Cline, or another MCP client | Path B (npm-global) |
|
|
88
88
|
| All of the above | **Install both** — they don't conflict |
|
|
89
89
|
|
|
@@ -131,7 +131,7 @@ npm install -g @pcircle/memesh
|
|
|
131
131
|
|
|
132
132
|
> **First-install notes (one-time):**
|
|
133
133
|
> - **Native modules** — `better-sqlite3` and `sqlite-vec` install via prebuilt binaries on macOS (arm64/x64), Linux (x64/arm64), and Windows x64. On uncommon platforms or when prebuilds fail, you'll need a working C/C++ toolchain.
|
|
134
|
-
> - **
|
|
134
|
+
> - **Semantic (meaning-based) search is optional** — the default recall path is FTS5 keyword search, which needs no model and no download. Meaning-based search needs an embedder: run [Ollama](https://ollama.com) locally, or configure a cloud embedder (see "Bring-your-own embeddings" below). Without one, memesh uses keyword search only.
|
|
135
135
|
|
|
136
136
|
### Step 1.5: Wire MeMesh into Claude Code (npm path only)
|
|
137
137
|
|
|
@@ -178,7 +178,7 @@ memesh doctor
|
|
|
178
178
|
Open the dashboard to explore your memory:
|
|
179
179
|
|
|
180
180
|
```bash
|
|
181
|
-
memesh
|
|
181
|
+
memesh serve
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
<p align="center">
|
|
@@ -287,7 +287,7 @@ All configuration is via environment variables. Defaults are local-only and zero
|
|
|
287
287
|
|---|---|---|
|
|
288
288
|
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Override the SQLite database location. |
|
|
289
289
|
| `MEMESH_AUTO_CAPTURE` | `true` | Disable the auto-capture hooks (`Stop`, `PreCompact`) entirely. |
|
|
290
|
-
| `MEMESH_AUTO_DETECT_LLM` | unset (auto-detect **on**) | Set to `0` to stop memesh using an API key it finds in your shell env. By default, if `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` is set and you have not configured a provider in `~/.memesh/config.json`, memesh uses it for write-side LLM features (lesson extraction, auto-tagging, dream). Embeddings are unaffected — they stay
|
|
290
|
+
| `MEMESH_AUTO_DETECT_LLM` | unset (auto-detect **on**) | Set to `0` to stop memesh using an API key it finds in your shell env. By default, if `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` is set and you have not configured a provider in `~/.memesh/config.json`, memesh uses it for write-side LLM features (lesson extraction, auto-tagging, dream). Embeddings are unaffected — they stay keyword-only (FTS5) unless you explicitly set `embedder.provider` to `ollama` or `openai`. |
|
|
291
291
|
| `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | unset | Set to `1` to enable an experimental working-model protocol (CTO / Orchestrator / Agents framing). Adds a session-start banner, a Bash command nudge, and `verify_agent_work` telemetry. The protocol's effectiveness is being instrumented, not yet proven — opt in if you want to participate. **Default is OFF**: the core memory features work without this flag. |
|
|
292
292
|
| `MEMESH_AUTO_UPDATE` | `off` | Auto-update policy. `off` (default) never auto-updates; `patch` allows `X.Y.Z → X.Y.Z+N`; `minor` adds `X.Y.Z → X.Y+1.0`; `major` allows any bump. When permitted, a detached `npm install -g` fires at session end (Stop hook) so it never blocks your work — outcomes land in `~/.memesh/auto-update.log`. Also settable as `autoUpdate` in `~/.memesh/config.json` (env wins). When the installed version is deprecated by maintainers (security advisory), `patch` is force-allowed even on `off` — minor / major bumps still stay manual to avoid silent behaviour drift. |
|
|
293
293
|
| `OPENAI_API_KEY` | unset | Your OpenAI key. Used automatically for LLM features unless you set `MEMESH_AUTO_DETECT_LLM=0` or configure a provider explicitly. |
|
|
@@ -295,6 +295,8 @@ All configuration is via environment variables. Defaults are local-only and zero
|
|
|
295
295
|
|
|
296
296
|
`memesh doctor` prints the resolved configuration so you can see what's active.
|
|
297
297
|
|
|
298
|
+
**Fallback LLM providers (Smart Mode).** In the dashboard **Settings → "Fallback providers"** you can set an ordered failover chain — memesh tries each provider in turn when your primary is down. Add a local [Ollama](https://ollama.com) fallback, or a cloud one (OpenAI / Anthropic, with an API key). Privacy tradeoff: when a cloud fallback is used, memory text — which can be private — is sent to that provider, so it matters if you run local-only for privacy.
|
|
299
|
+
|
|
298
300
|
When npm flags an installed version as deprecated (typically a security advisory), the next session-start prepends a strong `⚠️ MeMesh <ver> is DEPRECATED` banner and `memesh update-status` surfaces the same line until you upgrade. The check is cached at `~/.memesh/update-check.<version>.json` so a transient network failure can't dim the warning.
|
|
299
301
|
|
|
300
302
|
---
|
|
@@ -360,19 +362,24 @@ memesh config set llm.api-key sk-ant-...
|
|
|
360
362
|
Or use the dashboard Settings tab (visual setup):
|
|
361
363
|
|
|
362
364
|
```bash
|
|
363
|
-
memesh # opens dashboard → Settings tab
|
|
365
|
+
memesh serve # opens dashboard → Settings tab
|
|
364
366
|
```
|
|
365
367
|
|
|
366
|
-
|
|
368
|
+
**Mine your past sessions into memory.** `memesh dream run --from-transcripts` reads this project's Claude Code session transcripts, asks the LLM for the decisions and lessons buried in the conversation, and stages them as proposals — nothing enters your graph automatically. Review each with `memesh dream show <id>` and accept the ones worth keeping. To run it on a schedule, enable `memesh config set transcriptMining true` and point a cron/launchd entry at `memesh dream run --from-transcripts --if-due` — it self-throttles (default once every 24h per project) and stays staging-only. See [API_REFERENCE](docs/api/API_REFERENCE.md#memesh-dream).
|
|
369
|
+
|
|
370
|
+
### Semantic search / embeddings (optional)
|
|
367
371
|
|
|
368
|
-
|
|
372
|
+
By default MeMesh does **keyword-only** recall (FTS5) — no API key, no model download, nothing leaves your machine. Semantic (meaning-based) search is opt-in and needs an embedder. Point one of these at it:
|
|
369
373
|
|
|
370
374
|
```bash
|
|
371
|
-
memesh config set embedder.provider
|
|
375
|
+
memesh config set embedder.provider ollama # local, needs `ollama serve`
|
|
376
|
+
memesh config set embedder.model nomic-embed-text
|
|
377
|
+
# or, for a hosted embedder:
|
|
378
|
+
memesh config set embedder.provider openai
|
|
372
379
|
memesh config set embedder.model text-embedding-3-small
|
|
373
380
|
```
|
|
374
381
|
|
|
375
|
-
The embedder is configured **independently of the chat LLM** — changing `llm.provider` never silently changes your embeddings. If you switch to an embedder with a different dimension (e.g.
|
|
382
|
+
The embedder is configured **independently of the chat LLM** — changing `llm.provider` never silently changes your embeddings. If you switch to an embedder with a different dimension (e.g. 768 → 1536), MeMesh rebuilds the vector index automatically on the next write. Supported `embedder.provider` values: `ollama` (local), `openai` (hosted). With none set, recall stays on keyword search.
|
|
376
383
|
|
|
377
384
|
| | Level 0 (default) | Level 1 (Smart Mode) |
|
|
378
385
|
|---|---|---|
|
|
@@ -385,7 +392,7 @@ The embedder is configured **independently of the chat LLM** — changing `llm.p
|
|
|
385
392
|
|
|
386
393
|
---
|
|
387
394
|
|
|
388
|
-
## All
|
|
395
|
+
## All 8 Memory Tools
|
|
389
396
|
|
|
390
397
|
| Tool | What it does |
|
|
391
398
|
|------|-------------|
|
|
@@ -464,5 +471,5 @@ Dashboard: `cd dashboard && npm install && npm run dev`
|
|
|
464
471
|
---
|
|
465
472
|
|
|
466
473
|
<p align="center">
|
|
467
|
-
<strong>MIT</strong> — Made by <a href="https://pcircle.
|
|
474
|
+
<strong>MIT</strong> — Made by <a href="https://pcircle.com">PCIRCLE AI</a>
|
|
468
475
|
</p>
|
package/README.pt.md
CHANGED
|
@@ -83,7 +83,7 @@ flowchart TB
|
|
|
83
83
|
| Usar o skill `/memesh` numa conversa do Claude Code | Path A (plugin) |
|
|
84
84
|
| Auto-captura no Claude Code (sessão → lições → recall seguinte) | Path A (plugin) |
|
|
85
85
|
| Rodar `memesh remember` / `memesh recall` / `memesh doctor` em qualquer terminal | Path B (npm-global) |
|
|
86
|
-
| Abrir o dashboard via `memesh` (sem atraso de inicialização do `npx`) | Path B (npm-global) |
|
|
86
|
+
| Abrir o dashboard via `memesh serve` (sem atraso de inicialização do `npx`) | Path B (npm-global) |
|
|
87
87
|
| Conectar `memesh-mcp` ao Cursor, Cline ou outro cliente MCP | Path B (npm-global) |
|
|
88
88
|
| Tudo acima | **Instale ambos** — não conflitam |
|
|
89
89
|
|
|
@@ -108,7 +108,20 @@ Se você só usa memesh pelo chat do Claude Code (nunca digita `memesh` num term
|
|
|
108
108
|
|
|
109
109
|
## Comece em 60 Segundos
|
|
110
110
|
|
|
111
|
-
###
|
|
111
|
+
### Opção A — Plugin do Claude Code (instalação em uma linha)
|
|
112
|
+
|
|
113
|
+
Se você usa o Claude Code, instale o MeMesh como plugin de dentro da CLI:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
/plugin marketplace add PCIRCLE-AI/memesh-llm-memory
|
|
117
|
+
/plugin install memesh@pcircle-memesh
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
O Claude Code conecta hooks, skills e o servidor MCP automaticamente. Você ganha auto-captura em sessão, recall proativo, o skill `/memesh` na conversa e `remember` / `recall` / `forget` / `learn` como ferramentas MCP para o agente.
|
|
121
|
+
|
|
122
|
+
### Opção B — npm global (otimização opcional)
|
|
123
|
+
|
|
124
|
+
Se quiser o binário direto no seu `PATH` (para que `memesh` funcione em qualquer terminal sem o atraso do `npx`), ou expor `memesh-mcp` como comando stdio de caminho fixo para clientes MCP fora do Claude Code (Cursor, Cline):
|
|
112
125
|
|
|
113
126
|
```bash
|
|
114
127
|
npm install -g @pcircle/memesh
|
|
@@ -127,6 +140,12 @@ Os hooks coexistem com qualquer hook customizado em `~/.claude/hooks/` — `inst
|
|
|
127
140
|
|
|
128
141
|
### Passo 2: Armazene uma decisão
|
|
129
142
|
|
|
143
|
+
```bash
|
|
144
|
+
memesh remember "Use OAuth 2.0 with PKCE for the new auth"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Ou use a forma explícita quando quiser um nome e um tipo estáveis para filtrar depois:
|
|
148
|
+
|
|
130
149
|
```bash
|
|
131
150
|
memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
|
|
132
151
|
```
|
|
@@ -149,7 +168,7 @@ memesh doctor
|
|
|
149
168
|
Abra o dashboard para explorar sua memória:
|
|
150
169
|
|
|
151
170
|
```bash
|
|
152
|
-
memesh
|
|
171
|
+
memesh serve
|
|
153
172
|
```
|
|
154
173
|
|
|
155
174
|
<p align="center">
|
|
@@ -258,7 +277,7 @@ Toda a configuração é feita por variáveis de ambiente. Os padrões são loca
|
|
|
258
277
|
|---|---|---|
|
|
259
278
|
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Sobrescreve a localização do banco SQLite. |
|
|
260
279
|
| `MEMESH_AUTO_CAPTURE` | `true` | Desativa completamente os hooks de auto-captura (`Stop`, `PreCompact`). |
|
|
261
|
-
| `MEMESH_AUTO_DETECT_LLM` | não definido (autodetecção **ligada**) | Defina como `0` para que o memesh NÃO use uma chave de API encontrada no ambiente do shell. Por padrão, se `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` estiver definida e você não tiver configurado um provedor em `~/.memesh/config.json`, o memesh a usa para as funções LLM de escrita (consolidação, extração de lições, autotagging, dream). Os embeddings não são afetados — permanecem
|
|
280
|
+
| `MEMESH_AUTO_DETECT_LLM` | não definido (autodetecção **ligada**) | Defina como `0` para que o memesh NÃO use uma chave de API encontrada no ambiente do shell. Por padrão, se `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` estiver definida e você não tiver configurado um provedor em `~/.memesh/config.json`, o memesh a usa para as funções LLM de escrita (consolidação, extração de lições, autotagging, dream). Os embeddings não são afetados — permanecem apenas por palavras-chave (FTS5) a menos que você defina `embedder.provider` como `ollama` ou `openai`. |
|
|
262
281
|
| `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | unset | Defina como `1` para habilitar um protocolo experimental de modelo de trabalho (enquadramento CTO / Orchestrator / Agents). Adiciona um banner de início de sessão, um nudge para comandos Bash e telemetria `verify_agent_work`. A eficácia do protocolo está sendo instrumentada, ainda não comprovada — opte se quiser participar. **Padrão é OFF**: as funcionalidades de memória core funcionam sem essa flag. |
|
|
263
282
|
| `MEMESH_AUTO_UPDATE` | `off` | Política de auto-update. `off` (padrão) nunca faz auto-update; `patch` permite `X.Y.Z → X.Y.Z+N`; `minor` adiciona `X.Y.Z → X.Y+1.0`; `major` permite qualquer bump. Quando permitido, um `npm install -g` desanexado dispara no fim da sessão (hook Stop) para nunca bloquear seu trabalho — os resultados aparecem em `~/.memesh/auto-update.log`. Também configurável como `autoUpdate` em `~/.memesh/config.json` (env vence). Quando a versão instalada é depreciada pelos mantenedores (advisory de segurança), `patch` é forçado mesmo em `off` — bumps minor / major continuam manuais para evitar drift silencioso de comportamento. |
|
|
264
283
|
| `OPENAI_API_KEY` | não definido | Sua chave da OpenAI. Usada automaticamente para as funções LLM a menos que você defina `MEMESH_AUTO_DETECT_LLM=0` ou configure um provedor explicitamente. |
|
|
@@ -266,6 +285,8 @@ Toda a configuração é feita por variáveis de ambiente. Os padrões são loca
|
|
|
266
285
|
|
|
267
286
|
`memesh doctor` imprime a configuração resolvida para você ver o que está ativo.
|
|
268
287
|
|
|
288
|
+
**Provedores LLM de fallback (Smart Mode).** No dashboard, em **Settings → “Fallback providers”**, você pode definir uma cadeia de failover ordenada — o memesh tenta cada provedor por vez quando o principal está fora do ar. Adicione um fallback local [Ollama](https://ollama.com), ou um na nuvem (OpenAI / Anthropic, com uma API key). Compromisso de privacidade: quando um fallback na nuvem é usado, o texto da memória — que pode ser privado — é enviado a esse provedor, o que importa se você roda só local por privacidade.
|
|
289
|
+
|
|
269
290
|
Quando o npm sinaliza uma versão instalada como depreciada (tipicamente um advisory de segurança), o próximo início de sessão antepõe um banner forte `⚠️ MeMesh <ver> is DEPRECATED` e `memesh update-status` mostra a mesma linha até você atualizar. A verificação fica em cache em `~/.memesh/update-check.<version>.json` para que uma falha de rede transitória não atenue o aviso.
|
|
270
291
|
|
|
271
292
|
---
|
|
@@ -331,19 +352,21 @@ memesh config set llm.api-key sk-ant-...
|
|
|
331
352
|
Ou use a aba Settings do dashboard (setup visual):
|
|
332
353
|
|
|
333
354
|
```bash
|
|
334
|
-
memesh # abre dashboard → aba Settings
|
|
355
|
+
memesh serve # abre dashboard → aba Settings
|
|
335
356
|
```
|
|
336
357
|
|
|
358
|
+
**Minere memória das suas sessões passadas.** `memesh dream run --from-transcripts` lê as transcrições de sessão do Claude Code deste projeto, pede ao LLM as decisões e lições escondidas na conversa e as prepara como propostas — nada entra no seu grafo automaticamente. Revise cada uma com `memesh dream show <id>` e aceite as que valerem a pena.
|
|
359
|
+
|
|
337
360
|
### Use seus próprios embeddings (opcional)
|
|
338
361
|
|
|
339
|
-
|
|
362
|
+
Por padrão o MeMesh faz recall **apenas por palavras-chave** (FTS5) — sem chave de API, sem download de modelo, nada sai da sua máquina. A busca semântica (por significado) é opcional e precisa de um embedder. Configure um:
|
|
340
363
|
|
|
341
364
|
```bash
|
|
342
365
|
memesh config set embedder.provider openai # or: ollama
|
|
343
366
|
memesh config set embedder.model text-embedding-3-small
|
|
344
367
|
```
|
|
345
368
|
|
|
346
|
-
O embedder é configurado **independentemente do LLM de chat** — mudar `llm.provider` nunca muda seus embeddings silenciosamente. Se você trocar para uma dimensão diferente (ex.:
|
|
369
|
+
O embedder é configurado **independentemente do LLM de chat** — mudar `llm.provider` nunca muda seus embeddings silenciosamente. Se você trocar para uma dimensão diferente (ex.: 768 → 1536), o MeMesh reconstrói o índice vetorial automaticamente na próxima escrita. Valores de `embedder.provider` suportados: `ollama` (local), `openai` (hospedado). Sem nenhum, o recall permanece na busca por palavras-chave.
|
|
347
370
|
|
|
348
371
|
| | Level 0 (padrão) | Level 1 (Smart Mode) |
|
|
349
372
|
|---|---|---|
|
|
@@ -356,7 +379,7 @@ O embedder é configurado **independentemente do LLM de chat** — mudar `llm.pr
|
|
|
356
379
|
|
|
357
380
|
---
|
|
358
381
|
|
|
359
|
-
## Todas as
|
|
382
|
+
## Todas as 8 Ferramentas de Memória
|
|
360
383
|
|
|
361
384
|
| Ferramenta | O que faz |
|
|
362
385
|
|------|-------------|
|
|
@@ -435,5 +458,5 @@ Dashboard: `cd dashboard && npm install && npm run dev`
|
|
|
435
458
|
---
|
|
436
459
|
|
|
437
460
|
<p align="center">
|
|
438
|
-
<strong>MIT</strong> — Feito por <a href="https://pcircle.
|
|
461
|
+
<strong>MIT</strong> — Feito por <a href="https://pcircle.com">PCIRCLE AI</a>
|
|
439
462
|
</p>
|
package/README.th.md
CHANGED
|
@@ -83,7 +83,7 @@ flowchart TB
|
|
|
83
83
|
| ใช้ skill `/memesh` ในการสนทนา Claude Code | Path A (plugin) |
|
|
84
84
|
| Auto-capture ใน Claude Code (session → บทเรียน → recall ครั้งถัดไป) | Path A (plugin) |
|
|
85
85
|
| รัน `memesh remember` / `memesh recall` / `memesh doctor` ใน terminal | Path B (npm-global) |
|
|
86
|
-
| เปิด dashboard ผ่าน `memesh` (ไม่มีดีเลย์ของ `npx`) | Path B (npm-global) |
|
|
86
|
+
| เปิด dashboard ผ่าน `memesh serve` (ไม่มีดีเลย์ของ `npx`) | Path B (npm-global) |
|
|
87
87
|
| เสียบ `memesh-mcp` เข้ากับ Cursor, Cline หรือ MCP client อื่น | Path B (npm-global) |
|
|
88
88
|
| ทั้งหมดข้างต้น | **ติดตั้งทั้งสอง** — ไม่ขัดแย้งกัน |
|
|
89
89
|
|
|
@@ -142,6 +142,12 @@ Hooks เหล่านี้อยู่ร่วมกับ custom hooks ท
|
|
|
142
142
|
|
|
143
143
|
### ขั้นตอนที่ 2: เก็บการตัดสินใจ
|
|
144
144
|
|
|
145
|
+
```bash
|
|
146
|
+
memesh remember "Use OAuth 2.0 with PKCE for the new auth"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
หรือใช้รูปแบบชัดเจนเมื่อต้องการชื่อและชนิดที่คงที่สำหรับกรองภายหลัง:
|
|
150
|
+
|
|
145
151
|
```bash
|
|
146
152
|
memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
|
|
147
153
|
```
|
|
@@ -164,7 +170,7 @@ memesh doctor
|
|
|
164
170
|
เปิดแดชบอร์ดเพื่อสำรวจหน่วยความจำ:
|
|
165
171
|
|
|
166
172
|
```bash
|
|
167
|
-
memesh
|
|
173
|
+
memesh serve
|
|
168
174
|
```
|
|
169
175
|
|
|
170
176
|
<p align="center">
|
|
@@ -273,7 +279,7 @@ memesh export-schema \
|
|
|
273
279
|
|---|---|---|
|
|
274
280
|
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | เปลี่ยนตำแหน่งฐานข้อมูล SQLite |
|
|
275
281
|
| `MEMESH_AUTO_CAPTURE` | `true` | ปิดการใช้ hook จับข้อมูลอัตโนมัติทั้งหมด (`Stop`, `PreCompact`) |
|
|
276
|
-
| `MEMESH_AUTO_DETECT_LLM` | ไม่ได้ตั้งค่า (ตรวจจับอัตโนมัติ **เปิด**) | ตั้งเป็น `0` เพื่อไม่ให้ memesh ใช้คีย์ API ที่พบในสภาพแวดล้อมของเชลล์ โดยค่าเริ่มต้น หากตั้ง `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` ไว้ และคุณยังไม่ได้กำหนดผู้ให้บริการใน `~/.memesh/config.json` memesh จะใช้คีย์นั้นสำหรับฟีเจอร์ LLM ฝั่งเขียน (การสกัดบทเรียน, auto-tagging, dream) ส่วน embeddings ไม่ได้รับผลกระทบ —
|
|
282
|
+
| `MEMESH_AUTO_DETECT_LLM` | ไม่ได้ตั้งค่า (ตรวจจับอัตโนมัติ **เปิด**) | ตั้งเป็น `0` เพื่อไม่ให้ memesh ใช้คีย์ API ที่พบในสภาพแวดล้อมของเชลล์ โดยค่าเริ่มต้น หากตั้ง `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` ไว้ และคุณยังไม่ได้กำหนดผู้ให้บริการใน `~/.memesh/config.json` memesh จะใช้คีย์นั้นสำหรับฟีเจอร์ LLM ฝั่งเขียน (การสกัดบทเรียน, auto-tagging, dream) ส่วน embeddings ไม่ได้รับผลกระทบ — ยังคงเป็นการค้นหาด้วยคีย์เวิร์ดอย่างเดียว (FTS5) เว้นแต่คุณจะตั้ง `embedder.provider` เป็น `ollama` หรือ `openai` |
|
|
277
283
|
| `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | ไม่ตั้ง | ตั้งเป็น `1` เพื่อเปิดใช้โปรโตคอล working-model เชิงทดลอง (กรอบ CTO / Orchestrator / Agents) เพิ่มแบนเนอร์ตอนเริ่มเซสชัน การเตือนคำสั่ง Bash และเทเลเมตรี `verify_agent_work` ประสิทธิผลของโปรโตคอลกำลังถูกเก็บข้อมูล ยังไม่ได้พิสูจน์ — opt-in ถ้าต้องการเข้าร่วม **ค่าเริ่มต้นปิด**: ฟีเจอร์หน่วยความจำหลักทำงานได้โดยไม่ต้องเปิดธงนี้ |
|
|
278
284
|
| `MEMESH_AUTO_UPDATE` | `off` | นโยบายอัปเดตอัตโนมัติ `off` (ค่าเริ่มต้น) ไม่อัปเดตเลย; `patch` อนุญาต `X.Y.Z → X.Y.Z+N`; `minor` เพิ่ม `X.Y.Z → X.Y+1.0`; `major` อนุญาตทุกการเพิ่มเวอร์ชัน เมื่ออนุญาต `npm install -g` แบบ detached จะทำงานเมื่อจบเซสชัน (Stop hook) เพื่อไม่บล็อกงานของคุณ — ผลลัพธ์ลงใน `~/.memesh/auto-update.log` ตั้งใน `~/.memesh/config.json` ผ่านคีย์ `autoUpdate` ก็ได้ (env ชนะ) เมื่อเวอร์ชันที่ติดตั้งถูก deprecate (security advisory) `patch` จะถูกบังคับเปิดแม้ตั้งเป็น `off` — minor / major ยังต้องทำมือเพื่อหลีกเลี่ยงการเปลี่ยนพฤติกรรมเงียบ ๆ |
|
|
279
285
|
| `OPENAI_API_KEY` | ไม่ได้ตั้งค่า | คีย์ OpenAI ของคุณ ใช้โดยอัตโนมัติสำหรับฟีเจอร์ LLM เว้นแต่คุณจะตั้ง `MEMESH_AUTO_DETECT_LLM=0` หรือกำหนดผู้ให้บริการอย่างชัดเจน |
|
|
@@ -281,6 +287,8 @@ memesh export-schema \
|
|
|
281
287
|
|
|
282
288
|
`memesh doctor` พิมพ์การตั้งค่าที่ resolve แล้วเพื่อให้คุณเห็นว่าอะไรทำงานอยู่
|
|
283
289
|
|
|
290
|
+
**ผู้ให้บริการ LLM สำรอง (Smart Mode)** ใน **Settings → “Fallback providers”** ของ dashboard คุณตั้งลูกโซ่ failover ตามลำดับได้ — เมื่อผู้ให้บริการหลักล่ม memesh จะลองตัวถัดไปในรายการตามลำดับ เพิ่มตัวสำรองแบบโลคัล [Ollama](https://ollama.com) หรือแบบคลาวด์ (OpenAI / Anthropic ต้องมี API key) ก็ได้ ข้อแลกเปลี่ยนด้านความเป็นส่วนตัว: เมื่อใช้ตัวสำรองแบบคลาวด์ ข้อความในหน่วยความจำ (ซึ่งอาจเป็นข้อมูลส่วนตัว) จะถูกส่งไปยังผู้ให้บริการนั้น จึงสำคัญถ้าคุณรันแบบโลคัลล้วนเพื่อความเป็นส่วนตัว
|
|
291
|
+
|
|
284
292
|
เมื่อ npm ระบุว่าเวอร์ชันที่ติดตั้งถูก deprecate (โดยทั่วไปคือ security advisory) เซสชันถัดไปจะแสดงแบนเนอร์ `⚠️ MeMesh <ver> is DEPRECATED` แบบหนักนำหน้า และ `memesh update-status` จะแสดงบรรทัดเดียวกันจนกว่าคุณจะอัปเกรด การตรวจสอบถูก cache ที่ `~/.memesh/update-check.<version>.json` เพื่อไม่ให้ความล้มเหลวเครือข่ายชั่วคราวลดความสว่างของคำเตือน
|
|
285
293
|
|
|
286
294
|
---
|
|
@@ -346,19 +354,21 @@ memesh config set llm.api-key sk-ant-...
|
|
|
346
354
|
หรือใช้แท็บ Settings แดชบอร์ด (การตั้งค่าสายตา):
|
|
347
355
|
|
|
348
356
|
```bash
|
|
349
|
-
memesh # opens dashboard → Settings tab
|
|
357
|
+
memesh serve # opens dashboard → Settings tab
|
|
350
358
|
```
|
|
351
359
|
|
|
360
|
+
**ขุดเซสชันที่ผ่านมาให้เป็นหน่วยความจำ** `memesh dream run --from-transcripts` จะอ่านบันทึกเซสชัน Claude Code ของโปรเจกต์นี้ ถาม LLM หาการตัดสินใจและบทเรียนที่ซ่อนอยู่ในบทสนทนา แล้วพักไว้เป็นข้อเสนอ — ไม่มีอะไรเข้าสู่กราฟความรู้โดยอัตโนมัติ ตรวจดูทีละรายการด้วย `memesh dream show <id>` แล้ว accept เฉพาะอันที่ควรเก็บ
|
|
361
|
+
|
|
352
362
|
### ใช้ embeddings ของคุณเอง (ไม่บังคับ)
|
|
353
363
|
|
|
354
|
-
โดยค่าเริ่มต้น
|
|
364
|
+
โดยค่าเริ่มต้น MeMesh ทำ recall **ด้วยคีย์เวิร์ดอย่างเดียว** (FTS5) — ไม่ต้องใช้คีย์ API ไม่ต้องดาวน์โหลดโมเดล ไม่มีข้อมูลออกจากเครื่อง การค้นหาเชิงความหมาย (semantic) เป็นตัวเลือกเสริมและต้องใช้ embedder ตั้งค่าอย่างใดอย่างหนึ่ง:
|
|
355
365
|
|
|
356
366
|
```bash
|
|
357
367
|
memesh config set embedder.provider openai # or: ollama
|
|
358
368
|
memesh config set embedder.model text-embedding-3-small
|
|
359
369
|
```
|
|
360
370
|
|
|
361
|
-
embedder ถูกตั้งค่า**แยกจาก LLM แชท** — การเปลี่ยน `llm.provider` จะไม่เปลี่ยน embeddings ของคุณอย่างเงียบ ๆ หากเปลี่ยนไปใช้มิติที่ต่างกัน (เช่น
|
|
371
|
+
embedder ถูกตั้งค่า**แยกจาก LLM แชท** — การเปลี่ยน `llm.provider` จะไม่เปลี่ยน embeddings ของคุณอย่างเงียบ ๆ หากเปลี่ยนไปใช้มิติที่ต่างกัน (เช่น 768 → 1536) MeMesh จะสร้างดัชนีเวกเตอร์ใหม่โดยอัตโนมัติในการเขียนครั้งถัดไป ค่า `embedder.provider` ที่รองรับ: `ollama` (ในเครื่อง), `openai` (โฮสต์) หากไม่ตั้งค่าใดเลย recall จะยังคงเป็นการค้นหาด้วยคีย์เวิร์ด
|
|
362
372
|
|
|
363
373
|
| | ระดับ 0 (ค่าเริ่มต้น) | ระดับ 1 (Smart Mode) |
|
|
364
374
|
|---|---|---|
|
|
@@ -371,7 +381,7 @@ embedder ถูกตั้งค่า**แยกจาก LLM แชท** —
|
|
|
371
381
|
|
|
372
382
|
---
|
|
373
383
|
|
|
374
|
-
## เครื่องมือหน่วยความจำทั้ง
|
|
384
|
+
## เครื่องมือหน่วยความจำทั้ง 8 ตัว
|
|
375
385
|
|
|
376
386
|
| เครื่องมือ | ทำอะไร |
|
|
377
387
|
|---|---|
|
|
@@ -449,5 +459,5 @@ Dashboard: `cd dashboard && npm install && npm run dev`
|
|
|
449
459
|
---
|
|
450
460
|
|
|
451
461
|
<p align="center">
|
|
452
|
-
<strong>MIT</strong> — สร้างโดย <a href="https://pcircle.
|
|
462
|
+
<strong>MIT</strong> — สร้างโดย <a href="https://pcircle.com">PCIRCLE AI</a>
|
|
453
463
|
</p>
|
package/README.vi.md
CHANGED
|
@@ -29,7 +29,7 @@ Package này là tầng bộ nhớ cục bộ của dòng sản phẩm MeMesh. N
|
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Bằng chứng — 95.60% R@5 trên LongMemEval-S
|
|
33
33
|
|
|
34
34
|
Engine truy hồi của MeMesh là **chỉ FTS5** (không LLM, không embeddings trên hot path), được đo trên benchmark công khai [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) (500 câu hỏi, giấy phép MIT):
|
|
35
35
|
|
|
@@ -83,7 +83,7 @@ flowchart TB
|
|
|
83
83
|
| Dùng skill `/memesh` trong cuộc trò chuyện Claude Code | Path A (plugin) |
|
|
84
84
|
| Tự động capture trong Claude Code (session → bài học → recall lần sau) | Path A (plugin) |
|
|
85
85
|
| Chạy `memesh remember` / `memesh recall` / `memesh doctor` ở bất kỳ terminal nào | Path B (npm-global) |
|
|
86
|
-
| Mở dashboard qua `memesh` (không bị trễ khởi động `npx`) | Path B (npm-global) |
|
|
86
|
+
| Mở dashboard qua `memesh serve` (không bị trễ khởi động `npx`) | Path B (npm-global) |
|
|
87
87
|
| Cắm `memesh-mcp` vào Cursor, Cline hoặc client MCP khác | Path B (npm-global) |
|
|
88
88
|
| Tất cả các mục trên | **Cài cả hai** — không xung đột |
|
|
89
89
|
|
|
@@ -108,7 +108,20 @@ Nếu bạn chỉ dùng memesh qua chat Claude Code (không bao giờ gõ `memes
|
|
|
108
108
|
|
|
109
109
|
## Bắt đầu trong 60 giây
|
|
110
110
|
|
|
111
|
-
###
|
|
111
|
+
### Lựa chọn A — Plugin Claude Code (cài một dòng)
|
|
112
|
+
|
|
113
|
+
Nếu bạn dùng Claude Code, cài MeMesh dưới dạng plugin ngay trong CLI:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
/plugin marketplace add PCIRCLE-AI/memesh-llm-memory
|
|
117
|
+
/plugin install memesh@pcircle-memesh
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Claude Code tự động kết nối hooks, skills và MCP server. Bạn có auto-capture trong phiên, recall chủ động, skill `/memesh` trong cuộc trò chuyện, và `remember` / `recall` / `forget` / `learn` dưới dạng công cụ MCP cho agent.
|
|
121
|
+
|
|
122
|
+
### Lựa chọn B — npm global (tối ưu tuỳ chọn)
|
|
123
|
+
|
|
124
|
+
Nếu bạn muốn binary nằm thẳng trên `PATH` (để `memesh` chạy được ở bất kỳ terminal nào mà không có độ trễ `npx`), hoặc muốn expose `memesh-mcp` như lệnh stdio đường dẫn cố định cho các MCP client ngoài Claude Code (Cursor, Cline):
|
|
112
125
|
|
|
113
126
|
```bash
|
|
114
127
|
npm install -g @pcircle/memesh
|
|
@@ -127,6 +140,12 @@ Các hooks này cùng tồn tại với bất kỳ hook tùy chỉnh nào trong
|
|
|
127
140
|
|
|
128
141
|
### Bước 2: Lưu một quyết định
|
|
129
142
|
|
|
143
|
+
```bash
|
|
144
|
+
memesh remember "Use OAuth 2.0 with PKCE for the new auth"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Hoặc dùng dạng tường minh khi bạn muốn một tên và kiểu ổn định để lọc về sau:
|
|
148
|
+
|
|
130
149
|
```bash
|
|
131
150
|
memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
|
|
132
151
|
```
|
|
@@ -149,7 +168,7 @@ memesh doctor
|
|
|
149
168
|
Mở dashboard để khám phá bộ nhớ của bạn:
|
|
150
169
|
|
|
151
170
|
```bash
|
|
152
|
-
memesh
|
|
171
|
+
memesh serve
|
|
153
172
|
```
|
|
154
173
|
|
|
155
174
|
<p align="center">
|
|
@@ -258,7 +277,7 @@ Toàn bộ cấu hình thông qua biến môi trường. Các giá trị mặc
|
|
|
258
277
|
|---|---|---|
|
|
259
278
|
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Ghi đè vị trí của database SQLite. |
|
|
260
279
|
| `MEMESH_AUTO_CAPTURE` | `true` | Tắt hoàn toàn các hooks auto-capture (`Stop`, `PreCompact`). |
|
|
261
|
-
| `MEMESH_AUTO_DETECT_LLM` | chưa đặt (tự động phát hiện **bật**) | Đặt `0` để memesh KHÔNG dùng khóa API tìm thấy trong môi trường shell. Mặc định, nếu `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` được đặt và bạn chưa cấu hình nhà cung cấp trong `~/.memesh/config.json`, memesh sẽ dùng nó cho các tính năng LLM phía ghi (hợp nhất, trích xuất bài học, tự gắn thẻ, dream). Embeddings không bị ảnh hưởng — vẫn
|
|
280
|
+
| `MEMESH_AUTO_DETECT_LLM` | chưa đặt (tự động phát hiện **bật**) | Đặt `0` để memesh KHÔNG dùng khóa API tìm thấy trong môi trường shell. Mặc định, nếu `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` được đặt và bạn chưa cấu hình nhà cung cấp trong `~/.memesh/config.json`, memesh sẽ dùng nó cho các tính năng LLM phía ghi (hợp nhất, trích xuất bài học, tự gắn thẻ, dream). Embeddings không bị ảnh hưởng — vẫn chỉ tìm kiếm theo từ khóa (FTS5) trừ khi bạn đặt `embedder.provider` thành `ollama` hoặc `openai`. |
|
|
262
281
|
| `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | chưa đặt | Đặt thành `1` để bật một giao thức working-model thử nghiệm (CTO / Orchestrator / Agents framing). Thêm session-start banner, một Bash command nudge, và telemetry `verify_agent_work`. Hiệu quả của giao thức đang được instrument, chưa được chứng minh — opt in nếu bạn muốn tham gia. **Mặc định là OFF**: các tính năng bộ nhớ cốt lõi vẫn hoạt động mà không cần flag này. |
|
|
263
282
|
| `MEMESH_AUTO_UPDATE` | `off` | Chính sách auto-update. `off` (mặc định) không bao giờ tự cập nhật; `patch` cho phép `X.Y.Z → X.Y.Z+N`; `minor` thêm `X.Y.Z → X.Y+1.0`; `major` cho phép mọi bump. Khi được phép, một `npm install -g` detached chạy ở cuối session (Stop hook) để không bao giờ chặn công việc của bạn — kết quả lưu vào `~/.memesh/auto-update.log`. Cũng có thể đặt là `autoUpdate` trong `~/.memesh/config.json` (env thắng). Khi phiên bản đã cài bị maintainers đánh dấu deprecated (security advisory), `patch` sẽ được force-allowed ngay cả khi `off` — minor / major bumps vẫn manual để tránh behaviour drift im lặng. |
|
|
264
283
|
| `OPENAI_API_KEY` | chưa đặt | Khóa OpenAI của bạn. Được dùng tự động cho các tính năng LLM trừ khi bạn đặt `MEMESH_AUTO_DETECT_LLM=0` hoặc cấu hình nhà cung cấp một cách rõ ràng. |
|
|
@@ -266,6 +285,8 @@ Toàn bộ cấu hình thông qua biến môi trường. Các giá trị mặc
|
|
|
266
285
|
|
|
267
286
|
`memesh doctor` in ra cấu hình đã resolve để bạn thấy cái gì đang active.
|
|
268
287
|
|
|
288
|
+
**Nhà cung cấp LLM dự phòng (Smart Mode).** Trong dashboard, tại **Settings → “Fallback providers”**, bạn có thể đặt một chuỗi failover có thứ tự — memesh thử lần lượt từng nhà cung cấp khi cái chính bị hỏng. Thêm một fallback cục bộ [Ollama](https://ollama.com), hoặc một cái trên cloud (OpenAI / Anthropic, cần API key). Đánh đổi về quyền riêng tư: khi dùng fallback cloud, văn bản bộ nhớ — vốn có thể riêng tư — sẽ được gửi tới nhà cung cấp đó, điều này quan trọng nếu bạn chạy hoàn toàn cục bộ vì quyền riêng tư.
|
|
289
|
+
|
|
269
290
|
Khi npm gắn cờ phiên bản đã cài là deprecated (thường là security advisory), session-start kế tiếp sẽ thêm banner mạnh `⚠️ MeMesh <ver> is DEPRECATED` ở đầu và `memesh update-status` hiển thị cùng dòng đó cho đến khi bạn nâng cấp. Kết quả check được cache tại `~/.memesh/update-check.<version>.json` để một lỗi mạng tạm thời không làm mờ cảnh báo.
|
|
270
291
|
|
|
271
292
|
---
|
|
@@ -331,23 +352,25 @@ memesh config set llm.api-key sk-ant-...
|
|
|
331
352
|
Hoặc dùng dashboard Settings tab (visual setup):
|
|
332
353
|
|
|
333
354
|
```bash
|
|
334
|
-
memesh # mở dashboard → Settings tab
|
|
355
|
+
memesh serve # mở dashboard → Settings tab
|
|
335
356
|
```
|
|
336
357
|
|
|
358
|
+
**Khai thác các phiên trước thành bộ nhớ.** `memesh dream run --from-transcripts` đọc bản ghi phiên Claude Code của dự án này, hỏi LLM về các quyết định và bài học ẩn trong cuộc trò chuyện, rồi lưu tạm chúng dưới dạng đề xuất — không có gì tự động vào đồ thị của bạn. Xem lại từng cái bằng `memesh dream show <id>` và chấp nhận những cái đáng giữ.
|
|
359
|
+
|
|
337
360
|
### Dùng embeddings của riêng bạn (tùy chọn)
|
|
338
361
|
|
|
339
|
-
Mặc định
|
|
362
|
+
Mặc định MeMesh recall **chỉ theo từ khóa** (FTS5) — không cần khóa API, không tải mô hình, không có gì rời khỏi máy bạn. Tìm kiếm ngữ nghĩa (theo ý nghĩa) là tùy chọn và cần một embedder. Hãy cấu hình một trong số:
|
|
340
363
|
|
|
341
364
|
```bash
|
|
342
365
|
memesh config set embedder.provider openai # or: ollama
|
|
343
366
|
memesh config set embedder.model text-embedding-3-small
|
|
344
367
|
```
|
|
345
368
|
|
|
346
|
-
Embedder được cấu hình **độc lập với LLM chat** — thay đổi `llm.provider` không bao giờ âm thầm thay đổi embeddings của bạn. Nếu bạn chuyển sang chiều khác (ví dụ
|
|
369
|
+
Embedder được cấu hình **độc lập với LLM chat** — thay đổi `llm.provider` không bao giờ âm thầm thay đổi embeddings của bạn. Nếu bạn chuyển sang chiều khác (ví dụ 768 → 1536), MeMesh tự động xây dựng lại chỉ mục vector ở lần ghi tiếp theo. Các giá trị `embedder.provider` được hỗ trợ: `ollama` (cục bộ), `openai` (đám mây). Không đặt gì thì recall vẫn là tìm kiếm theo từ khóa.
|
|
347
370
|
|
|
348
371
|
| | Level 0 (default) | Level 1 (Smart Mode) |
|
|
349
372
|
|---|---|---|
|
|
350
|
-
| **
|
|
373
|
+
| **Tìm kiếm** | FTS5 + sqlite-vec, 95.60% R@5 | giữ nguyên — recall luôn LLM-free ở mọi level |
|
|
351
374
|
| **Auto-capture** | Rule-based patterns | + LLM extracts decisions & lessons |
|
|
352
375
|
| **Auto-tagging** | Chỉ thẻ thủ công | + LLM tự động gắn nhãn entity mới |
|
|
353
376
|
| **Phân tích lỗi** | Không có sẵn | + LLM chuyển session errors thành structured lessons |
|
|
@@ -356,7 +379,7 @@ Embedder được cấu hình **độc lập với LLM chat** — thay đổi `l
|
|
|
356
379
|
|
|
357
380
|
---
|
|
358
381
|
|
|
359
|
-
## Cả
|
|
382
|
+
## Cả 8 Memory Tools
|
|
360
383
|
|
|
361
384
|
| Tool | Nó làm gì |
|
|
362
385
|
|------|-------------|
|
|
@@ -435,5 +458,5 @@ Dashboard: `cd dashboard && npm install && npm run dev`
|
|
|
435
458
|
---
|
|
436
459
|
|
|
437
460
|
<p align="center">
|
|
438
|
-
<strong>MIT</strong> — Được tạo bởi <a href="https://pcircle.
|
|
461
|
+
<strong>MIT</strong> — Được tạo bởi <a href="https://pcircle.com">PCIRCLE AI</a>
|
|
439
462
|
</p>
|
package/README.zh-CN.md
CHANGED
|
@@ -83,7 +83,7 @@ flowchart TB
|
|
|
83
83
|
| 在 Claude Code 对话里用 `/memesh` skill | Path A(plugin)|
|
|
84
84
|
| 在 Claude Code 启用自动 capture(session → 教训 → 下次 recall) | Path A(plugin)|
|
|
85
85
|
| 在任何 terminal 跑 `memesh remember` / `memesh recall` / `memesh doctor` | Path B(npm-global)|
|
|
86
|
-
| 用 `memesh` 直接开 dashboard(没有 `npx` 启动延迟) | Path B(npm-global)|
|
|
86
|
+
| 用 `memesh serve` 直接开 dashboard(没有 `npx` 启动延迟) | Path B(npm-global)|
|
|
87
87
|
| 把 `memesh-mcp` 接到 Cursor、Cline 或其他 MCP client | Path B(npm-global)|
|
|
88
88
|
| 以上全要 | **两条都装** — 不会冲突 |
|
|
89
89
|
|
|
@@ -129,7 +129,7 @@ npm install -g @pcircle/memesh
|
|
|
129
129
|
|
|
130
130
|
> **首次安装注意事项(一次性):**
|
|
131
131
|
> - **原生模块** — `better-sqlite3` 和 `sqlite-vec` 在 macOS(arm64/x64)、Linux(x64/arm64)和 Windows x64 上均通过预构建二进制安装。在不常见的平台或预构建失败时,需要可用的 C/C++ 工具链。
|
|
132
|
-
> -
|
|
132
|
+
> - **语义搜索是可选的** — 默认检索路径是关键词搜索(FTS5),不需要模型也不需要下载。基于语义的搜索需要一个 embedder:在本地运行 [Ollama](https://ollama.com),或配置一个云端 embedder(见下方“嵌入”)。没有配置时,memesh 只使用关键词搜索。
|
|
133
133
|
|
|
134
134
|
### 第一步半:把 MeMesh 接入 Claude Code(仅 npm 路径)
|
|
135
135
|
|
|
@@ -176,7 +176,7 @@ memesh doctor
|
|
|
176
176
|
打开仪表板浏览你的内存:
|
|
177
177
|
|
|
178
178
|
```bash
|
|
179
|
-
memesh
|
|
179
|
+
memesh serve
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
<p align="center">
|
|
@@ -285,7 +285,7 @@ memesh export-schema \
|
|
|
285
285
|
|---|---|---|
|
|
286
286
|
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | 覆盖 SQLite 数据库位置。 |
|
|
287
287
|
| `MEMESH_AUTO_CAPTURE` | `true` | 完全禁用自动捕获 hooks(`Stop`、`PreCompact`)。 |
|
|
288
|
-
| `MEMESH_AUTO_DETECT_LLM` | 未设置(自动检测**开启**) | 设为 `0` 让 memesh 不使用它在 shell 环境中找到的 API 密钥。默认情况下,如果设置了 `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` 且你没有在 `~/.memesh/config.json` 中配置提供商,memesh 会用它来跑写入侧的 LLM 功能(整合、经验提取、自动打标签、dream)。嵌入不受影响 ——
|
|
288
|
+
| `MEMESH_AUTO_DETECT_LLM` | 未设置(自动检测**开启**) | 设为 `0` 让 memesh 不使用它在 shell 环境中找到的 API 密钥。默认情况下,如果设置了 `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `OLLAMA_HOST` 且你没有在 `~/.memesh/config.json` 中配置提供商,memesh 会用它来跑写入侧的 LLM 功能(整合、经验提取、自动打标签、dream)。嵌入不受影响 —— 除非你把 `embedder.provider` 显式设置为 `ollama` 或 `openai`,否则保持仅关键词(FTS5)。 |
|
|
289
289
|
| `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | 未设置 | 设为 `1` 启用一个实验性工作模型协议(CTO / Orchestrator / Agents 框架)。会增加一个 session-start 横幅、Bash 命令提示,以及 `verify_agent_work` 遥测。该协议的有效性正在被检测中、尚未被证实 — 想参与实验时再开启。**默认 OFF**:核心内存功能不依赖此 flag。 |
|
|
290
290
|
| `MEMESH_AUTO_UPDATE` | `off` | 自动升级策略。`off`(默认)从不自动升级;`patch` 允许 `X.Y.Z → X.Y.Z+N`;`minor` 增加 `X.Y.Z → X.Y+1.0`;`major` 允许任意版本跳升。允许时,一个分离的 `npm install -g` 会在会话结束(Stop hook)触发,所以从不阻塞你的工作 — 结果落在 `~/.memesh/auto-update.log`。也可以在 `~/.memesh/config.json` 里写为 `autoUpdate`(环境变量优先)。当已安装版本被维护者标记为 deprecated(安全建议)时,`patch` 会被强制允许,即便策略是 `off` — minor / major 升级仍保持手动,避免行为静默漂移。 |
|
|
291
291
|
| `OPENAI_API_KEY` | 未设置 | 你的 OpenAI 密钥。除非你设置 `MEMESH_AUTO_DETECT_LLM=0` 或显式配置提供商,否则会自动用于 LLM 功能。 |
|
|
@@ -293,6 +293,8 @@ memesh export-schema \
|
|
|
293
293
|
|
|
294
294
|
`memesh doctor` 会打印解析后的配置,你可以看到当前生效的内容。
|
|
295
295
|
|
|
296
|
+
**备用 LLM 提供商(Smart Mode)。** 在 dashboard 的 **Settings → “Fallback providers”** 可以设置一条有顺序的故障转移链——当主要提供商不可用时,memesh 会依次改用列表里的下一个。可以加本地的 [Ollama](https://ollama.com) 备用,或云端的(OpenAI / Anthropic,需要 API key)。隐私权衡:一旦用到云端备用,记忆内容(可能是私密的)会被发送到该提供商,所以如果你为了隐私只跑本地,这点需要注意。
|
|
297
|
+
|
|
296
298
|
当 npm 把已安装版本标记为 deprecated(通常为安全建议)时,下次 session-start 会先显示一条强烈的 `⚠️ MeMesh <ver> is DEPRECATED` 横幅,并且 `memesh update-status` 在你升级前会持续显示同一行。检查结果会缓存到 `~/.memesh/update-check.<version>.json`,避免一次临时网络故障让警告变弱。
|
|
297
299
|
|
|
298
300
|
---
|
|
@@ -358,23 +360,25 @@ memesh config set llm.api-key sk-ant-...
|
|
|
358
360
|
或使用仪表板设置标签页(可视化配置):
|
|
359
361
|
|
|
360
362
|
```bash
|
|
361
|
-
memesh # 打开仪表板 → 设置标签页
|
|
363
|
+
memesh serve # 打开仪表板 → 设置标签页
|
|
362
364
|
```
|
|
363
365
|
|
|
366
|
+
**把过去的会话挖成记忆。** `memesh dream run --from-transcripts` 会读取这个项目的 Claude Code 会话记录,请 LLM 找出藏在对话里的决策与教训,再把它们暂存为提案——不会自动写入你的知识图谱。用 `memesh dream show <id>` 逐一查看,挑值得保留的 accept。
|
|
367
|
+
|
|
364
368
|
### 自带嵌入(可选)
|
|
365
369
|
|
|
366
|
-
|
|
370
|
+
默认情况下 MeMesh 只做**关键词**召回(FTS5)—— 无需 API 密钥,无需下载模型,数据不离开你的机器。语义(基于含义的)搜索是可选的,需要一个嵌入器。配置其中之一:
|
|
367
371
|
|
|
368
372
|
```bash
|
|
369
373
|
memesh config set embedder.provider openai # or: ollama
|
|
370
374
|
memesh config set embedder.model text-embedding-3-small
|
|
371
375
|
```
|
|
372
376
|
|
|
373
|
-
嵌入器**独立于对话 LLM** 配置 —— 更改 `llm.provider` 绝不会悄悄改变你的嵌入。如果切换到不同维度(如
|
|
377
|
+
嵌入器**独立于对话 LLM** 配置 —— 更改 `llm.provider` 绝不会悄悄改变你的嵌入。如果切换到不同维度(如 768 → 1536),MeMesh 会在下次写入时自动重建向量索引。支持的 `embedder.provider` 取值:`ollama`(本地)、`openai`(托管)。两者都不设置时,召回保持关键词搜索。
|
|
374
378
|
|
|
375
379
|
| | 级别 0(默认) | 级别 1(智能模式) |
|
|
376
380
|
|---|---|---|
|
|
377
|
-
| **搜索** | FTS5 + sqlite-vec,95.60% R@5
|
|
381
|
+
| **搜索** | FTS5 + sqlite-vec,95.60% R@5 | 不变 — 回忆在每个级别都是无 LLM 的 |
|
|
378
382
|
| **自动捕获** | 基于规则的模式 | + LLM 提取决策和经验教训 |
|
|
379
383
|
| **自动打标签** | 仅手动标签 | + LLM 为新记忆生成标签 |
|
|
380
384
|
| **失败分析** | 不可用 | + LLM 把会话错误转化为结构化经验教训 |
|
|
@@ -383,7 +387,7 @@ memesh config set embedder.model text-embedding-3-small
|
|
|
383
387
|
|
|
384
388
|
---
|
|
385
389
|
|
|
386
|
-
## 全部
|
|
390
|
+
## 全部 8 个内存工具
|
|
387
391
|
|
|
388
392
|
| 工具 | 它做什么 |
|
|
389
393
|
|------|--------|
|
|
@@ -461,5 +465,5 @@ npm run test:e2e-dashboard
|
|
|
461
465
|
---
|
|
462
466
|
|
|
463
467
|
<p align="center">
|
|
464
|
-
<strong>MIT</strong> — 由 <a href="https://pcircle.
|
|
468
|
+
<strong>MIT</strong> — 由 <a href="https://pcircle.com">PCIRCLE AI</a> 开发
|
|
465
469
|
</p>
|