ஒரே ஒரு ஐகான் மட்டுமே கொண்ட முட்டுக்கட்டை

ஒரு தீவிரமான கோடிங் அமர்வின் போது உங்கள் திரையை கற்பனை செய்து பாருங்கள். ஒரு டெர்மினல் டேப்பில், Claude Code ஒரு React கூறுகளை (component) மாற்றியமைத்துக் (refactoring) கொண்டிருக்கிறது. மற்றொன்றில், Codex ஒரு Python மாட்யூலை மீண்டும் எழுதிக்கொண்டிருக்கிறது. மூன்றாவது ஏஜென்ட் யூனிட் டெஸ்ட்களை (unit tests) உருவாக்கி வருகிறது, நான்காவது ஒரு API கீய்க்காகக் காத்திருக்கிறது, மற்றும் ஐந்தாவது ஏஜென்ட் ஒரு பின்னணி லின்டர் (linter) சோதனையைத் தற்போதுதான் முடித்துள்ளது. உங்கள் மெனு பார் (menu bar) — அல்லது நீங்கள் பயன்படுத்தும் சிஸ்டம் ட்ரே (system tray) — சரியாக ஒரு நிலை ஐகானுக்காக (status icon) மட்டுமே இடமளிக்கிறது. ஒரு சிறிய புள்ளி அல்லது லேபிள் அந்த முழு கூட்டத்தையும் (swarm) பிரதிநிதித்துவப்படுத்த வேண்டும் என்று எதிர்பார்க்கப்படுகிறது. கேள்வி என்னவென்றால், எந்த அமர்வு (session) அந்த இடத்தைப் பெறுகிறது என்பதே.

கடைசியாக இயங்கிய அமர்வைக் காட்டுவதே எளிதான பதிலாகும். இது பகுத்தறிவுமிக்கதாகத் தோன்றலாம். ஏதோ ஒன்று நிகழ்ந்துவிட்டது, எனவே அது முன்னுக்கு வருகிறது. அந்த உள்ளுணர்வு தவறானது, அது உங்களுக்குப் பாதிப்பை ஏற்படுத்தும். ஒரு பின்னணி ஃபைல் வாட்சர் (file watcher) ஒரு டைம்ஸ்டாம்பை (timestamp) புதுப்பிப்பது என்பது உதவிக்கான அழைப்பு அல்ல. அதே நேரத்தில், பத்து நிமிடங்களுக்கு முன்பு ஒரு அனுமதி பிழையை (permission error) சந்தித்த ஒரு அமர்வு, நீங்கள் "yes" என்று தட்டச்சு செய்வதற்கோ அல்லது ஒரு பாதையை (path) சரிசெய்வதற்கோ காத்திருக்கும் நிலையில் கண்ணுக்குத் தெரியாமல் இருக்கலாம். நீங்கள் சமீபத்திய நிகழ்வுகளின் அடிப்படையில் வரிசைப்படுத்தினால், உங்கள் மூளை தேவைப்படும் மிக முக்கியமான விஷயத்தையே மறைத்துவிடுவீர்கள். நீங்கள் செயல்படக்கூடிய தன்மையின் (actionability) அடிப்படையில் வரிசைப்படுத்த வேண்டும்.

ஏன் சமீபத்திய நிகழ்வுகள் தோல்வியடைகின்றன

டெவலப்பர்கள் டைம்ஸ்டாம்புகளைப் பயன்படுத்துகிறார்கள், ஏனெனில் அவை எளிதானவை. ஒவ்வொரு சிஸ்டமும் அவற்றை உருவாக்குகிறது, ஒவ்வொரு தரவுத்தளமும் (database) அவற்றை வரிசைப்படுத்துகிறது, மேலும் வரிசைப்படுத்துவது என்பது ஒரு வரியிலான குறியீடு மட்டுமே. ஆனால் நீங்கள் பல சுதந்திரமான பணியாளர்களை (independent workers) ஒருங்கிணைக்கத் தொடங்கும் தருணத்தில், இந்த எளிமை பயன் தராமல் போய்விடும்.

