एजेंट फ्लीट के लिए साझा मेमोरी: hermes-memory-pgvector
जब आप एक से अधिक AI एजेंट चलाते हैं — एक मार्केटिंग मिनियन, एक ट्रेडिंग मिनियन, एक इंसिडेंट-रिस्पॉन्स मिनियन — तो उनमें से प्रत्येक को मेमोरी की आवश्यकता होती है। अंतर्निहित मेमोरी टूल प्रत्येक एजेंट को अपनी स्वयं की मेमोरी देता है। यह तब तक ठीक है जब तक आप नहीं चाहते कि वे इसे साझा करें, या जब तक आप यह नहीं जानना चाहते कि एजेंट ने छह हफ्ते पहले क्या सीखा था — बस देखने के लिए LLM राउंड-ट्रिप का भुगतान किए बिना।
hermes-memory-pgvector एक छोटा Postgres + pgvector प्लगइन है जो एजेंट मेमोरी राइट्स को एक साझा, एम्बेडेड, क्वेरी योग्य स्टोर में मिरर करता है। PyPI पर वर्तमान रिलीज़: v1.0.0।
v1.0.0 में नया — एक स्थिर सतह
1.0.0 सिमेंटिक वर्जनिंग के तहत सार्वजनिक सतह को स्थिर घोषित करता है: कॉन्फ़िग कुंजियाँ, टूल के नाम, CLI कमांड और एक्ज़िट कोड, और टेबल के नाम। यह एक मल्टी-पास प्री-रिलीज़ समीक्षा के बाद रिलीज़ किया गया है जिसने एक डेटा-लॉस बग और छोटी समस्याओं के एक सेट को ठीक किया, 0.6.0 से कोई स्कीमा परिवर्तन नहीं। v0.5.0 से एक सादा pip install एक एंट्री पॉइंट के माध्यम से प्रदाता को पंजीकृत करता है, इसलिए नीचे वर्णित डिस्कवरी शिम केवल पुराने होस्ट पर आवश्यक है। विवरण: hermes-memory-pgvector 1.0: एक स्थिर मेमोरी सतह।
v0.4.2 में नया — pip-नेवल इंस्टॉल
hermes-agent प्लगइन डायरेक्टरीज़ को स्कैन करके मेमोरी प्रदाताओं को खोजता है (plugins/memory/<name>/ बंडल, $HERMES_HOME/plugins/<name>/ उपयोगकर्ता) — यह कभी site-packages में नहीं देखता, इसलिए अकेले pip install ने प्लगइन को सही ढंग से इंस्टॉल तो किया लेकिन पूरी तरह अदृश्य छोड़ दिया। v0.4.2 उस अंतर को बंद करता है: pip install मशीन पर कोड रखता है, और एक hermes-pgvector install कमांड वह डिस्कवरी शिम उत्पन्न करता है जिसे फ्रेमवर्क वास्तव में पढ़ता है।
v0.4.1 में नया — हाइब्रिड रिकॉल (वेक्टर + फुल-टेक्स्ट)
recall_memory और recall_conversation अब Reciprocal Rank Fusion (k=60) का उपयोग करके HNSW कोसाइन रैंकिंग को PostgreSQL फुल-टेक्स्ट रैंकिंग के साथ जोड़ते हैं। एक पंक्ति तब सामने आती है जब या तो रैंकर उसे पसंद करता है, जो शुद्ध वेक्टर खोज की दो अंधी जगहों को ठीक करता है: सटीक-लेक्सिकल हिट जिन्हें कोसाइन स्मूद कर देता है (एरर कोड, होस्टनेम, फ़्लैग, दुर्लभ आइडेंटिफ़ायर), और NULL एम्बेडिंग वाली टेक्स्ट-ओनली पंक्तियाँ — जो एम्बेड एंडपॉइंट बंद होने के दौरान लिखी गई थीं — जिन्हें वेक्टर इंडेक्स बिल्कुल नहीं देख सकता। अगले backfill रन तक उन पंक्तियों के लिए सर्वश्रेष्ठ-प्रयास रिकवरी के रूप में हाइब्रिड रिकॉल भी काम करता है।
v0.4.0 ने क्या जोड़ा
उस रिलीज़ ने "हॉट पाथ में कोई LLM नहीं" नियम को बनाए रखा और चार स्टोरेज-लेयर क्षमताएँ जोड़ीं:
- आइडेंटिटी गवर्नेंस। डायरेक्ट-मैसेज सेशन कुंजियाँ एक ही गोपनीयता-सुरक्षित बकेट में समा जाती हैं — प्रति-संपर्क थीम स्प्रॉल नहीं, कोई PII नहीं — बेंचमार्क ट्रैफ़िक क्वारंटीन किया जाता है, और एक वैकल्पिक allow-list गलत टाइप किए गए थीम नामों को चुपचाप नया नाम गढ़ने के बजाय एक सुरक्षित डिफ़ॉल्ट पर रूट करती है।
- एजेंट एट्रिब्यूशन और प्रतिनिधिमंडल। एक नया रजिस्ट्री और प्रोवेनेंस एज रिकॉर्ड करते हैं कि किस एजेंट ने किसे क्या सौंपा, डेटाबेस व्यू के माध्यम से क्वेरी योग्य। शुद्ध who/when प्रोवेनेंस — कभी फ़ैक्ट स्टोर नहीं।
- एम्बेडिंग बैकफ़िल। एम्बेडिंग-एंडपॉइंट आउटेज के दौरान टेक्स्ट-ओनली लिखी गई पंक्तियाँ अब अकेली नहीं रहतीं: एक idempotent कमांड उन्हें फिर से एम्बेड करता है ताकि वे फिर से खोज योग्य बन जाएँ।
- कन्वर्सेशन TTL और लागत नियंत्रण। एक ऑपरेटर-रन प्रून पुराने चैट टर्न को ट्रिम करता है (टिकाऊ मेमोरीज़ कभी नहीं छूती), और एक एम्बेड पॉलिसी एम्बेडिंग लागत को ऊपर या नीचे करती है।
यह सब एक मेंटेनेंस CLI (hermes-pgvector) के पीछे शिप होता है जिसके विनाशकारी कमांड डिफ़ॉल्ट रूप से dry-run होते हैं। 0.4.x लाइन v0.3.x से ड्रॉप-इन अपग्रेड है — योज्य माइग्रेशन लागू करें और नए हुक चालू हो जाते हैं; उन्हें छोड़ दें और बाकी सब अपरिवर्तित चलता है।
यह वास्तव में क्या करता है
एक पंक्ति में: "एक स्टोरेज लेयर जो अंतर्निहित मेमोरी मॉडल को टिकाऊ, मल्टी-टेनेंट, अर्थ-आधारित खोज योग्य बैकिंग देती है, हॉट पाथ में कोई LLM नहीं।"
दो टेबल, दोनों HNSW वेक्टर इंडेक्स के साथ। memory_entries एजेंट की MEMORY.md/USER.md फ़ाइलों में राइट्स को मिरर करता है। conversations सारगर्भित चैट टर्न को स्टोर करता है (≥40 वर्ण, बॉयलरप्लेट फ़िल्टर आउट)। एम्बेडिंग 768-डिम हैं, एक बाहरी एंडपॉइंट द्वारा गणना की गई — Ollama, OpenAI-संगत, आपकी पसंद। एजेंट इस पर कभी ब्लॉक नहीं होता: राइट्स माइक्रोसेकंड में लौटती हैं और एम्बेडिंग वर्कर एक बैकग्राउंड कतार पर बाकी को संभालता है।
डिफ़ॉल्ट रूप से प्रति-एजेंट थीम
हर अनुरोध X-Hermes-Session-Key हेडर ले जाता है जो डेटा को agent_identity के अनुसार स्कोप करता है। मार्केटिंग के नोट्स ट्रेडिंग के रिकॉल को दूषित नहीं करते। जब आप वास्तव में क्रॉस-थीम खोज चाहते हैं, तो स्पष्ट रूप से scope='all' पास करें। डिफ़ॉल्ट सुरक्षित वाला है।
स्टैंडअलोन क्यों, फ़ोर्क क्यों नहीं
hermes-agent ने नीति के अनुसार अपनी अंतर्निहित मेमोरी प्रदाता सूची बंद कर दी, इसलिए यह अपस्ट्रीम फ़ोर्क के बजाय एक अलग /plugins डायरेक्टरी स्कैन के रूप में रहता है। इसे एजेंट के बगल में रखें, कुछ कॉन्फ़िग कुंजियाँ सेट करें, रीस्टार्ट करें। रोलबैक सममित है: प्रदाता को डिसेबल करें, वैकल्पिक रूप से टेबल हटाएँ। माइग्रेट करने के लिए कोई लंबे समय तक चलने वाली स्थिति नहीं, मेंटेन करने के लिए कोई कर्नेल पैच नहीं।
यह क्या नहीं है
Honcho प्रतिस्थापन नहीं। नॉलेज ग्राफ़ नहीं। RAG फ्रेमवर्क नहीं। यह जानबूझकर एक पतली लेयर है जो एक काम करती है — अंतर्निहित मेमोरी टूल को साझा, टिकाऊ, वेक्टर-खोज योग्य स्टोर में बदलना — और रास्ते से हट जाती है। कोई LLM डेरिवर नहीं, कोई डायलेक्टिक लूप नहीं, यह नहीं कि आपको कैसे चंक या रीरैंक करना चाहिए इस पर कोई राय नहीं। बस वेक्टर मैथ।
इसे प्राप्त करें
pip install hermes-memory-pgvector
hermes-pgvector install
GitHub पर स्रोत, माइग्रेशन और कॉन्फ़िग:
