AI ഏജന്റുകളോട് ചോദിക്കുന്നതും ചുമതലപ്പെടുത്തുന്നതും തമ്മിലുള്ള വ്യത്യാസം

മിക്ക ഡെവലപ്പർമാരും AI-യെ ഉപയോഗിക്കുന്നത് Stack Overflow-ന്റെ ഒരു സ്മാർട്ട് വേർഷൻ പോലെയാണ്.

നിങ്ങൾ ഒരു ചോദ്യം ടൈപ്പ് ചെയ്യുന്നു. നിങ്ങൾക്ക് ഒരു ഉത്തരം ലഭിക്കുന്നു. പിന്നീട് നിങ്ങൾ തന്നെ ആ ജോലി ചെയ്യുന്നു. ഈ രീതി സാവധാനത്തിലുള്ളതാണ്.

ഇതിനേക്കാൾ വേഗത്തിലുള്ള ഒരു വഴിയുണ്ട്. നിങ്ങൾ ചോദിക്കുന്നത് നിർത്തി ചുമതലപ്പെടുത്താൻ (delegating) തുടങ്ങണം.

നിങ്ങൾ ഒരു AI-യോട് ചോദിക്കുമ്പോൾ: "എന്റെ auth module-ന് വേണ്ടി എങ്ങനെ ടെസ്റ്റുകൾ എഴുതാം?" നിങ്ങൾക്ക് ഒരു വിശദീകരണം ലഭിക്കുന്നു. എങ്കിലും ടെസ്റ്റുകൾ നിങ്ങൾ തന്നെയാണ് എഴുതേണ്ടത്. ജോലി നിങ്ങൾ തന്നെ ചെയ്യേണ്ടി വരുന്നു.

നിങ്ങൾ ഒരു AI ഏജന്റിന് ചുമതല നൽകുമ്പോൾ: "/src/auth.py-ന് വേണ്ടി ടെസ്റ്റുകൾ എഴുതുക. login, logout, invalid token കേസുകൾ ഉൾപ്പെടുത്തുക. അവ റൺ ചെയ്യുക. അവ പരാജയപ്പെട്ടാൽ, പാസ്സാകുന്നത് വരെ കോഡ് ശരിയാക്കുക. എന്തൊക്കെയാണ് മാറ്റം വരുത്തിയതെന്ന് എന്നെ അറിയിക്കുക."

ഏജന്റ് നിങ്ങളുടെ ഫയലുകൾ തുറക്കുന്നു. അത് ടെസ്റ്റുകൾ എഴുതുന്നു. അവ റൺ ചെയ്യുന്നു. പരാജയങ്ങൾ പരിശോധിക്കുന്നു. കോഡ് ശരിയാക്കുന്നു. ഒടുവിൽ പ്രവർത്തിക്കുന്ന ഒരു ടെസ്റ്റ് സ്യൂട്ട് (test suite) നിങ്ങൾക്ക് നൽകുന്നു.

നിങ്ങൾ ഫലം പരിശോധിക്കുന്നു. ജോലി നിങ്ങൾ ചെയ്തില്ല.

ഫലപ്രദമായ രീതിയിൽ ചുമതലപ്പെടുത്താൻ നാല് കാര്യങ്ങൾ ആവശ്യമാണ്:

  • ലക്ഷ്യം (Goal): ഏജന്റ് എന്താണ് നിർമ്മിക്കേണ്ടത്?
  • പരിധി (Scope): ഏതെല്ലാം ഫയലുകളിലോ ഭാഗങ്ങളിലോ ആണ് അത് പ്രവർത്തിക്കേണ്ടത്?
  • വിജയസാധ്യത (Success condition): അത് ശരിയായി ചെയ്തെന്ന് നമുക്ക് എങ്ങനെ അറിയാം?
  • റിപ്പോർട്ട് (Report back): എന്താണ് മാറ്റം വരുത്തിയതെന്നും എന്തുകൊണ്ട് എന്ന് വ്യക്തമാക്കുക.

പ്രായോഗിക ഉദാഹരണങ്ങൾ:

ഡിബഗ്ഗിംഗ് (Debugging): "ഈ എററിന്റെയും (error) സ്റ്റാക്ക് ട്രേസിന്റെയും (stack trace) മൂലകാരണം കണ്ടെത്തുക. അത് പരിഹരിക്കുകയും എവിടെയാണ് പിശക് സംഭവിച്ചതെന്ന് വിശദീകരിക്കുകയും ചെയ്യുക."

