𝗠𝘆 𝗖𝗼𝗱𝗶𝗻𝗴 𝗔𝗴𝗲𝗻𝘁 𝗔𝘀𝗸𝗲𝗱 𝗣𝗲𝗿𝗺𝗶𝘀𝘀𝗶𝗼𝗻 𝗳𝗼𝗿 𝗘𝘃𝗲𝗿𝘆 𝗧𝗶𝗻𝘆 𝗦𝘁𝗲𝗽

મારા AI આસિસ્ટન્ટમાં એક મોટી સમસ્યા હતી. તે પરવાનગી માંગવાનો ઇનકાર કરતું નહોતું, પરંતુ તે ખૂબ જ વારંવાર પરવાનગી માંગતું હતું.

હું તેને PDF વાંચવા જેવું સાદું કામ આપતો. આસિસ્ટન્ટ એક ડગલું ભરતું, મંજૂરી માંગતું, કમાન્ડ ચલાવતું અને પછી તરત જ આગલા નાના સ્ટેપ માટે ફરીથી પૂછતું. એક કામ પ્રોમ્પ્ટ્સના અનંત ચક્ર જેવું બની જતું.

મંજૂરી માટેના પ્રોમ્પ્ટ્સ જરૂરી છે. તમે ઈચ્છો છો કે લોકલ આસિસ્ટન્ટ કમાન્ડ્સ ચલાવતા, ફાઇલો લખતા અથવા એપ્સ ખોલતા પહેલા અટકી જાય. પરંતુ વાસ્તવિક કામ માટે ઘણા સ્ટેપ્સની જરૂર હોય છે. PDF વાંચવામાં Python ચેક કરવું, કન્વર્ટર શોધવું, તે કન્વર્ટર ચલાવવું અને ટેક્સ્ટ વાંચવાનો સમાવેશ થાય છે.

જો દરેક સ્ટેપ પર મંજૂરી માંગવામાં આવે, તો તમે જોખમનું મૂલ્યાંકન કરવાનું બંધ કરી દો છો. તમે માત્ર આ અવરોધોને દૂર કરવા માટે સતત ક્લિક કરવાનું શરૂ કરી દો છો. આ તમને સુરક્ષા પ્રણાલીને અવગણવા માટે તાલીમ આપે છે. તે સુરક્ષા ન હોવા કરતાં પણ વધુ જોખમી છે.

જૂની કાર્યપ્રણાલી (workflow) આવી દેખાતી હતી:

આસિસ્ટન્ટ યુઝરના ઈરાદા (intent) ને સમજવામાં નિષ્ફળ જતું હતું. તમે માત્ર એક નાનું પરીક્ષણ મંજૂર નહોતા કરી રહ્યા, પરંતુ તમે એક સંપૂર્ણ કાર્ય મંજૂર કરી રહ્યા હતા.

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

મેં એક એસ્કેપ હેચ (escape hatch) પણ ઉમેર્યું છે: /safe. આ કમાન્ડ સ્પષ્ટ પુષ્ટિ મોડ (explicit confirmation mode) ને ફરીથી ચાલુ કરે છે.

મેં એક ભાષાની ભૂલ (language bug) પણ સુધારી છે. જ્યારે સિસ્ટમ કોઈ કાર્ય ચાલુ રાખતી હતી, ત્યારે તે ક્યારેક પ્રોમ્પ્ટ્સની ભાષા બદલી નાખતી હતી. જો તમે ચાઇનીઝમાં વાત કરતા હોવ, તો આસિસ્ટન્ટ આગલા પ્રોમ્પ્ટ માટે અંગ્રેજીમાં બદલાઈ જતું હતું. હવે, આસિસ્ટન્ટ યોગ્ય ભાષા પસંદ કરવા માટે તમારા છેલ્લા વાસ્તવિક મેસેજને જુએ છે.

ઉકેલ મંજૂરીઓને નિષ્ક્રિય કરવાનો નથી. ઉકેલ એ યાદ રાખવાનો છે કે યુઝરે શા માટે મંજૂરી આપી હતી.

લોકલ ટૂલ્સ માટે, task-scoped trust નો ઉપયોગ કરો:

આ રીતે હું CliGate માં મંજૂરીઓ બનાવી રહ્યો છું. તે Claude Code, Codex CLI, અને Gemini CLI માટે મારું લોકલ કંટ્રોલ પ્લેન છે.