இதோ ஒரு தெளிவான தோல்வி முறை. ஐந்தாவது அமர்வு ஒரு லாக் வரியை (log line) இப்போதுதான் சேர்த்துள்ளது, ஏனெனில் அதன் டிபென்டென்சி வாட்சர் (dependency watcher) node_modules-இல் ஒரு கோப்பு மாற்றத்தைக் கவனித்துள்ளது. அதன் டைம்ஸ்டாம்ப் இப்போது புதுப்பிக்கப்பட்டுள்ளது. இருப்பினும், இரண்டாவது அமர்வு மூன்று நிமிடங்களுக்கு முன்பு உங்களிடம் ஒரு கேள்வியைக் கேட்டது: "Should I install this package? (y/n)". நீங்கள் இன்னும் பதிலளிக்கவில்லை. உங்கள் மெனு பார் புதிய அமர்வைக் காட்டினால், ஐந்தாவது அமர்விற்கு பச்சை நிற ஒளி கிடைக்கும், மேலும் இரண்டாவது அமர்வு பட்டியலிலிருந்து மறைந்துவிடும். எதுவும் பழுதானது போல் தெரியாது. இருப்பினும், உங்களுக்குத் தேவையில்லாத ஒரு லின்டரை நீங்கள் கண்காணித்துக் கொண்டிருக்கும்போது, உங்கள் ஏஜென்ட்களில் ஒன்று உங்கள் முடிவிற்காகத் தத்தளித்துக் கொண்டிருக்கிறது.

சமீபத்திய நிகழ்வுகள் இயக்கத்தை (motion) அளவிடுகின்றன. அவசரத் தேவை (urgency) என்பது பொருளைக் (meaning) கோருகிறது. ஒரு ஃபைல் எழுதும் செயல் உங்களுக்கு ஒரு பணியை உருவாக்காதவரை அதற்குத் தனிப்பட்ட பொருள் ஏதுமில்லை. மறுபுறம், காத்திருக்கும் ஒரு ப்ராம்ப்ட் (prompt) என்பது தூய செயல்படக்கூடிய தன்மை (actionability) ஆகும். பின்னணியில் விஷயங்கள் மாறுவதைப் பார்த்துக் கொண்டே நீங்கள் குறியீட்டை (code) வெளியிடு ვერ முடியாது. தடைகளை (blockers) நீக்குவதன் மூலமே நீங்கள் அதை வெளியிடுவீர்கள். சிந்தனையில் முதல் மாற்றம் எளிமையானது: டைம்ஸ்டாம்பை ஒரு சமநிலையைத் தீர்மானிக்கும் காரணியாக (tiebreaker) மட்டுமே கருதுங்கள், ஒரு முதன்மை சமிக்ஞையாக (primary signal) ஒருபோதும் கருதாதீர்கள்.

முதலில் வகைப்படுத்துங்கள், பிறகு வரிசைப்படுத்துங்கள்

சிறந்த அணுகுமுறை என்பது இரண்டு படிநிலை வடிகட்டி (two-step filter) ஆகும். முதலாவதாக, ஒவ்வொரு அமர்வும் உங்களிடமிருந்து எதை எதிர்பார்க்கிறது என்பதன் அடிப்படையில் அதற்கு ஒரு லேபிளை இடுங்கள். இரண்டாவதாக, அந்த லேபிள்களை வரிசைப்படுத்துங்கள். இரண்டு அமர்வுகள் ஒரே லேபிளைப் பகிர்ந்து கொண்டால் மட்டுமே நீங்கள் நேரத்தைப் பார்க்க வேண்டும்.

இது உங்கள் பணிப்பாய்விற்குள் (workflow) "அவசரம்" என்பதன் உண்மையான அர்த்தத்தை வரையறுக்க உங்களைத் தூண்டுகிறது. ஒரு ரேட்-லிமிட்டட் (rate-limited) அமர்வு அவசரமானது அல்ல; அது உறங்கிக் கொண்டிருக்கிறது. ஒரு வேலை செய்யும் அமர்வு பிஸியாக இருக்கலாம், ஆனால் அதற்கு ஒரு முடிவு தேவைப்படவில்லை என்றால், அது அமைதியாகத் தொடர்ந்து கணக்கீடுகளைச் செய்ய முடியும். ஒரு தத்தளிக்கும் (stalled) அமர்வு அவசரமானது, ஏனெனில் பிழைகள் காலாவதியாகிவிடும் (errors rot). பதிலளிக்கப்படாத ஒரு ஒப்படைப்பு (handoff) அவசரமானது, ஏனெனில் அடுத்த கட்டத்திற்கு நீங்களே பொறுப்பு மற்றும் நீங்கள் செயல்படும் வரை ஏஜென்ட்டால் முன்னேற முடியாது.

