माझ्या कोडिंग एजंटला सत्रांची (sessions) आठवण होती, कामाची नाही

एक कोडिंग एजंट थ्रेड जिवंत ठेवू शकतो, तरीही तो विसरभोळा वाटू शकतो.

CliGate तयार करताना मला या समस्येचा सामना करावा लागला. मी सेशन सातत्य (session continuity) सुधारले, पण वारंवार कराव्या लागणाऱ्या कामांचा वेग अजूनही खूप कमी होता.

एजंटला संभाषण आठवत होते, पण काम आठवत नव्हते.

सेशन सातत्य एक समस्या सोडवते. ते खालीलप्रमाणे फॉलो-अप कमांड्ससाठी मदत करते:

  • continue (पुढे चालू ठेव)
  • do the same for this file (याचप्रमाणे या फाईलसाठी कर)
  • retry that (ते पुन्हा प्रयत्न कर)

हे उपयुक्त आहे. पण जेव्हा तुम्ही काही दिवसांनंतर एखादा वर्कफ्लो (workflow) पुन्हा करता, तेव्हा ते फारसे उपयोगी पडत नाही.

एजंटला मागील वेळी काय यशस्वी झाले होते, हे आठवणे आवश्यक आहे. त्याला खालील गोष्टी माहित असणे गरजेचे आहे:

  • कोणते बटण काम करते
  • कोणता टप्पा व्यर्थ (dead end) आहे
  • कोणत्या फील्डला विशेष हाताळणीची गरज आहे
  • कोणता नियम तुम्हाला नेहमी लागू करायचा आहे

पहिली रन (run) सर्वात महागडी असते. तेव्हाच एजंट शोध घेतो आणि अशा तपशिलांचा शोध घेतो जे तुमच्या प्रॉम्प्टमध्ये (prompt) नसतात.

माझ्या सुधारणेपूर्वी, हे तपशील फक्त रॉग्स (raw logs) मध्ये असायचे. एजंटकडे इतिहास होता, पण त्याच्याकडे पुन्हा वापरण्यायोग्य मेमरी (reusable memory) नव्हती. त्याला प्रत्येक वेळी सर्व काही पुन्हा शोधून घ्यावे लागत असे.

हे बुद्धिमत्ता नाही. हे एकाच डीबगिंग खर्चाचा दोनदा भरणा करण्यासारखे आहे.

अधिक इतिहास जतन करणे आणि मॉडेल त्याचा वापर करेल अशी आशा करणे हा चुकीचा दृष्टिकोन आहे. यामुळे गोंधळ (noise) निर्माण होतो.

त्याऐवजी मी एक लहान, पुन्हा वापरण्यायोग्य मेमरी लेअर (memory layer) तयार केले. मी खालील गोष्टींवर लक्ष केंद्रित केले:

  • कार्यपद्धती (procedures)
  • तथ्ये (facts)
  • निर्देश (directives)
  • संदर्भ (references)

जे काही घडते ते सर्व जतन करण्याचा मी प्रयत्न करणे थांबवले. जे लक्षात ठेवले पाहिजे, तेच जतन करण्यास मी सुरुवात केली.

आता, असिस्टंट खालील गोष्टी आठवण्यासाठी फाईल-आधारित मेमरी लेअरचा वापर करतो:

  • एक कार्यपद्धती: सर्वोत्तम पायऱ्या आणि ज्ञात व्यर्थ टप्पे
  • एक तथ्य: एक URL किंवा विशिष्ट सेटिंग
  • एक निर्देश: तुम्हाला गोष्टी कशा करायच्या आहेत
  • एक संदर्भ: डॉक्युमेंटेशन कुठे आहे

माणसे याच पद्धतीने काम करतात.

मला भूतकाळाचे हुबेहूब पुनरावृत्ती (replay) नको आहे, कारण इंटरफेस बदलतात आणि बटणे हलतात. मला एजंटने खालील गोष्टी कराव्यात असे वाटते:

  1. सर्वोत्तम ज्ञात कार्यपद्धती आठवणे
  2. प्रथम ती वापरून पाहणे
  3. प्रत्येक पायरीची पडताळणी करणे
  4. जर ती अयशस्वी ठरली, तर पुन्हा शोध घेण्याकडे वळणे
  5. यशस्वी झाल्यानंतर मेमरी अपडेट करणे

यामुळे नाजूक ऑटोमेशनचे रूपांतर उपयुक्त ऑपरेशनल मेमरीमध्ये होते.

मी संभाषणाच्या इतिहासापासून कायमस्वरूपी नियम (standing rules) देखील वेगळे केले. "नेहमी चिनी भाषेत उत्तर द्या" किंवा "प्रोडक्शन डेटाला स्पर्श करू नका" यांसारखे नियम हे सेशन कॉन्टेक्स्ट (session context) नाहीत. ते ऑपरेटिंग नियम (operating rules) आहेत.

एकदा मी हे वेगळे केले की, असिस्टंट अधिक अंदाज लावण्यायोग्य (predictable) झाला. आता त्याला कामाच्या मध्यभागी तुमच्या आवडीनिवडी पुन्हा शोधण्याची गरज पडत नाही.

वारंवार कराव्या लागणाऱ्या कामांचा वेळ आता कमी झाला आहे. असिस्टंट वेगाने काम करतो कारण तो प्रत्येक वेळी रिकाम्या मॉडेलपासून सुरुवात करत नाही.

सतत चालणारा थ्रेड आणि शिकणारी प्रणाली (system) यामध्ये गल्लत करू नका.

सेशन संभाषण जिवंत ठेवते. मेमरी उपयुक्त धडे जिवंत ठेवते.

जर तुम्ही कोडिंग एजंट्स बनवत असाल, तर स्वतःला विचारा: तुमची प्रणाली थ्रेड लक्षात ठेवत आहे की यशस्वी कार्यपद्धती?

स्रोत: https://dev.to/codekingai/my-coding-agent-remembered-sessions-not-work-that-was-the-bug-2fig