તમે approval fatigue ને કેવી રીતે હેન્ડલ કરો છો? શું તમે દરેક ટૂલ કોલ દીઠ, દરેક કાર્ય દીઠ, અથવા દરેક સેશન દીઠ મંજૂરી આપો છો?

મારા કોડિંગ એજન્ટે દરેક નાના પગલા માટે પરવાનગી માંગી

હાલમાં હું વિવિધ AI કોડિંગ એજન્ટો સાથે પ્રયોગો કરી રહ્યો છું, અને એક બાબત જે મને સતત નડતી રહી છે તે છે તેમની 'સાવચેતી'.

એક એજન્ટ એટલો વધુ સાવધ હતો કે તે દરેક નાની બાબત માટે મારી પરવાનગી માંગતો હતો. એક નવી ફાઇલ બનાવવી? પરવાનગી જોઈએ. એક નાનો કમાન્ડ રન કરવો? પરવાનગી જોઈએ. એક ફાઇલ એડિટ કરવી? પરવાનગી જોઈએ.

આનાથી મારો વર્કફ્લો સંપૂર્ણપણે તૂટી રહ્યો હતો. આને હું "પરવાનગીથી થતો થાક" (permission fatigue) કહીશ. જ્યારે તમે કોઈ એજન્ટ સાથે કામ કરી રહ્યા હોવ, ત્યારે તમે ઈચ્છો છો કે તે તમારા માટે કામ કરે, નહીં કે તમારે તેને દરેક સેકન્ડે 'હા' કહેવી પડે.

સમસ્યા: સતત અવરોધ

જ્યારે હું કોઈ મોટો ટાસ્ક આપું છું, ત્યારે હું અપેક્ષા રાખું છું કે એજન્ટ તે ટાસ્કને નાના ભાગોમાં વિભાજિત કરે અને તેને પૂર્ણ કરવા માટે જરૂરી પગલાં લે. પરંતુ, આ એજન્ટ દરેક પગલા પર અટકી જતું હતું.

આ સતત પૂછપરછથી મારો ફોકસ તૂટી જતો હતો. હું કોડિંગ કરવાને બદલે માત્ર 'Yes' બટન પર ક્લિક કરવામાં વ્યસ્ત થઈ ગયો હતો.

સંતુલન શોધવું: સ્વાયત્તતા વિરુદ્ધ નિયંત્રણ

AI એજન્ટ્સ સાથે કામ કરતી વખતે સૌથી મોટો પડકાર સ્વાયત્તતા (autonomy) અને નિયંત્રણ (control) વચ્ચેનું સંતુલન જાળવવાનો છે.

જો એજન્ટ વધુ પડતી સ્વાયત્તતા ધરાવે છે, તો તે ભૂલો કરી શકે છે અથવા અણધારી રીતે ફાઇલો ડિલીટ કરી શકે છે. જો તે ખૂબ જ ઓછી સ્વાયત્તતા ધરાવે છે, તો તે ઉપયોગી સાધન બનવાને બદલે માત્ર એક અત્યંત ધીમો સહાયક બની જાય છે.

મારો ઉકેલ

મેં જોયું કે આ સમસ્યાને ઉકેલવા માટે બે મુખ્ય રસ્તાઓ છે:

  1. સિસ્ટમ પ્રોમ્પ્ટમાં ફેરફાર: એજન્ટને સ્પષ્ટ સૂચના આપવી કે કયા પ્રકારના કાર્યો માટે તેને પરવાનગીની જરૂર નથી (દા.ત. ફાઇલ વાંચવી અથવા ટેસ્ટ રન કરવા).
  2. સેટિંગ્સ એડજસ્ટ કરવા: ઘણા એજન્ટોમાં 'Auto-approve' ના વિકલ્પો હોય છે. મેં અમુક ચોક્કસ કમાન્ડ્સ માટે તેને ઓટો-એપ્રૂવ કરવા સેટ કર્યા.

અંતે, એક આદર્શ AI કોડિંગ એજન્ટ એ છે જે વિશ્વાસપાત્ર હોય અને જ્યારે ખરેખર જરૂર હોય ત્યારે જ પૂછે, નહીં કે દરેક નાની બાબત માટે.