|
### 🧠 Recall Tahan Lama
Memori tersimpan sebagai berkas Markdown yang dapat diperiksa di bawah `NOEMA_ROOT` (bawaan `~/.agent-memory/`). `noema_recall` memuat konteks yang relevan di awal sesi; `noema_search`, `noema_browse`, `noema_catalog`, dan `noema_recall_graph` menangani pencarian, penjelajahan, dan audit.
|
### 📥 Impor Dari Alat Lain
`noema_import` membaca berkas memori sembilan alat coding AI lainnya — Codex, Claude Code, opencode, Cursor, Grok, WorkBuddy, Antigravity, Trae, Qoder — membaginya menjadi beberapa bagian, dan menyimpan setiap bagian sebagai memori yang tahan lama. Sebuah buku besar berkunci konten menghapus duplikasi lintas proses dan lintas alat yang berbagi berkas.
|
|
### 🛠️ Pengelolaan di Halaman Pengaturan
Halaman pengaturan Noema Memory mengonfigurasi perintah server, akar memori, anggaran, batas waktu idle/panggilan, dan bagian panduan — serta sebuah kartu Manage memories mencari, menjelajah, menambah, meninjau, dan menghapus memori tersimpan secara langsung.
|
### 🩺 Tetap Hidup
Server memori tetap berjalan: batas waktu idle secara bawaan tidak pernah, dan sebuah loop keep-alive memulai ulang proses anak `noema-mcp` di latar belakang ketika ia crash atau keluar, dengan interval pemeriksaan dan backoff pemulaian ulang yang dapat dikonfigurasi.
|
|
### 🔍 Ekstraksi Entitas Cerdas
Mesin ekstraksi Noema menggabungkan segmentasi kata jieba dengan sinyal presisi tinggi — kata benda proper bahasa Inggris, nama dan istilah teknis CJK, topik dalam tanda kutip, dan pengulangan — dengan filter stopword dan jalur, sehingga katalog topik PageIndex tetap bersih.
|
### ⚡ Muat Ulang Panas
Setelah boot pertama, plugin tidak pernah perlu dimulai ulang lagi: `pnpm run build` memuat ulang panas plugin host melalui Cordis HMR, dan `ppnpm run build:client` menukar panas bundel browser melalui kanal SSE client-hmr.
|
## Memasang ke DSH
```sh
dsh plugin --profile web add @zseven-w/dsh-noema@latest
dsh web
```
Atau, untuk pengembangan lokal langsung dari pohon sumber:
```sh
dsh plugin --profile web add link:/path/to/dsh-noema
dsh web
```
Protokol `link:` membuat symlink dependensi profil ke repositori ini, sehingga build ulang langsung terlihat dan Cordis HMR dapat memantau keluaran yang telah dikompilasi.
Plugin membundel biner `noema-mcp` melalui paket npm opsional per platform. Untuk membangunnya sendiri, jalankan `cargo build --release -p noema-mcp` di dalam submodul `noema` yang dibundel, atau arahkan pengaturan Server command ke build `noema-mcp` mana pun.
## Alat Memori
Alat yang dihadapi model mencerminkan permukaan Noema MCP:
| Alat | Fungsinya |
| --- | --- |
| `noema_recall` | Memanggil kembali memori yang relevan untuk sebuah kueri, dengan anggaran token. |
| `noema_search` | Pencarian teks penuh atas memori tersimpan. |
| `noema_browse` | Menjelajah katalog PageIndex untuk sebuah topik atau entitas. |
| `noema_catalog` | Merender seluruh katalog memori sebagai markdown. |
| `noema_recall_graph` | Recall multi-hop melalui tautan dan entitas bersama. |
| `noema_neighbors` | Satu lompatan graf dari sebuah memori. |
| `noema_explain` | Menjelaskan mengapa sebuah memori dipanggil atau tidak dipanggil kembali. |
| `noema_remember` | Menyimpan fakta, keputusan, batasan, atau preferensi yang tahan lama. |
| `noema_review_list` | Mencantumkan kandidat tinjauan yang tertunda. |
| `noema_review_decide` | Menerima, menolak, mengedit, atau menggabungkan sebuah kandidat. |
| `noema_forget` | Menandai nisan (tombstone) atau menghapus permanen sebuah memori. |
| `noema_policy_get` / `noema_policy_set` | Membaca atau memperbarui kebijakan penulisan. |
| `noema_status` | Status server dan tenant: jumlah, kesehatan indeks, akar penyimpanan. |
| `noema_import` | Mengimpor memori dari alat coding AI lain. |
Setiap alat mengembalikan amplop seragam `{ ok, tool, text }` di mana `text` memuat seluruh keluaran server.
## Mengimpor memori dari alat lain
| ID sumber | Berkas global | Berkas workspace |
| --- | --- | --- |
| `codex` | `~/.codex/AGENTS.md` + pipeline memori Codex: `~/.codex/memories/MEMORY.md`, `memory_summary.md`, `rollout_summaries/*.md`, `extensions/ad_hoc/notes/*.md` (`raw_memories.md` dilewati — ini adalah umpan yang belum dikurasi) | `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` + memori lintas sesi Grok: `~/.grok/memory/MEMORY.md`, `MEMORY.md` per proyek, dan ringkasan `sessions/*.md` | `AGENTS.md` |
| `workbuddy` | `~/.codebuddy/CODEBUDDY.md` (berkas memori 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` (upaya terbaik; belum ada penyimpanan memori global yang terdokumentasi) | `AGENTS.md`, `AGENTS.local.md` |
| `trae` | `~/.trae/AGENTS.md`, `~/.trae/memory/`, `~/.trae/rules/` (plus varian `~/.trae-cn`) | `AGENTS.md`, `.trae/rules/` |
| `qoder` | `~/.qoder-cn/AGENTS.md`, `~/.qoder-cn/rules/`, akar memori otomatis `~/.qoder-cn/memory/` dan `~/.qoder-cn/projects/*/memory/` (plus varian `~/.qoder`) | `AGENTS.md`, `AGENTS.local.md`, `.qoder/rules/` |
- Argumen `source` memilih satu alat, atau abaikan untuk menjalankan setiap sumber yang diaktifkan di pengaturan.
- Argumen `path` memilih akar workspace untuk berkas berlingkup proyek (bawaan adalah workspace sesi; berkas workspace hanya dimuat ketika pengaturan Import workspace files aktif).
- Impor dihapus duplikasinya melalui buku besar di `$DSH_HOME/storages/dsh-noema-imports.json`, berkunci jalur berkas + isi bagian — ketika beberapa alat berbagi satu `AGENTS.md` proyek, setiap bagian diimpor tepat satu kali. `force: true` mengimpor ulang semuanya.
- Halaman pengaturan menyediakan kotak centang per sumber, tombol impor saat startup, batas ukuran berkas, dan tombol Import now dengan ringkasan proses terakhir.
## Pengaturan
Buka **Settings → Noema Memory**:
| Pengaturan | Bawaan | Arti |
| --- | --- | --- |
| Enable memory | on | Saklar utama untuk alat `noema_*`. |
| Memory guidance | on | Bagian system-prompt yang mengajarkan penggunaan memori. |
| Start server at boot | on | Munculkan saat DSH dimulai alih-alih saat digunakan pertama kali. |
| Auto-accept new memories | on | `noema_remember` langsung menyimpan. |
| Server command | `bundled` | Biner `noema-mcp` yang dibundel atau jalur/perintah eksekusi kustom. |
| Working directory | — | cwd untuk server (diperlukan untuk `cargo run`). |
| Memory root (NOEMA_ROOT) | — | Tempat memori disimpan; kosong = `~/.agent-memory`. |
| Recall token budget | 1200 | `budget_tokens` bawaan untuk `noema_recall`. |
| Idle timeout (ms) | 0 | Hentikan server setelah idle; 0 = tidak pernah. |
| Keep alive | on | Mulai ulang server di latar belakang ketika ia crash atau keluar. |
| Keep-alive interval (ms) | 5000 | Penundaan minimum antara pemeriksaan kesehatan latar belakang. |
| Call timeout (ms) | 30000 | Tenggat per panggilan alat. |
| Restart delay (ms) | 1000 | Backoff antara penghentian/crash dan pemulaian berikutnya. |
Kartu status menampilkan kesehatan server dengan aksi mulai ulang/hentikan, dan bagian impor mengelola sembilan sumber memori.
## Muat ulang panas
Mesin HMR DSH dapat digunakan sepenuhnya setelah plugin dimuat sekali:
- **Host plugin** — aktifkan entri Cordis HMR di patch profil dengan watch root diarahkan ke keluaran `lib/` paket ini, dan pertahankan dependensi `link:`. Jalankan `pnpm run build` dan DSH yang sedang berjalan akan memuat ulang entri plugin secara otomatis (proses anak server Noema dimulai ulang oleh pemuatan ulang) — tanpa mulai ulang server.
```yaml
# ~/.dsh/profiles/