|
### 🧠 Truy Hồi Bền Vững
Ký ức được lưu trữ dưới dạng các tệp Markdown có thể kiểm tra trong `NOEMA_ROOT` (mặc định `~/.agent-memory/`). `noema_recall` nạp ngữ cảnh liên quan khi bắt đầu phiên; `noema_search`, `noema_browse`, `noema_catalog` và `noema_recall_graph` phụ trách tra cứu, khám phá và kiểm toán.
|
### 📥 Nhập Từ Các Công Cụ Khác
`noema_import` đọc các tệp bộ nhớ của chín công cụ AI coding khác — Codex, Claude Code, opencode, Cursor, Grok, WorkBuddy, Antigravity, Trae, Qoder — chia chúng thành các phần và lưu mỗi phần như một ký ức bền vững. Một sổ cái khóa theo nội dung sẽ khử trùng lặp giữa các lần chạy và giữa các công cụ dùng chung tệp.
|
|
### 🛠️ Quản Lý Trên Trang Cài Đặt
Trang cài đặt Noema Memory cấu hình lệnh máy chủ, thư mục gốc bộ nhớ, ngân sách, thời gian chờ rảnh/gọi, và phần hướng dẫn — đồng thời một thẻ Manage memories cho phép tìm kiếm, duyệt, thêm, xem xét và xóa trực tiếp các ký ức đã lưu.
|
### 🩺 Duy Trì Hoạt Động
Máy chủ bộ nhớ luôn hoạt động: thời gian chờ rảnh mặc định là không bao giờ, và một vòng lặp duy trì sẽ khởi động lại tiến trình con `noema-mcp` trong nền khi nó gặp sự cố hoặc thoát, với khoảng kiểm tra và độ trễ khởi động lại có thể cấu hình.
|
|
### 🔍 Trích Xuất Thực Thể Thông Minh
Công cụ trích xuất của Noema kết hợp phân tách từ jieba với các tín hiệu độ chính xác cao — danh từ riêng tiếng Anh, tên và thuật ngữ kỹ thuật CJK, chủ đề trong dấu ngoặc kép và sự lặp lại — cùng với bộ lọc stopword và đường dẫn, giúp danh mục chủ đề PageIndex luôn sạch sẽ.
|
### ⚡ Tải Lại Nóng
Sau lần khởi động đầu tiên, plugin không bao giờ cần khởi động lại: `pnpm run build` tải lại nóng plugin host qua Cordis HMR, và `ppnpm run build:client` hoán đổi nóng gói trình duyệt qua kênh SSE client-hmr.
|
## Cài đặt vào DSH
```sh
dsh plugin --profile web add @zseven-w/dsh-noema@latest
dsh web
```
Hoặc, để phát triển cục bộ trực tiếp từ cây mã nguồn:
```sh
dsh plugin --profile web add link:/path/to/dsh-noema
dsh web
```
Giao thức `link:` tạo symlink phụ thuộc profile đến kho lưu trữ này, nhờ đó các lần build lại được nhìn thấy ngay lập tức và Cordis HMR có thể theo dõi đầu ra đã biên dịch.
Plugin đóng gói nhị phân `noema-mcp` thông qua các gói npm tùy chọn theo từng nền tảng. Để tự build thay thế, hãy chạy `cargo build --release -p noema-mcp` bên trong submodule `noema` đi kèm, hoặc trỏ cài đặt Server command tới bất kỳ bản build `noema-mcp` nào.
## Công Cụ Bộ Nhớ
Các công cụ dành cho mô hình phản ánh bề mặt Noema MCP:
| Công cụ | Chức năng |
| --- | --- |
| `noema_recall` | Truy hồi các ký ức liên quan cho một truy vấn, kèm ngân sách token. |
| `noema_search` | Tìm kiếm toàn văn trên các ký ức đã lưu. |
| `noema_browse` | Duyệt danh mục PageIndex theo chủ đề hoặc thực thể. |
| `noema_catalog` | Hiển thị toàn bộ danh mục ký ức dưới dạng markdown. |
| `noema_recall_graph` | Truy hồi nhiều bước qua các liên kết và thực thể dùng chung. |
| `noema_neighbors` | Một bước đồ thị từ một ký ức. |
| `noema_explain` | Giải thích vì sao một ký ức được hoặc không được truy hồi. |
| `noema_remember` | Lưu một sự kiện, quyết định, ràng buộc hoặc sở thích bền vững. |
| `noema_review_list` | Liệt kê các ứng viên đang chờ xem xét. |
| `noema_review_decide` | Chấp nhận, từ chối, chỉnh sửa hoặc gộp một ứng viên. |
| `noema_forget` | Đánh dấu xóa (tombstone) hoặc xóa vĩnh viễn một ký ức. |
| `noema_policy_get` / `noema_policy_set` | Đọc hoặc cập nhật chính sách ghi. |
| `noema_status` | Trạng thái máy chủ và tenant: số lượng, tình trạng chỉ mục, thư mục gốc lưu trữ. |
| `noema_import` | Nhập ký ức từ các công cụ AI coding khác. |
Mỗi công cụ trả về một lớp bọc đồng nhất `{ ok, tool, text }` trong đó `text` chứa toàn bộ đầu ra của máy chủ.
## Nhập ký ức từ các công cụ khác
| ID nguồn | Tệp toàn cục | Tệp workspace |
| --- | --- | --- |
| `codex` | `~/.codex/AGENTS.md` + quy trình bộ nhớ Codex: `~/.codex/memories/MEMORY.md`, `memory_summary.md`, `rollout_summaries/*.md`, `extensions/ad_hoc/notes/*.md` (`raw_memories.md` bị bỏ qua — đây là nguồn chưa được tinh lọc) | `AGENTS.md`, `AGENTS.local.md` |
| `claude-code` | `~/.claude/CLAUDE.md`, `~/.claude/CLAUDE.local.md`, `~/.claude/MEMORY.md` | `CLAUDE.md`, `CLAUDE.local.md`, `MEMORY.md` |
| `opencode` | `~/.config/opencode/AGENTS.md` | `AGENTS.md` |
| `cursor` | `~/.cursor/rules/*.mdc`, `~/.cursorrules` | `.cursor/rules/*.mdc`, `.cursorrules` |
| `grok` | `~/.grok/AGENTS.md` + bộ nhớ xuyên phiên của Grok: `~/.grok/memory/MEMORY.md`, `MEMORY.md` theo từng dự án, và các bản tóm tắt `sessions/*.md` | `AGENTS.md` |
| `workbuddy` | `~/.codebuddy/CODEBUDDY.md` (tệp bộ nhớ WorkBuddy), `~/.workbuddy/AGENTS.md`, `~/.workbuddy/memory.md`, `~/.config/workbuddy/AGENTS.md`, `~/Library/Application Support/WorkBuddy/AGENTS.md` | `AGENTS.md`, `CODEBUDDY.md` |
| `antigravity` | `~/.antigravity/AGENTS.md`, `~/.config/antigravity/AGENTS.md`, `~/Library/Application Support/Antigravity/AGENTS.md` (nỗ lực tối đa; chưa có kho bộ nhớ toàn cục được ghi nhận) | `AGENTS.md`, `AGENTS.local.md` |
| `trae` | `~/.trae/AGENTS.md`, `~/.trae/memory/`, `~/.trae/rules/` (cộng với các biến thể `~/.trae-cn`) | `AGENTS.md`, `.trae/rules/` |
| `qoder` | `~/.qoder-cn/AGENTS.md`, `~/.qoder-cn/rules/`, các thư mục gốc bộ nhớ tự động `~/.qoder-cn/memory/` và `~/.qoder-cn/projects/*/memory/` (cộng với các biến thể `~/.qoder`) | `AGENTS.md`, `AGENTS.local.md`, `.qoder/rules/` |
- Đối số `source` chọn một công cụ, hoặc bỏ qua để chạy mọi nguồn đã được bật trong cài đặt.
- Đối số `path` chọn thư mục gốc workspace cho các tệp theo phạm vi dự án (mặc định là workspace của phiên; các tệp workspace chỉ được nạp khi cài đặt Import workspace files được bật).
- Các lần nhập được khử trùng lặp thông qua sổ cái tại `$DSH_HOME/storages/dsh-noema-imports.json`, khóa theo đường dẫn tệp + nội dung phần — khi nhiều công cụ dùng chung một `AGENTS.md` của dự án, mỗi phần chỉ được nhập đúng một lần. `force: true` sẽ nhập lại toàn bộ.
- Trang cài đặt cung cấp các ô chọn theo từng nguồn, một nút bật nhập khi khởi động, một giới hạn kích thước tệp và một nút Import now kèm tóm tắt lần chạy gần nhất.
## Cấu hình
Mở **Settings → Noema Memory**:
| Cài đặt | Mặc định | Ý nghĩa |
| --- | --- | --- |
| Enable memory | on | Công tắc chính cho các công cụ `noema_*`. |
| Memory guidance | on | Phần system-prompt hướng dẫn cách dùng bộ nhớ. |
| Start server at boot | on | Khởi động khi DSH bắt đầu thay vì khi dùng lần đầu. |
| Auto-accept new memories | on | `noema_remember` lưu ngay lập tức. |
| Server command | `bundled` | Nhị phân `noema-mcp` đi kèm hoặc đường dẫn/lệnh thực thi tùy chỉnh. |
| Working directory | — | cwd cho máy chủ (cần cho `cargo run`). |
| Memory root (NOEMA_ROOT) | — | Nơi lưu trữ ký ức; để trống = `~/.agent-memory`. |
| Recall token budget | 1200 | `budget_tokens` mặc định cho `noema_recall`. |
| Idle timeout (ms) | 0 | Dừng máy chủ sau thời gian rảnh; 0 = không bao giờ. |
| Keep alive | on | Khởi động lại máy chủ trong nền khi nó gặp sự cố hoặc thoát. |
| Keep-alive interval (ms) | 5000 | Độ trễ tối thiểu giữa các lần kiểm tra sức khỏe nền. |
| Call timeout (ms) | 30000 | Hạn chót cho mỗi lần gọi công cụ. |
| Restart delay (ms) | 1000 | Độ lùi giữa một lần dừng/sự cố và lần khởi động tiếp theo. |
Thẻ trạng thái hiển thị tình trạng máy chủ cùng các hành động khởi động lại/dừng, và phần nhập quản lý chín nguồn bộ nhớ.
## Tải lại nóng
Cơ chế HMR của DSH có thể dùng đầy đủ sau khi plugin đã được nạp một lần:
- **Host plugin** — bật mục Cordis HMR trong bản vá profile với watch root trỏ tới đầu ra `lib/` của gói này, và giữ phụ thuộc `link:`. Chạy `pnpm run build` và DSH đang chạy sẽ tự động tải lại mục plugin (tiến trình con máy chủ Noema được khởi động lại bởi lần tải lại) — không cần khởi động lại máy chủ.
```yaml
# ~/.dsh/profiles/