@pcircle/memesh 4.5.0 → 4.6.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 +5 -3
- package/.claude-plugin/plugin.json +6 -4
- package/.mcp.json +1 -1
- package/AGENTS.md +95 -0
- package/README.de.md +130 -39
- package/README.md +188 -43
- package/README.zh-TW.md +133 -41
- package/dashboard/dist/index.html +9 -9
- package/dist/cli/view-live.js +3 -3
- package/dist/core/analytics.d.ts +3 -3
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/auto-tagger.d.ts.map +1 -1
- package/dist/core/auto-tagger.js +4 -9
- package/dist/core/auto-tagger.js.map +1 -1
- package/dist/core/briefing.d.ts +8 -0
- package/dist/core/briefing.d.ts.map +1 -0
- package/dist/core/briefing.js +91 -0
- package/dist/core/briefing.js.map +1 -0
- package/dist/core/capture-flag.d.ts +5 -0
- package/dist/core/capture-flag.d.ts.map +1 -0
- package/dist/core/capture-flag.js +10 -0
- package/dist/core/capture-flag.js.map +1 -0
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/conflict-candidates.d.ts +20 -0
- package/dist/core/conflict-candidates.d.ts.map +1 -0
- package/dist/core/conflict-candidates.js +79 -0
- package/dist/core/conflict-candidates.js.map +1 -0
- package/dist/core/conflict-judge.d.ts +47 -0
- package/dist/core/conflict-judge.d.ts.map +1 -0
- package/dist/core/conflict-judge.js +189 -0
- package/dist/core/conflict-judge.js.map +1 -0
- package/dist/core/demo.d.ts +2 -2
- package/dist/core/demo.d.ts.map +1 -1
- 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 -5
- package/dist/core/digest-validator.js.map +1 -1
- package/dist/core/doctor.d.ts +3 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +207 -85
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/dreamer.d.ts +20 -9
- package/dist/core/dreamer.d.ts.map +1 -1
- package/dist/core/dreamer.js +416 -58
- package/dist/core/dreamer.js.map +1 -1
- package/dist/core/embedder.d.ts +7 -5
- package/dist/core/embedder.d.ts.map +1 -1
- package/dist/core/embedder.js +38 -9
- package/dist/core/embedder.js.map +1 -1
- package/dist/core/extractor.d.ts.map +1 -1
- package/dist/core/extractor.js +2 -1
- package/dist/core/extractor.js.map +1 -1
- package/dist/core/failure-analyzer.d.ts.map +1 -1
- package/dist/core/failure-analyzer.js +7 -12
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/graph.d.ts +4 -4
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js.map +1 -1
- package/dist/core/install-channel.d.ts +1 -1
- package/dist/core/install-channel.d.ts.map +1 -1
- package/dist/core/install-channel.js +16 -5
- package/dist/core/install-channel.js.map +1 -1
- package/dist/core/install-hooks.d.ts +6 -0
- package/dist/core/install-hooks.d.ts.map +1 -1
- package/dist/core/install-hooks.js +0 -0
- package/dist/core/install-hooks.js.map +1 -1
- package/dist/core/json-utils.d.ts +1 -0
- package/dist/core/json-utils.d.ts.map +1 -1
- package/dist/core/json-utils.js +19 -10
- package/dist/core/json-utils.js.map +1 -1
- package/dist/core/kg-backfill.d.ts +3 -4
- package/dist/core/kg-backfill.d.ts.map +1 -1
- package/dist/core/kg-backfill.js +1 -4
- package/dist/core/kg-backfill.js.map +1 -1
- package/dist/core/lesson-engine.d.ts +1 -0
- package/dist/core/lesson-engine.d.ts.map +1 -1
- package/dist/core/lesson-engine.js +1 -0
- package/dist/core/lesson-engine.js.map +1 -1
- package/dist/core/lifecycle.d.ts +4 -4
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +15 -22
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/llm-client.d.ts.map +1 -1
- package/dist/core/llm-client.js +3 -6
- package/dist/core/llm-client.js.map +1 -1
- package/dist/core/llm-telemetry.d.ts +4 -4
- package/dist/core/llm-telemetry.d.ts.map +1 -1
- package/dist/core/llm-telemetry.js +1 -1
- package/dist/core/llm-telemetry.js.map +1 -1
- package/dist/core/memory-tool.d.ts.map +1 -1
- package/dist/core/memory-tool.js +8 -4
- package/dist/core/memory-tool.js.map +1 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +41 -17
- package/dist/core/operations.js.map +1 -1
- package/dist/core/paths.d.ts +3 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +67 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/patterns.d.ts +2 -2
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/project-tags.d.ts +3 -3
- package/dist/core/project-tags.d.ts.map +1 -1
- package/dist/core/project-tags.js.map +1 -1
- package/dist/core/projects.d.ts +2 -2
- package/dist/core/projects.d.ts.map +1 -1
- package/dist/core/projects.js.map +1 -1
- package/dist/core/prompt-safety.d.ts +1 -0
- package/dist/core/prompt-safety.d.ts.map +1 -1
- package/dist/core/prompt-safety.js +7 -0
- package/dist/core/prompt-safety.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +27 -30
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/serializer.d.ts.map +1 -1
- package/dist/core/serializer.js +45 -4
- package/dist/core/serializer.js.map +1 -1
- package/dist/core/setup.d.ts +29 -0
- package/dist/core/setup.d.ts.map +1 -0
- package/dist/core/setup.js +127 -0
- package/dist/core/setup.js.map +1 -0
- package/dist/core/stats.d.ts +2 -2
- package/dist/core/stats.d.ts.map +1 -1
- package/dist/core/stats.js.map +1 -1
- package/dist/core/task-state-store.d.ts +17 -0
- package/dist/core/task-state-store.d.ts.map +1 -0
- package/dist/core/task-state-store.js +45 -0
- package/dist/core/task-state-store.js.map +1 -0
- package/dist/core/task-state.d.ts +19 -0
- package/dist/core/task-state.d.ts.map +1 -0
- package/dist/core/task-state.js +91 -0
- package/dist/core/task-state.js.map +1 -0
- package/dist/core/time-utils.d.ts +2 -0
- package/dist/core/time-utils.d.ts.map +1 -0
- package/dist/core/time-utils.js +14 -0
- package/dist/core/time-utils.js.map +1 -0
- package/dist/core/title.d.ts +5 -0
- package/dist/core/title.d.ts.map +1 -0
- package/dist/core/title.js +14 -0
- package/dist/core/title.js.map +1 -0
- package/dist/core/transcript-extractor.d.ts +5 -6
- package/dist/core/transcript-extractor.d.ts.map +1 -1
- package/dist/core/transcript-extractor.js +4 -24
- package/dist/core/transcript-extractor.js.map +1 -1
- package/dist/core/transcript-source.d.ts.map +1 -1
- package/dist/core/transcript-source.js +2 -3
- package/dist/core/transcript-source.js.map +1 -1
- package/dist/core/types.d.ts +21 -7
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/work-topology.d.ts +33 -0
- package/dist/core/work-topology.d.ts.map +1 -0
- package/dist/core/work-topology.js +183 -0
- package/dist/core/work-topology.js.map +1 -0
- package/dist/db.d.ts +5 -10
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +194 -196
- package/dist/db.js.map +1 -1
- package/dist/knowledge-graph.d.ts +4 -2
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +68 -49
- package/dist/knowledge-graph.js.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills-manifest.json +61 -36
- package/dist/storage/conflicts.d.ts +3 -3
- package/dist/storage/conflicts.d.ts.map +1 -1
- package/dist/storage/conflicts.js +2 -7
- package/dist/storage/conflicts.js.map +1 -1
- package/dist/storage/fts-index.d.ts +6 -4
- package/dist/storage/fts-index.d.ts.map +1 -1
- package/dist/storage/fts-index.js +16 -4
- package/dist/storage/fts-index.js.map +1 -1
- package/dist/storage/schema.d.ts +20 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +274 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/sqlite.d.ts +20 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +64 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/vector-index.d.ts +3 -0
- package/dist/storage/vector-index.d.ts.map +1 -0
- package/dist/storage/vector-index.js +7 -0
- package/dist/storage/vector-index.js.map +1 -0
- package/dist/transports/cli/cli.d.ts +1 -4
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +494 -76
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/http/retired-routes.d.ts.map +1 -1
- package/dist/transports/http/retired-routes.js +1 -0
- package/dist/transports/http/retired-routes.js.map +1 -1
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +243 -323
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +48 -94
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +77 -56
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +31 -40
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +31 -37
- package/dist/transports/schemas.js.map +1 -1
- package/hooks/hooks.json +0 -10
- package/llms-install.md +138 -0
- package/package.json +19 -18
- package/scripts/hooks/_generated/capture-flag.js +17 -0
- package/scripts/hooks/_generated/core-paths.js +67 -1
- package/scripts/hooks/_generated/fts-index.js +16 -4
- package/scripts/hooks/_generated/schema.js +281 -0
- package/scripts/hooks/_generated/sqlite.js +71 -0
- package/scripts/hooks/_generated/task-state.js +98 -0
- package/scripts/hooks/_generated/time-utils.js +21 -0
- package/scripts/hooks/_generated/title.js +21 -0
- package/scripts/hooks/_generated/work-topology.js +190 -0
- package/scripts/hooks/_shared.js +269 -534
- package/scripts/hooks/post-commit.js +55 -10
- package/scripts/hooks/pre-compact.js +22 -7
- package/scripts/hooks/pre-edit-recall.js +9 -11
- package/scripts/hooks/session-start.js +230 -106
- package/scripts/hooks/session-summary.js +176 -73
- package/scripts/hooks/user-prompt-intent.js +3 -2
- package/skills/memesh/SKILL.md +97 -77
- package/README.es.md +0 -470
- package/README.fr.md +0 -462
- package/README.ja.md +0 -470
- package/README.ko.md +0 -470
- package/README.pt.md +0 -462
- package/README.th.md +0 -463
- package/README.vi.md +0 -462
- package/README.zh-CN.md +0 -469
- package/dist/cli/view.d.ts +0 -3
- package/dist/cli/view.d.ts.map +0 -1
- package/dist/cli/view.js +0 -523
- package/dist/cli/view.js.map +0 -1
- package/dist/core/skill-usage-log.d.ts +0 -11
- package/dist/core/skill-usage-log.d.ts.map +0 -1
- package/dist/core/skill-usage-log.js +0 -125
- package/dist/core/skill-usage-log.js.map +0 -1
- package/dist/core/verifier.d.ts +0 -40
- package/dist/core/verifier.d.ts.map +0 -1
- package/dist/core/verifier.js +0 -206
- package/dist/core/verifier.js.map +0 -1
- package/dist/mcp/launcher.d.ts +0 -3
- package/dist/mcp/launcher.d.ts.map +0 -1
- package/dist/mcp/launcher.js +0 -37
- package/dist/mcp/launcher.js.map +0 -1
- package/scripts/hooks/pre-bash-orchestration-nudge.js +0 -155
- package/scripts/postinstall-rebuild.mjs +0 -41
- package/skills/agentic-orchestration/SKILL.md +0 -399
package/README.vi.md
DELETED
|
@@ -1,462 +0,0 @@
|
|
|
1
|
-
🌐 [English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Português](README.pt.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Tiếng Việt](README.vi.md) | [Español](README.es.md) | [ภาษาไทย](README.th.md)
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<h1 align="center">MeMesh LLM Memory</h1>
|
|
5
|
-
<p align="center">
|
|
6
|
-
<strong>Bộ nhớ cục bộ cho Claude Code và các agent coding MCP.</strong><br />
|
|
7
|
-
Một file SQLite. Không Docker. Không cần cloud.
|
|
8
|
-
</p>
|
|
9
|
-
<p align="center">
|
|
10
|
-
<a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
|
|
11
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22c55e?style=flat-square" alt="MIT" /></a>
|
|
12
|
-
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D22-22c55e?style=flat-square" alt="Node" /></a>
|
|
13
|
-
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-a855f7?style=flat-square" alt="MCP" /></a>
|
|
14
|
-
</p>
|
|
15
|
-
</p>
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
> [!IMPORTANT]
|
|
20
|
-
> **Dự án đang phát triển tích cực** — tính năng cập nhật liên tục và có thể thay đổi giữa các bản phát hành. Nếu gặp lỗi hoặc có yêu cầu tính năng, vui lòng [mở issue](https://github.com/PCIRCLE-AI/memesh-llm-memory/issues).
|
|
21
|
-
|
|
22
|
-
## Vấn đề
|
|
23
|
-
|
|
24
|
-
Agent coding của bạn quên mất những gì đã xảy ra giữa các phiên làm việc. Mỗi quyết định kiến trúc, bug fix, test thất bại và bài học từng trải phải được giải thích lại từ đầu. Claude Code luôn bắt đầu từ trang trắng, phát hiện lại những ràng buộc cũ, và lãng phí context cho những thứ nó đã nên biết.
|
|
25
|
-
|
|
26
|
-
**MeMesh cung cấp bộ nhớ cục bộ, có khả năng tìm kiếm và phát triển liên tục cho các agent coding.**
|
|
27
|
-
|
|
28
|
-
Package này là tầng bộ nhớ cục bộ của dòng sản phẩm MeMesh. Nó được thiết kế nhỏ gọn và mã nguồn mở: cài đặt qua npm, lưu bộ nhớ của bạn trong `~/.memesh/knowledge-graph.db`, và kết nối với Claude Code hoặc bất kỳ client tương thích MCP nào. Các sản phẩm workspace theo dõi và hệ điều hành enterprise nên được giữ riêng biệt với README và roadmap của package này.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Bằng chứng — 95.60% R@5 trên LongMemEval-S
|
|
33
|
-
|
|
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
|
-
|
|
36
|
-
| Hệ thống | R@5 | Nguồn |
|
|
37
|
-
|---|---|---|
|
|
38
|
-
| **MeMesh (Mode A, via `recallEnhanced()`)** | **95.60%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
|
|
39
|
-
| MemPalace | 96.6% | Vendor self-report |
|
|
40
|
-
| Supermemory | ~82% | Vendor estimate |
|
|
41
|
-
| Zep | 63.8% | LongMemEval paper |
|
|
42
|
-
| Mem0 | 49.0% | LongMemEval paper |
|
|
43
|
-
|
|
44
|
-
Lệnh tái hiện, SHA256 của dataset, kết quả thô theo từng câu hỏi, và phân tích các lỗi đã biết đều có trong [`benchmarks/longmemeval/`](benchmarks/longmemeval/). Có thể chạy lại trong ~10 giây.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Tổng quan các đường cài đặt
|
|
49
|
-
|
|
50
|
-
MeMesh có **hai đường cài đặt cùng tồn tại**. Hầu hết người dùng muốn cả hai. Chúng ghi vào **cùng một cơ sở dữ liệu bộ nhớ** (`~/.memesh/knowledge-graph.db`), nên ký ức ghi trong chat Claude Code sẽ xuất hiện ở shell, và ngược lại.
|
|
51
|
-
|
|
52
|
-
```mermaid
|
|
53
|
-
flowchart TB
|
|
54
|
-
classDef client fill:#1f2937,stroke:#4b5563,color:#f9fafb,stroke-width:1px
|
|
55
|
-
classDef pathA fill:#1e3a8a,stroke:#3b82f6,color:#eff6ff,stroke-width:2px
|
|
56
|
-
classDef pathB fill:#14532d,stroke:#22c55e,color:#f0fdf4,stroke-width:2px
|
|
57
|
-
classDef db fill:#7c2d12,stroke:#f97316,color:#fff7ed,stroke-width:2px
|
|
58
|
-
|
|
59
|
-
subgraph clients["Where you use memesh from"]
|
|
60
|
-
direction LR
|
|
61
|
-
CC["Claude Code<br/>(chat + agent)"]:::client
|
|
62
|
-
TERM["Terminal / other<br/>MCP clients<br/>(Cursor, Cline...)"]:::client
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
subgraph paths["Two install paths"]
|
|
66
|
-
direction LR
|
|
67
|
-
A["<b>Path A — /plugin install</b><br/>───────────────<br/>Lives in <code>~/.claude/plugins/</code><br/><br/>• MCP tools in chat<br/>• Auto-capture hooks<br/>• <code>/memesh</code> skill<br/>• Session-start banner"]:::pathA
|
|
68
|
-
B["<b>Path B — npm install -g</b><br/>───────────────<br/>Lives in <code>$(npm prefix -g)/bin/</code><br/><br/>• <code>memesh</code> shell command<br/>• <code>memesh-mcp</code>, <code>-http</code>, <code>-view</code> bins<br/>• For Cursor / Cline / other MCP"]:::pathB
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
DB[("Shared memory DB<br/><code>~/.memesh/knowledge-graph.db</code><br/>Same data, both paths see it")]:::db
|
|
72
|
-
|
|
73
|
-
CC -->|uses| A
|
|
74
|
-
TERM -->|uses| B
|
|
75
|
-
A --> DB
|
|
76
|
-
B --> DB
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Bạn cần đường nào?**
|
|
80
|
-
|
|
81
|
-
| Bạn muốn làm gì | Đường cài đặt |
|
|
82
|
-
|---|---|
|
|
83
|
-
| Dùng skill `/memesh` trong cuộc trò chuyện Claude Code | Path A (plugin) |
|
|
84
|
-
| Tự động capture trong Claude Code (session → bài học → recall lần sau) | Path A (plugin) |
|
|
85
|
-
| Chạy `memesh remember` / `memesh recall` / `memesh doctor` ở bất kỳ terminal nào | Path B (npm-global) |
|
|
86
|
-
| Mở dashboard qua `memesh serve` (không bị trễ khởi động `npx`) | Path B (npm-global) |
|
|
87
|
-
| Cắm `memesh-mcp` vào Cursor, Cline hoặc client MCP khác | Path B (npm-global) |
|
|
88
|
-
| Tất cả các mục trên | **Cài cả hai** — không xung đột |
|
|
89
|
-
|
|
90
|
-
> **Nhầm lẫn phổ biến**: plugin Claude Code **không** đặt `memesh` lên `PATH` của shell. Nếu bạn chỉ chạy `/plugin install` rồi gõ `memesh reindex` trong terminal, bạn sẽ thấy `command not found`. Đó là điều bình thường — thêm `npm install -g @pcircle/memesh` để có lệnh shell.
|
|
91
|
-
|
|
92
|
-
### ⚠️ Cài plugin KHÔNG cài CLI
|
|
93
|
-
|
|
94
|
-
Đây là nhầm lẫn phổ biến nhất. Đọc một lần để tiết kiệm thời gian sau này:
|
|
95
|
-
|
|
96
|
-
- `/plugin install memesh@pcircle-memesh` từ Claude Code → chỉ cài **Path A**. Bạn có công cụ MCP, hooks, skill `/memesh`. **KHÔNG** đặt `memesh` lên `PATH` shell.
|
|
97
|
-
- `memesh reindex` / `memesh update` / `memesh doctor` gõ trong terminal → cần **Path B** (npm-global). Không có nó: `zsh: command not found: memesh`.
|
|
98
|
-
- **Thiết lập khuyến nghị cho người dùng Claude Code**: **cài cả hai**. Cùng tồn tại, chia sẻ cùng DB, không xung đột.
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# Sau khi /plugin install ..., chạy luôn dòng này:
|
|
102
|
-
npm install -g @pcircle/memesh
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Nếu bạn chỉ dùng memesh qua chat Claude Code (không bao giờ gõ `memesh` trong terminal), Path A đủ rồi. Còn lại: cài cả hai.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Bắt đầu trong 60 giây
|
|
110
|
-
|
|
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):
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npm install -g @pcircle/memesh
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Bước 1.5: Kết nối MeMesh vào Claude Code (khuyến nghị, một lần)
|
|
131
|
-
|
|
132
|
-
`npm install -g` đặt CLI vào PATH và đăng ký MCP server, nhưng **không** tự động kết nối các session hooks của MeMesh vào Claude Code. Không có hooks, bạn vẫn dùng được `memesh remember` / `recall` thủ công, nhưng **vòng tự động ghi nhận** (session → bài học → gọi lại chủ động ở session sau) sẽ im lặng.
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
memesh install-hooks # thêm hooks memesh vào ~/.claude/settings.json
|
|
136
|
-
memesh doctor # xác nhận "Hooks wired into Claude Code" PASS
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Các hooks này cùng tồn tại với bất kỳ hook tùy chỉnh nào trong `~/.claude/hooks/` — `install-hooks` ghi theo kiểu thêm, không bao giờ ghi đè của bạn. Để gỡ: `memesh uninstall-hooks`.
|
|
140
|
-
|
|
141
|
-
### Bước 2: Lưu một quyết định
|
|
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
|
-
|
|
149
|
-
```bash
|
|
150
|
-
memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Bước 3: Gọi lại sau này
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
memesh recall "login security"
|
|
157
|
-
# → Tìm "OAuth 2.0 with PKCE" dù bạn tìm kiếm bằng từ khác
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Vậy thôi.** MeMesh giờ đã nhớ và gọi lại thông tin qua các phiên làm việc.
|
|
161
|
-
|
|
162
|
-
Nếu bạn muốn kiểm tra cài đặt và dây điều khiển cục bộ từ đầu đến cuối:
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
memesh doctor
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Mở dashboard để khám phá bộ nhớ của bạn:
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
memesh serve
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
<p align="center">
|
|
175
|
-
<img src="docs/images/dashboard-search.png" alt="MeMesh Search — tìm bất kỳ bộ nhớ nào instantly" width="100%" />
|
|
176
|
-
</p>
|
|
177
|
-
|
|
178
|
-
<p align="center">
|
|
179
|
-
<img src="docs/images/dashboard-analytics.png" alt="MeMesh Analytics — health score, timeline, patterns, knowledge coverage" width="100%" />
|
|
180
|
-
</p>
|
|
181
|
-
|
|
182
|
-
<p align="center">
|
|
183
|
-
<img src="docs/images/dashboard-graph.png" alt="MeMesh Graph — interactive knowledge graph with type filters and ego mode" width="100%" />
|
|
184
|
-
</p>
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Dành cho ai?
|
|
189
|
-
|
|
190
|
-
| Nếu bạn là... | MeMesh giúp bạn... |
|
|
191
|
-
|---------------|---------------------|
|
|
192
|
-
| **Nhà phát triển sử dụng Claude Code** | Tự động gọi lại các quyết định dự án, bài học cụ thể theo file, và những lỗi trong quá khứ khi bạn làm việc |
|
|
193
|
-
| **Power user của coding agent** | Chia sẻ một tầng bộ nhớ cục bộ qua các công cụ tương thích MCP |
|
|
194
|
-
| **Nhóm thử nghiệm workflow AI coding** | Export/import kiến thức dự án mà không cần hạ tầng được quản lý |
|
|
195
|
-
| **Nhà phát triển agent** | Thêm bộ nhớ cục bộ thông qua MCP, HTTP, hoặc CLI |
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Thiết kế cho Coding Agent trước hết
|
|
200
|
-
|
|
201
|
-
<table>
|
|
202
|
-
<tr>
|
|
203
|
-
<td width="33%" align="center">
|
|
204
|
-
|
|
205
|
-
**Claude Code / Desktop**
|
|
206
|
-
```bash
|
|
207
|
-
memesh-mcp
|
|
208
|
-
```
|
|
209
|
-
MCP tools + Claude Code hooks
|
|
210
|
-
|
|
211
|
-
</td>
|
|
212
|
-
<td width="33%" align="center">
|
|
213
|
-
|
|
214
|
-
**Bất kỳ HTTP Client**
|
|
215
|
-
```bash
|
|
216
|
-
curl localhost:3737/v1/recall \
|
|
217
|
-
-H "Content-Type: application/json" \
|
|
218
|
-
-d '{"query":"auth"}'
|
|
219
|
-
```
|
|
220
|
-
`memesh serve` (REST API)
|
|
221
|
-
|
|
222
|
-
</td>
|
|
223
|
-
<td width="33%" align="center">
|
|
224
|
-
|
|
225
|
-
**Bất kỳ LLM (định dạng OpenAI)**
|
|
226
|
-
```bash
|
|
227
|
-
memesh export-schema \
|
|
228
|
-
--format openai
|
|
229
|
-
```
|
|
230
|
-
Dán tools vào bất kỳ API call nào
|
|
231
|
-
|
|
232
|
-
</td>
|
|
233
|
-
</tr>
|
|
234
|
-
</table>
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## Tại sao không dùng OpenMemory, Cursor Memories, Mem0, hay Zep?
|
|
239
|
-
|
|
240
|
-
| | **MeMesh** | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti |
|
|
241
|
-
|---|---|---|---|---|---|
|
|
242
|
-
| **Phù hợp nhất cho** | Bộ nhớ cục bộ cho coding agent | Bộ nhớ MCP cục bộ/cross-client | Bộ nhớ dự án native Cursor | Bộ nhớ app/agent được quản lý | Temporal knowledge graphs |
|
|
243
|
-
| **Hình thức cài đặt** | `npm install -g @pcircle/memesh` | Local app/server flow | Tích hợp vào Cursor | Cloud API / SDK / MCP | Service/framework setup |
|
|
244
|
-
| **Lưu trữ** | Một file SQLite cục bộ | Local memory stack | Cursor-managed rules/memories | Hosted hoặc self-hosted stack | Graph database |
|
|
245
|
-
| **Cloud cần thiết** | Không | Không ở chế độ local | Tuỳ thuộc vào cài đặt tài khoản Cursor | Có cho platform | Thường có/self-hosted |
|
|
246
|
-
| **Claude Code hooks** | First-class | MCP tools | Không | MCP tools | Không dành riêng cho Claude Code |
|
|
247
|
-
| **Dashboard** | Tích hợp sẵn | Tích hợp sẵn | Cài đặt Cursor | Platform dashboard | Platform/graph tooling |
|
|
248
|
-
| **Tradeoff** | Wedge cục bộ đơn giản, không phải quy mô enterprise | Footprint local app rộng hơn | Bị khóa vào Cursor | Platform được quản lý mạnh mẽ, local-first ít hơn | Strong graph model, heavier setup |
|
|
249
|
-
|
|
250
|
-
**MeMesh đánh đổi hạ tầng được quản lý quy mô enterprise để có setup cục bộ tức thì, lưu trữ có thể kiểm tra, và coding-agent workflow hooks.**
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## Điều gì xảy ra tự động trong Claude Code
|
|
255
|
-
|
|
256
|
-
Bạn không cần phải manually nhớ mọi thứ. MeMesh có **7 hooks** để capture và inject kiến thức khi bạn làm việc:
|
|
257
|
-
|
|
258
|
-
| Khi nào | MeMesh làm gì |
|
|
259
|
-
|------|------------------|
|
|
260
|
-
| **Mỗi lần session bắt đầu** | Load những memories liên quan nhất + cảnh báo chủ động từ bài học trong quá khứ + agentic-orchestration banner |
|
|
261
|
-
| **Trước khi chỉnh sửa file** | Gọi lại memories liên quan đến file hoặc dự án trước khi Claude viết code |
|
|
262
|
-
| **Trước bash commands** | Hướng dẫn Claude dispatch những commands có độ xác minh cao (test, build, lint, migrate, deploy, benchmark) dưới dạng background agents |
|
|
263
|
-
| **Khi bạn yêu cầu ghi nhớ** | Phát hiện ý định "remember this" / "記下來" và nhắc nhở (use memesh|ghi memesh) |
|
|
264
|
-
| **Sau mỗi `git commit`** | Ghi lại những gì bạn thay đổi, với diff stats |
|
|
265
|
-
| **Khi Claude dừng** | Capture những file đã chỉnh sửa, lỗi đã sửa, và auto-generate structured lessons từ failures |
|
|
266
|
-
| **Trước khi context compact** | Lưu kiến thức trước khi nó bị mất do context limits |
|
|
267
|
-
|
|
268
|
-
> **Opt out bất kỳ lúc nào:** `export MEMESH_AUTO_CAPTURE=false`
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## Cấu hình
|
|
273
|
-
|
|
274
|
-
Toàn bộ cấu hình thông qua biến môi trường. Các giá trị mặc định là local-only và zero-network — bạn không cần thiết lập gì để có một hệ thống hoạt động.
|
|
275
|
-
|
|
276
|
-
| Biến | Mặc định | Tác dụng |
|
|
277
|
-
|---|---|---|
|
|
278
|
-
| `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Ghi đè vị trí của database SQLite. |
|
|
279
|
-
| `MEMESH_AUTO_CAPTURE` | `true` | Tắt hoàn toàn các hooks auto-capture (`Stop`, `PreCompact`). |
|
|
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`. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
284
|
-
| `OLLAMA_HOST` | `http://localhost:11434` | Ghi đè endpoint Ollama khi dùng local Ollama provider. |
|
|
285
|
-
|
|
286
|
-
`memesh doctor` in ra cấu hình đã resolve để bạn thấy cái gì đang active.
|
|
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
|
-
|
|
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.
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## Dashboard
|
|
295
|
-
|
|
296
|
-
8 tabs, 11 ngôn ngữ, không phụ thuộc bên ngoài. Truy cập tại `http://localhost:3737/dashboard` khi server đang chạy.
|
|
297
|
-
|
|
298
|
-
| Tab | Bạn thấy gì |
|
|
299
|
-
|-----|-------------|
|
|
300
|
-
| **Insights** | Thông tin chi tiết về bộ nhớ — tóm tắt hàng tuần và đề xuất mẫu từ công cụ dreamer; chấp nhận/từ chối một cú nhấp |
|
|
301
|
-
| **Search** | Full-text + vector similarity search trên tất cả memories |
|
|
302
|
-
| **Browse** | Danh sách paginated tất cả entities với archive/restore |
|
|
303
|
-
| **Analytics** | Memory Health Score, timeline 30 ngày, tốc độ PM + chỉ số kết nối KG, work patterns, cleanup suggestions |
|
|
304
|
-
| **Graph** | Interactive force-directed knowledge graph với type filters, search, ego mode, recency heatmap |
|
|
305
|
-
| **Lessons** | Structured lessons từ những lỗi trong quá khứ (error, root cause, fix, prevention) |
|
|
306
|
-
| **Manage** | Archive và restore entities |
|
|
307
|
-
| **Settings** | LLM provider config, instant language selector |
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
## Tính năng thông minh
|
|
312
|
-
|
|
313
|
-
**🧠 Smart Search** — Tìm "login security" và tìm thấy memories về "OAuth PKCE". MeMesh dùng FTS5 + sqlite-vec trên hot path, không dùng LLM; phần bổ sung vector vẫn tiếp cận được các cách diễn đạt liên quan.
|
|
314
|
-
|
|
315
|
-
**🌏 Tìm kiếm trong các hệ chữ không dùng khoảng trắng** — Tiếng Trung, Nhật, Hàn, Thái, Lào, Khmer và katakana nửa chiều rộng được lập chỉ mục theo từng cặp ký tự liền nhau, nên một ghi nhớ viết là 「資料庫遷移前一定要先備份」 sẽ tìm thấy bằng 「備份」 — không cần gõ lại đúng nguyên văn. Văn bản được chuẩn hóa (NFC) ở cả phía ghi lẫn phía truy vấn, nên ghi nhớ gõ trên macOS hoặc bằng IME tiếng Hàn, tiếng Việt đều tìm được ở cả hai cách viết.
|
|
316
|
-
|
|
317
|
-
**📊 Scored Ranking** — Kết quả được xếp hạng theo relevance (30%) + recency (25%) + frequency (18%) + confidence (17%) + recall impact (10%).
|
|
318
|
-
|
|
319
|
-
**🔄 Knowledge Evolution** — Quyết định thay đổi. `forget` archives old memories (không bao giờ xóa). `supersedes` relations liên kết old → new. AI của bạn luôn thấy phiên bản mới nhất.
|
|
320
|
-
|
|
321
|
-
**⚠️ Conflict Detection** — Nếu bạn có hai memories mâu thuẫn với nhau, MeMesh cảnh báo bạn.
|
|
322
|
-
|
|
323
|
-
**🕸️ Kết nối đồ thị tri thức** — `memesh kg backfill-relations --all-rules` liên kết các thực thể cô lập bằng cách sử dụng đồng xuất hiện thẻ, phân cụm dự án, ngữ cảnh phiên và độ tương đồng tên — không cần LLM.
|
|
324
|
-
|
|
325
|
-
**📦 Team Sharing** — `memesh export > team-knowledge.json` → chia sẻ với team → `memesh import team-knowledge.json`
|
|
326
|
-
Các imported bundles vẫn có thể tìm kiếm được, nhưng MeMesh không auto-inject imported memories vào Claude hooks cho đến khi bạn review hoặc re-store chúng locally.
|
|
327
|
-
|
|
328
|
-
---
|
|
329
|
-
|
|
330
|
-
## Ví dụ sử dụng
|
|
331
|
-
|
|
332
|
-
> "MeMesh đã nhớ rằng chúng tôi chọn PKCE thay vì implicit flow ba tuần trước. Khi tôi hỏi Claude về auth lại, nó đã biết — không cần giải thích lại."
|
|
333
|
-
> — **Nhà phát triển solo, xây dựng SaaS**
|
|
334
|
-
|
|
335
|
-
> "Chúng tôi export team memory mỗi thứ Sáu và import thứ Hai. Claude của mỗi người bắt đầu tuần biết những gì team đã học tuần trước."
|
|
336
|
-
> — **Startup 3 người, knowledge base được chia sẻ**
|
|
337
|
-
|
|
338
|
-
> "Dashboard cho tôi thấy 90% memories của tôi là auto-generated session logs. Tôi bắt đầu sử dụng `remember` có ý định cho architectural decisions. Game changer."
|
|
339
|
-
> — **Nhà phát triển khám phá ra Analytics tab**
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## Mở khóa Smart Mode (Tuỳ chọn)
|
|
344
|
-
|
|
345
|
-
MeMesh hoạt động offline theo mặc định — recall luôn LLM-free (95.60% R@5 trên LongMemEval-S, không cần LLM). Thêm LLM API key chỉ nếu bạn muốn các luồng phân tích LLM-augmented bổ sung: trích xuất session thông minh hơn, auto-tagging cho memories mới, phân tích lỗi thành lessons có cấu trúc, và compression `dream`:
|
|
346
|
-
|
|
347
|
-
```bash
|
|
348
|
-
memesh config set llm.provider anthropic
|
|
349
|
-
memesh config set llm.api-key sk-ant-...
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
Hoặc dùng dashboard Settings tab (visual setup):
|
|
353
|
-
|
|
354
|
-
```bash
|
|
355
|
-
memesh serve # mở dashboard → Settings tab
|
|
356
|
-
```
|
|
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
|
-
|
|
360
|
-
### Dùng embeddings của riêng bạn (tùy chọn)
|
|
361
|
-
|
|
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ố:
|
|
363
|
-
|
|
364
|
-
```bash
|
|
365
|
-
memesh config set embedder.provider openai # or: ollama
|
|
366
|
-
memesh config set embedder.model text-embedding-3-small
|
|
367
|
-
```
|
|
368
|
-
|
|
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.
|
|
370
|
-
|
|
371
|
-
| | Level 0 (default) | Level 1 (Smart Mode) |
|
|
372
|
-
|---|---|---|
|
|
373
|
-
| **Tìm kiếm** | FTS5 + sqlite-vec, 95.60% R@5 | giữ nguyên — recall luôn LLM-free ở mọi level |
|
|
374
|
-
| **Auto-capture** | Rule-based patterns | + LLM extracts decisions & lessons |
|
|
375
|
-
| **Auto-tagging** | Chỉ thẻ thủ công | + LLM tự động gắn nhãn entity mới |
|
|
376
|
-
| **Phân tích lỗi** | Không có sẵn | + LLM chuyển session errors thành structured lessons |
|
|
377
|
-
| **Compression** | Không có sẵn | `dream` nén verbose memories |
|
|
378
|
-
| **Chi phí** | Free, no API key | ~$0.0001 mỗi analysis call (Haiku) |
|
|
379
|
-
|
|
380
|
-
---
|
|
381
|
-
|
|
382
|
-
## Cả 8 Memory Tools
|
|
383
|
-
|
|
384
|
-
| Tool | Nó làm gì |
|
|
385
|
-
|------|-------------|
|
|
386
|
-
| `remember` | Lưu trữ kiến thức với observations, relations, và tags |
|
|
387
|
-
| `recall` | Tìm kiếm FTS5 + sqlite-vec với multi-factor scoring (relevance, recency, frequency, confidence, recall impact) — không có LLM trong hot path |
|
|
388
|
-
| `forget` | Soft-archive (không bao giờ xóa) hoặc xóa observations cụ thể |
|
|
389
|
-
| `export` | Chia sẻ memories dưới dạng JSON giữa các dự án hoặc thành viên team |
|
|
390
|
-
| `import` | Import memories với merge strategies (skip / overwrite / append) |
|
|
391
|
-
| `learn` | Ghi lại structured lessons từ những sai lầm (error, root cause, fix, prevention) |
|
|
392
|
-
| `user_patterns` | Phân tích work patterns của bạn — schedule, tools, strengths, learning areas |
|
|
393
|
-
| `verify_agent_work` | Persist một verification report cho background-agent work; reality-checks claimed file changes với `git diff` |
|
|
394
|
-
|
|
395
|
-
---
|
|
396
|
-
|
|
397
|
-
## Kiến trúc
|
|
398
|
-
|
|
399
|
-
```
|
|
400
|
-
┌─────────────────┐
|
|
401
|
-
│ Core Engine │
|
|
402
|
-
│ (8 operations) │
|
|
403
|
-
└────────┬────────┘
|
|
404
|
-
┌─────────────────┼─────────────────┐
|
|
405
|
-
│ │ │
|
|
406
|
-
CLI (memesh) HTTP API (serve) MCP (memesh-mcp)
|
|
407
|
-
│ │ │
|
|
408
|
-
└─────────────────┼─────────────────┘
|
|
409
|
-
│
|
|
410
|
-
SQLite + FTS5 + sqlite-vec
|
|
411
|
-
(~/.memesh/knowledge-graph.db)
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
Core là framework-agnostic. Logic tương tự chạy từ terminal, HTTP, hoặc MCP.
|
|
415
|
-
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
## Nâng cấp
|
|
419
|
-
|
|
420
|
-
Plugin marketplace của Claude Code ghim phiên bản lúc cài đặt và **không** tự động cập nhật. Để lấy bản phát hành mới:
|
|
421
|
-
|
|
422
|
-
**Tùy chọn A — Giao diện `/plugin`**: gỡ cài `memesh@pcircle-memesh`, rồi cài lại. Claude Code sẽ kéo phiên bản mới nhất từ marketplace.
|
|
423
|
-
|
|
424
|
-
**Tùy chọn B — Script một dòng** (không cần click UI, idempotent):
|
|
425
|
-
|
|
426
|
-
```bash
|
|
427
|
-
# Nếu bản plugin đã cài là v4.2.5 trở lên, script đã có sẵn:
|
|
428
|
-
bash ~/.claude/plugins/cache/pcircle-memesh/memesh/<current-version>/scripts/upgrade-plugin.sh
|
|
429
|
-
|
|
430
|
-
# Nếu bạn cài trước v4.2.5 (tức là v4.2.4 hoặc v4.2.3),
|
|
431
|
-
# script chưa nằm trong plugin của bạn. Dùng bản sao npm-global thay thế:
|
|
432
|
-
bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"
|
|
433
|
-
|
|
434
|
-
# (Giả định bạn cũng đã chạy `npm install -g @pcircle/memesh`. Nếu chưa, đây là
|
|
435
|
-
# thời điểm tốt để cài — xem phần "Tổng quan các đường cài đặt" ở trên để hiểu
|
|
436
|
-
# vì sao đa số người dùng muốn có cả hai đường.)
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
Script sẽ fast-forward marketplace cache, đặt phiên bản mới vào `~/.claude/plugins/cache/`, cài runtime deps, rồi trỏ lại `installed_plugins.json`. Khởi động lại Claude Code sau đó để MCP server kết nối lại.
|
|
440
|
-
|
|
441
|
-
**Bản cài npm-global** (`npm install -g @pcircle/memesh`) có thể tự cập nhật qua `memesh update`. Source checkouts: `git pull && npm install && npm run build`.
|
|
442
|
-
|
|
443
|
-
Khi bắt đầu session, banner một dòng (throttle mỗi 24h mỗi version) hiện ra khi có bản phát hành mới, và `memesh doctor` báo cáo phiên bản nâng cấp với lệnh tương ứng kênh cài đặt.
|
|
444
|
-
|
|
445
|
-
---
|
|
446
|
-
|
|
447
|
-
## Đóng góp
|
|
448
|
-
|
|
449
|
-
```bash
|
|
450
|
-
git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
|
|
451
|
-
cd memesh-llm-memory && npm install && npm run build
|
|
452
|
-
npm test
|
|
453
|
-
npm run test:e2e-dashboard
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
Dashboard: `cd dashboard && npm install && npm run dev`
|
|
457
|
-
|
|
458
|
-
---
|
|
459
|
-
|
|
460
|
-
<p align="center">
|
|
461
|
-
<strong>MIT</strong> — Được tạo bởi <a href="https://pcircle.com">PCIRCLE AI</a>
|
|
462
|
-
</p>
|