ai-memory

resmi

Memori 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_recall atau pencarian teks lengkap memory_search.
  • Mendaftar, mengambil, dan mengelola memori yang tersimpan — jelajahi semua entri yang disimpan dengan memory_list, ambil entri tertentu berdasarkan ID dengan memory_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_*, dan memory_signal_*.
  • Melacak garis keturunan dan asal-usul memori — telusuri DAG derivasi memori apa pun melalui memory_lineage untuk melihat fakta mana yang berasal dari sumber mana.

Dokumentasi

ai-memory logo

ai-memory™

memori AI universal

CI Bench Session-boot lifetime Rust License SQLite Tests Test Hub Discovery Gate v0.6.4 Cert MCP NSA CSI Evidence v0.6.4 Evidence v0.7.0 Crates.io Version npm PyPI

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-memorySatu klien AI di laptopdocs/install-quickstart.md — Instalasi super-sederhana 5 menit + backend LLM terhubung dalam satu blok
Insinyur / arsitekProduksi simpul tunggal, atau beberapa agen pada satu simpuldocs/INSTALL.mddocs/production-deployment.md
Insinyur / arsitekMulti-server / multi-rak / multi-DC / kawanan / sarang / federasidocs/enterprise-deployment.md — 8 topologi, singleton → multi-wilayah
Insinyur / arsitekPostgreSQL + penyimpanan Apache AGE (multi-penulis, 10M+ memori, berat-KG)docs/postgres-age-guide.md — panduan operator postgres kelas satu
Pengambil keputusan yang mengevaluasi adopsidocs/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 satuai-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_ATTESTATION bersifat tri-state dengan default terkompilasi per-permukaan: tidak disetel → diperlukan pada tulis-langsung HTTP (POST /api/v1/memories + /bulk, menolak 403 ATTESTATION_FAILED), permisif pada permukaan MCP memory_store dan CLI store operator-sebagai-aktor (tulisan yang tidak ditandatangani mendarat sebagai attest_level="claimed"); =1 memaksa ketat di mana-mana, =0 memaksa permisif di mana-mana. Tanda tangan yang disajikan-tapi-palsu ditolak di setiap permukaan terlepas dari pengaturan. Tandatangani tulisan (ai-memory store --sign dengan pasangan kunci yang terikat melalui ai-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 panggilan memory_store tunggal — 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 cakupan team/unit/org, menutup celah isolasi penyewa (CWE-863).
  • Pembatasan jalur skill_register (#1923). Impor folder_path skill 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_URL baru (hanya pemilik /proc/environ) dan AI_MEMORY_STORE_URL_FILE (file 0600) memungkinkan ai-memory serve menerima URL postgres/store — termasuk kata sandi yang disematkan — tanpa pernah meletakkannya di argv --store-url, di mana ia terekspos melalui /proc/<pid>/cmdline dan ps auxww yang dapat dibaca dunia ke UID lokal mana pun. Urutan resolusi: file → env → --store-url.

Fitur aditif

  • B7-SKILL — memori skill kelas satu (#1865). parameters_schema saat 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 HTTP GET /api/v1/memories/{id}/lineage baru.
  • 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 KEY pada action_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_pubkey pengirim dan di-thread melalui correlation_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 verify memeriksa 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); run mewujudkan serangkaian aksi + edge konkret dari template {{param}} ke dalam catatan routine_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 hash signed_events V-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 = true pada standar namespace.
  • Form 2 — atomisasi-sebelum-embed sinkron (isu #755). Alat memory_atomise baru + hook pra-penyimpanan auto_atomise_mode = Synchronous|Deferred|Off. Kurator mengurai penulisan panjang menjadi 2–10 proposisi atomik sebelum recall melihatnya. Lihat docs/atomisation.md.
  • Form 3 — orkestrator serapan multi-langkah (isu #756). memory_ingest_multistep mengalirkan helper Jaccard+FTS deterministik melalui tahapan LLM yang stabil cache prompt. Lihat docs/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_atomise yang ada. Lihat docs/provenance.md.
  • Form 5 — kepercayaan-otomatis + kalibrasi bayangan + peluruhan kesegaran (isu #758). Alat MCP memory_calibrate_confidence + sapuan baseline per sumber. Var env AI_MEMORY_AUTO_CONFIDENCE, AI_MEMORY_CONFIDENCE_SHADOW, AI_MEMORY_CONFIDENCE_SHADOW_SAMPLE_RATE, AI_MEMORY_CONFIDENCE_DECAY. Lihat docs/confidence-calibration.md.
  • Form 6 — kosakata Batman MemoryKind (isu #759). Enum 10 varian (default Observation + Reflection / Persona / Concept / Entity / Claim / Relation / Event / Conversation / Decision). Hook pra-penyimpanan auto_classify_kind opsional (off / regex_only / regex_then_llm). Lihat docs/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 MCP memory_check_agent_action + memory_rule_list, hook pra-tulis substrat storage::insert. Lihat docs/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.md dan atlas GitHub Pages.

Kemenangan cepat (Tencent QW-1/2/3)

  • QW-1 — ekspor rantai refleksi berbasis file. Alat MCP memory_export_reflection + kebijakan namespace auto_export_reflections_to_filesystem~/.ai-memory/reflections/<ns>/<id>.md.
  • QW-2 — persona-sebagai-artefak. Alat memory_persona + memory_persona_generate, baris MemoryKind::Persona, kebijakan namespace auto_persona_trigger_every_n_memories. Lihat docs/persona.md.
  • QW-3 — primitif pemindahan konteks. memory_offload + memory_deref memindahkan keluaran alat besar keluar dari jendela konteks agen ke penyimpanan blob yang dapat dialamati. Lihat docs/context-offload.md.

Epik korteks yang dibuktikan (Jalur A–K)

  • Tautan teratestasi (Ed25519). Kolom signature yang kosong yang dikirimkan di v0.6.3 kini diisi dengan atestasi Ed25519 per-agen yang nyata, dan memory_verify(link_id) mengembalikan {signature_verified, attest_level, signed_by, signed_at} sesuai permintaan. Hasilkan pasangan kunci dengan ai-memory identity generate; ikut serta melalui attest_level = "self_signed". Penandatanganan dibatasi pada daemon agent_id yang telah diselesaikan yang memiliki pasangan kunci *.priv pada disk di bawah direktori kunci yang dikonfigurasi — ketika load_daemon_signing_key mengembalikan None (src/main.rs:116-118), baris tetap ditulis tetapi sig kosong dan daemon memancarkan baris "continuing unsigned" saat boot. Rantai hash lintas-baris pada signed_events tetap tahan terhadap gangguan. Lihat RFC attested-cortex.
  • Penutupan peristiwa bertanda tangan V-4 (rantai hash lintas-baris) (isu #698). Setiap baris signed_events membawa prev_hash + sequence; prev_hash baris pertama adalah nol, baris berikutnya merantai SHA-256 dari payload CBOR kanonis sebelumnya. ai-memory verify-signed-events-chain menelusuri rantai dari ujung ke ujung. Lihat docs/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_expand G10 + pre_reflect/post_reflect pembelajaran-rekursif Tugas 6/8 + pre_compaction/on_compaction_rollback L1-7). Hook mengembalikan Allow / Modify / Deny / AskUser. Default mati; ikut serta melalui ~/.config/ai-memory/hooks.toml. Lihat docs/hook-pipeline.md.
  • Transkrip sidechain + pemutaran ulang. Sidechain BLOB zstd-3 menyimpan jejak percakapan/penalaran mentah; memory_replay(memory_id) menelusuri memory_transcript_links untuk merekonstruksi rantai. Ikut serta per namespace melalui [transcripts.namespaces."team/*"]. Lihat docs/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. Lihat docs/federation.md.
  • Alat kuota K8 + persetujuan SSE K10. memory_quota_status + /api/v1/quota/status (K8). /api/v1/approvals/stream peristiwa yang dikirim server dengan nonce HMAC, pengikatan method+pending_id, pemotongan jumlah peristiwa tertinggal (K10). Lihat docs/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 CLI ai-memory schema-init baru. 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_capabilities v3 menambahkan summary, to_describe_to_user, callable_now per-alat, agent_permitted_families, schema_version="3"; alat memory_load_family(family) dan memory_smart_load(intent) yang selalu aktif bergabung dengan profil core default. Frasa yang disematkan berada di docs/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.mode default ke enforce (sebelumnya advisory di v0.6.4). Migrasikan dengan ai-memory governance migrate-to-permissions (pratinjau dry-run; tambahkan --config-out ~/.config/ai-memory/config.toml untuk menerapkan di tempat). Lihat docs/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:

  1. Server MCP stdio -- 101 entri yang diiklankan melalui JSON-RPC pada profil penuh (v0.9.0; 100 alat memori yang dapat dipanggil + bootstrap memory_capabilities yang selalu aktif; diverifikasi terhadap Profile::full().expected_tool_count()). Default --profile core mengiklankan 7 (5 asli + memory_load_family + memory_smart_load) ditambah bootstrap memory_capabilities yang selalu aktif. ai-memory mcp / ai-memory mcp --profile full
  2. 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
  3. 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
  4. 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.

PlatformMetode IntegrasiFormat KonfigurasiStatus
Claude Code (Anthropic)MCP stdioJSON (~/.claude.json atau .mcp.json)Didukung penuh
Codex CLI (OpenAI)MCP stdioTOML (~/.codex/config.toml)Didukung penuh
Gemini CLI (Google)MCP stdioJSON (~/.gemini/settings.json)Didukung penuh
Grok CLI (xAI)MCP stdioJSON (~/.grok/user-settings.json)Integrasi mendalam
Grok API (xAI)MCP remote HTTPSLevel APIDidukung penuh
Cursor IDEMCP stdioJSON (~/.cursor/mcp.json)Didukung penuh
Windsurf (Codeium)MCP stdioJSON (~/.codeium/windsurf/mcp_config.json)Didukung penuh
Continue.devMCP stdioYAML (~/.continue/config.yaml)Didukung penuh
Llama Stack (META)MCP remote HTTPYAML / Python SDKDidukung penuh
OpenClawMCP stdioJSON (mcp.servers dalam konfigurasi)Didukung penuh
Klien MCP apa punMCP stdio atau HTTPBervariasiUniversal

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:

CakupanFileBerlaku untuk
Pengguna (global)~/.claude.json — tambahkan kunci mcpServersSemua 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".mcpServersSatu 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.json kemungkinan sudah ada dengan pengaturan lain. Gabungkan kunci mcpServers ke 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 blok env: ke konfigurasi MCP dengan AI_MEMORY_LLM_BACKEND / _API_KEY / _MODEL masih berfungsi dan diutamakan daripada config.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 / .bashrc tidak menjangkaunya. Jalur file konfigurasi [llm] di atas menghilangkan gangguan kecil ini (setiap permukaan membaca file yang sama). Kunci API inline di config.toml ditolak saat parsing — gunakan api_key_env atau api_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 --tier memilih tingkat fitur: keyword, semantic (default), smart, atau autonomous. 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 melalui AI_MEMORY_LLM_BACKEND. Flag --tier harus diberikan di args — pengaturan tingkat config.toml tidak digunakan saat server MCP diluncurkan oleh klien AI.

Penting: Server MCP tidak dikonfigurasi di settings.json atau settings.local.json — file tersebut tidak mendukung mcpServers.

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). Mendukung env (pasangan kunci/nilai), env_vars (daftar untuk diteruskan), enabled_tools, disabled_tools, startup_timeout_sec, tool_timeout_sec. Gunakan /mcp di 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 bidang env mendukung $VAR / ${VAR} (semua platform) dan %VAR% (Windows). Gemini membersihkan pola sensitif dari env yang diwarisi kecuali dideklarasikan secara eksplisit. Tambahkan "trust": true untuk 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). Mendukung env, envFile, dan interpolasi ${env:VAR_NAME} (interpolasi variabel env bisa tidak dapat diandalkan untuk variabel profil shell — gunakan envFile sebagai 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} di command, args, env, serverUrl, url, dan headers. 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 semantic secara 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_label diperlukan. 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 (bukan mcpServers). 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-file daripada 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:

LapisanCakupanAlur kerja CI
Lapisan 1 — Kompilasi silangcargo 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 rilisPemotongan 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 runtimeSubset ~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.gz dari halaman rilis v0.7.x, buka, dan seret AiMemory.xcframework ke proyek Xcode Anda di bawah "Frameworks, Libraries, and Embedded Content."
  • Android — unduh ai-memory-android.tar.gz dari halaman rilis v0.7.x, buka, dan salin pohon jniLibs/ ke src/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

Pythonai-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; filter list/search berdasarkan 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 sal ATAU --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 --json pada 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. Lihat docs/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 man menghasilkan roff ke stdout
  • Filter waktu -- --since/--until pada 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 bawah src/ (5.759 #[test] + 953 #[tokio::test]) ditambah kira-kira 3.362 di bawah tests/ (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:4b 97,8% dipensiunkan sebagai judul utama per #1975). Lihat detail tolok ukur.
  • Prompt MCP -- prompt recall-first dan memory-workflow mengajarkan 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/list yang dipangkas di bawah --profile full tidak boleh melebihi 11.000 token cl100k_base (TRIMMED_FULL_PROFILE_CEILING_TOKENS di tests/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. Periksa ai-memory doctor --tokens --raw-table untuk melihat biaya per-alat. Lihat .github/workflows/token-budget.yml dan docs/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

ai-memory architecture diagram


Tolok Ukur

LongMemEval benchmark results

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.

TingkatR@5KecepatanDependensi
kata kunci97,0%232 q/sTidak ada
semantik97,4%45 q/sModel embedding (~100MB)
pintar97,2% (Gemma 4, tempat API; historis gemma3:4b 97,8%)12 q/sBackend 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.

OperasiTarget p95Target 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:

TingkatMetode PengingatanKemampuan EkstraPerkiraan Overhead
kata kunciHanya FTS5Permukaan 101-entri dasar — tingkat membatasi model/fitur, BUKAN permukaan alat yang diiklankan0 MB
semantikFTS5 + kesamaan kosinus (hibrida)Embedding MiniLM-L6-v2 (384-dim), indeks HNSW, tingkat semantik (subset dari permukaan 101-entri)~256 MB
pintarHibrida + 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)
otonomHibrida + 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.

Kemampuankata kuncisemantikpintarotonom
Pencarian & Pengingatan
Pencarian kata kunci FTS5YaYaYaYa
Embedding semantik (kesamaan kosinus)--YaYaYa
Pengingatan hibrida (FTS5 + kosinus, bobot semantik adaptif 0,50→0,15 berdasarkan panjang konten)--YaYaYa
Indeks tetangga terdekat HNSW--YaYaYa
Ekspansi kueri LLM (memory_expand_query)----YaYa
Perangkingan ulang cross-encoder neural------Ya
Manajemen Memori
Simpan, perbarui, hapus, promosikan, tautkanYaYaYaYa
Konsolidasi manualYaYaYaYa
Konsolidasi otomatis (ringkasan LLM)----YaYa
Penandaan otomatis (memory_auto_tag)----YaYa
Deteksi kontradiksi (memory_detect_contradiction)----YaYa
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_*)samasama
LLM----dipilih operator (#1067) — default gemma3:4b lokal; titik akhir jarak jauh tidak membawa jejak lokaldipilih operator (#1067) — default gemma3:4b lokal; titik akhir jarak jauh tidak membawa jejak lokal
Sumber Daya
RAM0 MB~256 MB~1 GB~4 GB
Dependensi eksternalTidak adaTidak adaBackend 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) 1101101101101

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):

AlatDeskripsi
memory_storeSimpan memori baru (deduplikasi berdasarkan judul+namespace, laporkan kontradiksi)
memory_recallIngat kembali memori yang relevan dengan konteks (pencarian fuzzy OR, diperingkat berdasarkan 6 faktor)
memory_searchCari memori berdasarkan kecocokan kata kunci tepat (semantik AND)
memory_listDaftar memori dengan filter opsional (namespace, tier, tag, rentang tanggal)
memory_getDapatkan memori spesifik berdasarkan ID beserta tautannya
memory_updatePerbarui memori yang ada berdasarkan ID (pembaruan parsial)
memory_deleteHapus memori berdasarkan ID
memory_promotePromosikan memori ke jangka panjang (permanen, hapus masa berlaku)
memory_forgetHapus massal berdasarkan pola, namespace, atau tier
memory_linkBuat tautan bertipe antara dua memori
memory_get_linksDapatkan semua tautan untuk sebuah memori
memory_consolidateGabungkan beberapa memori menjadi satu ringkasan jangka panjang
memory_statsDapatkan statistik penyimpanan memori
memory_capabilitiesLaporkan tier fitur aktif, model yang dimuat, dan kapabilitas yang tersedia
memory_expand_queryGunakan LLM untuk memperluas kueri pencarian menjadi istilah terkait (tier smart+)
memory_auto_tagGunakan LLM untuk menghasilkan tag secara otomatis untuk sebuah memori (tier smart+)
memory_detect_contradictionGunakan LLM untuk memeriksa apakah dua memori saling bertentangan (tier smart+)
memory_archive_listDaftar memori yang diarsipkan (dengan filter namespace/tier/tag opsional)
memory_archive_restorePulihkan memori yang diarsipkan kembali ke penyimpanan aktif
memory_archive_purgeHapus permanen memori yang diarsipkan sesuai filter
memory_archive_statsDapatkan 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_key di config.toml untuk mewajibkan header x-api-key pada setiap permintaan (bentuk parameter kueri ?api_key= lawas sudah tidak digunakan lagi pada v0.7.0 — #1574), dan atur AI_MEMORY_REQUIRE_API_KEY=1 untuk menolak keras startup tanpa kunci (#1458). Jangan ekspos ke jaringan tanpa autentikasi (dan lebih disukai TLS melalui --tls-cert/--tls-key atau reverse proxy).

MetodeEndpointDeskripsi
GET/api/v1/healthPemeriksaan kesehatan (verifikasi integritas DB + FTS5)
GET/api/v1/memoriesDaftar memori (mendukung namespace, tier, tag, since, until, limit)
POST/api/v1/memoriesBuat memori
POST/api/v1/memories/bulkBuat 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}/promotePromosikan memori ke jangka panjang
GET/api/v1/searchPencarian kata kunci AND
GET/api/v1/recallIngat kembali berdasarkan konteks (GET dengan parameter kueri)
POST/api/v1/recallIngat kembali berdasarkan konteks (POST dengan body JSON)
POST/api/v1/forgetHapus massal berdasarkan pola/namespace/tier
POST/api/v1/consolidateKonsolidasi memori menjadi satu
POST/api/v1/linksBuat tautan antar memori
GET/api/v1/links/{id}Dapatkan tautan untuk sebuah memori
GET/api/v1/namespacesDaftar semua namespace
GET/api/v1/statsStatistik penyimpanan memori
POST/api/v1/gcPicu pengumpulan sampah
GET/api/v1/exportEkspor semua memori + tautan sebagai JSON
POST/api/v1/importImpor memori + tautan dari JSON
GET/api/v1/archiveDaftar memori yang diarsipkan (dengan filter opsional)
POST/api/v1/archive/{id}/restorePulihkan memori yang diarsipkan ke penyimpanan aktif
DELETE/api/v1/archiveBersihkan memori yang diarsipkan sesuai filter
GET/api/v1/archive/statsStatistik 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.

PerintahDeskripsi
mcpJalankan sebagai server alat MCP melalui stdio (jalur integrasi utama)
serveMulai daemon HTTP di port 9077
storeSimpan memori baru (deduplikasi berdasarkan judul+namespace)
updatePerbarui memori yang ada berdasarkan ID
recallPencarian fuzzy OR dengan hasil diperingkat + sentuh-otomatis (mendukung --tier untuk ingatan hibrida). Pipeline membatasi hasil hingga 50 per permintaan.
searchPencarian AND untuk kecocokan kata kunci tepat.
getAmbil satu memori berdasarkan ID (termasuk tautan)
listJelajahi 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).
deleteHapus memori berdasarkan ID
promotePromosikan memori ke jangka panjang (hapus masa berlaku)
forgetHapus massal berdasarkan pola + namespace + tier
linkTautkan dua memori (related_to, supersedes, contradicts, derived_from)
consolidateGabungkan beberapa memori menjadi satu ringkasan jangka panjang
resolveSelesaikan kontradiksi: tandai pemenang, turunkan yang kalah
shellREPL interaktif dengan output berwarna
syncSinkronkan memori antara dua file database (pull/push/merge)
auto-consolidateKelompokkan memori berdasarkan namespace+tag, gabungkan grup di atas ambang batas
gcJalankan pengumpulan sampah pada memori yang kedaluwarsa
statsIkhtisar status memori (jumlah, tier, namespace, tautan, ukuran DB)
namespacesDaftar semua namespace dengan jumlah memori
exportEkspor semua memori dan tautan sebagai JSON
importImpor memori dan tautan dari JSON (stdin)
completionsHasilkan pelengkapan shell (bash, zsh, fish)
manHasilkan halaman man roff ke stdout
mineImpor memori dari percakapan historis (ekspor Claude, ChatGPT, Slack)
archiveKelola arsip memori (daftar, pulihkan, bersihkan, statistik)

Biner tingkat atas ai-memory juga menerima flag global:

FlagDeskripsi
--db <path>Jalur database (default: ai-memory.db, atau $AI_MEMORY_DB)
--jsonOutput JSON pada semua perintah (output yang dapat diurai mesin)

Subperintah store menerima flag tambahan:

FlagDeskripsi
--source / -SSiapa 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-atStempel waktu kedaluwarsa RFC3339
--ttl-secsTTL dalam detik (alternatif untuk --expires-at)

Subperintah mcp menerima flag tambahan:

FlagDeskripsi
--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
FaktorBobotCatatan
Relevansi FTS-1.0xPeringkat SQLite FTS5 (negatif = kecocokan lebih baik)
Prioritas0.5xSkala 1-10 yang ditetapkan pengguna
Jumlah akses0.1xSeberapa sering diingat kembali (dibatasi 50 untuk penilaian)
Keyakinan2.0xSkor kepastian 0.0-1.0
Dorongan tier+3.0 / +1.0 / +0.0long / mid / short
Peluruhan kebaruan1/(1 + days*0.1)Memori terbaru mendapat peringkat lebih tinggi

Tier Memori

TierTTLKasus PenggunaanContoh
short6 jam (dapat dikonfigurasi)Konteks sementaraStatus debugging saat ini, variabel sementara, jejak kesalahan
mid7 hari (dapat dikonfigurasi)Pengetahuan kerjaTujuan sprint, keputusan terbaru, tujuan cabang saat ini
longPermanenPengetahuan yang diperoleh dengan susah payahArsitektur, 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.toml memerlukan 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:

AlatDeskripsi
memory_archive_listDaftar memori yang diarsipkan (dengan filter namespace/tier/tag opsional)
memory_archive_restorePulihkan memori yang diarsipkan kembali ke penyimpanan aktif
memory_archive_purgeHapus permanen memori yang diarsipkan sesuai filter
memory_archive_statsDapatkan statistik arsip (jumlah berdasarkan tier, namespace, usia)

Endpoint HTTP

MetodeEndpointDeskripsi
GET/api/v1/archiveDaftar memori yang diarsipkan (dengan filter opsional)
POST/api/v1/archive/{id}/restorePulihkan memori yang diarsipkan ke penyimpanan aktif
DELETE/api/v1/archiveBersihkan memori yang diarsipkan sesuai filter
GET/api/v1/archive/statsStatistik 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 AtomicBool untuk 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

PanduanAudiens
Changelog v0.9.0Rilis 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.0Rilis sebelumnya (distributed-coordination) — substrat koordinasi, kognisi bertipe, pengerasan federasi, penegakan tata kelola, skema v58→v70
Referensi alat koordinasiPrimitif aksi / sewa / sinyal / pos pemeriksaan / rutin v0.8.0 (memory_action_* / _lease_* / _signal_* / _checkpoint_* / _routine_*)
Panduan Migrasi v0.7Meningkatkan dari v0.6.x (mencakup attested-cortex, hooks, transcripts, AGE, izin, perbaikan pewarisan G1)
Apa yang baru di v0.7Panduan visual substrat attested-cortex
RFC attested-cortexAlasan desain untuk empat keputusan arsitektur v0.7
Matriks kompatibilitas v0.7Matriks default-vs-opt-in per fitur
Panduan InstalasiMenjalankannya (termasuk pengaturan MCP untuk berbagai platform AI)
Panduan PenggunaPengguna asisten AI yang menginginkan memori persisten
Panduan PengembangMembangun atau berkontribusi pada ai-memory
Panduan AdminMenyebarkan, memantau, dan memecahkan masalah
Standar RekayasaStandar kode, pengujian, keamanan, dan rilis (otoritatif)
Alur Kerja Pengembang AIAlur kerja langkah demi langkah untuk agen pengkodean AI yang berkontribusi pada repo ini
Standar Tata Kelola Pengembang AIKebijakan untuk partisipasi AI: otoritas, atribusi, tinjauan, audit
Halaman GitHubGambaran 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

http://www.apache.org/licenses/LICENSE-2.0

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

  1. MCP permukaan alat ortogonal terhadap tingkat pengingatan — setiap tingkat melihat 101 alat yang sama di --profile full (default --profile core mengiklankan 8 saat boot terlepas dari tingkatnya — 7 alat keluarga Inti ditambah bootstrap memory_capabilities yang 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 oleh Profile::full().expected_tool_count() + const_count_matches_full_profile di src/mcp/registry.rs.