റീഫാക്റ്ററിംഗ് (Refactoring): "ഈ ഫയൽ റീഫാക്റ്റർ ചെയ്യുക. പരമാവധി രണ്ട് നെസ്റ്റിംഗ് ലെവലുകൾ (nesting levels) മാത്രം ഉപയോഗിക്കുക. 30 ലൈനുകളിൽ കൂടുതൽ ദൈർഘ്യമുള്ള ഫംഗ്ഷനുകൾ പാടില്ല. എല്ലാ call site-കളും അപ്ഡേറ്റ് ചെയ്യുക."

ഡാറ്റാബേസ് മൈഗ്രേഷൻ (Database migration): "ഈ സ്കീമ മാറ്റത്തിനായി ഒരു idempotent migration script എഴുതുക. അത് വിജയകരമാണെന്ന് ഉറപ്പാക്കാൻ ഒരു ലോക്കൽ ഡാറ്റാബേസിൽ റൺ ചെയ്യുക."

റിവ്യൂയിംഗ് (Reviewing): "ഈ PR diff വായിക്കുക. പ്രൊഡക്ഷനിൽ പരാജയപ്പെടാൻ സാധ്യതയുള്ള കാര്യങ്ങൾ കണ്ടെത്തുക. ഞാൻ വിട്ടുപോയ ടെസ്റ്റുകൾ എഴുതുക."

ഏജന്റുകൾ വേഗതയുള്ളവരാണ്. എന്നാൽ ചിലപ്പോൾ അവ തെറ്റുകൾ വരുത്തിയേക്കാം. അവയുടെ ജോലി പരിശോധിക്കാൻ ഈ മൂന്ന് കാര്യങ്ങൾ ഉപയോഗിക്കുക:

  1. അത് പ്രശ്നം പരിഹരിച്ചോ? കോഡ് റൺ ചെയ്യുക. വെറുതെ വായിച്ചു മാത്രം പോരാ. ടെസ്റ്റുകൾ എക്സിക്യൂട്ട് ചെയ്യുക. എഡ്ജ് കേസ് (edge case) പരാജയങ്ങൾ കണ്ടെത്താൻ കോഡ് റൺ ചെയ്യുക എന്നത് മാത്രമാണ് ഏക വഴി.

  2. അത് നിങ്ങളുടെ കോഡ്ബേസുമായി (codebase) യോജിക്കുന്നുണ്ടോ? നിങ്ങളുടെ ടീമിന്റെ രീതികളെക്കുറിച്ച് (conventions) ഏജന്റിന് അറിയില്ല. അസാധാരണമായ പാറ്റേണുകളോ നിങ്ങളുടെ ടീം ഒഴിവാക്കുന്ന ലൈബ്രറികളോ ഔട്ട്‌പുട്ടിൽ ഉണ്ടോ എന്ന് പരിശോധിക്കുക.

  3. അത് നിശ്ചയിച്ച പരിധിക്ക് പുറത്തുള്ള കാര്യങ്ങളിൽ മാറ്റം വരുത്തിയോ? ഏജന്റ് ഏതെല്ലാം ഫയലുകളാണ് മാറ്റം വരുത്തിയതെന്ന് പരിശോധിക്കുക. ഒരു ജൂനിയർ ഡെവലപ്പർ അയക്കുന്ന PR പോലെ ആ diff വായിക്കുക. സഹായിക്കാൻ ശ്രമിക്കുന്നതിനിടയിൽ അത് മറ്റ് കാര്യങ്ങൾ തകരാറിലാക്കിയിട്ടില്ലെന്ന് ഉറപ്പാക്കുക.

ജോലി ചെയ്യുന്നതിൽ നിന്ന് ലക്ഷ്യം നിശ്ചയിക്കുന്നതിലേക്കും ഫലം പരിശോധിക്കുന്നതിലേക്കും നിങ്ങളുടെ ജോലി മാറുന്നു. നിങ്ങൾ വിവേചനാധികാരം (judgment) നൽകുന്നു, ഏജന്റ് വേഗത നൽകുന്നു.

Source: https://dev.to/omerberatsezer/asking-vs-delegating-agents-43ii

Optional learning community: https://t.me/GyaanSetuAi