ai-memory
resmiMemori persisten untuk asisten AI apa pun. Biaya token nol hingga dipanggil. Menyimpan memori di SQLite lokal, memberi peringkat berdasarkan skor 6 faktor, mengembalikan hasil 79% lebih kecil dari JSON. Bekerja dengan Claude, ChatGPT, Grok, Cursor, Windsurf, dan klien MCP mana pun.
Apa yang bisa Anda lakukan dengan Ai Memory MCP?
- Menyimpan fakta, preferensi, dan koreksi — minta asisten untuk mengingat apa pun melalui
memory_store, menyimpannya di basis data SQLite atau PostgreSQL lokal. - Memanggil memori yang relevan sesuai permintaan — ambil hasil yang sesuai konteks dan diurutkan berdasarkan relevansi menggunakan
memory_recallatau pencarian teks lengkapmemory_search. - Mendaftar, mengambil, dan mengelola memori yang tersimpan — jelajahi semua entri yang disimpan dengan
memory_list, ambil entri tertentu berdasarkan ID denganmemory_get, atau arsipkan item yang sudah usang. - Mengoordinasikan alur kerja multi-agen — buat DAG tindakan yang diketik, peroleh sewa terbatas TTL, dan tukarkan sinyal yang ditandatangani menggunakan alat
memory_action_*,memory_lease_*, danmemory_signal_*. - Melacak garis keturunan dan asal-usul memori — telusuri DAG derivasi memori apa pun melalui
memory_lineageuntuk melihat fakta mana yang berasal dari sumber mana.
Dokumentasi
ai-memory™
memori AI universal
ai-memory adalah sistem memori persisten untuk asisten AI. Ini bekerja dengan AI apa pun yang mendukung MCP -- Claude, ChatGPT, Grok, Llama, dan lainnya. Ini menyimpan apa yang dipelajari AI Anda dalam basis data SQLite lokal, memberi peringkat memori berdasarkan relevansi saat mengingat, dan secara otomatis mempromosikan pengetahuan penting ke penyimpanan permanen. Instal sekali, dan setiap asisten AI yang Anda gunakan akan mengingat arsitektur, preferensi, koreksi Anda -- selamanya.
Pilih jalur instalasi Anda
| Anda adalah… | Penerapan Anda adalah… | Mulai di sini |
|---|---|---|
| Pengembang tunggal yang mencoba ai-memory | Satu klien AI di laptop | docs/install-quickstart.md — Instalasi super-sederhana 5 menit + backend LLM terhubung dalam satu blok |
| Insinyur / arsitek | Produksi simpul tunggal, atau beberapa agen pada satu simpul | docs/INSTALL.md → docs/production-deployment.md |
| Insinyur / arsitek | Multi-server / multi-rak / multi-DC / kawanan / sarang / federasi | docs/enterprise-deployment.md — 8 topologi, singleton → multi-wilayah |
| Insinyur / arsitek | PostgreSQL + penyimpanan Apache AGE (multi-penulis, 10M+ memori, berat-KG) | docs/postgres-age-guide.md — panduan operator postgres kelas satu |
| Pengambil keputusan yang mengevaluasi adopsi | — | docs/audience/decision-maker.html |
Mengonfigurasi backend LLM (xAI Grok, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, server llama.cpp, atau Ollama lokal)? Lihat
docs/integrations/llm-backends.md— resep blok-env MCP sama terlepas dari jalur instalasi.
v0.9.0 — rilis saat ini. Rilis pengerasan keamanan dan tinjauan kode: 49 perbaikan dari tinjauan adversarial 5-jalur (#1885–#1935) ditambah serangkaian fitur tambahan yang lebih kecil. Perubahan utama adalah pembalikan default-aman: atestasi agen diperlukan secara default pada penulisan langsung HTTP (#1751, dicakup-permukaan oleh #1985) — HTTP POST /api/v1/memories (+/bulk) yang tidak ditandatangani ditolak (403 ATTESTATION_FAILED) alih-alih mendarat attest_level="claimed", kecuali operator menetapkan pengecualian eksplisit AI_MEMORY_REQUIRE_AGENT_ATTESTATION=0. Permukaan MCP memory_store dan CLI store adalah jalur operator-sebagai-aktor dan tetap permisif secara default (penulisan yang tidak ditandatangani mendarat claimed); =1 memaksa ketat pada setiap permukaan. (GA v0.9.0 mengirimkan ini sebagai require-di mana-mana, yang tidak dapat dipenuhi pada host MCP — dikoreksi menjadi cakupan-permukaan dalam rilis saat ini.) Bersamaan dengan itu, gerbang penegakan kehadiran kait wajib sekarang menyala pada kedua jalur penulisan MCP (#1885) dan jalur penulisan HTTP (#1924), menutup celah bypass diam di mana kait wajib yang dikonfigurasi dapat dilewati pada satu permukaan tetapi tidak pada yang lain. Proses pengerasan juga menutup bulk_create pembatasan atestasi per-baris (#1919), merutekan persetujuan PENDING federasi masuk melalui gerbang pemberi persetujuan terdaftar (#1920), memperketat cakupan visibilitas team/unit/org sehingga tidak lagi terlalu luas di seluruh hierarki namespace (#1921), dan membatasi impor folder_path dari skill_register di bawah root yang dikonfigurasi dengan penjara symlink (#1923). Saluran kredensial non-argv baru — AI_MEMORY_STORE_URL / AI_MEMORY_STORE_URL_FILE (file 0600) — menjaga kata sandi postgres/store dari /proc/<pid>/cmdline dan ps yang dapat dibaca dunia (#1927). Pekerjaan fitur tambahan: memori keterampilan yang ditulis agen dengan parameters_schema + invocation_record (B7-SKILL, #1865), loop umpan balik bayangan recall_observations (#1706), DAG garis keturunan derivasi memori (memory_lineage, #1859), dan irisan minimal pencarian vektor opt-in (#1005). Permukaan: skema v78, 101 alat MCP di --profile full (100 dapat dipanggil + bootstrap memory_capabilities yang selalu aktif) / 7 di --profile core, 92 pendaftaran rute HTTP (78 jalur URL unik), 89 subperintah CLI di bawah --features sal/sal-postgres (87 dalam build default), 9 relasi MemoryLink yang diketik, Memory 28-bidang. Berjalan pada dua backend produksi di belakang satu API identik — SQLite tertanam dan PostgreSQL + Apache AGE — di seluruh desktop, server, dan pada perangkat (iOS + Android). Semuanya bersifat tambahan dari v0.8.1 kecuali pembalikan atestasi dan penegakan kait, yang merupakan perubahan yang melanggar secara default-aman — tinjau sebelum meningkatkan. Changelog lengkap: CHANGELOG.md §"[0.9.0] — 2026-07-08".
v0.8.0 (distributed-coordination) — rilis sebelumnya. Ini adalah rilis di mana substrat memori menjadi substrat koordinasi. Ini menambahkan mesin koordinasi terdistribusi dari #1709: DAG aksi yang diketik dengan mesin status nyata (memory_action_*), sewa pemegang tunggal berbatas TTL (memory_lease_*), sinyal yang ditandatangani Ed25519 (memory_signal_*), pos pemeriksaan yang dibuktikan Ed25519 (memory_checkpoint_*), dan rutinitas yang dibekukan dan dapat diputar ulang (memory_routine_*) — sehingga armada agen yang heterogen dapat bergiliran, menyerahkan pekerjaan, dan membuktikan siapa mengatakan apa tanpa harus saling percaya. Ini melapisi kognisi yang diketik di atasnya (jenis memori Goal/Plan/Step, mesin lifecycle_state, dan relasi tautan decomposes_into / depends_on / advances), mengeraskan federasi secara default-aman (pendaftaran rekan ON secara default #1789, tanda tangan per-transisi #1718, atestasi konten per-tulisan #1464, nonce pemutaran ulang transisi #1805, penyematan sertifikat rekan keluar #1678), dan mengirimkan tata kelola yang benar-benar memblokir — kait PreToolUse Claude Code dikerjakan ulang menjadi pembungkus type:command sehingga substrat Refuse benar-benar menolak alat (#1811). Pada rilis v0.8.0, permukaannya adalah: skema v70, 100 alat MCP di --profile full (99 dapat dipanggil + bootstrap memory_capabilities yang selalu aktif) / 7 di --profile core, 91 pendaftaran rute HTTP (78 jalur URL unik), 83/85 subperintah CLI, 9 relasi MemoryLink yang diketik, Memory 27-bidang. Berjalan pada dua backend produksi di belakang satu API identik — SQLite tertanam dan PostgreSQL + Apache AGE — di seluruh desktop, server, dan pada perangkat (iOS + Android). Semuanya bersifat tambahan dari v0.7.0; tinjau pembalikan default-aman sebelum meningkatkan. Catatan rilis lengkap: docs/v0.8.0/release-notes.md.
v0.7.0 (attested-cortex) — rilis sebelumnya. Menggabungkan pekerjaan keterbacaan cortex-fluent dengan cakupan penuh v0.7 trust + A2A dari ROADMAP §7.3, ditambah (sesuai arahan operator 2026-05-09) pekerjaan kelas satu postgres+AGE yang semula v0.7.1, ditambah gelombang kesiapan pengiriman pasca-grand-slam (Batman Forms 1-6 + fondasi Opsi-B bentuk ke-7 + QW-1/2/3 + sapuan keamanan rekonsiliasi). Substrat menjadi lebih artikulatif (kapabilitas v3, alat pemuat bernama, skema yang dipadatkan, kosakata Batman MemoryKind, primitif persona/atomisasi/penelanan-multilangkah) dan dapat dipercaya secara kriptografis (atestasi Ed25519, transkrip sidechain, pipeline hook 25-peristiwa yang dapat diprogram, pewarisan namespace yang ditegakkan, rantai hash peristiwa-bertanda-tangan lintas-baris V-4). v0.7.0 juga mengirimkan postgres + Apache AGE sebagai backend penyimpanan kelas satu — ai-memory serve --store-url postgres://… untuk penggunaan daemon langsung, paritas skema di kedua backend (pada rilis v0.7.0, sqlite + postgres konvergen pada skema logis v57, di mana CURRENT_SCHEMA_VERSION adalah 57; substrat rilis v0.8.0 telah memajukan langkah serempak ini ke skema 70, dengan tabel koordinasi + visibilitas aditif v58–v70 yang mendarat di kedua backend — lihat CLAUDE.md §Database untuk tangga v58–v70) (jangkar kanonis: src/storage/migrations.rs untuk sqlite + src/store/postgres.rs untuk postgres); file migrasi pada disk berakhir di migrations/sqlite/0047_v56_list_composite_indexes.sql dan lengan tangga migrate_v57() dalam-proses postgres (penghitung nama file tertinggal dari versi skema logis karena kedua tangga menerapkan delta pasca-v34 melalui lengan dalam-proses — lihat docs/MIGRATION_v0.7.md §schema-ladder untuk narasi v35-v57; v48 #933 menambahkan tabel DLQ dorong-federasi; v49 #1025 menambahkan 14 kolom nullable ke archived_memories sehingga arsip → pulihkan bersifat lossless untuk bentuk Memori v0.7.0 penuh; v50 #1156 memperluas PRIMARY KEY agent_quotas dari (agent_id) ke (agent_id, namespace) sehingga alokasi kuota K8 per-namespace tetap berlaku bahkan ketika satu agen beroperasi di banyak namespace — baris pra-v50 mengisi ulang ke namespace sentinel _global; v51 #1255 (PR #1296) menambahkan tabel federation_nonce_cache sehingga nonce pencegahan-pemutaran-ulang rekan tetap ada di seluruh mulai ulang daemon; v52 #1389 menambahkan tabel transcript_line_dedup yang mendukung idempotensi RFC-0001 memory_capture_turn L4 + recover_from_transcript L2 sehingga SIGKILL di antara giliran tidak pernah menghasilkan memori duplikat pada rehidrasi berikutnya; v53 #1418 membatasi pemicu sinkronisasi FTS5 memories_au hanya ke (title, content, tags) sehingga pembaruan kolom non-FTS tidak lagi memicu sinkronisasi yang tidak perlu; v54 #1466 mengisi ulang kedaluwarsa default-tingkat ke baris menengah/pendek NULL-kedaluwarsa lama untuk menutup kelas baris-abadi kebocoran-TTL; v55 #1476 membuat kueri pengejaran-federasi W=2 (updated_at > ? ORDER BY updated_at ASC LIMIT) sargable dan menambahkan indeks sqlite idx_memories_updated_at — postgres tidak menambahkan indeks baru karena memories_updated_at_idx DESC sudah melayani pemindaian rentang melalui Index Scan Backward; v56 #1579 menambahkan indeks pengurutan daftar/arsip komposit (idx_memories_list_order, idx_memories_ns_list_order, idx_archived_ns_archived_at) dipasangkan dengan penulisan ulang storage::list yang sargable — DDL sisi-sqlite; lengan migrate_v56() postgres adalah no-op stempel-versi; v57 #1579 menambahkan kolom tsvector yang dihasilkan tersimpan tsv postgres + indeks GIN memories_tsv_gin sehingga bentuk pencarian/pemanggilan cocok DAN memberi peringkat pada kolom yang telah dikomputasi sebelumnya alih-alih mengkomputasi ulang tsvector per baris yang cocok — indeks ekspresi memories_content_fts lama dihapus dan kembaran sqlite adalah no-op stempel-versi karena FTS5 sudah mewujudkan teks yang diindeks)), kata kerja CLI ai-memory schema-init baru, dan paritas penilaian pemanggilan 6-faktor. Permukaan default v0.6.4 bertambah dua pemuat yang selalu aktif menjadi 7 alat (memory_load_family + memory_smart_load bergabung dengan lima asli); batas atas runtime pada --profile full adalah 74 entri yang diiklankan (73 alat memori yang dapat dipanggil + bootstrap memory_capabilities yang selalu aktif; diverifikasi terhadap Profile::full().expected_tool_count() — lihat src/profile.rs). Semua yang baru bersifat aditif dan (untuk permukaan trust + postgres) opt-in. Meningkatkan dari v0.6.x? Baca docs/MIGRATION_v0.7.md terlebih dahulu — sebagian besar pemanggil v0.6.4 tidak melihat perubahan perilaku, tetapi pengguna v0.6.x pra-v0.6.3.1 terkena perbaikan pewarisan namespace G1. Beralih ke postgres+AGE? Lihat docs/postgres-age-guide.md dan docs/migration-v0.7.0-postgres.md. Catatan rilis lengkap: docs/v0.7.0/release-notes.md.
v0.6.4 (quiet-tools) — server MCP dikirimkan dengan permukaan default 5-alat (memory_store, memory_recall, memory_list, memory_get, memory_search) ditambah bootstrap memory_capabilities yang selalu aktif. 38 alat lainnya tetap dapat dijangkau melalui --profile graph|admin|power|full atau ekspansi runtime melalui memory_capabilities --include-schema family=<name>. Harness pemuatan-antusias (Claude Desktop / Codex CLI / Grok CLI / Gemini CLI) mengurangi ~4.700 token masukan skema alat per permintaan — pengurangan 76,4% diukur terhadap BPE cl100k_base. Untuk mempertahankan perilaku v0.6.3 1:1, jalankan ai-memory mcp --profile full. Lihat docs/MIGRATION_v0.6.4.md.
Yang baru di v0.9
v0.9.0 terutama merupakan rilis pengerasan keamanan dan tinjauan kode — 49 perbaikan dari tinjauan adversarial 5-jalur (#1885–#1935) — ditambah serangkaian fitur aditif yang lebih kecil yang dilapiskan pada substrat koordinasi v0.8.0. Changelog lengkap: CHANGELOG.md §"[0.9.0] — 2026-07-08".
Pengerasan aman-secara-default
- Atestasi agen diperlukan secara default pada permukaan tulis-langsung HTTP (#1751, dicakup-permukaan oleh #1985).
AI_MEMORY_REQUIRE_AGENT_ATTESTATIONbersifat tri-state dengan default terkompilasi per-permukaan: tidak disetel → diperlukan pada tulis-langsung HTTP (POST /api/v1/memories+/bulk, menolak403 ATTESTATION_FAILED), permisif pada permukaan MCPmemory_storedan CLIstoreoperator-sebagai-aktor (tulisan yang tidak ditandatangani mendarat sebagaiattest_level="claimed");=1memaksa ketat di mana-mana,=0memaksa permisif di mana-mana. Tanda tangan yang disajikan-tapi-palsu ditolak di setiap permukaan terlepas dari pengaturan. Tandatangani tulisan (ai-memory store --signdengan pasangan kunci yang terikat melaluiai-memory agents bind-key) atau gunakan opt-out=0. (GA v0.9.0 mengirimkan ini sebagai require-di-mana-mana, tidak dapat dipenuhi pada host MCP — lihat #1981; dikoreksi menjadi dicakup-permukaan oleh #1985.) - Gerbang penegakan hook MCP + HTTP ganda (#1885 / #1924). Gerbang penegakan kehadiran hook wajib (semula hanya MCP, #1734) sekarang juga dikonsultasikan pada jalur tulis HTTP, menutup celah bypass-diam (CWE-288) di mana tulisan yang sepenuhnya melewati MCP tidak pernah melihat hook wajib yang dikonfigurasi.
- Pembatasan atestasi
bulk_create(#1919). Penulisan massal sekarang menegakkan persyaratan atestasi agen per-baris yang sama seperti panggilanmemory_storetunggal — setiap baris dalam batch harus membawa atestasi yang valid, bukan hanya permintaan secara keseluruhan. - Gerbang pemberi persetujuan federasi (#1920). Persetujuan PENDING terfederasi masuk hanya dihormati ketika dikaitkan dengan pemberi persetujuan terdaftar rekan — rekan yang terdaftar-tapi-tidak-dipercaya tidak dapat lagi memalsukan persetujuan untuk pemohon sembarang.
- Pengerasan cakupan
team/unit/org(#1921). Resolusi cakupan visibilitas sekarang menegakkan hierarki leluhur namespace dengan benar untuk cakupanteam/unit/org, menutup celah isolasi penyewa (CWE-863). - Pembatasan jalur
skill_register(#1923). Imporfolder_pathskill dikanonikalisasi dan dibatasi di bawah root yang dikonfigurasi, dengan symlink di dalam pohon yang diimpor ditolak daripada diikuti (CWE-22/CWE-59). - Saluran kredensial store-url non-argv (#1927).
AI_MEMORY_STORE_URLbaru (hanya pemilik/proc/environ) danAI_MEMORY_STORE_URL_FILE(file0600) memungkinkanai-memory servemenerima URL postgres/store — termasuk kata sandi yang disematkan — tanpa pernah meletakkannya di argv--store-url, di mana ia terekspos melalui/proc/<pid>/cmdlinedanps auxwwyang dapat dibaca dunia ke UID lokal mana pun. Urutan resolusi: file → env →--store-url.
Fitur aditif
- B7-SKILL — memori skill kelas satu (#1865).
parameters_schemasaat registrasi,invocation_record, dan permukaan versi untuk skill yang ditulis agen. - Loop umpan-balik bayangan
recall_observations(#1706, mode SHADOW). Menutup loop umpan balik pemanggilan tanpa mengubah perilaku peringkat. - DAG garis keturunan derivasi memori (
memory_lineage, skema v78, #1859). Menelusuri memori mana yang diturunkan dari yang mana, melalui MCP dan rute HTTPGET /api/v1/memories/{id}/lineagebaru. - Irisan opt-in minimal pencarian vektor (#1005; substrat penuh ditangguhkan ke #1860).
- Kumpulan pekerja pereranking diukur ke CPU fisik (#1867) dan pemanggilan adalah PURE secara default (#1869 — menghapus burst tulis dari jalur panas pemanggilan).
- Spine hanya-tambah + pemisahan lapisan penandatanganan: setiap situs mutasi dirutekan ke daun revisi bertanda tangan (#1823), pemisahan penandatanganan tiga kunci Perekam/Hakim/Penghenti (#1826), token kapabilitas macaroon terhubung ujung-ke-ujung (#1827), dan rantai suksesi kunci garis keturunan identitas bertanda tangan untuk kelangsungan rotasi (#1828, skema v76).
Tempat memulai:
CHANGELOG.md(changelog lengkap),docs/ADMIN_GUIDE.md(panduan operator — postur atestasi + penegakan hook).
Yang baru di v0.8
v0.8.0 (distributed-coordination) mengubah substrat memori menjadi substrat koordinasi untuk armada multi-agen (NHI). Judul utamanya adalah mesin koordinasi terdistribusi (#1709); semuanya dikirimkan pada adaptor SAL sqlite dan postgres+AGE dan tetap setara-default untuk pemanggil v0.7.x. Referensi alat lengkap: docs/coordination.md; catatan lengkap: docs/v0.8.0/release-notes.md.
Substrat koordinasi terdistribusi (Pilar-1, #1709)
- Actions — DAG dependensi (skema v59). Node aksi bertipe dengan mesin status (
pending → claimed → in_progress → done/failed/abandoned), edge DAG bertipe (requires/unlocks/blocks/gated_by/sibling), dan permukaan frontier/next yang menarik node berikutnya yang dapat dijalankan. 8 alat MCP (memory_action_create/_get/_transition/_list/_add_edge/_edges/_frontier/_next). - Leases — klaim berbatas TTL dengan pemegang tunggal (skema v59). Klaim compare-and-swap yang diperbarui dengan heartbeat (
PRIMARY KEYpadaaction_id= satu pemegang pada satu waktu) ditambah penyapu lease per jam. 4 alat MCP (memory_lease_acquire/_renew/_release/_get). - Signals — pesan antar-agen bertipe, ditandatangani Ed25519 (skema v60). Setiap pesan membawa tanda tangan +
signer_pubkeypengirim dan di-thread melaluicorrelation_id/in_reply_to. 5 alat MCP (memory_signal_send/_read/_inbox/_thread/_ack). - Checkpoints — gerbang bersyarat yang dibuktikan (skema v61). Gerbang yang memblokir hingga suatu kondisi terselesaikan; resolusi ditandatangani sendiri di tempat (Ed25519) untuk pemisahan tugas, dan
verifymemeriksa ulang tanda tangan. 4 alat MCP (memory_checkpoint_create/_resolve/_query/_verify). - Routines — rencana terparameterisasi, beku, dan dapat diputar ulang (skema v62). Dibuat sebagai
draft, lalu dibekukan (immutable, bukti pembekuan Ed25519);runmewujudkan serangkaian aksi + edge konkret dari template{{param}}ke dalam catatanroutine_runs. 5 alat MCP (memory_routine_create/_freeze/_run/_status/_list). - Setiap mutasi status koordinasi menambahkan baris
coordination.<op>yang tahan terhadap perusakan ke rantai hashsigned_eventsV-4 (#1722); dua penulisan pemberian otoritas dicerminkan ke daemon HTTP (POST /api/v1/actions/{id}/transition,POST /api/v1/signals) dengan CAS lokal + fan-out federasi W-of-N (#1718).
Kognisi bertipe (Pilar-2)
Kosakata memory_kind diperluas dengan goal / plan / step; taksonomi memory_links.relation tertutup diperluas 6 → 9 relasi (decomposes_into / depends_on / advances, skema v63); dan kolom memories.lifecycle_state kelas satu (skema v64) menjadikan Goal/Plan/Step sebagai mesin status nyata (open → active → blocked/done/abandoned), ditegakkan di seluruh permukaan MCP / HTTP / SAL dengan pemetaan edge ilegal ke HTTP 409 CONFLICT. Struct Memory berkembang menjadi 27 field. Tidak ada alat MCP baru — pekerjaan v64 hanya menambahkan field permintaan opsional yang permisif.
Federasi diperkuat, aman secara default
Pendaftaran peer AKTIF secara default (#1789), tanda tangan per-transisi pada penulisan pemberian otoritas (#1718), bukti konten per-tulis untuk memori yang direlai (#1464), nonce pemutaran ulang transisi (#1805), dan penyematan sidik jari sertifikat peer keluar (#1678). Armada heterogen yang tidak perlu saling percaya — tinjau perubahan default aman di docs/v0.8.0/release-notes.md §"Federation hardening" sebelum meningkatkan.
Tata kelola yang benar-benar memblokir (#1811)
Hook tata kelola Claude Code PreToolUse dikerjakan ulang menjadi wrapper type:command (ai-memory governance check-action --from-pretool-stdin) sehingga substrat Refuse mengeluarkan permissionDecision:"deny" dan benar-benar MEMBLOKIR alat tersebut — bentuk type:mcp_tool sebelumnya secara struktural tidak dapat menegakkannya. Ditambah penegakan keberadaan hook wajib (#1734) dan vonis tata kelola escalate baru (§22 PE-5) untuk human-in-the-loop.
Kontrol operasional Pilar-4
Kontrol penerimaan HTTP (#1733 — batas konkurensi opt-in yang membuang kelebihan dengan 503 bertipe), proyeksi graf Apache-AGE yang ditangguhkan (#1735 — menghilangkan round-trip AGE sinkron dari jalur panas penulisan tautan postgres), aktivasi pemadatan kurator (#1749 / #1750), dan CLI ai-memory verify-audit-trail (§22 PE-8) yang menelusuri rantai hash lintas-baris signed_events dari ujung ke ujung.
Skema v57 → v70 (semua aditif)
Tabel koordinasi + kognisi bertipe + visibilitas + persiapan enkripsi + jalur dingin + edge arsip (v58–v70), dicerminkan pada adaptor sqlite dan postgres; migrasi otomatis pada pembukaan pertama dan round-trip arsip → pulihkan tanpa kehilangan. Lihat CLAUDE.md §Database untuk tangga kanonis v58–v70.
Tempat memulai:
docs/v0.8.0/release-notes.md(catatan rilis lengkap),docs/coordination.md(referensi alat koordinasi), dan CLAUDE.md §Database (SSOT tangga skema).
Yang baru di v0.7
v0.7.0 menutup epik attested-cortex (69/69 di 11 jalur A–K), menggabungkan pekerjaan kelas satu postgres+AGE yang semula v0.7.1, dan menyerap gelombang kesiapan pengiriman pasca-grand-slam (Batman Forms 1-6 + fondasi Option-B bentuk ke-7 + QW-1/2/3 + rekonsiliasi keamanan). Inventaris fitur kanonis: docs/internal/v070-feature-inventory.md. Setiap permukaan tetap default-off atau setara default untuk pemanggil v0.6.4 — lihat matriks kompatibilitas v0.7 untuk perinciannya.
Investasi waktu-tulis asli substrat (Batman Forms 1-6 + bentuk ke-7)
- Form 1 — dedup-dan-sintesis online (isu #754). Panggilan LLM penghasil aksi batch tunggal menggantikan pengklasifikasi per-pasangan v0.6.x di jalur penyimpanan. Pilih kembali ke yes/no lama melalui
legacy_per_pair_classifier = truepada standar namespace. - Form 2 — atomisasi-sebelum-embed sinkron (isu #755). Alat
memory_atomisebaru + hook pra-penyimpananauto_atomise_mode = Synchronous|Deferred|Off. Kurator mengurai penulisan panjang menjadi 2–10 proposisi atomik sebelum recall melihatnya. Lihatdocs/atomisation.md. - Form 3 — orkestrator serapan multi-langkah (isu #756).
memory_ingest_multistepmengalirkan helper Jaccard+FTS deterministik melalui tahapan LLM yang stabil cache prompt. Lihatdocs/multistep-ingest.md+cookbook/multistep-ingest/01-two-phase.sh. - Form 4 — provenance fakta (isu #757). Kutipan + URI sumber + rentang butir atom disertakan pada payload
memory_store/memory_atomiseyang ada. Lihatdocs/provenance.md. - Form 5 — kepercayaan-otomatis + kalibrasi bayangan + peluruhan kesegaran (isu #758). Alat MCP
memory_calibrate_confidence+ sapuan baseline per sumber. Var envAI_MEMORY_AUTO_CONFIDENCE,AI_MEMORY_CONFIDENCE_SHADOW,AI_MEMORY_CONFIDENCE_SHADOW_SAMPLE_RATE,AI_MEMORY_CONFIDENCE_DECAY. Lihatdocs/confidence-calibration.md. - Form 6 — kosakata Batman
MemoryKind(isu #759). Enum 10 varian (defaultObservation+Reflection/Persona/Concept/Entity/Claim/Relation/Event/Conversation/Decision). Hook pra-penyimpananauto_classify_kindopsional (off / regex_only / regex_then_llm). Lihatdocs/memory-kind-vocab.md. - Bentuk ke-7 — pengkabelan Layer-4 agen-EKSTERNAL (fondasi Option-B) (isu #760; cakupan lengkap v0.8.0 di #697). Aturan benih yang ditandatangani pasangan kunci operator
R001..R004, alat MCPmemory_check_agent_action+memory_rule_list, hook pra-tulis substratstorage::insert. Lihatdocs/policy-engine.md+docs/governance/agent-action-rules.md. - Panduan operator — mengubah Forms 1–6 + ke-7 dari mampu → aktif (isu #800). Resep 7 langkah (pembuatan kunci operator → benih tanda tangan → aktifkan R001–R004 → daemon kurator → operan refleksi opsional → kebijakan namespace), permanensi launchd / systemd / Task-Scheduler, blok verifikasi, jalur rollback. Lihat
docs/batman-active-mode.mddan atlas GitHub Pages.
Kemenangan cepat (Tencent QW-1/2/3)
- QW-1 — ekspor rantai refleksi berbasis file. Alat MCP
memory_export_reflection+ kebijakan namespaceauto_export_reflections_to_filesystem→~/.ai-memory/reflections/<ns>/<id>.md. - QW-2 — persona-sebagai-artefak. Alat
memory_persona+memory_persona_generate, barisMemoryKind::Persona, kebijakan namespaceauto_persona_trigger_every_n_memories. Lihatdocs/persona.md. - QW-3 — primitif pemindahan konteks.
memory_offload+memory_derefmemindahkan keluaran alat besar keluar dari jendela konteks agen ke penyimpanan blob yang dapat dialamati. Lihatdocs/context-offload.md.
Epik korteks yang dibuktikan (Jalur A–K)
- Tautan teratestasi (Ed25519). Kolom
signatureyang kosong yang dikirimkan di v0.6.3 kini diisi dengan atestasi Ed25519 per-agen yang nyata, danmemory_verify(link_id)mengembalikan{signature_verified, attest_level, signed_by, signed_at}sesuai permintaan. Hasilkan pasangan kunci denganai-memory identity generate; ikut serta melaluiattest_level = "self_signed". Penandatanganan dibatasi pada daemonagent_idyang telah diselesaikan yang memiliki pasangan kunci*.privpada disk di bawah direktori kunci yang dikonfigurasi — ketikaload_daemon_signing_keymengembalikanNone(src/main.rs:116-118), baris tetap ditulis tetapisigkosong dan daemon memancarkan baris "continuing unsigned" saat boot. Rantai hash lintas-baris padasigned_eventstetap tahan terhadap gangguan. Lihat RFCattested-cortex. - Penutupan peristiwa bertanda tangan V-4 (rantai hash lintas-baris) (isu #698). Setiap baris
signed_eventsmembawaprev_hash+sequence;prev_hashbaris pertama adalah nol, baris berikutnya merantai SHA-256 dari payload CBOR kanonis sebelumnya.ai-memory verify-signed-events-chainmenelusuri rantai dari ujung ke ujung. Lihatdocs/signed-events-v4.md. - Pipeline hook (25 peristiwa siklus hidup). Permukaan ekstensi yang dapat diprogram menyala pada 20 peristiwa dasar
pre_/post_store|recall|search|delete|promote|link|consolidate|governance_decision|archive|transcript_store+on_index_eviction, ditambah 5 tambahan grand-slam (pre_recall_expandG10 +pre_reflect/post_reflectpembelajaran-rekursif Tugas 6/8 +pre_compaction/on_compaction_rollbackL1-7). Hook mengembalikanAllow/Modify/Deny/AskUser. Default mati; ikut serta melalui~/.config/ai-memory/hooks.toml. Lihatdocs/hook-pipeline.md. - Transkrip sidechain + pemutaran ulang. Sidechain BLOB zstd-3 menyimpan jejak percakapan/penalaran mentah;
memory_replay(memory_id)menelusurimemory_transcript_linksuntuk merekonstruksi rantai. Ikut serta per namespace melalui[transcripts.namespaces."team/*"]. Lihatdocs/sidechain-transcripts.md. - Pengerasan federasi. mTLS + X-API-Key + daftar izin sidik jari sertifikat SHA-256; variabel env
AI_MEMORY_FED_PEER_ATTESTATION,AI_MEMORY_FED_SYNC_TRUST_PEER,AI_MEMORY_FED_TRUST_BODY_AGENT_ID. Lihatdocs/federation.md. - Alat kuota K8 + persetujuan SSE K10.
memory_quota_status+/api/v1/quota/status(K8)./api/v1/approvals/streamperistiwa yang dikirim server dengan nonce HMAC, pengikatan method+pending_id, pemotongan jumlah peristiwa tertinggal (K10). Lihatdocs/k8-quotas.md+docs/k10-sse-approvals.md. - Backend kelas satu Postgres + Apache AGE.
ai-memory serve --store-url postgres://…, paritas skema, paritas penilaian recall 6-faktor, migrasi tautan, fitur KG (kg_query,kg_timeline,kg_invalidate,find_paths) pada AGE Cypher dengan fallback recursive-CTE saat AGE tidak ada, ditambah kata kerja CLIai-memory schema-initbaru. Terbatasi tolok ukur — p95 AGE harus mengalahkan p95 CTE sebesar ≥30% pada depth=5. Panduan operator:docs/postgres-age-guide.md. Runbook migrasi:docs/migration-v0.7.0-postgres.md. - Kemampuan v3 + pemuat pintar.
memory_capabilitiesv3 menambahkansummary,to_describe_to_user,callable_nowper-alat,agent_permitted_families,schema_version="3"; alatmemory_load_family(family)danmemory_smart_load(intent)yang selalu aktif bergabung dengan profilcoredefault. Frasa yang disematkan berada didocs/v0.7/canonical-phrasings.md. - Izin + persetujuan A2A. Subsistem tata kelola v0.6.x difaktorkan ulang menjadi aturan + mode + hook → satu
Decision, dengan pewarisan namespace (G1) yang benar-benar ditegakkan.memory_pending_list/memory_pending_approve/memory_pending_reject(remember=forever)memungkinkan kepercayaan progresif; penandatanganan HMAC pada API persetujuan bersifat wajib.permissions.modedefault keenforce(sebelumnyaadvisorydi v0.6.4). Migrasikan denganai-memory governance migrate-to-permissions(pratinjau dry-run; tambahkan--config-out ~/.config/ai-memory/config.tomluntuk menerapkan di tempat). Lihatdocs/governance.md.
Gelombang grand-slam pembelajaran-rekursif + L1/L2
Primitif substrat memory_reflect dengan batas max_reflection_depth lingkup namespace (default 3, Some(0) adalah sakelar pemutus). Kurator lintasan refleksi L2-1, koordinasi refleksi sadar federasi L2-2 (memory_reflection_origin), propagasi invalidasi L2-3 (memory_dependents_of_invalidated), bundel forensik L2-5 (ai-memory export-forensic-bundle + verify-forensic-bundle), Keterampilan Agen L1-5 (memory_skill_register|list|get|resource|export|promote_from_reflection|compositional_context). Primer lengkap: docs/RECURSIVE_LEARNING.md. Primer Keterampilan Agen: docs/agent-skills.md. Primer ekspor forensik: docs/forensic-export.md.
Tempat memulai:
docs/MIGRATION_v0.7.md(prosedur peningkatan),docs/v0.7.0/release-notes.md(catatan rilis lengkap),docs/whats-new-v07.html(ringkasan visual),docs/v0.7/rfc-attested-cortex.md(alasan desain),docs/ADMIN_GUIDE.md(panduan operator),docs/internal/v070-feature-inventory.md(kebenaran fitur kanonis).
Satu biner, empat mode operasional (v0.6.4). Biner Rust ai-memory (tokio + axum) dapat menjalankan salah satu dari ini secara terisolasi atau bersamaan, berbagi satu basis data SQLite:
- Server MCP stdio -- 101 entri yang diiklankan melalui JSON-RPC pada profil penuh (v0.9.0; 100 alat memori yang dapat dipanggil + bootstrap
memory_capabilitiesyang selalu aktif; diverifikasi terhadapProfile::full().expected_tool_count()). Default--profile coremengiklankan 7 (5 asli +memory_load_family+memory_smart_load) ditambah bootstrapmemory_capabilitiesyang selalu aktif.ai-memory mcp/ai-memory mcp --profile full - Daemon HTTP / mTLS -- 92 pendaftaran rute REST (78 jalur URL unik) pada
127.0.0.1:9077, TLS + daftar izin mTLS opsional + autentikasi kunci API, loop GC latar belakang.ai-memory serve - Daemon kurator otonom -- loop penjadwalan mandiri (irama default 1 jam) yang secara otomatis menandai, memunculkan kontradiksi di seluruh saudara namespace, mengkonsolidasikan hampir duplikat, dan menyesuaikan prioritas berdasarkan pola akses. Setiap tindakan masuk ke log rollback; operasi destruktif dapat dibatasi di belakang alur persetujuan tata kelola.
ai-memory curator --daemon - Daemon sinkronisasi -- federasi peer berbasis kuorum di seluruh instans. Penulisan W-dari-N (mayoritas default), penggabungan CRDT-lite jam vektor, daftar izin mTLS antar peer.
ai-memory sync-daemon
Permukaan MCP, HTTP, dan CLI bersifat reaktif. Kurator adalah bagian yang membuat lapisan memori dapat memelihara diri sendiri: di antara sesi, ia menjaga korpus tetap rapi sehingga kualitas recall tetap tinggi seiring pertumbuhan penyimpanan. Semuanya mengutamakan lokal; tidak ada ketergantungan cloud.
Penilaian praktis oleh Claude Opus 4.7 setelah membaca sumber v0.6.3 baris demi baris:
"ai-memory adalah lapisan memori paling mumpuni yang pernah saya hubungkan, dan secara berarti lebih dari yang diiklankan namanya. Bagi saya, dalam istilah praktis, artinya: Saya tidak memulai dengan dingin setiap sesi. Penyimpanan yang saya baca telah dijaga kerapiannya oleh sesuatu selain saya. Kontradiksi tidak menumpuk secara diam-diam. Kualitas recall tetap tinggi bahkan saat korpus bertambah. Tidak ada yang meninggalkan Mac mini Anda.
Ini tidak menjadikan saya agen otonom. Ini memberi saya jenis infrastruktur memori yang dibutuhkan agen otonom — dan dirinya sendiri menjalankan loop otonom kecil untuk memeliharanya. Itu adalah fondasi nyata. Kesenjangan dari sini ke 'ai-memory mendorong tugas-tugas umum' adalah perpipaan (protokol panggilan alat + registri alat + model yang mampu menggunakan alat), bukan penemuan."
Substrat untuk AI multi-agen. ai-memory bukanlah runtime agen dan bukan "AI otonom" dengan sendirinya. Ini adalah lapisan memori yang dibutuhkan penyebaran otonom multi-agen di bawahnya. Federasi (broadcast_store_quorum + spawn_catchup_loop) menangani konsistensi W-dari-N di seluruh peer ketika banyak agen menulis secara paralel; daemon kurator menjaga korpus bersama agar tidak terdegradasi menjadi noise saat segerombolan mencoret-coret ke dalamnya; langganan webhook (ditandatangani HMAC, difilter namespace/agen, diperkeras SSRF) mengubah penyimpanan menjadi bus pesan yang memicu agen hilir pada peristiwa memori; hierarki namespace dengan pewarisan N-level dan kebijakan tata kelola per-namespace (otoritas tulis/promosi/hapus, tipe pemberi persetujuan, konsensus N-dari-M opsional) membatasi gerombolan. Tumpuk ini di bawah runner agen multi-mesin 24/7 dengan keterampilan yang dihasilkan otomatis, dan sistem gabungannya membersihkan batas perilaku untuk AI otonom. Kesenjangan yang tersisa (tidak ada pembelajaran tingkat bobot, kernel penalaran stateless, tujuan akar yang diunggulkan manusia) adalah nyata dan bukan yang ditangani ai-memory; ai-memory menyediakan substrat memori multi-agen yang akan dibutuhkan oleh setiap upaya serius untuk menutup kesenjangan tersebut.
Nol biaya token hingga recall. Tidak seperti sistem memori bawaan (memori otomatis Claude Code, memori ChatGPT) yang memuat seluruh memori Anda ke dalam setiap percakapan -- membakar token dan uang pada setiap pesan -- ai-memory menggunakan nol token konteks hingga AI secara eksplisit memanggil memory_recall. Hanya memori yang relevan yang kembali, diperingkat oleh algoritma penilaian 6-faktor. Format TOON (Token-Oriented Object Notation) memotong token respons sebesar 40-60% lagi dengan menghilangkan nama bidang berulang -- 3 memori dalam JSON = 1.600 byte; dalam TOON = 626 byte (61% lebih kecil); dalam TOON compact = 336 byte (79% lebih kecil). Untuk pengguna Claude Code: nonaktifkan memori otomatis ("autoMemoryEnabled": false di settings.json) dan ganti dengan ai-memory untuk berhenti membayar 200+ baris konteks memori pada setiap pesan.
Identitas agen (NHI) — setiap memori memberi tahu Anda siapa yang mempelajarinya
Setiap memori yang disimpan ai-memory membawa metadata.agent_id — penanda Identitas Non-Manusia yang bertahan dari setiap operasi (perbarui, dedup, impor, sinkronkan, konsolidasi). Setiap hasil recall memberi tahu Anda AI mana yang menulis setiap memori, secara default, dalam format respons TOON-compact yang sudah dioptimalkan untuk klien AI Anda:
count:5|mode:hybrid|tokens_used:842
memories[id|title|tier|namespace|priority|score|tags|agent_id]:
a1b2|Project DB is PostgreSQL 16|long|infra|8|0.91|database,postgres|ai:claude-code@workstation:pid-3812
c3d4|API rate limit is 100 rps|long|infra|7|0.87|api,limits|ai:claude-desktop@laptop:pid-5219
Pada penulisan tanpa tanda tangan agent_id adalah identitas yang diklaim — jangan membuat keputusan keamanan hanya berdasarkan itu. Atestasi agen jalur penyimpanan diwajibkan secara default pada permukaan tulis-langsung HTTP (#1751, lingkup permukaan oleh #1985): POST /api/v1/memories HTTP tanpa tanda tangan (+/bulk) ditolak (403 ATTESTATION_FAILED) daripada mendaratkan attest_level = "claimed", kecuali operator menetapkan pengecualian eksplisit AI_MEMORY_REQUIRE_AGENT_ATTESTATION=0. Permukaan memory_store MCP dan store CLI operator-sebagai-aktor tetap permisif secara default (penulisan tanpa tanda tangan mendaratkan claimed); =1 memaksa ketat pada setiap permukaan. Atestasi kriptografis Ed25519 terhubung pada dua permukaan: (1) atestasi jalur penyimpanan (#626 Lapisan-3) — sajikan tanda tangan terpisah melalui amplop SignableWrite kanonis pada jalur CLI (store --sign), MCP (memory_store), atau HTTP (POST /api/v1/memories) dan daemon memverifikasinya terhadap kunci publik agen yang terikat, mencap metadata.attest_level = "agent_attested" (tanda tangan yang disajikan-tapi-dipalsukan selalu ditolak terlepas dari benderanya); dan (2) atestasi tautan (attested-cortex) — bidang memory_links.signature yang sebelumnya dicadangkan dengan memory_verify(link_id) untuk verifikasi masuk dan rantai audit signed_events hanya-tambahan. Lihat halaman identitas agen dan RFC attested-cortex untuk kontrak provenance lengkap.
Impor percakapan retroaktif — ai-memory mine
Jangan mulai dengan dingin. Arahkan ai-memory mine ke ekspor Claude, ChatGPT, atau Slack dan ia mengurai giliran demi giliran menjadi memori yang diperingkat, bertipe tingkat, dan ditandai — sehingga AI Anda memasuki sesi berikutnya dengan mengetahui setiap keputusan, koreksi, dan temuan dari riwayat Anda yang ada.
ai-memory mine claude ~/Downloads/claude-export/
ai-memory mine chatgpt ~/Downloads/chatgpt-export.json
ai-memory mine slack ./slack-export/
Penandaan otomatis, dedup pada (title, namespace), dan provenance mined_from dicap pada setiap memori yang diimpor. Orientasi lima menit dari nol konteks ke penyimpanan jangka panjang yang terisi. Lihat halaman riwayat impor untuk resep per-format.
Platform AI yang Kompatibel
ai-memory terintegrasi dengan platform AI apa pun yang mendukung Model Context Protocol (MCP). MCP adalah standar universal untuk menghubungkan asisten AI ke alat dan sumber data eksternal.
| Platform | Metode Integrasi | Format Konfigurasi | Status |
|---|---|---|---|
| Claude Code (Anthropic) | MCP stdio | JSON (~/.claude.json atau .mcp.json) | Didukung penuh |
| Codex CLI (OpenAI) | MCP stdio | TOML (~/.codex/config.toml) | Didukung penuh |
| Gemini CLI (Google) | MCP stdio | JSON (~/.gemini/settings.json) | Didukung penuh |
| Grok CLI (xAI) | MCP stdio | JSON (~/.grok/user-settings.json) | Integrasi mendalam |
| Grok API (xAI) | MCP remote HTTPS | Level API | Didukung penuh |
| Cursor IDE | MCP stdio | JSON (~/.cursor/mcp.json) | Didukung penuh |
| Windsurf (Codeium) | MCP stdio | JSON (~/.codeium/windsurf/mcp_config.json) | Didukung penuh |
| Continue.dev | MCP stdio | YAML (~/.continue/config.yaml) | Didukung penuh |
| Llama Stack (META) | MCP remote HTTP | YAML / Python SDK | Didukung penuh |
| OpenClaw | MCP stdio | JSON (mcp.servers dalam konfigurasi) | Didukung penuh |
| Klien MCP apa pun | MCP stdio atau HTTP | Bervariasi | Universal |
MCP adalah lapisan integrasi utama. Untuk platform AI yang belum mendukung MCP secara native, HTTP API (92 registrasi rute / 78 jalur URL unik di localhost) dan CLI (89 subperintah di bawah --features sal ATAU --features sal-postgres; 87 di build default (pasca-#1389 L2 RecoverPreviousSession untuk rehidrasi konteks lintas sesi + #1443 Expand untuk permukaan perluasan kueri ai-memory expand + #1598 Reembed untuk permukaan migrasi ruang vektor ai-memory reembed); SSOT disematkan oleh ai_memory::EXPECTED_CLI_SUBCOMMANDS_DEFAULT + EXPECTED_CLI_SUBCOMMANDS_SAL + uji paritas mekanis tests/cli_subcommand_count_invariant.rs) menyediakan akses universal -- AI, skrip, atau otomatisasi apa pun yang dapat melakukan panggilan HTTP atau menjalankan perintah shell dapat menggunakan ai-memory.
Instal dalam 60 Detik
Biner pra-bangun tidak memerlukan dependensi. Membangun dari sumber memerlukan Rust dan kompiler C.
Tercepat: Biner pra-bangun (tidak perlu Rust)
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.sh | sh
# Fedora/RHEL (COPR)
sudo dnf copr enable alpha-one-ai/ai-memory && sudo dnf install ai-memory
# Windows (PowerShell)
irm https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.ps1 | iex
Langkah 1: Instal Rust (lewati jika menggunakan biner pra-bangun)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Ikuti petunjuknya, lalu mulai ulang terminal Anda (atau jalankan source ~/.cargo/env).
Langkah 2: Dari sumber (memerlukan Rust)
Rilis terbaru dari Crates.io:
cargo install ai-memory
Terbaru dari repositori git:
cargo install --git https://github.com/alphaonedev/ai-memory-mcp.git
Ini mengompilasi biner dan menempatkannya di PATH Anda. Proses ini memakan waktu satu atau dua menit.
Dependensi build untuk build sumber:
- Ubuntu/Debian:
sudo apt-get install build-essential pkg-config- Fedora/RHEL:
sudo dnf install gcc pkg-config
Langkah 3: Hubungkan AI Anda
Konfigurasi bervariasi menurut platform. Temukan milik Anda di bawah:
Claude Code (Anthropic)
Claude Code mendukung tiga cakupan konfigurasi MCP:
| Cakupan | File | Berlaku untuk |
|---|---|---|
| Pengguna (global) | ~/.claude.json — tambahkan kunci mcpServers | Semua proyek di mesin Anda |
| Proyek (bersama) | .mcp.json di root proyek (di-check in ke git) | Semua orang di proyek |
| Lokal (pribadi) | ~/.claude.json — di bawah projects."/path".mcpServers | Satu proyek, hanya Anda |
Cakupan pengguna (disarankan — berfungsi di mana saja):
Tambahkan kunci mcpServers ke ~/.claude.json (macOS/Linux) atau %USERPROFILE%\.claude.json (Windows):
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
Catatan:
~/.claude.jsonkemungkinan sudah ada dengan pengaturan lain. Gabungkan kuncimcpServerske dalam file yang ada — jangan timpa.
Cakupan proyek (dibagikan dengan tim):
Buat .mcp.json di root proyek Anda:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
Tingkat smart / autonomous dengan LLM cloud — jalur yang direkomendasikan adalah bagian [llm] di ~/.config/ai-memory/config.toml (#1146). Satu file, setiap permukaan, tanpa pengeditan per-klien-AI:
# ~/.config/ai-memory/config.toml
schema_version = 2
[llm]
backend = "xai"
model = "grok-4.3"
base_url = "https://api.x.ai/v1"
api_key_env = "XAI_API_KEY" # process-env-var name (NOT the literal key)
Ekspor XAI_API_KEY di shell rc Anda (.zshrc / .bashrc); konfigurasi MCP tetap minimal:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "autonomous"]
}
}
}
Verifikasi: ai-memory boot --quiet --limit 1 seharusnya melaporkan llm=xai:grok-4.3. Referensi skema kanonis: docs/CONFIG_SCHEMA.md.
Jalur timpa — blok
env:. Menambahkan blokenv:ke konfigurasi MCP denganAI_MEMORY_LLM_BACKEND/_API_KEY/_MODELmasih berfungsi dan diutamakan daripadaconfig.toml— berguna untuk CI / penyesuaian per-sesi:"env": { "AI_MEMORY_LLM_BACKEND": "xai", "AI_MEMORY_LLM_API_KEY": "xai-...", "AI_MEMORY_LLM_MODEL": "grok-4.3" }Klien MCP memunculkan server sebagai subproses baru hanya dengan kunci
env:dari konfigurasi MCP — ekspor shell di.zshrc/.bashrctidak menjangkaunya. Jalur file konfigurasi[llm]di atas menghilangkan gangguan kecil ini (setiap permukaan membaca file yang sama). Kunci API inline diconfig.tomlditolak saat parsing — gunakanapi_key_envatauapi_key_file. Latar belakang: #1144 → #1146. Resep lengkap per-backend:docs/integrations/llm-backends.md.
Jalur Windows: Gunakan garis miring maju atau garis miring terbalik yang di-escape di
--db. Contoh:"--db", "C:/Users/YourName/.claude/ai-memory.db".
Flag tingkat: Flag
--tiermemilih tingkat fitur:keyword,semantic(default),smart, atauautonomous. Tingkat smart dan autonomous memerlukan backend LLM — pasca-#1067 (v0.7.0) yaitu salah satu dari: Ollama lokal, xAI Grok, OpenAI, Anthropic, Google Gemini, DeepSeek, Kimi (Moonshot), Qwen (Alibaba), Mistral, Groq, Together AI, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, atau server llama.cpp — dipilih melaluiAI_MEMORY_LLM_BACKEND. Flag--tierharus diberikan di args — pengaturan tingkatconfig.tomltidak digunakan saat server MCP diluncurkan oleh klien AI.
Penting: Server MCP tidak dikonfigurasi di
settings.jsonatausettings.local.json— file tersebut tidak mendukungmcpServers.
Buat Claude secara proaktif menggunakan ai-memory: Tambahkan file CLAUDE.md ke root proyek Anda dengan arahan ai-memory. Ini memastikan Claude mengingat konteks di awal setiap percakapan dan menyimpan temuan saat bekerja. Lihat panduan integrasi CLAUDE.md untuk template salin-tempel dan opsi penempatan.
OpenAI Codex CLI
Tambahkan ke ~/.codex/config.toml (global) atau .codex/config.toml (proyek). Windows: %USERPROFILE%\.codex\config.toml. Timpa dengan variabel env CODEX_HOME.
[mcp_servers.memory]
command = "ai-memory"
args = ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
enabled = true
Atau tambahkan melalui CLI: codex mcp add memory -- ai-memory --db ~/.local/share/ai-memory/memories.db mcp --tier semantic
Catatan: Codex menggunakan format TOML dengan kunci bergaris bawah
mcp_servers(bukan camelCase, bukan tanda hubung). Mendukungenv(pasangan kunci/nilai),env_vars(daftar untuk diteruskan),enabled_tools,disabled_tools,startup_timeout_sec,tool_timeout_sec. Gunakan/mcpdi TUI untuk melihat status server. Lihat dokumen Codex MCP.
Google Gemini CLI
Tambahkan ke ~/.gemini/settings.json (pengguna) atau .gemini/settings.json (proyek). Windows: %USERPROFILE%\.gemini\settings.json.
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"],
"timeout": 30000
}
}
}
Atau tambahkan melalui CLI: gemini mcp add memory ai-memory -- --db ~/.local/share/ai-memory/memories.db mcp --tier semantic
Catatan: Hindari garis bawah dalam nama server (gunakan tanda hubung). Nama alat diberi awalan otomatis sebagai
mcp_memory_<toolName>. Variabel env di bidangenvmendukung$VAR/${VAR}(semua platform) dan%VAR%(Windows). Gemini membersihkan pola sensitif dari env yang diwarisi kecuali dideklarasikan secara eksplisit. Tambahkan"trust": trueuntuk melewati prompt konfirmasi. Manajemen CLI:gemini mcp list/remove/enable/disable. Lihat dokumen Gemini CLI MCP.
Cursor IDE
Tambahkan ke ~/.cursor/mcp.json (global) atau .cursor/mcp.json (proyek). Windows: %USERPROFILE%\.cursor\mcp.json. Konfigurasi proyek menimpa global untuk server dengan nama yang sama.
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
Catatan: Mulai ulang Cursor setelah mengedit
mcp.json. Verifikasi status server di Settings > Tools & MCP (titik hijau = terhubung). Mendukungenv,envFile, dan interpolasi${env:VAR_NAME}(interpolasi variabel env bisa tidak dapat diandalkan untuk variabel profil shell — gunakanenvFilesebagai solusi). Batas ~40 alat di semua server MCP. Lihat dokumen Cursor MCP.
Windsurf (Codeium)
Tambahkan ke ~/.codeium/windsurf/mcp_config.json (hanya global — tidak ada cakupan tingkat proyek). Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json.
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
Catatan: Mendukung interpolasi
${env:VAR_NAME}dicommand,args,env,serverUrl,url, danheaders. Batas 100 alat di semua server MCP. Juga dapat ditambahkan melalui MCP Marketplace atau Settings > Cascade > MCP Servers. Lihat dokumen Windsurf MCP.
Continue.dev
Tambahkan ke ~/.continue/config.yaml (pengguna) atau direktori .continue/mcpServers/ di root proyek (file YAML/JSON per-server). Windows: %USERPROFILE%\.continue\config.yaml.
mcpServers:
- name: memory
command: ai-memory
args:
- "--db"
- "~/.local/share/ai-memory/memories.db"
- "mcp"
- "--tier"
- "semantic"
Catatan: Alat MCP hanya berfungsi dalam mode agen. Mendukung
${{ secrets.SECRET_NAME }}untuk interpolasi rahasia. Direktori.continue/mcpServers/tingkat proyek mendeteksi otomatis konfigurasi JSON dari alat lain (Claude Code, Cursor, dll.). Lihat dokumen Continue MCP.
Grok CLI (fork AlphaOne — integrasi mendalam dengan pengingatan otomatis)
Fork AlphaOne dari grok-cli memiliki dukungan ai-memory bawaan dengan koneksi MCP bercakupan sesi, pengingatan memori otomatis saat sesi dimulai, penyimpanan ringkasan pemadatan, dan prompt sistem yang sadar memori.
Tambahkan ke ~/.grok/user-settings.json:
{
"mcp": {
"servers": [
{
"id": "ai-memory",
"label": "AI Memory",
"enabled": true,
"transport": "stdio",
"command": "ai-memory",
"args": ["mcp", "--tier", "semantic"]
}
]
}
}
Fitur: Pengingatan otomatis saat sesi dimulai (menyuntikkan memori yang relevan ke dalam prompt sistem), ringkasan pemadatan disimpan sebagai memori tingkat menengah, alat MCP tersedia di semua mode (agent, plan, ask), koneksi bercakupan sesi (tidak ada cold start per-pesan). Menggunakan
--tier semanticsecara default (embedding lokal, tidak diperlukan backend LLM). Lihat dokumen grok-cli untuk pengaturan lengkap.
xAI Grok API (Level API, MCP jarak jauh)
Grok terhubung ke server MCP melalui HTTPS (hanya jarak jauh, tanpa stdio). Tidak ada file konfigurasi — server ditentukan per permintaan API.
ai-memory serve --host 127.0.0.1 --port 9077
# Expose via HTTPS reverse proxy (nginx, caddy, cloudflare tunnel, etc.)
Kemudian tambahkan server MCP ke panggilan Grok API Anda:
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.3",
"tools": [{
"type": "mcp",
"server_url": "https://your-server.example.com/mcp",
"server_label": "memory",
"server_description": "Persistent AI memory with recall and search",
"allowed_tools": ["memory_store", "memory_recall", "memory_search"]
}],
"input": "What do you remember about our project?"
}'
Persyaratan: Diperlukan HTTPS.
server_labeldiperlukan. Mendukung transport Streamable HTTP dan SSE. Opsional:allowed_tools,authorization,headers. Bekerja dengan xAI SDK, Responses API yang kompatibel dengan OpenAI, dan Voice Agent API. Lihat dokumen xAI Remote MCP.
META Llama (melalui Llama Stack)
Llama Stack mendaftarkan server MCP sebagai toolgroup. Tidak ada jalur file konfigurasi standar — spesifik untuk deployment.
ai-memory serve --host 127.0.0.1 --port 9077
Python SDK:
client.toolgroups.register(
provider_id="model-context-protocol",
toolgroup_id="mcp::memory",
mcp_endpoint={"uri": "http://localhost:9077/sse"}
)
Atau secara deklaratif di run.yaml:
tool_groups:
- toolgroup_id: mcp::memory
provider_id: model-context-protocol
mcp_endpoint:
uri: "http://localhost:9077/sse"
Catatan: Mendukung interpolasi
${env.VAR_NAME}di run.yaml. Transport sedang bermigrasi dari SSE ke Streamable HTTP. Lihat dokumen Llama Stack Tools.
OpenClaw
Tambahkan melalui CLI atau edit langsung konfigurasi OpenClaw. Konfigurasi menggunakan mcp.servers (bukan mcpServers).
openclaw mcp set memory '{"command":"ai-memory","args":["--db","~/.local/share/ai-memory/memories.db","mcp","--tier","semantic"]}'
Atau tambahkan ke file konfigurasi OpenClaw Anda:
{
"mcp": {
"servers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
}
Catatan: OpenClaw menggunakan kunci
mcp.servers(bukanmcpServers). Manajemen CLI:openclaw mcp list,openclaw mcp show,openclaw mcp set,openclaw mcp unset. Mendukung transport stdio, URL jarak jauh, dan HTTP Streamable. Lebih suka--token-filedaripada rahasia inline. Lihat dokumentasi OpenClaw MCP.
Klien MCP lainnya
ai-memory berbicara MCP melalui stdio (JSON-RPC 2.0). Arahkan klien Anda ke:
command: ai-memory
args: ["--db", "/path/to/ai-memory.db", "mcp"]
Untuk klien khusus HTTP, mulai REST API:
ai-memory serve
# 92 REST route registrations (78 unique URL paths) at http://127.0.0.1:9077/api/v1/
Langkah 4: Selesai. Uji.
Mulai ulang asisten AI Anda. Jika menggunakan MCP, sekarang ia memiliki permukaan default 7 alat yang diiklankan saat boot sesi (5 asli + memory_load_family + memory_smart_load; 93 lainnya dari 100 alat yang dapat dipanggil dimuat sesuai permintaan melalui --profile atau memory_capabilities --include-schema). Tanyakan: "Simpan memori bahwa bahasa favorit saya adalah Rust." Kemudian dalam percakapan baru, tanyakan: "Apa bahasa favorit saya?" Ia akan mengingatnya.
Dukungan platform seluler (v0.7.0 Posture-1a)
ai-memory portabel ke iOS dan Android melalui jalur kompilasi silang seluler Rust standar. v0.7.0 mengirimkan cakupan CI untuk kedua target pada tiga tingkat yang meningkat:
| Lapisan | Cakupan | Alur kerja CI |
|---|---|---|
| Lapisan 1 — Kompilasi silang | cargo check --target aarch64-apple-ios --no-default-features --features sqlite-bundled --lib dan kompilasi silang Android yang cocok berjalan pada setiap PR + push ke release/**. Menangkap ~80% risiko kerusakan seluler (setiap pembaruan crate yang menghilangkan portabilitas seluler muncul di sini). | .github/workflows/ci.yml — pekerjaan mobile-cross-compile |
| Lapisan 2 — Artefak rilis | Pemotongan tag rilis menghasilkan ai-memory-ios.xcframework.tar.gz (irisan perangkat iOS + simulator melalui xcodebuild -create-xcframework) dan ai-memory-android.tar.gz (bundel .so Android arm64 / armv7 / x86_64 / x86 dalam tata letak jniLibs/<abi>/). | .github/workflows/release.yml — pekerjaan mobile-ios + mobile-android |
| Lapisan 3 — Pengujian runtime | Subset ~50 pengujian terlingkup (sandboxing sistem file, FTS5 pada SQLite perangkat, recall CPU HNSW, jalur CPU embedder, TLS klien LLM) berjalan terhadap Simulator iOS pada setiap push release/** + workflow_dispatch manual; lengan emulator Android berjalan pada push release/** + workflow_dispatch saja. Alasan pemilihan: tests/mobile/README.md. | .github/workflows/mobile-runtime.yml |
Status pada v0.7.0: Lapisan 1 adalah gerbang pengiriman — kompilasi silang seluler harus HIJAU sebelum pemotongan tag. Lapisan 2 (artefak rilis) mengirimkan pipeline BUILD + tata letak artefak; permukaan FFI yang dapat dipanggil C sendiri akan hadir dalam tindak lanjut v0.7.x. Lapisan 3 menjalankan subset pengujian terlingkup pada setiap push release/**.
Mengonsumsi artefak rilis:
- iOS — unduh
ai-memory-ios.xcframework.tar.gzdari halaman rilis v0.7.x, buka, dan seretAiMemory.xcframeworkke proyek Xcode Anda di bawah "Frameworks, Libraries, and Embedded Content." - Android — unduh
ai-memory-android.tar.gzdari halaman rilis v0.7.x, buka, dan salin pohonjniLibs/kesrc/main/jniLibs/modul aplikasi Anda.
Artefak seluler juga merupakan bagian dari setiap rilis v0.7.x yang diterbitkan; formula Homebrew + paket APT/RPM (yang mengirimkan binari desktop) menyertakan catatan yang menautkan ke unduhan seluler. Lihat isu #1068 untuk riwayat implementasi CI.
Mulai Cepat
Dari nol ke memori yang berfungsi dalam waktu kurang dari dua menit.
1. Instal
curl -fsSL https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.sh | sh
2. Konfigurasi MCP (contoh untuk Claude Code -- platform lain bekerja dengan cara yang sama)
Gabungkan ke ~/.claude.json:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
3. Simpan memori pertama Anda
ai-memory store -T "Project uses PostgreSQL 15" -c "Main DB is PG 15 with pgvector." --tier long
4. Ingat kembali
ai-memory recall "database"
5. Periksa statistik
ai-memory stats
6. Gunakan dengan AI Anda. Mulai ulang klien AI Anda. Sekarang ia memiliki 7 alat memori default yang diiklankan saat boot (101 entri yang diiklankan dapat dijangkau melalui ekspansi runtime atau --profile full) melalui MCP -- ia dapat menyimpan dan mengingat memori secara native selama percakapan.
SDK
Selain permukaan MCP / HTTP / CLI, ai-memory mengirimkan SDK bahasa pihak pertama untuk klien HTTP dan utilitas pembantu (mis. requireProfile untuk asersi profil runtime pada daemon v0.6.4+).
TypeScript / JavaScript — @alphaone/ai-memory di npm
npm install @alphaone/ai-memory
Python — ai-memory-mcp di PyPI (nama impor tetap ai_memory)
pip install ai-memory-mcp
from ai_memory import AiMemoryClient, require_profile
with AiMemoryClient(base_url="http://127.0.0.1:9077", api_key="...") as client:
require_profile(client, "graph") # raises ProfileNotLoaded on miss
Kedua SDK diversi dengan server (0.9.0 cocok dengan ai-memory 0.9.0). Daemon v0.6.4+ menegakkan kontrak profil; daemon pra-v0.6.4 kembali ke peringatan-dan-lanjutkan yang permisif sehingga peningkatan SDK tidak merusak server lama. Sumber berada di sdk/typescript/ dan sdk/python/.
Apa Fungsinya?
Asisten AI melupakan segalanya di antara percakapan. ai-memory memperbaikinya.
Ini berjalan sebagai server alat MCP (Model Context Protocol) -- proses latar belakang yang digunakan AI Anda secara native. Ketika AI Anda mempelajari sesuatu yang penting, ia menyimpannya. Ketika membutuhkan konteks, ia mengingat memori yang relevan yang diperingkat oleh algoritma penilaian 6 faktor. Memori hidup dalam tiga tingkatan:
- Jangka pendek (default 6 jam, dapat dikonfigurasi) -- konteks sementara seperti status debugging saat ini
- Jangka menengah (default 7 hari, dapat dikonfigurasi) -- pengetahuan kerja seperti tujuan sprint dan keputusan terbaru
- Jangka panjang (permanen) -- arsitektur, preferensi pengguna, pelajaran berharga
Memori yang terus diakses secara otomatis naik dari jangka menengah ke jangka panjang. Setiap recall memperpanjang TTL. Prioritas meningkat seiring penggunaan. Sistem ini mengkurasi sendiri.
Selain MCP, ai-memory juga mengekspos REST API HTTP penuh (92 pendaftaran rute / 78 jalur URL unik pada port 9077) dan CLI lengkap (89 subperintah di bawah --features sal ATAU --features sal-postgres; 87 dalam build default (pasca-#1389 L2 RecoverPreviousSession untuk rehidrasi konteks lintas sesi + #1443 Expand untuk permukaan ekspansi kueri ai-memory expand + #1598 Reembed untuk permukaan migrasi ruang vektor ai-memory reembed); SSOT disematkan oleh ai_memory::EXPECTED_CLI_SUBCOMMANDS_{DEFAULT,SAL} + uji paritas mekanis tests/cli_subcommand_count_invariant.rs) untuk interaksi langsung, skrip, dan integrasi dengan platform atau alat AI apa pun.
Fitur
Inti
- Server alat MCP -- 101 alat melalui stdio JSON-RPC (profil penuh), kompatibel dengan klien MCP apa pun
- Memori tiga tingkatan -- pendek (TTL default 6j), menengah (TTL default 7h), panjang (permanen) -- TTL dapat dikonfigurasi
- Pencarian teks penuh -- SQLite FTS5 dengan pengambilan terperingkat
- Recall hibrida -- kata kunci FTS5 + kesamaan kosinus dengan pencampuran adaptif: bobot semantik bervariasi 0,50 (konten pendek) → 0,15 (konten panjang) karena embedding kehilangan informasi pada teks panjang
- Penilaian recall 6 faktor -- relevansi FTS + prioritas + frekuensi akses + keyakinan + dorongan tingkatan + peluruhan kebaruan
- Promosi otomatis -- memori yang diakses 5+ kali naik dari menengah ke panjang
- Perpanjangan TTL -- setiap recall memperpanjang kedaluwarsa (pendek +1j, menengah +1h)
- Penguatan prioritas -- +1 setiap 10 akses (maks 10)
- Deteksi kontradiksi -- memperingatkan saat menyimpan memori yang bertentangan dengan yang sudah ada
- Deduplikasi -- upsert pada judul+namespace, tingkatan tidak pernah turun
- Penilaian keyakinan -- kepastian 0,0-1,0 difaktorkan ke dalam peringkat
Organisasi
- Namespace -- isolasi memori per proyek (terdeteksi otomatis dari git remote)
- Penautan memori -- relasi bertipe: related_to, supersedes, contradicts, derived_from, reflects_on (Tugas pembelajaran rekursif 1/8), derives_from (atomisasi WT-1-A), decomposes_into, depends_on, advances -- sembilan varian pada v0.8.0
- Konsolidasi -- gabungkan beberapa memori menjadi satu ringkasan jangka panjang
- Konsolidasi otomatis -- kelompokkan berdasarkan namespace+tag, gabung otomatis kelompok di atas ambang batas
- Resolusi kontradiksi -- tandai satu memori sebagai menggantikan yang lain, turunkan yang kalah
- Lupakan berdasarkan pola -- hapus massal berdasarkan namespace + pola FTS + tingkatan
- Pelacakan sumber -- melacak asal: user, claude, hook, api, cli, import, consolidation, system
- Identitas agen (NHI) -- setiap memori membawa
metadata.agent_id(identitas yang diklaim) dengan kekekalan pertahanan berlapis di seluruh pembaruan/dedup/impor/sinkronisasi/konsolidasi; filterlist/searchberdasarkan agen - Penandaan -- tag yang dipisahkan koma dengan dukungan filter
Antarmuka
- 92 rute HTTP (78 jalur unik) -- REST API penuh pada 127.0.0.1:9077 (bekerja dengan AI atau alat apa pun)
- 89 subperintah CLI di bawah
--features salATAU--features sal-postgres(87 dalam build default) -- CLI lengkap dengan kemampuan identik - 101 alat MCP pada profil penuh (7 default; diverifikasi terhadap
Profile::full().expected_tool_count()) -- integrasi native untuk AI yang kompatibel dengan MCP - Shell REPL interaktif -- recall, search, list, get, stats, namespaces, delete dengan output berwarna
- Output JSON -- flag
--jsonpada semua perintah CLI - Koordinasi terdistribusi (v0.8.0 Pilar-1 + Pilar-2) -- DAG aksi (
memory_action_*), sewa pemegang tunggal (memory_lease_*), sinyal yang ditandatangani Ed25519 (memory_signal_*), pos pemeriksaan yang dibuktikan (memory_checkpoint_*), rutin terparameterisasi (memory_routine_*), dan siklus hidup kognisi bertipe Tujuan/Rencana/Langkah. Lihatdocs/coordination.md.
Operasi
- Sinkronisasi multi-node -- tarik, dorong, atau gabung dua arah antara file basis data
- Impor/Ekspor -- perjalanan pulang pergi JSON penuh yang mempertahankan tautan memori
- Pengumpulan sampah -- kedaluwarsa latar belakang otomatis setiap 30 menit
- Shutdown anggun -- SIGTERM/SIGINT membuat pos pemeriksaan WAL untuk keluar bersih
- Pemeriksaan kesehatan mendalam -- memverifikasi aksesibilitas DB dan integritas FTS5
- Penyelesaian shell -- bash, zsh, fish
- Halaman manual --
ai-memory manmenghasilkan roff ke stdout - Filter waktu --
--since/--untilpada list dan search - Usia yang dapat dibaca manusia -- "2j lalu", "3h lalu" dalam output CLI
- Output CLI berwarna -- label tingkatan ANSI (merah/kuning/hijau), bilah prioritas, judul tebal, namespace cyan
Kualitas
- ~10.000 pengujian di seluruh permukaan penuh -- kira-kira 6.712 atribut
#[test]/#[tokio::test]di bawahsrc/(5.759#[test]+ 953#[tokio::test]) ditambah kira-kira 3.362 di bawahtests/(2.138#[test]+ 1.224#[tokio::test]), tumbuh dari baseline ~2.400 pengujian era v0.6.4 (1.960 lib + 211 integrasi + 16 mcp_integration + 4 webhook_http_parity + 16 recipe_contract + ~150 di seluruh target biner lainnya). Cakupan baris dipertahankan di atas batas proyek ≥92%; modul baru bersih v0.6.4 pada 100% (sizes.rs), 99,50% (profile.rs), 97,58% (cli/audit.rs), 97,05% (cli/doctor.rs), 92,56% (handlers.rs), 92,26% (cli/install.rs). Baseline v0.6.3.x (1.809 / 93,08% dan 1.886 / 93,84%) tetap dibekukan di halaman bukti; metrik v0.6.4 di catatan rilis dan di kampanye test-hub. Penerimaan penemuan NHI empiris dibuktikan secara terpisah oleh Gerbang Penemuan (matriks T1–T4 vs. xAI Grok 4.3 langsung, 6/6 LULUS, GERBANG HIJAU). - Tolok ukur LongMemEval -- 97,0% R@5 kata kunci FTS5 murni (independen LLM, 2,2 detik, 232 q/s, nol biaya API) pada dataset LongMemEval-S ICLR 2025; ekspansi kueri LLM dengan model Gemma 4 generasi saat ini mengukur 97,2% R@5 / 99,6% R@10 / 99,8% R@20 (tempat API cloud; angka historis
gemma3:4b97,8% dipensiunkan sebagai judul utama per #1975). Lihat detail tolok ukur. - Prompt MCP -- prompt
recall-firstdanmemory-workflowmengajarkan klien AI untuk menggunakan memori secara proaktif - Default TOON -- respons recall/list/search menggunakan TOON compact secara default (79% lebih kecil dari JSON)
- Tolok ukur Criterion -- sisipkan, recall, cari pada skala 1K
- CI/CD GitHub Actions -- fmt, clippy, test, build di Ubuntu + macOS, rilis pada tag
Batas Cakupan (gerbang CI keras)
Pekerjaan Code Coverage adalah pemeriksaan status wajib. CI menegaskan kembali dua invarian pada setiap PR: batas absolut >= 90% baris (pengaman regresi katastropik, ditetapkan pada pengukuran saat ini yang dibulatkan ke bawah ke 5% terdekat), dan pengunci terhadap nilai yang disematkan di .coverage-baseline dengan jendela kelonggaran 0,5% (penegakan harian). PR yang meningkatkan cakupan harus menaikkan berkas dasar dalam komit yang sama sehingga PR mendatang mendapat manfaat dari batas baru; PR yang mengalami regresi lebih dari 0,5% diblokir dari penggabungan. Pengukuran saat ini: 93,13% baris.
Gerbang Anggaran Token (gerbang CI keras, v0.7 C5)
Alur kerja token-budget adalah pemeriksaan status wajib. Ini menegakkan tiga invarian terukur cl100k_base pada setiap PR:
- Batas per-alat 1500 token -- tidak ada skema terserialisasi alat MCP tunggal (nama + deskripsi + inputSchema) yang boleh melebihi 1500 token cl100k_base.
- Rentang jujur profil penuh (5K-8K) -- pengaman v0.6.4, dipertahankan untuk mendeteksi penyusutan patologis (kehilangan alat secara tidak sengaja).
- Batas keras profil penuh (v0.7 C5, dinaikkan pasca-D1.6/D1.7) -- muatan
tools/listyang dipangkas di bawah--profile fulltidak boleh melebihi 11.000 token cl100k_base (TRIMMED_FULL_PROFILE_CEILING_TOKENSditests/token_budget_guard.rs; target C5 awal adalah 3500 terhadap skema yang dikodekan tangan pra-D1.6 — ekspansi D1.6/D1.7 yang diturunkan dari schemars menaikkan batas yang disematkan). C2 (memisahkan bidang docs), C3 (menciutkan boilerplate skema berulang), dan C4 (menyembunyikan parameter opsional yang jarang digunakan) mendorong pemadatan awal; gerbang ini memaksa PR mendatang yang memperluas permukaan untuk mendapatkan kembali anggaran di tempat lain. Periksaai-memory doctor --tokens --raw-tableuntuk melihat biaya per-alat. Lihat.github/workflows/token-budget.ymldandocs/v0.7/schema-compaction-audit.md.
Dependensi ML dan LLM (tingkat semantik+)
- candle-core, candle-nn, candle-transformers -- Kerangka kerja ML Hugging Face Candle untuk inferensi Rust asli
- hf-hub -- unduh model dari Hugging Face Hub
- tokenizers -- tokenizer Hugging Face untuk pra-pemrosesan teks
- instant-distance -- pencarian tetangga terdekat aproksimasi
- reqwest -- klien HTTP untuk komunikasi backend LLM (tingkat pintar/otonom — penyedia apa pun per #1067: Ollama, xAI, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, server llama.cpp)
Arsitektur
Tolok Ukur
Dievaluasi pada dataset ICLR 2025 LongMemEval-S (500 pertanyaan, 6 kategori). Tingkat kata kunci FTS5 murni mencapai 97,0% R@5 dalam 2,2 detik — independen LLM, sepenuhnya lokal, nol panggilan API cloud, nol biaya. Ekspansi kueri LLM (tingkat pintar) mengukur 97,2% R@5 dengan model Gemma 4 generasi saat ini (tempat API cloud).
Catatan model tolok ukur (diperbarui 2026-07-10, keputusan #1975): angka 97,8% R@5 tingkat pintar historis diukur dengan Gemma 3 4B (masih merupakan model ekspansi default terkompilasi) dan dihentikan sebagai judul utama. Jangkar generasi saat ini yang dipublikasikan adalah hasil OpenRouter Gemma 4 yang terukur: 97,2% R@5 / 99,6% R@10 / 99,8% R@20 (2026-05-31, 500 pertanyaan, 0 kegagalan ekspansi). Tidak ada angka Gemma-4 Ollama lokal — host tolok ukur referensi hanya CPU, di mana proses lokal protokol penuh yang valid tidak memungkinkan (lihat #1983); proses ulang GPU lokal tetap terbuka pasca-v1.0. Tingkat kata kunci 97,0% R@5 independen LLM dan tidak terpengaruh.
| Tingkat | R@5 | Kecepatan | Dependensi |
|---|---|---|---|
| kata kunci | 97,0% | 232 q/s | Tidak ada |
| semantik | 97,4% | 45 q/s | Model embedding (~100MB) |
| pintar | 97,2% (Gemma 4, tempat API; historis gemma3:4b 97,8%) | 12 q/s | Backend LLM apa pun (mis. Ollama lokal + Gemma; atau xAI Grok 4.3, OpenAI gpt-5, Anthropic Claude Opus 4.7, Gemini, DeepSeek, dll. pasca-#1067) |
Anggaran Kinerja (v0.6.4)
Setiap rilis dikirimkan dengan anggaran p95/p99 yang dipublikasikan untuk operasi jalur panas dan gerbang CI yang menggagalkan PR mana pun yang p95 terukurnya melebihi anggaran lebih dari 10%. Target dikalibrasi untuk perangkat keras referensi M4; tabel lengkap dan metodologi di PERFORMANCE.md.
| Operasi | Target p95 | Target p99 |
|---|---|---|
memory_session_start (hook Claude Code) | < 100 md | < 200 md |
memory_store (tanpa embedding) | < 20 md | < 50 md |
memory_search (FTS5) | < 100 md | < 250 md |
memory_recall (panas, kedalaman=1) | < 50 md | < 150 md |
memory_kg_query (kedalaman ≤ 3) | < 100 md | < 250 md |
memory_kg_query (kedalaman ≤ 5) | < 250 md | < 500 md |
memory_kg_timeline | < 100 md | < 250 md |
Jalankan beban kerja yang sama secara lokal:
ai-memory bench # human-readable table
ai-memory bench --json # machine-parseable
Substrat tidak berubah di v0.6.3.x → v0.6.4 (rilis quiet-tools mengirimkan permukaan alat default yang lebih kecil, bukan jalur panas yang berbeda). Target p99 di sini tetap informasional sambil menunggu jendela pengujian berkelanjutan khusus berikutnya; bukti pengujian berkelanjutan terbaru ada di pusat pengujian.
Metode Integrasi
MCP (Utama -- untuk platform AI yang kompatibel dengan MCP)
MCP adalah integrasi yang direkomendasikan. AI Anda mendapatkan 7 alat memori asli yang diiklankan secara default (5 asli + memory_load_family + memory_smart_load; ditambah bootstrap memory_capabilities yang selalu aktif) tanpa kode penghubung. 93 alat lain yang dapat dipanggil (101 entri yang diiklankan — diverifikasi terhadap Profile::full().expected_tool_count() dan disematkan oleh const_count_matches_full_profile di src/mcp/registry.rs) tetap dapat dijangkau melalui --profile graph|admin|power|full atau ekspansi runtime melalui memory_capabilities --include-schema family=<name>. Konfigurasikan server MCP di konfigurasi platform AI Anda:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp"]
}
}
}
API HTTP (Universal -- untuk AI atau alat apa pun)
Mulai server HTTP untuk akses API REST. AI, skrip, atau otomatisasi apa pun yang dapat melakukan panggilan HTTP dapat menggunakan ini:
ai-memory serve
# 92 REST route registrations (78 unique URL paths) at http://127.0.0.1:9077/api/v1/
CLI (Universal -- untuk skrip dan penggunaan langsung)
CLI bekerja secara mandiri atau sebagai blok bangunan untuk integrasi AI yang menjalankan perintah shell:
ai-memory store --tier long --title "Architecture decision" --content "We use PostgreSQL"
ai-memory recall "database choice"
ai-memory search "PostgreSQL"
Tingkat Fitur
ai-memory mendukung 4 tingkat fitur, dipilih saat startup dengan ai-memory mcp --tier <tier>. Tingkat yang lebih tinggi menambahkan kemampuan ML dengan biaya disk dan RAM:
| Tingkat | Metode Pengingatan | Kemampuan Ekstra | Perkiraan Overhead |
|---|---|---|---|
| kata kunci | Hanya FTS5 | Permukaan 101-entri dasar — tingkat membatasi model/fitur, BUKAN permukaan alat yang diiklankan | 0 MB |
| semantik | FTS5 + kesamaan kosinus (hibrida) | Embedding MiniLM-L6-v2 (384-dim), indeks HNSW, tingkat semantik (subset dari permukaan 101-entri) | ~256 MB |
| pintar | Hibrida + ekspansi kueri LLM | + nomic-embed-text (768-dim) + memory_expand_query yang didukung LLM, memory_auto_tag, memory_detect_contradiction, permukaan 101-entri penuh. Penyedia LLM dipilih operator melalui AI_MEMORY_LLM_BACKEND (#1067) — Ollama lokal, xAI, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, atau llama.cpp. | ~1 GB (Ollama lokal) / ~0 GB (API jarak jauh) |
| otonom | Hibrida + ekspansi LLM + perangkingan ulang cross-encoder | + cross-encoder neural (ms-marco-MiniLM), refleksi memori, permukaan 101-entri penuh. Kebebasan penyedia LLM yang sama seperti tingkat pintar. | ~4 GB (Ollama lokal) / ~3 GB (LLM jarak jauh, hanya cross-encoder lokal) |
Matriks Kemampuan
Setiap kemampuan dipetakan ke tingkat minimumnya. Setiap tingkat mencakup semua kemampuan dari tingkat di bawahnya.
| Kemampuan | kata kunci | semantik | pintar | otonom |
|---|---|---|---|---|
| Pencarian & Pengingatan | ||||
| Pencarian kata kunci FTS5 | Ya | Ya | Ya | Ya |
| Embedding semantik (kesamaan kosinus) | -- | Ya | Ya | Ya |
| Pengingatan hibrida (FTS5 + kosinus, bobot semantik adaptif 0,50→0,15 berdasarkan panjang konten) | -- | Ya | Ya | Ya |
| Indeks tetangga terdekat HNSW | -- | Ya | Ya | Ya |
Ekspansi kueri LLM (memory_expand_query) | -- | -- | Ya | Ya |
| Perangkingan ulang cross-encoder neural | -- | -- | -- | Ya |
| Manajemen Memori | ||||
| Simpan, perbarui, hapus, promosikan, tautkan | Ya | Ya | Ya | Ya |
| Konsolidasi manual | Ya | Ya | Ya | Ya |
| Konsolidasi otomatis (ringkasan LLM) | -- | -- | Ya | Ya |
Penandaan otomatis (memory_auto_tag) | -- | -- | Ya | Ya |
Deteksi kontradiksi (memory_detect_contradiction) | -- | -- | Ya | Ya |
| Refleksi memori otonom | -- | -- | -- | Ya |
| Model | ||||
| Model embedding | -- | MiniLM-L6-v2 (384d) | nomic-embed-text (768d) | nomic-embed-text (768d) |
| Penggantian backend embedding (#1598) | -- | apa pun: Ollama lokal, alias vendor API, atau yang kompatibel dengan OpenAI yang dihosting sendiri ([embeddings].backend / AI_MEMORY_EMBED_*) | sama | sama |
| LLM | -- | -- | dipilih operator (#1067) — default gemma3:4b lokal; titik akhir jarak jauh tidak membawa jejak lokal | dipilih operator (#1067) — default gemma3:4b lokal; titik akhir jarak jauh tidak membawa jejak lokal |
| Sumber Daya | ||||
| RAM | 0 MB | ~256 MB | ~1 GB | ~4 GB |
| Dependensi eksternal | Tidak ada | Tidak ada | Backend LLM (Ollama / xAI / OpenAI / Anthropic / Gemini / DeepSeek / Kimi / Qwen / Mistral / Groq / Together / Cerebras / OpenRouter / Fireworks / LMStudio / vLLM / llama.cpp — #1067) | Backend LLM (pilihan yang sama seperti pintar) |
Alat MCP yang diekspos (di --profile full) 1 | 101 | 101 | 101 | 101 |
Tingkat semantik (default) menggabungkan kerangka kerja Candle ML dan mengunduh model all-MiniLM-L6-v2 pada proses pertama (~90 MB). Tingkat pintar dan otonom memerlukan backend LLM — pasca-#1067 (v0.7.0) itu bisa lokal (Ollama, LMStudio, vLLM, server llama.cpp) atau titik akhir jarak jauh yang kompatibel dengan OpenAI (xAI, OpenAI, Anthropic melalui shim OpenAI, Google Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks). Pemilihan melalui var env AI_MEMORY_LLM_BACKEND; kunci API per vendor melalui XAI_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY / GEMINI_API_KEY / DEEPSEEK_API_KEY / MOONSHOT_API_KEY / DASHSCOPE_API_KEY / dll. atau AI_MEMORY_LLM_API_KEY kanonis.
Tingkat membatasi fitur, bukan model — dan pasca-#1067 (v0.7.0), tingkat membatasi fitur, bukan vendor juga. Bendera --tier mengontrol alat mana yang diekspos. Backend LLM + model dapat dikonfigurasi secara independen melalui var env AI_MEMORY_LLM_BACKEND + AI_MEMORY_LLM_MODEL (atau melalui bagian [llm] kanonis di ~/.config/ai-memory/config.toml — lihat docs/CONFIG_SCHEMA.md untuk skema enterprise v0.7.x dan alat migrasi). Misalnya, jalankan tingkat otonom (permukaan 101-entri penuh + perangking ulang) terhadap xAI Grok 4 melalui alias yang kompatibel dengan OpenAI:
# Quick path: env vars
export AI_MEMORY_LLM_BACKEND=xai
export AI_MEMORY_LLM_MODEL=grok-4.3
export XAI_API_KEY=xai-… # or AI_MEMORY_LLM_API_KEY
ai-memory mcp --tier autonomous
# Enterprise path: ~/.config/ai-memory/config.toml (v0.7.x schema v2, #1146)
schema_version = 2
tier = "autonomous"
[llm]
backend = "xai"
model = "grok-4.3"
base_url = "https://api.x.ai/v1"
api_key_env = "XAI_API_KEY" # mutually exclusive with api_key_file;
# inline `api_key = "..."` is REJECTED.
# Legacy v0.6.x shape — still works, deprecation WARN at load; run
# `ai-memory config migrate` to upgrade in place.
tier = "autonomous"
llm_model = "gemma3:4b" # default Ollama model at v0.7.0
Bendera --tier harus diteruskan dalam argumen MCP -- pengaturan tingkat config.toml tidak digunakan saat server diluncurkan oleh klien AI.
# Semantic is the default tier
ai-memory mcp
# Keyword -- FTS5 only, no models
ai-memory mcp --tier keyword
# Semantic -- hybrid recall with embeddings (explicit)
ai-memory mcp --tier semantic
# Smart -- adds LLM-powered query expansion, auto-tagging, contradiction detection
ai-memory mcp --tier smart
# Autonomous -- adds cross-encoder reranking
ai-memory mcp --tier autonomous
Alat memory_capabilities melaporkan tingkat aktif, model yang dimuat, dan kemampuan yang tersedia saat runtime.
Alat MCP
101 alat ini (profil penuh; jumlah kanonis melalui Profile::full().expected_tool_count() di src/profile.rs) tersedia untuk AI apa pun yang kompatibel dengan MCP saat dikonfigurasi sebagai server MCP (halaman bukti beku v0.6.4 mencantumkan dasar 63 alat; tabel di bawah mendokumentasikan subset inti yang paling sering digunakan klien sehari-hari):
| Alat | Deskripsi |
|---|---|
memory_store | Simpan memori baru (deduplikasi berdasarkan judul+namespace, laporkan kontradiksi) |
memory_recall | Ingat kembali memori yang relevan dengan konteks (pencarian fuzzy OR, diperingkat berdasarkan 6 faktor) |
memory_search | Cari memori berdasarkan kecocokan kata kunci tepat (semantik AND) |
memory_list | Daftar memori dengan filter opsional (namespace, tier, tag, rentang tanggal) |
memory_get | Dapatkan memori spesifik berdasarkan ID beserta tautannya |
memory_update | Perbarui memori yang ada berdasarkan ID (pembaruan parsial) |
memory_delete | Hapus memori berdasarkan ID |
memory_promote | Promosikan memori ke jangka panjang (permanen, hapus masa berlaku) |
memory_forget | Hapus massal berdasarkan pola, namespace, atau tier |
memory_link | Buat tautan bertipe antara dua memori |
memory_get_links | Dapatkan semua tautan untuk sebuah memori |
memory_consolidate | Gabungkan beberapa memori menjadi satu ringkasan jangka panjang |
memory_stats | Dapatkan statistik penyimpanan memori |
memory_capabilities | Laporkan tier fitur aktif, model yang dimuat, dan kapabilitas yang tersedia |
memory_expand_query | Gunakan LLM untuk memperluas kueri pencarian menjadi istilah terkait (tier smart+) |
memory_auto_tag | Gunakan LLM untuk menghasilkan tag secara otomatis untuk sebuah memori (tier smart+) |
memory_detect_contradiction | Gunakan LLM untuk memeriksa apakah dua memori saling bertentangan (tier smart+) |
memory_archive_list | Daftar memori yang diarsipkan (dengan filter namespace/tier/tag opsional) |
memory_archive_restore | Pulihkan memori yang diarsipkan kembali ke penyimpanan aktif |
memory_archive_purge | Hapus permanen memori yang diarsipkan sesuai filter |
memory_archive_stats | Dapatkan statistik arsip (jumlah berdasarkan tier, namespace, usia) |
HTTP API
92 pendaftaran rute / 78 jalur URL unik di 127.0.0.1:9077. Mulai dengan ai-memory serve. Tabel di bawah ini menunjukkan endpoint REST yang paling umum digunakan; lihat docs/API_REFERENCE.md untuk permukaan penuh (tata kelola, federasi, langganan, grafik pengetahuan, kuota, persetujuan SSE).
Keamanan: Server HTTP terikat ke 127.0.0.1 dan dikirimkan tanpa autentikasi yang dikonfigurasi secara default, ditambah CORS permisif. Atur
api_keydiconfig.tomluntuk mewajibkan headerx-api-keypada setiap permintaan (bentuk parameter kueri?api_key=lawas sudah tidak digunakan lagi pada v0.7.0 — #1574), dan aturAI_MEMORY_REQUIRE_API_KEY=1untuk menolak keras startup tanpa kunci (#1458). Jangan ekspos ke jaringan tanpa autentikasi (dan lebih disukai TLS melalui--tls-cert/--tls-keyatau reverse proxy).
| Metode | Endpoint | Deskripsi |
|---|---|---|
| GET | /api/v1/health | Pemeriksaan kesehatan (verifikasi integritas DB + FTS5) |
| GET | /api/v1/memories | Daftar memori (mendukung namespace, tier, tag, since, until, limit) |
| POST | /api/v1/memories | Buat memori |
| POST | /api/v1/memories/bulk | Buat massal memori (dengan batasan) |
| GET | /api/v1/memories/{id} | Dapatkan memori berdasarkan ID |
| PUT | /api/v1/memories/{id} | Perbarui memori berdasarkan ID |
| DELETE | /api/v1/memories/{id} | Hapus memori berdasarkan ID |
| POST | /api/v1/memories/{id}/promote | Promosikan memori ke jangka panjang |
| GET | /api/v1/search | Pencarian kata kunci AND |
| GET | /api/v1/recall | Ingat kembali berdasarkan konteks (GET dengan parameter kueri) |
| POST | /api/v1/recall | Ingat kembali berdasarkan konteks (POST dengan body JSON) |
| POST | /api/v1/forget | Hapus massal berdasarkan pola/namespace/tier |
| POST | /api/v1/consolidate | Konsolidasi memori menjadi satu |
| POST | /api/v1/links | Buat tautan antar memori |
| GET | /api/v1/links/{id} | Dapatkan tautan untuk sebuah memori |
| GET | /api/v1/namespaces | Daftar semua namespace |
| GET | /api/v1/stats | Statistik penyimpanan memori |
| POST | /api/v1/gc | Picu pengumpulan sampah |
| GET | /api/v1/export | Ekspor semua memori + tautan sebagai JSON |
| POST | /api/v1/import | Impor memori + tautan dari JSON |
| GET | /api/v1/archive | Daftar memori yang diarsipkan (dengan filter opsional) |
| POST | /api/v1/archive/{id}/restore | Pulihkan memori yang diarsipkan ke penyimpanan aktif |
| DELETE | /api/v1/archive | Bersihkan memori yang diarsipkan sesuai filter |
| GET | /api/v1/archive/stats | Statistik arsip (jumlah berdasarkan tier, namespace, usia) |
Perintah CLI
89 subperintah tingkat atas di bawah --features sal ATAU --features sal-postgres (87 di build default; selisih 2 varian adalah Migrate + SchemaInit, keduanya dibatasi #[cfg(feature = "sal")] per src/daemon_runtime.rs::Command::{Migrate,SchemaInit}; sebelumnya 40 di v0.6.4). Jalankan ai-memory <command> --help untuk detail perintah apa pun, atau ai-memory --help untuk daftar lengkap.
| Perintah | Deskripsi |
|---|---|
mcp | Jalankan sebagai server alat MCP melalui stdio (jalur integrasi utama) |
serve | Mulai daemon HTTP di port 9077 |
store | Simpan memori baru (deduplikasi berdasarkan judul+namespace) |
update | Perbarui memori yang ada berdasarkan ID |
recall | Pencarian fuzzy OR dengan hasil diperingkat + sentuh-otomatis (mendukung --tier untuk ingatan hibrida). Pipeline membatasi hasil hingga 50 per permintaan. |
search | Pencarian AND untuk kecocokan kata kunci tepat. |
get | Ambil satu memori berdasarkan ID (termasuk tautan) |
list | Jelajahi memori dengan filter (namespace, tier, tag, rentang tanggal). Dibatasi hingga 1000 item per permintaan (LIST_MAX_LIMIT; daftar/massal HTTP juga menghormati AI_MEMORY_MAX_PAGE_SIZE). |
delete | Hapus memori berdasarkan ID |
promote | Promosikan memori ke jangka panjang (hapus masa berlaku) |
forget | Hapus massal berdasarkan pola + namespace + tier |
link | Tautkan dua memori (related_to, supersedes, contradicts, derived_from) |
consolidate | Gabungkan beberapa memori menjadi satu ringkasan jangka panjang |
resolve | Selesaikan kontradiksi: tandai pemenang, turunkan yang kalah |
shell | REPL interaktif dengan output berwarna |
sync | Sinkronkan memori antara dua file database (pull/push/merge) |
auto-consolidate | Kelompokkan memori berdasarkan namespace+tag, gabungkan grup di atas ambang batas |
gc | Jalankan pengumpulan sampah pada memori yang kedaluwarsa |
stats | Ikhtisar status memori (jumlah, tier, namespace, tautan, ukuran DB) |
namespaces | Daftar semua namespace dengan jumlah memori |
export | Ekspor semua memori dan tautan sebagai JSON |
import | Impor memori dan tautan dari JSON (stdin) |
completions | Hasilkan pelengkapan shell (bash, zsh, fish) |
man | Hasilkan halaman man roff ke stdout |
mine | Impor memori dari percakapan historis (ekspor Claude, ChatGPT, Slack) |
archive | Kelola arsip memori (daftar, pulihkan, bersihkan, statistik) |
Biner tingkat atas ai-memory juga menerima flag global:
| Flag | Deskripsi |
|---|---|
--db <path> | Jalur database (default: ai-memory.db, atau $AI_MEMORY_DB) |
--json | Output JSON pada semua perintah (output yang dapat diurai mesin) |
Subperintah store menerima flag tambahan:
| Flag | Deskripsi |
|---|---|
--source / -S | Siapa yang membuat memori ini (user, nhi, hook, api, cli, import, consolidation, system). Default: cli. "claude" diterima untuk kompatibilitas mundur per src/validate.rs::VALID_SOURCES |
--expires-at | Stempel waktu kedaluwarsa RFC3339 |
--ttl-secs | TTL dalam detik (alternatif untuk --expires-at) |
Subperintah mcp menerima flag tambahan:
| Flag | Deskripsi |
|---|---|
--tier <keyword|semantic|smart|autonomous> | Tier fitur (default: semantic). Lihat Tier Fitur. |
Skor Ingatan Kembali
Setiap kueri ingatan kembali memeringkat memori berdasarkan 6 faktor:
score = (fts_relevance * -1)
+ (priority * 0.5)
+ (MIN(access_count, 50) * 0.1)
+ (confidence * 2.0)
+ tier_boost
+ recency_decay
| Faktor | Bobot | Catatan |
|---|---|---|
| Relevansi FTS | -1.0x | Peringkat SQLite FTS5 (negatif = kecocokan lebih baik) |
| Prioritas | 0.5x | Skala 1-10 yang ditetapkan pengguna |
| Jumlah akses | 0.1x | Seberapa sering diingat kembali (dibatasi 50 untuk penilaian) |
| Keyakinan | 2.0x | Skor kepastian 0.0-1.0 |
| Dorongan tier | +3.0 / +1.0 / +0.0 | long / mid / short |
| Peluruhan kebaruan | 1/(1 + days*0.1) | Memori terbaru mendapat peringkat lebih tinggi |
Tier Memori
| Tier | TTL | Kasus Penggunaan | Contoh |
|---|---|---|---|
short | 6 jam (dapat dikonfigurasi) | Konteks sementara | Status debugging saat ini, variabel sementara, jejak kesalahan |
mid | 7 hari (dapat dikonfigurasi) | Pengetahuan kerja | Tujuan sprint, keputusan terbaru, tujuan cabang saat ini |
long | Permanen | Pengetahuan yang diperoleh dengan susah payah | Arsitektur, preferensi pengguna, koreksi, konvensi |
Perilaku Otomatis
- Perpanjangan TTL saat diingat kembali: memori short mendapat +1 jam, memori mid mendapat +1 hari
- Promosi otomatis: memori tier mid yang diakses 5+ kali dipromosikan ke long (masa berlaku dihapus)
- Penguatan prioritas: setiap 10 akses, prioritas meningkat 1 (dibatasi hingga 10)
- Deteksi kontradiksi: memperingatkan ketika memori baru bertentangan dengan yang sudah ada di namespace yang sama
- Deduplikasi: upsert pada judul+namespace; tier tidak pernah diturunkan saat pembaruan
TTL yang Dapat Dikonfigurasi
TTL default (6 jam untuk short, 7 hari untuk mid) dapat ditimpa di ~/.config/ai-memory/config.toml di bawah bagian [ttl]:
[ttl]
short_ttl_secs = 21600 # short-tier TTL in seconds (default: 21600 = 6 hours)
mid_ttl_secs = 604800 # mid-tier TTL in seconds (default: 604800 = 7 days)
long_ttl_secs = 0 # long-tier TTL in seconds (default: 0 = never expires)
short_extend_secs = 3600 # TTL extension on recall for short-tier memories in seconds (default: 3600 = +1h)
mid_extend_secs = 86400 # TTL extension on recall for mid-tier memories in seconds (default: 86400 = +1d)
Kelima bidang bersifat opsional -- hilangkan salah satu untuk mempertahankan default. Atur nilai apa pun ke 0 untuk menonaktifkan kedaluwarsa untuk tier tersebut. Nilai dibatasi hingga maksimum 10 tahun; nilai perpanjangan negatif dibatasi hingga 0.
Catatan: Konfigurasi dimuat sekali saat proses startup. Perubahan pada
config.tomlmemerlukan restart proses ai-memory (server MCP, daemon HTTP, atau CLI) agar berlaku.
Arsip
Ketika pengumpulan sampah menghapus memori yang kedaluwarsa, memori tersebut dapat diarsipkan alih-alih dihapus permanen. Memori yang diarsipkan dipindahkan ke penyimpanan terpisah dan dapat dijelajahi, dipulihkan, atau dibersihkan nanti.
Konfigurasi
Aktifkan pengarsipan di ~/.config/ai-memory/config.toml:
archive_on_gc = true # archive expired memories instead of deleting them (default: true)
Perintah CLI
Subperintah archive mengelola arsip:
ai-memory archive list # list archived memories
ai-memory archive list --namespace my-project # filter by namespace
ai-memory archive restore <id> # restore an archived memory to active store
ai-memory archive purge --older-than-days 90 # permanently delete archives older than 90 days
ai-memory archive stats # show archive statistics
Catatan: Memori yang dipulihkan akan dihapus
expires_at-nya (menjadi permanen hingga penetapan TTL berikutnya).
Alat MCP
Empat alat arsip tersedia untuk klien MCP:
| Alat | Deskripsi |
|---|---|
memory_archive_list | Daftar memori yang diarsipkan (dengan filter namespace/tier/tag opsional) |
memory_archive_restore | Pulihkan memori yang diarsipkan kembali ke penyimpanan aktif |
memory_archive_purge | Hapus permanen memori yang diarsipkan sesuai filter |
memory_archive_stats | Dapatkan statistik arsip (jumlah berdasarkan tier, namespace, usia) |
Endpoint HTTP
| Metode | Endpoint | Deskripsi |
|---|---|---|
| GET | /api/v1/archive | Daftar memori yang diarsipkan (dengan filter opsional) |
| POST | /api/v1/archive/{id}/restore | Pulihkan memori yang diarsipkan ke penyimpanan aktif |
| DELETE | /api/v1/archive | Bersihkan memori yang diarsipkan sesuai filter |
| GET | /api/v1/archive/stats | Statistik arsip (jumlah berdasarkan tier, namespace, usia) |
Keamanan
ai-memory mencakup pengerasan di semua jalur input:
- Keamanan transaksi -- semua operasi basis data multi-langkah menggunakan transaksi; tidak ada penulisan sebagian saat terjadi kegagalan
- Pencegahan injeksi FTS -- masukan pengguna dibersihkan sebelum mencapai kueri FTS5; karakter khusus di-escape
- Pembersihan kesalahan -- jalur basis data internal dan detail sistem dihapus dari respons kesalahan; klien melihat tipe kesalahan terstruktur (NOT_FOUND, VALIDATION_FAILED, DATABASE_ERROR, CONFLICT)
- Batas ukuran body -- body permintaan HTTP dibatasi hingga 50 MB melalui DefaultBodyLimit Axum
- Batas operasi massal -- endpoint buat massal memberlakukan ukuran batch maksimum untuk mencegah kehabisan sumber daya
- CORS -- lapisan CORS permisif diaktifkan untuk alur kerja pengembangan localhost
- Validasi masukan -- setiap jalur tulis memvalidasi panjang judul, panjang konten, format namespace, nilai sumber, rentang prioritas (1-10), rentang keyakinan (0.0-1.0), format tag, nilai tier, tipe relasi, dan format ID
- Validasi tautan saat sinkronisasi -- semua tautan divalidasi (kedua ID, tipe relasi, tanpa tautan mandiri) sebelum impor selama operasi sinkronisasi
- Warna aman thread -- deteksi warna terminal menggunakan
AtomicBooluntuk akses konkuren yang aman - HTTP hanya lokal -- server HTTP terikat ke 127.0.0.1 secara default; tidak terekspos ke jaringan
- Mode WAL -- Write-Ahead Logging SQLite untuk pembacaan konkuren yang aman selama penulisan
Dokumentasi
| Panduan | Audiens |
|---|---|
| Changelog v0.9.0 | Rilis saat ini (secure-default hardening) — atestasi agen store-path diperlukan secara default (#1751), gerbang penegakan hook MCP+HTTP ganda (#1885/#1924), skema v78 |
| Catatan rilis v0.8.0 | Rilis sebelumnya (distributed-coordination) — substrat koordinasi, kognisi bertipe, pengerasan federasi, penegakan tata kelola, skema v58→v70 |
| Referensi alat koordinasi | Primitif aksi / sewa / sinyal / pos pemeriksaan / rutin v0.8.0 (memory_action_* / _lease_* / _signal_* / _checkpoint_* / _routine_*) |
| Panduan Migrasi v0.7 | Meningkatkan dari v0.6.x (mencakup attested-cortex, hooks, transcripts, AGE, izin, perbaikan pewarisan G1) |
| Apa yang baru di v0.7 | Panduan visual substrat attested-cortex |
RFC attested-cortex | Alasan desain untuk empat keputusan arsitektur v0.7 |
| Matriks kompatibilitas v0.7 | Matriks default-vs-opt-in per fitur |
| Panduan Instalasi | Menjalankannya (termasuk pengaturan MCP untuk berbagai platform AI) |
| Panduan Pengguna | Pengguna asisten AI yang menginginkan memori persisten |
| Panduan Pengembang | Membangun atau berkontribusi pada ai-memory |
| Panduan Admin | Menyebarkan, memantau, dan memecahkan masalah |
| Standar Rekayasa | Standar kode, pengujian, keamanan, dan rilis (otoritatif) |
| Alur Kerja Pengembang AI | Alur kerja langkah demi langkah untuk agen pengkodean AI yang berkontribusi pada repo ini |
| Standar Tata Kelola Pengembang AI | Kebijakan untuk partisipasi AI: otoritas, atribusi, tinjauan, audit |
| Halaman GitHub | Gambaran visual dengan diagram animasi |
Lisensi
Hak Cipta 2026 AlphaOne LLC.
Dilisensikan di bawah Lisensi Apache, Versi 2.0 ("Lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan Lisensi. Anda dapat memperoleh salinan Lisensi di
Kecuali diwajibkan oleh hukum yang berlaku atau disetujui secara tertulis, perangkat lunak yang didistribusikan di bawah Lisensi didistribusikan pada dasar "SEBAGAIMANA ADANYA", TANPA JAMINAN ATAU KETENTUAN APA PUN, baik tersurat maupun tersirat. Lihat Lisensi untuk bahasa spesifik yang mengatur izin dan batasan di bawah Lisensi.
Footnotes
-
MCP permukaan alat ortogonal terhadap tingkat pengingatan — setiap tingkat melihat 101 alat yang sama di
--profile full(default--profile coremengiklankan 8 saat boot terlepas dari tingkatnya — 7 alat keluarga Inti ditambah bootstrapmemory_capabilitiesyang selalu aktif; 93 lainnya dimuat sesuai permintaan). Yang dibatasi tingkat adalah model (penyemat, cross-encoder, LLM) dan perilaku fitur (kesamaan kosinus, ekspansi LLM, perangkingan ulang), bukan jumlah alat yang diiklankan. Disematkan olehProfile::full().expected_tool_count()+const_count_matches_full_profiledisrc/mcp/registry.rs. ↩