வகைப்படுத்துதல் உங்கள் மெனு பாரை ஒரு செய்தித் தொகுப்பிலிருந்து (news feed) ஒரு பணிப் பட்டியலாக (task list) மாற்றுகிறது. வரிசைப்படுத்தும் படிநிலை பின்னர் இயந்திரத்தனமானதாக (mechanical) மாறுகிறது. ஒரு முடக்கப்பட்ட பணியாளர் (blocked worker), ஒரு பிஸியான பணியாளரை விட முக்கியமானது என்று நீங்கள் ஏற்கனவே முடிவு செய்துவிட்டீர்கள். ஒரு பார்க்கப்படாத கேள்வி, ஒரு பார்க்கப்பட்ட கேள்வியை விட முக்கியமானது என்றும் நீங்கள் ஏற்கனவே முடிவு செய்துவிட்டீர்கள். இரண்டு அமர்வுகள் ஒரே முன்னுரிமை நிலையில் (priority level) இருக்கும்போது மட்டுமே நேரம் முக்கியத்துவம் பெறுகிறது. அப்போதுதான், பழைய அமர்வு வெற்றி பெறும். இது "முதலில் வருபவருக்கே முன்னுரிமை" என்ற நியாயத்திற்காகச் செய்யப்படும் ஒரு சிறிய சலுகை, ஆனால் அது நிலையை (state) ஒருபோதும் மாற்றியமைக்கக் கூடாது.

ஒரு நடைமுறை முன்னுரிமை அளவுகோல்

Agent Island v1.7.1-இல், பல AI அமர்வுகளை இயக்கும் எவரும் பயன்படுத்தக்கூடிய ஐந்து அம்ச அளவுகோலாகக் குழு இதை முறைப்படுத்தியுள்ளது:

  • Unacknowledged needs-you: 4. அமர்வு உங்களிடம் ஏதோ ஒன்றை ஒப்படைத்துள்ளது, ஆனால் நீங்கள் அதை இன்னும் பார்க்கவில்லை. அடுத்த கட்ட நடவடிக்கை உங்களுடையது.
  • Stalled: 3. அமர்வு ஒரு பிழை, அனுமதித் தோல்வி அல்லது மற்றொரு முட்டுக்கட்டையைச் சந்தித்தது. அது தானாகச் சரிசெய்து கொள்ள முடியாது என்பதால் உங்கள் கவனத்தை அது எதிர்பார்க்கிறது.
  • Working: 2. அமர்வு தீவிரமாக கணக்கீடுகளைச் செய்து கொண்டிருக்கிறது. அது உங்களுக்காகக் காத்திருக்கவில்லை, எனவே மிகவும் அவசரமான ஒன்று இல்லாதபோது மட்டுமே இது ஐகானைப் பெறும்.
  • Acknowledged needs-you: 1. நீங்கள் ஏற்கனவே ப்ராம்ப்ட் அல்லது கேள்வியைப் பார்த்துள்ளீர்கள் ஆனால் இன்னும் பதிலளிக்கவில்லை. நீங்கள் அதைத் தெரிந்து வைத்திருப்பதால், அதன் அவசரம் பார்க்கப்படாத இடையூறுகளை விட ஒரு படி குறைகிறது.
  • Idle or rate limited: 0. அமர்வு ஒரு பின்னணிச் சத்தம் போன்றது. அது தனது முறைக்காகக் காத்திருக்கிறது அல்லது எதையும் செய்யாமல் இருக்கிறது.

இந்த அளவுகோல் பயனரின் செயல்களுடன் சரியாகப் பொருந்துகிறது. நீங்கள் ஒரு ஒப்படைப்பை (handoff) முடிக்கும்போது, அமர்வு 'working' அல்லது 'idle' நிலைக்குக் குறைகிறது. ஒரு 'working' அமர்வு பிழையடையும் போது, அது 'stalled' நிலைக்குத் தாவுகிறது. நீங்கள் ஒரு ப்ராம்ப்ட்டை அங்கீகரிக்கக் கிளிக் செய்யும் போது ஆனால் தேவை