Salta el contingut

2.1 Què és un Agent d'IA?

Definició de Treball

Un agent d'IA és un sistema que percep el seu entorn, pren decisions autònomes i executa accions per assolir objectius concrets, usant un LLM com a motor de raonament i eines externes per interactuar amb el món.


🤖 La Idea Central

La diferència entre un LLM i un agent és com la diferència entre un consultor intel·ligent aïllat i un professional amb accés a tots els recursos.

LLM Sol:   Pregunta → [Pensa] → Resposta
           Una sola ronda. Sense eines. Sense memòria. Estàtic.

Agent:     Objectiu → [Planifica] → [Selecciona Eina] → [Executa]
                    ↑                                        ↓
                    └──────── [Observa Resultat] ←──────────┘
           Múltiples rondes. Eines. Memòria. Adaptatiu.

🏗️ L'Arquitectura d'un Agent

🔬 Arquitectura Completa d'un Agent d'IA

Els quatre components que fan possible un agent:

🧠

Motor de Raonament (LLM)

El cervell de l'agent. Interpreta les tasques, planifica accions, processa resultats i genera respostes. GPT-4o, Claude 3.5, Gemini, o models locals com Llama.

🔧

Eines (Tools)

Capacitats d'acció sobre el món real: cercar a internet, executar codi Python, llegir fitxers, consultar bases de dades, enviar emails, cridar APIs externes.

🧩

Memòria

Sistemes per recordar: conversa actual (curta durada), historial de sessions (llarga durada) i coneixement especialitzat (bases vectorials).

📋

Planificació

La capacitat de descompondre objectius complexos en subtasques, seqüenciar-les i adaptar el pla en funció dels resultats intermedis.


🔄 El Cicle de Vida d'un Agent

El funcionament d'un agent es pot entendre com un bucle iteratiu (agentic bucle):

👁️ Percepció

L'agent rep una tasca o objectiu de l'usuari, juntament amb el context disponible (historial de conversa, documents rellevants, estat actual).

🧠 Raonament i Planificació

L'LLM analitza la tasca, la descompon en subtasques si cal, i decideix quin és el pròxim pas: quina eina usar, quina informació necessita, o si pot respondre directament.

⚡ Acció (Ús d'Eines)

L'agent crida una eina específica: cerca web, executa codi, llegeix un fitxer, consulta una API... Cada eina retorna un resultat estructurat.

👁️ Observació

L'agent processa el resultat de l'eina i l'integra al seu context. Avalua si la subtasca s'ha completat o si cal fer més accions.

🔁 Iteració o Finalització

Si la tasca no s'ha completat, torna al pas 2 amb nova informació. Si s'ha completat, genera la resposta final per a l'usuari.


💻 El Primer Agent: Exemple Mínim

Vegem un exemple concret d'un agent simplíssim amb LangChain:

# requirements: langchain>=0.3.0 langchain-openai>=0.2.0
# pip install langchain langchain-openai duckduckgo-search --break-system-packages

from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import DuckDuckGoSearchResults
from langchain import hub

# 1. Definim el model de llenguatge (cervell de l'agent)
llm = ChatOpenAI(
    model="gpt-4o-mini",       # Model més econòmic per a proves
    temperature=0,              # Determinista (0 = sempre la mateixa resposta)
    api_key="YOUR_API_KEY"     # Substituir per la clau real
)

# 2. Definim les eines que tindrà l'agent
tools = [
    DuckDuckGoSearchResults(
        name="web_search",
        description="Cerca informació actual a internet. "
                    "Útil per a preguntes sobre events recents, "
                    "preus actuals o qualsevol informació que pugui "
                    "haver canviat."
    )
]

# 3. Carreguem el prompt de ReAct (Reason + Act)
# Aquest prompt instrueix l'LLM a raonar pas a pas
prompt = hub.pull("hwchase17/react")

# 4. Creem l'agent combinant LLM + Eines + Prompt
agent = create_react_agent(llm, tools, prompt)

# 5. L'executor gestiona el bucle iteratiu
executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,          # Mostra el raonament intern ← IMPORTANT per aprendre!
    max_iterations=5,      # Màxim d'iteracions per evitar bucles infinits
    handle_parsing_errors=True
)

# 6. Executem una tasca
result = executor.invoke({
    "input": "Quina és la versió actual de Python i quan es va publicar?"
})
print(result["output"])

Sortida Esperada (amb verbose=True)

> Entering new AgentExecutor chain...

Thought: Necessito buscar la versió actual de Python i la data de publicació.
Action: web_search
Action Input: "Python versió actual 2024 data publicació"

Observation: Python 3.13.0 va ser publicat el 7 d'octubre de 2024. 
  Les novetats inclouen millores en el debugger i...

Thought: Ja tinc la informació necessària. Puc respondre.
Final Answer: La versió actual de Python és la 3.13.0, 
  publicada el 7 d'octubre de 2024. Les novetats principals inclouen...

> Finished chain.

El Poder del verbose=True

Sempre activa verbose=True quan estiguis aprenent. Veuràs exactament com l'agent raona, quines eines crida i per quin motiu. És la millor manera d'entendre el comportament intern d'un agent.


📊 Taxonomia d'Agents per Tipus

No tots els agents són iguals. Podem classificar-los per la seva arquitectura:

Tipus Descripció Exemple
Agent Reactiu Reacciona directament als inputs sense planificació Chatbot amb cerca
Agent Deliberatiu Planifica una seqüència d'accions abans d'executar Agent de recerca
Agent ReAct Alterna raonament i acció iterativament Agent genèric LangChain
Agent amb Memòria Manté estat persistent entre sessions Assistent personal
Agent Multi-Eina Selecciona entre múltiples eines especialitzades Agent de productivitat
Sistema Multi-Agent Diversos agents especialitzats col·laboren Pipeline de producció

🌍 Casos d'Ús Reals

👨‍💻

GitHub Copilot Workspace

Agent de programació que llegeix repositoris, entén el codi, planifica canvis i proposa pull requests complets.

🔬

NotebookLM (Google)

Agent de recerca que analitza documents pujats i respon preguntes amb cites exactes, sense al·lucinar.

🤝

Devin (Cognition AI)

Agent de programació autònom capaç de configurar entorns, escriure codi, fer tests i desplegar aplicacions.

📊

Agents de Dades (enterprise)

Agents que llegeixen bases de dades, generen informes, detecten anomalies i envien alertes automàticament.


✅ Activitats de Consolidació

Exercici 2.1.1 — Analitzar un Agent Real

Prova Perplexity AI o el Claude Projects i observa:

  1. Quan usa eines de cerca i quan respon directament?
  2. Com gestiona preguntes de seguiment (memòria de conversa)?
  3. Cita les fonts? Com ho fa?

Escriu un informe breu (1 pàgina) amb les teves observacions.

Exercici 2.1.2 — Disseny Conceptual

Dissenya (sense codificar) un agent per a un d'aquests casos:

  • Agent de suport tècnic per a una empresa de software
  • Agent de recerca acadèmica per a estudiants
  • Agent de monitoratge de servidors per a ASIX

Per al cas triat, defineix: (a) quines eines necessita, (b) quin tipus de memòria usarà, i (c) descriu un escenari d'ús pas a pas.