Vom porni de la o abstracție a furnizorului de model, apoi vom adăuga înregistrarea de instrumente, memoria de sesiune, hook-uri de ciclu de viață, abilități și un server de instrumente în stil MCP (Model Context Protocol). În loc să folosim un framework extern, vom recrea fiecare componentă de bază pentru a înțelege cum se îmbină mesajele, instrumentele, memoria și răspunsurile modelului. Rezultatul final este o buclă de agent independentă de furnizor, pe care o poți extinde ulterior către furnizori reali de LLM și instrumente de producție.
De ce un agent stil nanobot?
Termenul „nanobot” sugerează ceva mic, modular și eficient. În contextul agenților AI, un agent nanobot este un sistem care combină un model de limbaj cu un set de instrumente și o memorie persistentă, dar care rămâne suficient de ușor pentru a rula pe hardware modest. Google Colab oferă resurse gratuite (GPU, RAM) și un mediu de notebook ideal pentru prototipare rapidă. Construind propriul agent, vei învăța cum funcționează cu adevărat apelurile de funcții (tool calling), cum se gestionează contextul conversației și cum poți expune instrumente externe printr-un protocol standardizat.
Abstracția furnizorului
Primul pas este să creăm o interfață generică pentru furnizorul de model. În loc să legăm agentul direct de un API specific (OpenAI, Anthropic, etc.), definim o clasă abstractă care specifică metodele necesare: `generate_response(messages, tools)`. Aceasta va fi implementată pentru fiecare furnizor. În Colab, putem începe cu un mock simplu care returnează răspunsuri predefinite, apoi să trecem la un model real (de exemplu, folosind API-ul OpenAI sau un model open-source via Hugging Face). Această abstracție ne permite să schimbăm furnizorul fără a rescrie logica agentului.
Înregistrarea instrumentelor
Un agent nu este util doar pentru conversație; el trebuie să poată acționa. Instrumentele (tools) sunt funcții pe care agentul le poate apela. De exemplu, un instrument poate fi o funcție care calculează ceva, care face o căutare pe web sau care trimite un e-mail. Înregistrăm aceste instrumente într-un dicționar, fiecare având un nume, o descriere și o schemă a parametrilor. Când agentul decide să apeleze un instrument, modelul generează un apel de funcție, iar agentul îl execută și returnează rezultatul înapoi în conversație.
Memoria de sesiune
Pentru ca agentul să aibă o conversație coerentă, are nevoie de memorie. Vom implementa o memorie de sesiune simplă care stochează istoricul mesajelor. Aceasta poate fi o listă de dicționare cu rol (user, assistant, tool) și conținut. La fiecare iterație, trimitem întregul istoric modelului, astfel încât acesta să aibă context complet. Pentru a nu depăși limita de tokeni, putem adăuga o funcție de trunchiere care păstrează doar ultimele N mesaje.
Hook-uri de ciclu de viață
Un agent robust are nevoie de puncte de extensie: hook-uri înainte și după fiecare apel de model, după executarea unui instrument, la începutul și sfârșitul sesiunii. Acestea permit adăugarea de logging, validare, sau chiar modificarea comportamentului. De exemplu, un hook „before_tool_call” poate verifica permisiunile, iar un hook „after_response” poate salva conversația într-un fișier.
Abilități (Skills)
Abilitățile sunt colecții de instrumente și prompturi specializate. De exemplu, o abilitate „Cercetare” poate include un instrument de căutare web și un prompt care îi spune agentului să verifice sursele. O abilitate „Cod” poate include un interpretor Python. Înregistrăm abilitățile ca pachete care pot fi activate sau dezactivate dinamic. Agentul poate alege ce abilitate să folosească pe baza intenției utilizatorului.
Server de instrumente MCP
MCP (Model Context Protocol) este un protocol deschis care permite agenților să descopere și să apeleze instrumente de la distanță. Vom construi un server MCP simplu în Python, care expune instrumentele noastre printr-un API REST. Agentul va putea interoga serverul pentru lista de instrumente disponibile și apoi le va apela ca pe orice alt instrument local. Acest lucru deschide posibilitatea de a integra instrumente găzduite pe alte mașini sau servicii cloud.
Implementarea pas cu pas în Google Colab
1. Configurare mediu: Instalăm bibliotecile necesare (requests, json, poate openai sau anthropic).
2. Clasa Provider: Definim interfața cu metode abstracte.
3. Clasa Tool: O clasă simplă care stochează nume, descriere, schemă și funcția de execuție.
4. Clasa SessionMemory: Gestionează istoricul mesajelor, cu metode add_message, get_history, truncate.
5. Clasa Agent: Conține provider, memory, tools, skills, hooks. Metoda principală `run(user_input)` care:
- Adaugă mesajul utilizatorului în memorie.
- Apelează provider.generate cu istoricul și instrumentele disponibile.
- Dacă răspunsul conține apeluri de instrumente, le execută și adaugă rezultatele în memorie, apoi reapelează modelul.
- Repetă până când modelul returnează un răspuns text.
6. Adăugarea hook-urilor: Implementăm decoratori sau metode callback.
7. Server MCP: Folosim Flask sau FastAPI pentru a expune un endpoint /tools și /call_tool.
8. Testare: Rulăm câteva exemple – întrebări simple, apeluri de instrumente, conversații cu memorie.
Exemplu practic
Să presupunem că avem un instrument `calculator` care adună două numere. Utilizatorul spune: „Calculează 5 + 3”. Agentul primește mesajul, îl trimite modelului împreună cu descrierea instrumentului. Modelul decide să apeleze `calculator(5, 3)`. Agentul execută funcția, obține 8, adaugă rezultatul în memorie și reapelează modelul. Acum modelul poate răspunde: „Rezultatul este 8.” Totul se întâmplă în câteva sute de milisecunde.
Extinderea către producție
Deși acest agent este construit pentru Colab, arhitectura sa modulară permite migrarea ușoară. Poți înlocui providerul mock cu unul real (OpenAI, Claude, Gemini), poți adăuga autentificare la serverul MCP, poți stoca memoria într-o bază de date și poți rula agentul ca serviciu web. În plus, poți integra instrumente complexe precum baze de date SQL, API-uri externe sau motoare de căutare.
Concluzie
Construirea unui agent AI de la zero este o experiență educațională valoroasă. Înțelegi cum funcționează apelurile de instrumente, cum se menține contextul și cum poți standardiza comunicarea între componente. Acest tutorial îți oferă baza pentru a crea proprii agenți personalizați, fie pentru automatizări personale, fie pentru prototipuri în cercetare. Google Colab face totul accesibil, iar arhitectura nanobot asigură flexibilitate și ușurință în extindere.
De ce este important:
Într-o lume în care agenții AI devin din ce în ce mai răspândiți, capacitatea de a construi și înțelege propriii agenți este o abilitate esențială. Acest tutorial democratizează cunoașterea, permițând oricui cu un cont Google să experimenteze cu arhitecturi avansate fără costuri mari. În plus, prin utilizarea protocolului MCP, se deschide calea către interoperabilitatea între diferiți agenți și instrumente, un pas important către un ecosistem AI deschis și modular. Înțelegerea acestor concepte te pregătește pentru viitorul automatizării inteligente.