నా కోడింగ్ ఏజెంట్ ప్రతి చిన్న అడుగు కోసం అనుమతి అడుగుతోంది
నా AI అసిస్టెంట్కు ఒక పెద్ద సమస్య ఉంది. అది అనుమతి అడగడానికి నిరాకరించలేదు, కానీ అనుమతిని మరీ ఎక్కువగా అడుగుతోంది.
నేను దానికి PDF చదవడం వంటి ఒక చిన్న పనిని ఇస్తే, ఆ అసిస్టెంట్ ఒక అడుగు వేసి, ఆమోదం కోసం అడుగుతుంది, కమాండ్ను రన్ చేస్తుంది, ఆ వెంటనే తదుపరి చిన్న అడుగు కోసం మళ్ళీ అడుగుతుంది. ఒక చిన్న పని, వరుసగా వచ్చే ప్రాంప్ట్ల చక్రంలో చిక్కుకుపోయింది.
ఆమోద ప్రాంప్ట్లు (Approval prompts) అవసరమే. కమాండ్లను రన్ చేసే ముందు, ఫైల్లను రాసే ముందు లేదా యాప్లను ఓపెన్ చేసే ముందు లోకల్ అసిస్టెంట్ ఆగాలని మీరు కోరుకుంటారు. కానీ నిజమైన పనికి చాలా దశలు అవసరం. ఒక PDFని చదవాలంటే Python ఉందో లేదో తనిఖీ చేయడం, కన్వర్టర్ను కనుగొనడం, ఆ కన్వర్టర్ను రన్ చేయడం మరియు టెక్స్ట్ను చదవడం వంటివి చేయాల్సి ఉంటుంది.
ప్రతి చిన్న అడుగు కోసం అనుమతి అడిగితే, మీరు రిస్క్ను అంచనా వేయడం మానేస్తారు. ఆ అంతరాయాలను తొలగించుకోవడానికే మీరు వాటిని క్లిక్ చేయడం ప్రారంభిస్తారు. ఇది భద్రతా వ్యవస్థను (safety system) విస్మరించడానికి మిమ్మల్ని అలవాటు చేస్తుంది. అసలు భద్రత లేకపోవడం కంటే ఇది మరింత ప్రమాదకరం.
పాత వర్క్ఫ్లో ఇలా ఉండేది:
- అసిస్టెంట్ ఒక టూల్ను ఎంచుకుంటుంది
- పాలసీ ప్రకారం కన్ఫర్మేషన్ అవసరం
- యూజర్ ఆమోదిస్తారు
- టూల్ రన్ అవుతుంది
- తదుపరి టూల్ కోసం అసిస్టెంట్ మళ్ళీ అడుగుతుంది
అసిస్టెంట్ యూజర్ యొక్క ఉద్దేశ్యాన్ని అర్థం చేసుకోలేకపోయింది. మీరు ఒక చిన్న ప్రయత్నాన్ని మాత్రమే ఆమోదించడం లేదు, ఒక పూర్తి పనిని ఆమోదిస్తున్నారు.
నేను CliGate పనితీరును మార్చాను. ఇప్పుడు, చాట్లో మీరు మొదటి చర్యను ఆమోదించిన తర్వాత, సిస్టమ్ ఒక ఫ్లాగ్ను (flag) సెట్ చేస్తుంది. దీనివల్ల తదుపరి దశలు కొత్త ఆమోదాల అవసరం లేకుండా కొనసాగుతాయి. అసిస్టెంట్కు నిజమైన ఫలితాలు అందుతాయి, తద్వారా అది పనిని కొనసాగించగలదు.
నేను ఒక ఎస్కేప్ హ్యాచ్ (escape hatch): /safe ను కూడా జోడించాను. ఈ కమాండ్ స్పష్టమైన కన్ఫర్మేషన్ మోడ్ను మళ్ళీ ఆన్ చేస్తుంది.
నేను ఒక లాంగ్వేజ్ బగ్ను కూడా సరిచేశాను. సిస్టమ్ ఒక పనిని కొనసాగించినప్పుడు, అది కొన్నిసార్లు ప్రాంప్ట్ల భాషను మార్చేది. మీరు చైనీస్ మాట్లాడితే, అసిస్టెంట్ తదుపరి ప్రాంప్ట్ కోసం ఇంగ్లీష్లోకి మారిపోయేది. ఇప్పుడు, సరైన భాషను ఎంచుకోవడానికి అసిస్టెంట్ మీ చివరి సందేశాన్ని చూస్తుంది.
పరిష్కారం ఆమోదాలను నిలిపివేయడం కాదు. యూజర్ ఎందుకు ఆమోదం ఇచ్చారో గుర్తుంచుకోవడమే అసలైన పరిష్కారం.
లోకల్ టూల్స్ కోసం, టాస్క్-స్కోప్డ్ ట్రస్ట్ (task-scoped trust) ఉపయోగించండి:
- ప్రధానమైన బౌండరీని దాటకముందే అడగండి
- ప్రస్తుత టాస్క్ కోసం ఇచ్చిన ఆమోదాన్ని గుర్తుంచుకోండి
- స్ట్రిక్ట్ మోడ్కు (strict mode) తిరిగి వెళ్లడానికి ఒక మార్గాన్ని అందించండి
- సిస్టమ్ మెసేజ్లు యూజర్ ఉద్దేశ్యాన్ని మార్చనివ్వకండి
CliGateలో నేను ఆమోదాలను ఇలా రూపొందిస్తాను. ఇది Claude Code, Codex CLI మరియు Gemini CLI ల కోసం నా లోకల్ కంట్రోల్ ప్లేన్ (local control plane).
మీరు అప్రూవల్ ఫ్యాటిగ్ (approval fatigue) ను ఎలా ఎదుర్కొంటారు? మీరు ప్రతి టూల్ కాల్కు, ప్రతి టాస్క్కు లేదా ప్రతి సెషన్కు ఆమోదం తెలుపుతారా?
నా కోడింగ్ ఏజెంట్ ప్రతి చిన్న అడుగు కోసం అనుమతి అడుగుతోంది
నేను ఇటీవల వివిధ AI కోడింగ్ ఏజెంట్లతో ప్రయోగాలు చేస్తున్నాను, అవి అద్భుతంగా పనిచేస్తున్నప్పటికీ, నేను ఒక విసుగు కలిగించే సమస్యను ఎదుర్కొన్నాను: నా ఏజెంట్ ప్రతి చిన్న అడుగు కోసం అనుమతి అడుగుతోంది.
మైక్రో-మేనేజర్ సమస్య
ఏజెంట్ ప్రతిసారి ఇవి చేయాలనుకున్నప్పుడు:
- కొత్త ఫైల్ను సృష్టించడం
- టెర్మినల్ కమాండ్ను రన్ చేయడం
- డైరెక్టరీని చదవడం
- కోడ్ లైన్ను ఎడిట్ చేయడం
అది ఆగి ఇలా అడిగేది: "నేను ఈ చర్యను చేయవచ్చా?"
ఈ నిరంతర అంతరాయం నా ఫ్లోను దెబ్బతీసింది. అది ఒక కో-పైలట్లా కాకుండా, నేను నిరంతరం పర్యవేక్షించాల్సిన ఒక మైక్రో-మేనేజర్లా అనిపించింది.
పరిష్కారం: స్వయంప్రతిపత్తి (Autonomy)
సమస్య ఏజెంట్ సామర్థ్యంలో లేదు, దాని కాన్ఫిగరేషన్లో ఉందని నేను గ్రహించాను. నేను దాని స్వయంప్రతిపత్తి స్థాయిని (autonomy level) సర్దుబాటు చేయాల్సి ఉంది.
కొన్ని కమాండ్లను స్పష్టమైన అనుమతి లేకుండానే అమలు చేయడానికి ఏజెంట్కు అనుమతి ఇవ్వడం ద్వారా, వర్క్ఫ్లో చాలా సులభంగా మారింది.
నేర్చుకున్న పాఠాలు
- నమ్మండి కానీ తనిఖీ చేయండి: అది పని చేయడానికి తగినంత స్వేచ్ఛను ఇవ్వండి, కానీ లాగ్లను గమనిస్తూ ఉండండి.
- సూక్ష్మ స్థాయి అనుమతులు (Granular permissions): అది ఏమి చేయగలదు మరియు ఏమి చేయలేకదు అనే నియమాలను సెట్ చేయండి.
- సందర్భం (Context) కీలకం: మీరు ఎంత ఎక్కువ సందర్భాన్ని అందిస్తే, అది అంత తక్కువ ప్రశ్నలు అడుగుతుంది.