Progettazione di Helium Agent

Helium Agent è un agente AI leggero costruito con Python. Funziona nel terminale. È progettato per una complessità minima.

Ecco le principali decisioni di progettazione prese durante lo sviluppo:

• Architettura Il sistema utilizza un'architettura piatta. Evito framework pesanti e alberi di dipendenze profondi. Utilizzo tag XML come <action> invece del function calling di OpenAI. Questo rende l'agente indipendente dal modello. È possibile utilizzare qualsiasi LLM.

• Composabilità tramite Dependency Injection Utilizzo un semplice ciclo chiamato AgenticLoop. Accetta due input: un model caller e un tool executor. Questa singola scelta permette quattro modalità diverse:

  • Chat generica
  • Workflow di programmazione
  • Sotto-agenti
  • Skill personalizzate Non utilizzo sottoclassi o pattern complessi. Solo due semplici funzioni.

• Gestione dello Stato Helium è uno strumento per un singolo utente. Utilizzo singleton a livello di modulo per la cronologia della conversazione e la memoria. Lo stato globale è il modo più semplice per rappresentare una singola sessione utente. Evita l'over-engineering.

• Safety Gates Utilizzo un sistema a tre livelli per l'esecuzione degli strumenti:

  • Safe: Esegue automaticamente task come la lettura di file o la ricerca.
  • Risky: Richiede il permesso dell'utente per task come la scrittura di file.
  • Conditional: Ispeziona i comandi, come gli script bash, per verificare la presenza di pericoli. Questo impedisce a un modello che allucina di eliminare i tuoi file.

• Comunicazione Utilizzo richieste HTTP grezze invece dell'SDK di OpenAI. Ciò riduce le dipendenze e mantiene il codice trasparente. Vedrai esattamente cosa viene inviato all'API.

• Sistema di Skill Le skill sono semplici file Markdown. È possibile aggiungere una nuova skill scrivendo un file di testo con YAML frontmatter. Non esiste una complessa API di registrazione. Questo rende il sistema di plugin facile da usare per chiunque.

• Lezioni Apprese

  1. La dependency injection fornisce una composabilità economica.
  2. Il system prompt è la tua API. Trattalo come un elemento di codice di prima classe.
  3. Se hai bisogno di lazy import per risolvere dipendenze circolari, i confini dei tuoi moduli sono errati. Correggi l'architettura.

La semplicità scala. Scegli la soluzione più semplice che funzioni per il tuo caso d'uso specifico.

Fonte: https://dev.to/debmalyasen34/designing-helium-agent-1b39

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