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¶
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:
- Quan usa eines de cerca i quan respon directament?
- Com gestiona preguntes de seguiment (memòria de conversa)?
- 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.