मी माझ्या कोडिंग एजंट्ससाठी एक लोकल कंट्रोल प्लेन तयार केले
वेगवेगळे AI एजंट्स वापरणे खूप गोंधळाचे असायचे.
मी Copilot, Claude Code आणि OpenCode वापरत होतो. प्रत्येक टूलची स्वतःची होम डिरेक्टरी, स्वतःची सेटिंग्ज आणि स्वतःची मेमरी असायची. जेव्हा जेव्हा मी एखादे नवीन कौशल्य किंवा नियम जोडायचो, तेव्हा मला विचारावे लागायचे: हे टूल ते कुठे शोधत असेल?
माझी होम डिरेक्टरी AI फोल्डर्सचा एक कचराकुंडी (junk drawer) बनली होती.
मी एजंट्समध्ये प्लॅन्स पास करण्यासाठी Markdown फाइल्स वापरण्याचा प्रयत्न केला. त्याने थोडी मदत केली, पण ते अपयशी ठरले. एखादा एजंट एखादे गृहितक विसरून जायचा आणि पुढचा एजंट चुकीचा निकाल द्यायचा. फाइल्स डेटा तर देत होत्या, पण त्या 'शेअर्ड कॉन्टेक्स्ट' (shared context) देऊ शकत नव्हत्या.
मला खालील गोष्टींसाठी एक मार्ग हवा होता:
- एकदाच हाय-लेव्हल नियम लिहिणे.
- परवानगीचे नियम एकाच ठिकाणी ठेवणे.
- कौशल्ये हाताने कॉपी करणे थांबवणे.
- वेगवेगळ्या प्रोजेक्ट्स आणि सेशन्समध्ये मेमरी शेअर करणे.
हे सोडवण्यासाठी मी एक लोकल कंट्रोल प्लेन तयार केले.
माझ्या सेटअपचा गाभा एकच डिरेक्टरी आहे: ~/.ai.
विखुरलेल्या फोल्डर्सऐवजी, मी symlinks वापरतो. टूलला असे वाटते की ते त्यांच्या स्वतःच्या जागेत आहेत, पण खरी रचना एकाच ठिकाणी असते. मी सर्व मॉडेल ट्रॅफिक एका लोकल प्रॉक्सीद्वारे वळवतो आणि MCP द्वारे मेमरीसाठी एक शेअर्ड SQLite डेटाबेस वापरतो.
यामुळे दोन वेगळी कामे वेगळी होतात:
- राउटिंग (Routing): मॉडेल विनंत्या प्रोव्हायडरपर्यंत पोहोचण्यापूर्वी एका लोकल प्रॉक्सीमधून जातात.
- मेमरी (Memory): दीर्घकाळ टिकणारे तथ्य (facts) एका लोकल स्टोअरमध्ये राहतात.
जर एखादे मॉडेल विचित्र वागत असेल, तर मी प्रॉक्सी तपासतो. जर एखादा एजंट एखादा तपशील विसरला, तर मी मेमरी तपासतो. यामुळे डीबगिंग (debugging) सोपे होते.
माझी शेअर्ड मेमरी अशा गोष्टी साठवते ज्या पुन्हा शोधणे खर्चिक असते:
- प्रोजेक्टचे निर्णय.
- आर्किटेक्चर नोट्स.
- वर्कफ्लो पसंती (preferences).
- वारंवार येणारे बग्स.
मी माझी सुरक्षा देखील केंद्रीकृत केली आहे. मी कोडिंग स्टँडर्ड्स आणि प्रतिबंधित कमांड्ससाठी (denied commands) शेअर्ड फाइल्स वापरतो. यामुळे एका एजंटकडून दुसऱ्या एजंटकडे जाताना पर्यावरणाची सुरक्षितता बदलत नाही याची खात्री मिळते.
हे एक परफेक्ट एजंट शोधण्याबद्दल नाही. हे माझ्या एजंट्समध्ये पुरेसा कॉन्टेक्स्ट असल्याची खात्री करण्याबद्दल आहे, जेणेकरून त्यांच्यामध्ये स्विच करताना पुन्हा शून्यापासून सुरुवात केल्यासारखे वाटणार नाही.
Source: https://dev.to/sperekrestova/i-built-a-local-control-plane-for-my-coding-agents-1bf7
Optional learning community: https://t.me/GyaanSetuAi