Helium Agent രൂപകൽപ്പന ചെയ്യുന്നു
Python ഉപയോഗിച്ച് നിർമ്മിച്ച ഒരു ലഘുവായ (lightweight) AI ഏജന്റാണ് Helium Agent. ഇത് നിങ്ങളുടെ ടെർമിനലിൽ പ്രവർത്തിക്കുന്നു. കുറഞ്ഞ സങ്കീർണ്ണതയ്ക്കായി (minimum complexity) ആണ് ഇത് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.
നിർമ്മാണ വേളയിലെ പ്രധാന ഡിസൈൻ തീരുമാനങ്ങൾ താഴെ പറയുന്നവയാണ്:
• Architecture
ഈ സിസ്റ്റം ഒരു ഫ്ലാറ്റ് ആർക്കിടെക്ചർ (flat architecture) ആണ് ഉപയോഗിക്കുന്നത്. ഭാരമേറിയ ഫ്രെയിംവർക്കുകളും സങ്കീർണ്ണമായ ഡിപെൻഡൻസി ട്രീകളും ഞാൻ ഒഴിവാക്കുന്നു. OpenAI ഫംഗ്ഷൻ കോളിംഗിന് പകരം <action> പോലുള്ള XML ടാഗുകൾ ഞാൻ ഉപയോഗിക്കുന്നു. ഇത് ഏജന്റിനെ ഏത് മോഡലിനും അനുയോജ്യമായ രീതിയിൽ (model agnostic) നിലനിർത്തുന്നു. നിങ്ങൾക്ക് ഏത് LLM-ഉം ഉപയോഗിക്കാം.
• Composability through Dependency Injection AgenticLoop എന്ന് വിളിക്കുന്ന ലളിതമായ ഒരു ലൂപ്പ് ഞാൻ ഉപയോഗിക്കുന്നു. ഇതിന് രണ്ട് ഇൻപുട്ടുകൾ ആവശ്യമാണ്: ഒരു മോഡൽ കോളറും (model caller) ഒരു ടൂൾ എക്സിക്യൂട്ടറും (tool executor). ഈ ഒരു തീരുമാനം നാല് വ്യത്യസ്ത രീതികൾ സാധ്യമാക്കുന്നു:
- General chat
- Coding workflows
- Subagents
- Custom skills ഞാൻ സബ്ക്ലാസുകളോ സങ്കീർണ്ണമായ പാറ്റേണുകളോ ഉപയോഗിക്കുന്നില്ല. രണ്ട് ലളിതമായ ഫംഗ്ഷനുകൾ മാത്രം.
• State Management Helium ഒരു സിംഗിൾ-യൂസർ ടൂളാണ്. സംഭാഷണ ചരിത്രത്തിനും (conversation history) മെമ്മറിക്കും വേണ്ടി ഞാൻ മോഡ്യൂൾ-ലെവൽ സിംഗിൾറ്റണുകൾ (module-level singletons) ഉപയോഗിക്കുന്നു. ഒരു സിംഗിൾ യൂസർ സെഷനെ പ്രതിനിധീകരിക്കാനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗമാണ് ഗ്ലോബൽ സ്റ്റേറ്റ് (Global state). ഇത് ഓവർ-എഞ്ചിനീയറിംഗ് ഒഴിവാക്കുന്നു.
• Safety Gates ടൂൾ എക്സിക്യൂഷനായി ഞാൻ മൂന്ന് തലങ്ങളുള്ള (three-tier) ഒരു സിസ്റ്റം ഉപയോഗിക്കുന്നു:
- Safe: ഫയലുകൾ വായിക്കുകയോ സെർച്ച് ചെയ്യുകയോ പോലുള്ള ജോലികൾ സ്വയമേവ ചെയ്യുന്നു.
- Risky: ഫയലുകൾ എഴുതുന്നത് പോലുള്ള ജോലികൾക്ക് ഉപയോക്താവിന്റെ അനുമതി ആവശ്യമാണ്.
- Conditional: ബാഷ് സ്ക്രിപ്റ്റുകൾ പോലുള്ള കമാൻഡുകളിൽ അപകടസാധ്യതയുണ്ടോ എന്ന് പരിശോധിക്കുന്നു. ഇത് ഒരു ഹാളുസിനേറ്റിംഗ് മോഡൽ (hallucinating model) നിങ്ങളുടെ ഫയലുകൾ ഡിലീറ്റ് ചെയ്യുന്നത് തടയുന്നു.
• Communication OpenAI SDK-ക്ക് പകരം ഞാൻ റോ (raw) HTTP റിക്വസ്റ്റുകളാണ് ഉപയോഗിക്കുന്നത്. ഇത് ഡിപെൻഡൻസികൾ കുറയ്ക്കുകയും കോഡ് സുതാര്യമായി നിലനിർത്തുകയും ചെയ്യുന്നു. API-ലേക്ക് കൃത്യമായി എന്താണ് പോകുന്നത് എന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും.
• Skill System സ്കില്ലുകൾ വെറും മാർക്ക്ഡൗൺ (Markdown) ഫയലുകൾ മാത്രമാണ്. YAML frontmatter ഉള്ള ഒരു ടെക്സ്റ്റ് ഫയൽ എഴുതിക്കൊണ്ട് നിങ്ങൾക്ക് പുതിയൊരു സ്കിൽ ചേർക്കാം. സങ്കീർണ്ണമായ രജിസ്ട്രേഷൻ API ഇതിലില്ല. ഇത് പ്ലഗിൻ സിസ്റ്റം ആർക്കും എളുപ്പത്തിൽ ഉപയോഗിക്കാൻ സഹായിക്കുന്നു.
• Lessons Learned
- ഡിപെൻഡൻസി ഇൻജക്ഷൻ ലളിതമായ കോമ്പോസിബിലിറ്റി നൽകുന്നു.
- സിസ്റ്റം പ്രോംപ്റ്റ് (System prompt) ആണ് നിങ്ങളുടെ API. അതിനെ ഒരു പ്രധാന കോഡ് ഭാഗമായി പരിഗണിക്കുക.
- സർക്കുലർ ഡിപെൻഡൻസികൾ പരിഹരിക്കാൻ ലേസി ഇംപോർട്ടുകൾ (lazy imports) ആവശ്യമായി വരുന്നുണ്ടെങ്കിൽ, നിങ്ങളുടെ മോഡ്യൂൾ അതിരുകൾ (module boundaries) തെറ്റാണ്. പകരം ആർക്കിടെക്ചർ ശരിയാക്കുക.
ലളിതമായിരിക്കുക എന്നത് വലിയ കാര്യങ്ങൾ ചെയ്യാൻ സഹായിക്കുന്നു. നിങ്ങളുടെ പ്രത്യേക ആവശ്യത്തിന് അനുയോജ്യമായ ഏറ്റവും ലളിതമായ പരിഹാരം തിരഞ്ഞെടുക്കുക.
Source: https://dev.to/debmalyasen34/designing-helium-agent-1b39
Optional learning community: https://t.me/GyaanSetuAi
