ഏജന്റ് ലൂപ്പ് ചിലവ്: നിങ്ങളുടെ ഓരോ കോളിന്റെയും നിരക്കിനേക്കാൾ 11 ഇരട്ടി
മിക്ക ടീമുകളും ഒരു സിംഗിൾ കോളിന്റെ ചിലവ് നോക്കിയാണ് AI ഏജന്റുകൾക്കായി ബജറ്റ് തയ്യാറാക്കുന്നത്. അവർ ഒരു മില്യൺ ടോക്കണുകൾക്കുള്ള വില നോക്കി ഒരു ആക്ഷന്റെ ചിലവ് കണക്കാക്കുന്നു. ഈ രീതി തെറ്റാണ്.
ഒരു ഏജന്റ് ലൂപ്പിന്റെ ചിലവ് ഒരു സിംഗിൾ കോളിന് തുല്യമല്ല. അതിന്റെ ചിലവ് വളരെ കൂടുതലാണ്.
കാരണം ലളിതമാണ്. ഒരു ഏജന്റ് ഓരോ തവണയും ഒരു ടൂൾ കോൾ (tool call) ചെയ്യുമ്പോൾ, അത് മുഴുവൻ കോൺടെക്സ്റ്റും (context) വീണ്ടും അയക്കുന്നു. നിങ്ങൾ സിസ്റ്റം പ്രോംപ്റ്റിനായി (system prompt) വീണ്ടും പണം നൽകുന്നു. ഓരോ ടൂൾ വിവരണത്തിനും (tool description) വീണ്ടും പണം നൽകുന്നു. സംഭാഷണത്തിന്റെ മുഴുവൻ ചരിത്രത്തിനും (conversation history) വീണ്ടും പണം നൽകുന്നു.
ലൂപ്പ് തുടരുന്നതിനനുസരിച്ച്, പേലോഡ് (payload) വർദ്ധിക്കുന്നു. ചിലവ് ക്വാഡ്രാറ്റിക് ആയി (quadratically) വർദ്ധിക്കുന്നു. നിങ്ങൾ ഒരു സിംഗിൾ കോളിന് മാത്രമല്ല പണം നൽകുന്നത്, മറിച്ച് ഉയർന്നു വരുന്ന ഒരു കർവ്വിന് (curve) താഴെയുള്ള വിസ്തീർണ്ണത്തിനാണ് പണം നൽകുന്നത്.
ഇത് അളക്കുന്നതിനായി ഞാൻ ഒരു ടൂൾ നിർമ്മിച്ചു. loop_forecast.py എന്ന് പേരുള്ള 40 വരികളുള്ള ഒരു Python സ്ക്രിപ്റ്റാണിത്. ഇത് ഓഫ്ലൈൻ ആണ്, കീകൾ ആവശ്യമില്ല, കൂടാതെ നിങ്ങളുടെ JSONL ട്രേസുകൾ (traces) വായിക്കുകയും ചെയ്യും. നിങ്ങളുടെ കോഡ് ഷിപ്പ് ചെയ്യുന്നതിന് മുമ്പ് തന്നെ യഥാർത്ഥ ചിലവ് ഇത് നിങ്ങൾക്ക് പറഞ്ഞുതരും.
എന്റെ ടെസ്റ്റ് റണ്ണിൽ, ഫലങ്ങൾ വ്യക്തമായിരുന്നു:
- ഇൻവോക്കേഷനായുള്ള (invocation) നിരക്ക്: $0.20
- ഓരോ ടാസ്കിനും (task) യഥാർത്ഥത്തിൽ വന്ന ചിലവ്: $2.26
- വ്യത്യാസം: 11.29x
നിങ്ങളുടെ ലൂപ്പ് ചെറുതും ലളിതവുമാണെങ്കിൽ, ടൂൾ ചെറിയൊരു വ്യത്യാസം മാത്രമേ കാണിക്കൂ. എന്നാൽ നിങ്ങളുടെ ലൂപ്പ് സങ്കീർണ്ണമാണെങ്കിൽ, വലിയൊരു വ്യത്യാസം അത് കാണിക്കും. ഇതിനെ ഒരു CI ഗേറ്റ് (CI gate) ആയി നിങ്ങൾക്ക് ഉപയോഗിക്കാം. ചിലവിലെ വ്യത്യാസം വളരെ കൂടുതലാണെങ്കിൽ, ബിൽഡ് പരാജയപ്പെടും.
ഒരു സിംഗിൾ ഇൻഫറൻസ് (inference) അടിസ്ഥാനമാക്കി ബജറ്റ് തയ്യാറാക്കുന്നത് നിർത്തുക. നിങ്ങളുടെ യഥാർത്ഥ ചിലവ് കണ്ടെത്താൻ സ്വന്തം ട്രേസുകൾ ഉപയോഗിക്കുക.
പ്രധാന സവിശേഷതകൾ:
- നെറ്റ്വർക്ക് ആക്സസ്സോ API കീകളോ ആവശ്യമില്ല.
- കൃത്യമായ കണക്കുകൾക്കായി
tiktokenഉപയോഗിക്കുന്നു. - ചിലവ് എങ്ങനെ വർദ്ധിക്കുന്നു എന്ന് കാണിക്കാൻ ഒരു കർവേച്ചർ മെട്രിക് (curvature metric - k) നൽകുന്നു.
- വിശ്വസനീയമായ CI/CD-ക്കായി ഡിറ്റർമിനിസ്റ്റിക് ഔട്ട്പുട്ട് (deterministic output) നൽകുന്നു.
തെറ്റ് സംഭവിക്കുന്നത് യൂണിറ്റുകൾ മാറിപ്പോകുന്നതിലാണ്. ഒരു ടാസ്ക് എന്നാൽ ഒരു കോൾ മാത്രമല്ല. ഒരു ടാസ്ക് എന്നാൽ വർദ്ധിച്ചുവരുന്ന ചിലവുകളോടു കൂടിയ N കോളുകളാണ്.
Source: https://dev.to/alex_spinov/agent-loop-cost-11x-your-per-call-quote-in-40-lines-5dfn
Optional learning community: https://t.me/GyaanSetuAi