इस प्रोजेक्ट के बारे में
ohmyboring कोडिंग एजेंट्स के लिए एक स्व-होस्टेड व्यक्तिगत मेमोरी सिस्टम है। यह कैप्चर करता है कि आपने Claude Code, Kimi Code और योग्य Codex सत्रों में चीजों को कैसे हल किया, प्रत्येक सत्र को स्थानीय वॉल्ट में संग्रहीत एक क्यूरेटेड markdown नोट में संक्षेपित करता है, और जब आप पूछते हैं "पिछली बार मैंने यह कैसे किया?" तो उन नोट्स को वापस लाता है। सब कुछ स्थानीय रूप से चलता है: एम्बेडिंग और संश्लेषण एक स्थानीय LLM सर्वर (Ollama, LM Studio, या अन्य OpenAI-संगत एंडपॉइंट) के माध्यम से होते हैं, बिना किसी बाहरी API या टोकन के।
मेमोरी कैसे अंदर आती है:
- सत्र समाप्त होने पर स्वचालित: एक SessionEnd हुक ट्रांसक्रिप्ट को संक्षेपित करता है और संग्रहीत करता है; एक साथी UserPromptSubmit हुक नए प्रॉम्प्ट में अधिकतम तीन प्रासंगिक पिछले स्निपेट इंजेक्ट करता है, प्रत्येक में तय किए गए दावे होते हैं।
- Codex वर्कर: चूंकि Codex में SessionEnd हुक नहीं है, एक होस्ट वर्कर हर 20 मिनट में ~/.codex/sessions को स्कैन करता है और योग्य ट्रांसक्रिप्ट को इनजेस्ट करता है।
- बैकफिल: `make collect` पिछले Claude Code इतिहास से अन्यथा-खाली वॉल्ट को सीड करता है (नवीनतम-पहले, आइडेम्पोटेंट, प्रति रन N); `make collect-kimi` Kimi Code के लिए वही करता है।
- सत्र के बीच में: `make distill-now` वर्तमान ट्रांसक्रिप्ट को फिर से संक्षेपित करता है, और `make remember M="..."` एक स्पष्ट नोट सहेजता है।
मेमोरी markdown-प्रथम है: vault/wiki में सादे, मानव-पठनीय, git-diffable नोट्स, जिन्हें सीधे Obsidian वॉल्ट के रूप में खोला जा सकता है ग्राफ व्यू, बैकलिंक्स, टैग और फुल-टेक्स्ट सर्च के लिए। एक वैकल्पिक pgvector एक्सेलेरेटर (BORING_VECTOR=on) समानता खोज और GraphRAG जोड़ता है जब पैमाना इसकी मांग करता है।
आर्किटेक्चर एक तेज़, LLM-मुक्त रीड द्वार (`make ask`, recall.py, MCP recall) को एक गेटेड राइट द्वार (distill-session.py स्थानीय LLM को कॉल करता है और एक डिटरमिनिस्टिक remember MCP टूल के माध्यम से लिखता है) से अलग करता है। एक डुप्लिकेट गेट डुप्लिकेट नोट्स को छोड़ देता है लेकिन एक समृद्ध नोट को उसी wiki फ़ाइल को फिर से लिखने देता है। drudge/src/workflow.rs में एक Rust-साइड टाइप्ड वर्कफ़्लो ग्राफ कॉन्ट्रैक्ट सत्र खोज, संक्षेपण, सत्यापन, मरम्मत, remember, मार्कर अपडेट, इवेंट लॉगिंग और तैयारी प्रोजेक्शन के लिए नोड/एज शब्दावली को परिभाषित करता है, जबकि Python हुक और वर्कर अभी भी होस्ट I/O करते हैं।
कॉन्फ़िगरेशन boring.json में रहता है (boring.example.json से): नोट भाषा, LLM प्रोवाइडर/base_url/model/एम्बेडिंग मॉडल और आयाम, रेपो ओरिजिन नियम, और एजेंट ट्रांसक्रिप्ट एडाप्टर। बैकएंड स्विच करना एक कॉन्फ़िग ब्लॉक है; `make up` प्रोवाइडर-विशिष्ट बूटस्ट्रैप स्क्रिप्ट को डिस्पैच करता है। एम्बेडिंग मॉडल बदलने से वेक्टर आयाम बदल जाता है, इसलिए llm.embed_dim को अपडेट किया जाना चाहिए और `make reset` चलाया जाना चाहिए। एक .env फ़ाइल सीक्रेट और रनटाइम ओवरराइड रखती है जैसे BORING_VECTOR, LLM ओवरराइड, डिस्टिलेशन क्लैम्प, रिकॉल क्लेम काउंट और प्रासंगिकता माप, इवेंट सिंक/स्पूल सेटिंग्स, तैयारी विंडो, और राइट कॉल के लिए एक ओनर टोकन।
ऑपरेशनल टूलिंग में शामिल हैं `make verify-llm` (प्रोवाइडर, मॉडल आईडी, एम्बेडिंग आयाम), `make doctor` (स्टैक, हुक, Codex वर्कर/क्यू, नवीनतम इनजेस्ट), `make readiness` (सख्त प्री-ब्रिफिंग गेट), `make peek` (रीड-ओनली स्थानीय पेज जो दिखाता है कि कौन से नोट्स रिकॉल ने इंजेक्ट किए और रिट्रीवर कितनी दूर पहुंचा), और `make usage` (स्थानीय ट्रांसक्रिप्ट से फोल्ड किया गया टोकन और मॉडल उपयोग)। vault/rules/pii.yaml में एक PII/संवेदनशील-डेटा गेट ब्लॉक, रिडैक्ट और फ्लैग क्रियाओं का समर्थन करता है प्रति-पंक्ति छूट मार्कर के साथ। वैकल्पिक एकीकरण में एक Slack सहायक और सुबह की ब्रीफ के लिए Hermes cron वर्कर शामिल हैं।
आवश्यकताएं हैं Docker, Python 3, jq, curl, git, make, और एक स्थानीय LLM सर्वर। एक ताज़ा क्लोन खाली वॉल्ट से शुरू होता है, इसलिए पहले दिन की रिकॉल कुछ नहीं ढूंढती जब तक इतिहास बैकफिल न हो जाए। प्रोजेक्ट MIT-लाइसेंस्ड है और मशीन RAM द्वारा स्थानीय मॉडल पेयरिंग मार्गदर्शन, बेंचमार्क कमांड, और मापा गया डिस्टिलेशन/एम्बेडिंग व्यवहार का दस्तावेजीकरण करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.