Jinsi ya kutumia Compartment kwa kumbukumbu ya wakala
Compartment huhifadhi kumbukumbu ya wakala ikiwa imesimbwa nje ya mtandao. Jifunze mfumo wake wa vitisho, hatari ya kupoteza ufunguo, na jinsi ya kulinda data yako kwa usalama.
Jinsi Compartment inavyofanya kazi kwa tofauti
Compartment ni hifadhi ya kumbukumbu ya wakala (agent memory store) inayoweka kila rekodi katika hali ya kusimbwa (encrypted) kwenye mashine iliyoiunda na haijawahi kuwasiliana na huduma yoyote ya mtandao. Chaguo mbili huifanya itofautiane na mifumo mingine ya kumbukumbu ya wakala. Vault ni faili moja lililofungwa ambalo hufunguliwa tu na nenosiri lako, na hatua ya embedding huendeshwa ndani ya mashine yako, hivyo matini ya kumbukumbu haitumwi popote ili kugeuzwa kuwa vector. Toleo la 4.6.0 lilichapishwa tarehe 10 Agosti 2026, leseni yake ni Apache-2.0, na inasakinishwa kutoka PyPI.
Hii ni madai ya mfumo wa vitisho (threat model), kwa hivyo mwongozo huu unaitendea kama madai hayo. Usimbaji wa data iliyohifadhiwa (encryption at rest) pamoja na usanifu wa nje ya mtandao (offline design) hulinda orodha maalum ya vitu. Hii huacha vitu vingine wazi, na pengo hilo ndipo matatizo ya siku ya pili (day two problems) yanapojitokeza.
Mwongozo huu unafuata nyaraka za mradi wenyewe na maelezo ya toleo (release notes), yaliyosomwa tarehe 11 Agosti 2026. Compartment inatoa programu ya desktop, ikoni ya menu bar kwenye macOS na ikoni ya eneo la taarifa (notification area) kwenye Windows, pamoja na zana yake ya mstari wa amri (command line tool), na kidokezo cha nenosiri (passphrase prompt) hakiwezi kuendeshwa kutoka kwenye kontena lililojiendesha (automated container). Chukulia yafuatayo kama tabia iliyoandikwa kwenye nyaraka, si kama tabia iliyopimwa hapa. Iendeshe kwenye mashine ya ziada kabla ya kuiamini kwa kitu chochote cha kweli.
Ulinzi halisi unaotolewa na encryption at rest
Vault imefungwa kwa kutumia XChaCha20-Poly1305, ambayo ni cipher ya AEAD (authenticated encryption with associated data), na keyslots zinazohifadhi master key zimefungwa kwa Argon2id, kazi ya hashing ya nenosiri iliyoundwa kuwa ya polepole na kuhitaji kumbukumbu nyingi. Mambo mawili yanatokana na hili. Nakala ya faili kwenye diski iliyoibwa, kwenye backup ya zamani, au iliyoambatanishwa kwenye tiketi ya usaidizi ni baiti tu na si kitu kingine. Na bit moja iliyobadilika husababisha authentication kufeli wakati faili inafunguliwa, hivyo uharibifu wa data huwa kosa linaloonekana badala ya jibu lisilo sahihi.
Embedding vectors nazo zimesimbwa kwa njia fiche, jambo ambalo ni muhimu zaidi kuliko linavyosikika. Embedding si hash. Utafiti kuhusu embedding inversion umeweza kurejesha vipande vinavyosomeka vya maandishi asilia kutoka kwenye vector pekee, kwa hivyo index ya vector iliyo katika maandishi wazi (plaintext) kando ya database iliyosimbwa ni sawa na kuacha database wazi. Compartment haiandiki index yoyote ya plaintext kwenye diski.
Ufutaji ni ufutaji wa kweli. Kila rekodi ina ufunguo wake, na compartment forget --shred huharibu ufunguo huo, kwa hivyo ciphertext iliyoachwa nyuma haiwezi kusimbuliwa na mtu yeyote, ikiwemo wewe. Linganisha hilo na safu iliyofutwa kutoka kwenye faili ya database, ambayo kwa kawaida hubaki ikisomeka katika kurasa zisizotumika (free pages) hadi kitu kingine kiandike juu yake.
Offline ndiyo nusu nyingine ya ulinzi. Hakuna kinachopakiwa (upload), kwa hivyo hakuna akaunti ya mtoa huduma inayoshikilia kumbukumbu zako na hakuna API key inayoweza kuzivujisha.
Mambo ambayo Compartment hailindi
Madai haya yanaishia kwenye mpaka wa vault, na mpaka huo uko karibu zaidi kuliko unavyoonekana.
Wakala anasoma matini wazi (plaintext). Recall hufungua kumbukumbu na kumpa wakala matini hiyo. Ikiwa wakala huyo ni modeli inayohudumiwa na mtoa huduma, kumbukumbu hiyo husafiri kwenda kwa mtoa huduma huyo ndani ya prompt inayofuata, kama ilivyo kwa kila kitu kingine kilicho kwenye context window. Usimbaji fiche ukiwa umepumzika (encryption at rest) hulinda faili. Hailindi urejeshaji wa data. Kwa hivyo, sheria zilizopo katika kuepuka kuweka siri kwenye AI agents hazilegei kwa sababu hifadhi imesimbwa: nenosiri lililohifadhiwa kama kumbukumbu ni nenosiri ambalo umepanga kuliweka kwenye prompt moja kwa moja.
Vault iliyofunguliwa kwenye mashine inayofanya kazi iko wazi. Vidokezo vya usalama vya mradi huu vinasema hivi waziwazi. Wakati vault imefunguliwa, ufunguo mkuu (master key) na seti ya kazi (working set) hukaa kwenye RAM, Python haiwezi kuhakikisha kuwa buffer imefutwa, na swap au picha ya hibernation inaweza kuandika kumbukumbu hiyo kwenye diski. Malware inayofanya kazi kama mtumiaji wako haihitaji kamwe kuvunja cipher, kwa sababu inaweza kuiuliza vault ambayo tayari imeshafunguliwa.
Utambulisho wa mpigaji simu (caller identity) ni wa kutangazwa. Namespace zinaweza kuzuiliwa kwa kila mpigaji simu, lakini jina la mpigaji simu hutoka kwenye mchakato wa mwenyeji (host process), kwa hivyo mwenyeji anayedanganya kuhusu jina lake hupokea ruhusa anazodai. Ruhusa za namespace ni za kiutawala, si mpaka wa usalama dhidi ya programu hasidi ya ndani.
Kufuta (shredding) hakuwezi kufikia nakala. forget --shred huharibu ufunguo ndani ya faili ya sasa. Backup iliyochukuliwa kabla ya kufuta bado inashikilia rekodi hiyo, na bado inafunguka kwa kutumia passphrase ya siku hiyo.
Passphrase dhaifu humaliza mjadala. Argon2id hufanya kila jaribio la kukisia kuwa la gharama. Hailindi passphrase inayopatikana kwenye orodha ya maneno.
Sakinisha Compartment kutoka toleo lililofungwa (pinned release)
Compartment inahitaji Python 3.11 au toleo jipya zaidi. Mradi huu unaenda kasi, ukiwa na matoleo thelathini kwenye PyPI kufikia tarehe 10 Agosti 2026, kwa hivyo funga (pin) toleo badala ya kuchukua toleo lolote litakalokuwa la sasa siku unayofanya usakinishaji.
python3 --version
pip install "compartment==4.6.0"
compartment --version
compartment initcompartment --version inapaswa kuonyesha toleo ulilofunga. Ikiwa shell itajibu compartment: command not found, saraka ya usakinishaji haipo kwenye PATH yako, na kwenye mifumo mingi saraka hiyo ni ~/.local/bin. pipx install compartment==4.6.0 na uv tool install compartment==4.6.0 huepuka hilo kwa kusimamia njia zao wenyewe.
compartment init huomba neno la siri (passphrase) mara mbili na halionyeshi chochote kwenye skrini. Neno hilo la siri ndilo ufunguo pekee. Mradi huu hautengenezi nenosiri wala maneno ya kurejeshea akaunti (recovery phrase), na hili ni la makusudi: hakuna kitambulisho chochote kinachoshikiliwa na programu hii ambacho huna wewe.
Kagua matokeo kabla ya kuunganisha chochote nacho.
compartment statusVault iliyo salama inaripoti kuwa imefunguliwa (unlocked). Ikiwa inaripoti kuwa imefungwa (locked), endesha compartment unlock na uweke neno la siri. Kuanzisha upya seva (restart) huifunga tena, kwa sababu kitambulisho kinachoiweka wazi kinategemea siri ya kila boot. Kwenye macOS, compartment unlock --keychain huchagua kubaki wazi baada ya reboot kwa kuhifadhi kitambulisho hicho kwenye system keychain.
Mahali data inapohifadhiwa kihalisi
Vault chaguo-msingi ni ~/.compartment/memory.vault. Elekeza kwingine kwa kutumia --vault PATH kwenye amri yoyote, au kwa kutumia kigezo cha mazingira cha COMPARTMENT_VAULT.
Faili hilo moja ndilo hifadhi nzima. Hufunguka kwa kichwa cha habari chenye toleo la umbizo na keyslots za Argon2id, kisha data iliyofungwa (sealed payload), na hatimaye maingizo ya jarida yanayoongezwa kadiri kumbukumbu mpya zinavyofika. Kila ingizo la jarida huwekewa urefu wake na CRC (cyclic redundancy check) ya urefu huo, hivyo uandishi unaokatizwa na hitilafu ya mfumo hutambuliwa kama ingizo lililopungua badala ya kusomwa kama data. Ufinyanzi (compaction) hupanga vault kwa mtiririko, huandika faili la muda, hulifanyia fsync, kisha hulibadilisha jina na kuliweka mahali pake, jambo linalomaanisha kuwa msomaji hawezi kuona vault iliyoandikwa nusu.
Matokeo ya manufaa: hati ya chelezo (backup script) hunakili njia moja tu. Matokeo ya usumbufu: huwezi kutumia grep, na huwezi kuirekebisha katika kihariri cha maandishi. Ikiwa unataka kumbukumbu unayoweza kuisoma kwa cat na kuifanyia commit kwenye git, faili za kumbukumbu za kawaida za Memmy ni chaguo mbadala lenye sifa tofauti. Yote mawili ni ya busara, kulingana na kama hofu yako ni laptop kuibwa au zana inayoharibika.
compartment uninstall huondoa programu na kuhifadhi vault. Tumia --purge tu pale unapokusudia kufanya hivyo.
Kuunganisha kwenye wakala
Amri moja huunganisha mteja anayekubalika.
compartment integrate --list
compartment integrate claudeKwa Claude Code inayoandika ingizo la seva ya MCP (model context protocol) na hook ya PostToolUse kwenye ~/.claude/settings.json, ikihifadhi nakala ya faili kwanza, husakinisha ujuzi wa /compartmentalize chini ya ~/.claude/skills/, na kuongeza block inayodhibitiwa kwenye ~/.claude/CLAUDE.md inayouambia wakala kuwa Compartment inachukua nafasi ya kumbukumbu ya faili iliyokuwa ikitumika. Thibitisha sehemu zote mbili:
compartment hook status
compartment recentIli kusajili seva kwa mkono badala yake:
claude mcp add --scope user compartment -- \
compartment --vault ~/.compartment/memory.vault --caller claude-code serveHost nyingine yoyote inayoweza kutumia MCP huchukua seva hiyo hiyo ikiwa na jina lake la mpigaji.
{ "mcpServers": { "compartment": {
"command": "compartment",
"args": ["--vault", "/path/to/memory.vault",
"--caller", "your-agent-name", "serve"] } } }Ipe kila host thamani tofauti ya --caller. Hiyo ndiyo lebo inayorekodiwa kwenye log ya ukaguzi na ufunguo ambao ruhusa za namespace huandikwa dhidi yake, kwa hivyo jina la pamoja hufanya zote mbili kutokuwa na maana.
Ikiwa Claude Code imekuwa ikiandika ukweli kwenye faili zake za kumbukumbu, compartment import-claude --dry-run huonyesha kitakachohamia kabla ya kitu chochote kuhama. Soma kile Claude Code kinachohifadhi kwenye faili zake za kumbukumbu kwanza, kwa sababu kuingiza maelezo ya mwaka mzima kwenye vault mpya ndiyo njia ambayo hifadhi ya kumbukumbu hujaa vitu ambavyo hakuna mtu aliyekusudia kuvihifadhi.
Kasi ya vault ya ndani ni kiasi gani
Hizi ndizo takwimu ambazo mradi huchapisha kwa ajili ya vault ya ukubwa wa kibinafsi. Zinatokana na nyaraka zake, si kutoka kwa jaribio lililofanywa hapa.
The data behind this chart
[
{
"label": "Store one memory, end to end",
"latency_ms": 40
},
{
"label": "Embed one memory, bundled model",
"latency_ms": 25
},
{
"label": "Hybrid search, median",
"latency_ms": 11.6
},
{
"label": "Vector search at 20k records, p95",
"latency_ms": 0.68
}
]Kuhifadhi kumbukumbu moja kumenukuliwa kuwa 40 ms, na utafutaji wa vekta katika rekodi elfu ishirini ni 0.68 ms kwa asilimia 95 ya matokeo. Hoja ya mradi ya kuweka kumbukumbu ndani ya kifaa ni ya kihisabati: safari moja ya mtandao kwenda kwenye API ya kumbukumbu iliyopangishwa mara nyingi hugharimu zaidi ya 11.6 ms ya wastani ya utafutaji kamili wa mseto (hybrid search) hapa.
Maelezo mawili ya usanifu yanaelezea namba za utafutaji. Chini ya rekodi elfu ishirini, Compartment hulinganisha hoja dhidi ya kila vekta, kwa hivyo usahihi wa kurejesha data (recall) ni kamili kwa muundo wake badala ya kuwa wa makadirio. Zaidi ya hapo, hubadilika na kutumia HNSW (hierarchical navigable small world), faharasa ya makadirio inayotoa sehemu ndogo ya usahihi ili kupata kasi. Vault pia hurekodi SHA-256 hash ya mfano wa embedding na hukataa kufunguka chini ya mfano tofauti, kwa sababu vekta kutoka kwa mifano miwili tofauti zinaweza kulinganishwa bila kosa lolote kuonekana, na alama zinazorejeshwa hazina maana yoyote.
Hifadhi rudufu (backups), na nakala unayoweza kuifungua mwaka ujao
Vault iliyofungwa ni faili moja linaloweza kubebeka, kwa hivyo kulihamisha ni sawa na kutengeneza nakala.
compartment lock
scp ~/.compartment/memory.vault other-machine:
compartment --vault memory.vault unlockIfunge kwanza. Kunakili wakati agent anaandika kunaweza kunasa ingizo la journal katikati ya mchakato wa kuongeza data, na ingawa mfumo wa CRC huruhusu msomaji kuruka kipande hicho cha mwisho, kumbukumbu iliyo ndani yake hupotea. compartment lock --sign hufunga faili kwa manifest ya Ed25519, ili mashine inayopokea iweze kuthibitisha kuwa nakala imefika ikiwa salama bila kuhitaji passphrase.
Kwa sababu faili limekwisha fungwa, hifadhi ya kawaida ya cloud ni mahali panapokubalika kuliweka. Hapo ndipo encryption at rest inapokulipa moja kwa moja: sehemu ya kuhifadhi backup haiwezi kuona kumbukumbu yoyote.
Maonyo mawili. Kufuta faili (shredding) hakufiki kwenye backups, kwa hivyo rekodi uliyofuta kwa njia ya crypto leo bado inaweza kusomeka kwenye nakala ya wiki iliyopita kwa mtu yeyote aliye na passphrase ya wiki iliyopita. Na compartment export --plaintext huandika vault nzima bila encryption, ambayo ni zana sahihi ya kuhama kwenda kwenye mfumo mwingine, lakini ni faili lisilofaa kuachwa ndani ya ~/Downloads.
Weka nakala chache na uziwekee tarehe. Hifadhi ya kumbukumbu hugeuka kuwa mzigo pale ambapo hakuna mtu anayeisafisha, jambo ambalo ndilo hoja katika kwa nini kumbukumbu za agent zilizopitwa na wakati huharibu utafutaji wa data kimyakimya.
Usimamizi wa funguo, mzunguko, na kigezo cha pili
compartment rekey
compartment 2fa enable
compartment 2fa statusrekey hubadilisha passphrase kwa kufunga upya master key kwenye keyslot ya faili ya sasa. Nakala za zamani hubaki na passphrase ya zamani, kwa sababu baiti hizo zilifungwa kabla ya mabadiliko na hakuna kinachoweza kuzihariri. Zungusha nakala hizo pia, au ukubali kuwa passphrase iliyostaafu bado inaweza kufungua kitu fulani.
2fa enable huongeza keyfile kama kigezo cha pili, kinachounganishwa na passphrase wakati wa key derivation, hivyo vyote viwili vinahitajika ili kufungua vault. Hii pia huongeza mara mbili idadi ya vitu unavyoweza kupoteza. Hifadhi keyfile nje ya mashine inayoshikilia vault hiyo.
Kwa hati za kiotomatiki (scripts) na CI (continuous integration), passphrase inaweza kupitishwa kupitia variable ya mazingira ya COMPARTMENT_PASSPHRASE, na unlock --passphrase-stdin huisoma kutoka kwenye pipe. Pendekeza kutumia pipe. Variable ya mazingira inaweza kusomeka na michakato mingine inayomilikiwa na mtumiaji yuleyule, na mara nyingi huishia kwenye logi za kazi.
Historia ya ukaguzi imefungwa kwa hash chain, na compartment audit verify huipitia na kuripoti kiungo cha kwanza kilichovunjika. Iendeshe baada ya urejeshaji wowote, kwa sababu hapo ndipo faili iliyokatwa kimyakimya hujitokeza.
Nini kinatokea unapopoteza passphrase
Hakuna kinachotokea, na hivyo ndivyo ilivyosanifiwa. Hakuna njia ya kuweka upya (reset), hakuna recovery phrase, na hakuna anwani ya kuandikia, kwa sababu hakuna nakala ya ufunguo (key) nje ya kumbukumbu yako na keyfile yako ya hiari. Vault inabaki kuwa faili la baiti zinazoonekana kama zimepangwa bila mpangilio.
Kwa hiyo, mpango wa kurejesha data si mpango wa vault. Ni mpango wa passphrase. Iandike kwenye password manager siku unayotekeleza compartment init. Kisha ifanyie majaribio: ifunge vault, ifungue kwa kutumia ulichoandika pekee, na uiruhusu agent kuanza kuijaza baada ya kuona kuwa inafanya kazi.
Compartment au seva ya kumbukumbu
Compartment imeundwa kuwa mashine moja pekee. Kushiriki data kunamaanisha kunakili faili iliyofungwa, au kusafirisha na kuingiza data, na hakuna uwezo wa kuandika kwa wakati mmoja. Kwa hivyo, kompyuta ya mkononi na kituo cha kazi vinavyoelekeza kwenye faili moja vitafutiana kazi zao.
Wakati mashine kadhaa zinahitaji kumbukumbu ileile kwa wakati mmoja, hilo ni tatizo la seva. Seva ya kumbukumbu ya Mem0 inayojiendesha kwenye VPS linajibu tatizo hilo: sehemu moja ya kufikia (endpoint), wateja wengi, na kumbukumbu inayodumu hata baada ya kompyuta ya mkononi kuzimwa. Gharama yake inapaswa kuelezwa wazi. Seva hiyo huendesha mchakato unaoweza kusoma data inayohifadhi, kwa hivyo mtindo wako wa vitisho sasa unajumuisha VPS hiyo na kila mtu anayeweza kufikia API yake.
Chagua kulingana na hasara unayoiogopa kweli. Ikiwa ni kuibiwa kwa kompyuta ya mkononi au mtoa huduma kusoma madokezo yako, vault ya ndani iliyosimbwa (encrypted) ndiyo jibu bora zaidi. Ikiwa ni wakala anayesahau kila kitu pindi tu unapobadilisha mashine, basi seva ndiyo chaguo sahihi.
FAQ
Usimbaji fiche wa Compartment unalinda nini hasa?
Unailinda faili yenyewe. Vault imefungwa kwa kutumia XChaCha20-Poly1305, sehemu zake za funguo (keyslots) zimefungwa kwa Argon2id, na vekta za embedding pia zimesimbwa kwa njia fiche; hivyo basi, diski iliyoibwa au backup ya zamani itatoa tu data zisizosomeka. Hii haitoi ulinzi kwa vault iliyofunguliwa kwenye mashine inayofanya kazi, kwa sababu ufunguo mkuu (master key) hukaa kwenye RAM wakati vault ikiwa wazi, na haidhibiti kile ambacho wakala (agent) hufanya na kumbukumbu baada ya mfumo kuzirejesha kama maandishi ya kawaida (plaintext).
Ikiwa Compartment iko nje ya mtandao (offline), je, kumbukumbu zangu ni za siri dhidi ya mtoa huduma wa modeli yangu?
Ni hadi pale zitakaporejeshwa tu. Kuhifadhi na kutafuta hufanyika bila mtandao, na modeli ya embedding huendeshwa ndani ya mashine, hivyo hakuna kinachotoka nje wakati wa kuandika. Wakati wa kusoma, wakala hupokea maandishi ya kawaida, na ikiwa wakala huyo ni modeli inayohudumiwa mtandaoni (hosted model), kumbukumbu hiyo huingia kwenye prompt na kusafiri kwenda kwa mtoa huduma kama sehemu nyingine ya context window. Usihifadhi kamwe kitambulisho (credential) kama kumbukumbu.
Nini kitatokea nikipoteza passphrase ya Compartment?
Vault haiwezi kurejeshwa, na hili ni kusudi. Compartment haitengenezi seed wala recovery phrase, na haina kitambulisho chochote ambacho huna wewe, kwa hivyo hakuna cha kuweka upya (reset). Hifadhi passphrase kwenye password manager, weka faili yoyote ya 2FA mbali na mashine inayohifadhi vault, na uhakikishe kuwa unaweza kufungua nakala ya vault kabla ya kuweka ndani yake kitu chochote ambacho usingependa kukipoteza.
Je, mashine mbili zinaweza kushiriki vault moja ya Compartment?
Si kwa wakati mmoja. Vault iliyofungwa ni faili moja inayoweza kuhamishika, na njia iliyoelekezwa ni kuifunga, kuinakili, kisha kuifungua kwenye mashine nyingine kwa kutumia --vault. Hakuna uwezo wa kufikia faili hiyo kwa wakati mmoja (concurrent access), kwa hivyo mashine mbili zinazoandika kwenye faili moja zitapoteza kumbukumbu. Endesha memory server wakati unahitaji uwezo huo.