મારા કોડિંગ એજન્ટે સેશન્સ યાદ રાખ્યા, કામ નહીં

એક કોડિંગ એજન્ટ થ્રેડને જીવંત રાખી શકે છે છતાં પણ તે ભૂલવત્ હોવાનો અનુભવ આપી શકે છે.

CliGate બનાવતી વખતે મને આ સમસ્યાનો સામનો કરવો પડ્યો હતો. મેં સેશન કન્ટીન્યુટી (session continuity) સુધારી દીધી, પરંતુ વારંવાર કરવા પડતા કાર્યો (repeated tasks) હજુ પણ ધીમા હતા.

એજન્ટે વાતચીત યાદ રાખી હતી, પરંતુ તેણે કામ યાદ રાખ્યું નહોતું.

સેશન કન્ટીન્યુટી એક સમસ્યાનો ઉકેલ લાવે છે. તે નીચે મુજબના ફોલો-અપ કમાન્ડ્સની મંજૂરી આપે છે:

  • continue
  • આ ફાઇલ માટે પણ એ જ કરો
  • તેને ફરીથી પ્રયાસ કરો
  • ભૂલ સમજાવો

આ ફ્લો (flow) માટે મહત્વનું છે. પરંતુ જ્યારે તમે દિવસો પછી કોઈ વર્કફ્લો (workflow) ફરીથી કરો છો, ત્યારે તે નિષ્ફળ જાય છે.

જો એજન્ટ શીખે છે કે કયું બટન કામ કરે છે અથવા કયો સ્ટેપ નિષ્ફળ જાય છે (dead end), તો માત્ર એક સેશન પૂરતું નથી. એજન્ટને એ યાદ રાખવાની જરૂર છે કે છેલ્લી વખત શું સફળ રહ્યું હતું.

પ્રથમ રન (run) સૌથી મોંઘું હોય છે. તે સમયે જ એજન્ટ નાની વિગતો શોધે છે:

  • એક ચોક્કસ મેનૂમાં કોઈ એક્શન છુપાયેલું હોય છે
  • એડિટર એક iframe છે
  • પ્રોજેક્ટ માટે ચોક્કસ રિપ્લાય સ્ટાઇલની જરૂર હોય છે
  • એન્વાયરમેન્ટ URL પ્રોડક્શનથી અલગ હોય છે

મારા ફિક્સ (fix) પહેલા, આ વિગતો માત્ર રો (raw) લોગ્સ હતી. એજન્ટ પાસે હિસ્ટ્રી હતી, પરંતુ ફરીથી ઉપયોગ કરી શકાય તેવી મેમરી (reusable memory) નહોતી. તેણે દર વખતે એ જ તથ્યો ફરીથી શોધવા પડતા હતા. તે બુદ્ધિશાળીપણું નથી. તે એક જ કામ માટે બે વાર કિંમત ચૂકવવા સમાન છે.

ખોટી પદ્ધતિ વધુ હિસ્ટ્રી સેવ કરવી અને મોડેલ તેનો ઉપયોગ કરશે તેવી આશા રાખવી તે છે. આનાથી નોઈઝ (noise) પેદા થાય છે.

મને એક નાનું, ફરીથી ઉપયોગ કરી શકાય તેવું લેયર (layer) જોઈતું હતું. મેં બધું જ સેવ કરવાને બદલે નીચેની બાબતો સેવ કરવાનું શરૂ કર્યું:

  • પ્રોસિજર (procedures): શ્રેષ્ઠ સ્ટેપ્સ અને જાણીતા નિષ્ફળ સ્ટેપ્સ
  • ફેક્ટ્સ (facts): URLs, નિયમો અથવા સેટિંગ્સ
  • ડાયરેક્ટિવ્સ (directives): તમે વસ્તુઓ કેવી રીતે કરવા માંગો છો
  • રેફરન્સિસ (references): ડોક્યુમેન્ટેશન ક્યાં છે

આનાથી સિસ્ટમ બદલાઈ ગઈ. એક વિશાળ ટ્રાન્સક્રિપ્ટ વાંચવાને બદલે, આસિસ્ટન્ટ ફાઇલ-આધારિત મેમરી લેયરનો ઉપયોગ કરે છે.

હું પરફેક્ટ રિપ્લે (replay) નહોતો ઈચ્છતો કારણ કે ઇન્ટરફેસ બદલાય છે અને બટનો ખસે છે. મારે એક લૂપ (loop) જોઈતું હતું:

  • અગાઉની શ્રેષ્ઠ પ્રોસિજર યાદ કરો
  • પહેલા તેને પ્રયાસ કરો
  • દરેક સ્ટેપ તપાસો
  • જો તે નિષ્ફળ જાય, તો ફરીથી એક્સપ્લોરેશન (exploration) પર જાઓ
  • સફળતા પછી મેમરી અપડેટ કરો

મેં સેશન હિસ્ટ્રીથી કાયમી નિયમોને પણ અલગ કર્યા. "પ્રોડક્શન ડેટાને અડશો નહીં" જેવા નિયમો વાતચીતનો સંદર્ભ (context) નથી. તે ઓપરેટિંગ નિયમો છે. તેમને અલગ કરવાથી આસિસ્ટન્ટ વધુ અનુમાનિત (predictable) બને છે.

પરિણામ: વારંવાર કરવા પડતા કાર્યો ટૂંકા બન્યા. આસિસ્ટન્ટ ઝડપથી કામ કરે છે કારણ કે તે ખાલી ટેક્ટિકલ મોડેલ (tactical model) સાથે શરૂઆત કરતું નથી.

જો તમે કોડિંગ એજન્ટ્સ બનાવો છો, તો થ્રેડ (thread) અને લર્નિંગ (learning) વચ્ચે ભૂલ ન કરો.

  • સેશન કન્ટીન્યુટીમાં મદદ કરે છે.
  • મેમરી વારંવાર કરવા પડતા કામમાં મદદ કરે છે.

સેશન વાતચીતને જીવંત રાખે છે. મેમરી લેયર પાઠોને જીવંત રાખે છે.

શું તમારી સિસ્ટમ થ્રેડ યાદ રાખી રહી છે, કે તે સફળ પ્રોસિજર યાદ રાખી રહી છે?

Source: https://dev.to/codekingai/my-coding-agent-remembered-sessions-not-work-that-was-the-bug-2fig