Marco paso a paso: cómo construir agentes de IA desde cero

Aprende a construir agentes de IA desde cero con este marco técnico de 10 pasos: Pydantic AI, ReAct, RAG, LangGraph, CrewAI, FastAPI y benchmarking en producción.

Construir un agente de inteligencia artificial no es escribir un chatbot. Es diseñar un sistema que razona, planifica y ejecuta tareas de forma autónoma. En Estudio Naranja hemos destilado el proceso en 10 pasos técnicos que cualquier equipo de desarrollo puede replicar: desde la definición del propósito hasta el benchmarking en producción. Este es el marco definitivo.

¿Qué es Realmente un Agente de IA?

Un agente de IA es un sistema de software que percibe su entorno mediante herramientas y datos, razona sobre esa información utilizando un modelo de lenguaje de gran escala (LLM), y actúa de forma autónoma para alcanzar un objetivo definido sin necesidad de intervención humana en cada paso. A diferencia de un chatbot reactivo, un agente posee cuatro capacidades fundamentales:

  • Memoria: Accede a contexto pasado (conversacional, vectorial o resumida).
  • Herramientas: Llama a APIs externas, ejecuta código o consulta bases de datos.
  • Razonamiento: Usa cadenas de pensamiento (Chain-of-Thought) o ciclos ReAct.
  • Autonomía: Planifica múltiples pasos hacia un objetivo sin supervisión constante.

🧭 Nota sobre el Stack Tecnológico

Este marco es agnóstico al proveedor de LLM. Puedes implementarlo con Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google) o modelos open-weight como Llama 3.3 o GLM-5.2. Lo que cambia es la API; la arquitectura permanece igual.


PASO 1: Define el Propósito y el Resultado del Agente

La pregunta más ignorada en IA: ¿Para qué existe este agente?

Antes de escribir una sola línea de código, debes responder con precisión quirúrgica: ¿qué hará el agente, a quién apoyará y qué forma tendrá su salida? Un agente sin propósito claro se convierte en un sistema costoso que no resuelve ningún problema real.

Definir el alcance también significa definir los límites. Un agente de investigación de contenido no debe también gestionar tu CRM. La especialización es una ventaja, no una limitación.

  • ¿Quién es el usuario? (un analista, un vendedor, un cliente externo)
  • ¿Cuál es el trigger? (una pregunta, un evento, un cron job)
  • ¿Cuál es el output esperado? (un reporte, una acción en un sistema, un mensaje)
  • ¿Cuál es el KPI de éxito? (tiempo ahorrado, precisión, coste por tarea)
Definir el propósito y objetivo de un agente de IA - Paso 1

PASO 2: Construye Entrada y Salida Estructurada

Pydantic AI y JSON Schema para entrada y salida estructurada - Paso 2

Los agentes sin esquemas son sistemas sin contrato

La entrada y salida no estructurada es el origen del 80% de los fallos en producción. La librería Pydantic AI permite definir modelos tipados que validan la entrada antes de que el LLM la procese, y validan la salida antes de que llegue al sistema receptor. Combinado con JSON Schema, obtienes salidas predecibles y parseables automáticamente.

▸ Python · Pydantic AI Definición de esquema de entrada/salida

from pydantic_ai import Agent
from pydantic import BaseModel
from typing import List

class ResearchInput(BaseModel):
    query: str
    max_sources: int = 5
    language: str = "es"

class ResearchOutput(BaseModel):
    summary: str
    key_points: List[str]
    sources: List[str]
    confidence_score: float

agent = Agent(
    model="claude-sonnet-4-5",
    result_type=ResearchOutput,
    system_prompt="Eres un investigador experto. Devuelve resultados estructurados."
)

PASO 3: Moldea y Ajusta el Comportamiento del Agente

El System Prompt es la Constitución del Agente

El system prompt no es una descripción de trabajo; es un contrato de comportamiento. Define el rol, el tono, las restricciones, el formato de respuesta y los casos extremos. Un system prompt débil genera un agente impredecible. Un system prompt fuerte genera un sistema confiable.

  • Prefix Tuning: Añade tokens entrenables al inicio del prompt para especializar el comportamiento sin modificar los pesos. Ideal con modelos open-source como Llama.
  • Prompt Tuning: Opera a nivel de capa de embedding. Requiere acceso a los pesos del modelo.
  • Few-Shot Examples: Incluye 3–5 ejemplos de entrada/salida ideal directamente en el system prompt para anclar el comportamiento esperado.
System prompt y comportamiento del agente de IA - Paso 3

PASO 4: Añade Razonamiento y Acceso a Herramientas

ReAct y Chain-of-Thought para razonamiento en agentes de IA - Paso 4

ReAct: El Ciclo Razonar → Actuar → Observar

El patrón ReAct (Reasoning + Acting) es el corazón de los agentes modernos. En cada iteración, el agente: (1) Razona sobre el estado actual del problema, (2) Actúa llamando a una herramienta, y (3) Observa el resultado antes de decidir el siguiente paso.

  • Búsqueda web (Tavily, Brave Search API, SerpAPI)
  • Ejecución de código (Python REPL, Code Interpreter)
  • Consulta de documentos (RAG sobre bases de datos vectoriales)
  • Llamadas a APIs externas (CRM, ERP, plataformas SaaS)

▸ Python · LangChain Registro de herramientas con @tool

from langchain.tools import tool
from langchain_community.tools.tavily_search import TavilySearchResults

@tool
def search_web(query: str) -> str:
    search = TavilySearchResults(max_results=5)
    return str(search.invoke(query))

@tool
def execute_python(code: str) -> str:
    import subprocess
    result = subprocess.run(["python", "-c", code],
                           capture_output=True, text=True, timeout=30)
    return result.stdout or result.stderr

tools = [search_web, execute_python]

PASO 5: Organiza Roles Multi-Agente

Cuando un agente no es suficiente: Orquestación Multi-Agente

  • LangGraph: Flujos de trabajo de agentes como grafos dirigidos acíclicos (DAG). La solución más robusta para producción con estado persistente.
  • CrewAI: Define crews con agentes que tienen roles y objetivos. Comunicación declarativa. Ideal para prototipado rápido.
  • OpenAI Swarm: Framework experimental para transferencias de contexto entre agentes especializados. Minimalista y directo.
Arquitectura multi-agente con LangGraph y CrewAI - Paso 5

▸ Python · CrewAI Equipo de agentes especializados

from crewai import Agent, Task, Crew

planner = Agent(
    role="Planificador Estratégico",
    goal="Descomponer el objetivo en un plan ejecutable",
    backstory="Director de proyectos senior con metodología OKR",
    verbose=True, allow_delegation=True
)

researcher = Agent(
    role="Investigador de Mercado",
    goal="Encontrar datos precisos y fuentes verificables",
    backstory="Analista con acceso a datos en tiempo real",
    tools=[search_web], verbose=True
)

writer = Agent(
    role="Redactor Ejecutivo",
    goal="Transformar datos en narrativa clara y accionable",
    backstory="Escritor técnico con experiencia en reportes C-Suite",
    verbose=True
)

crew = Crew(agents=[planner, researcher, writer], verbose=True)

PASO 6: Añade Memoria y Contexto Extendido (RAG)

Memoria vectorial y RAG para agentes de IA con Chroma y Zep - Paso 6

Tres Tipos de Memoria para Tres Tipos de Contexto

  • Memoria Conversacional (Buffer): Mantiene el historial de mensajes de la sesión actual. Ideal para asistentes interactivos de corta duración.
  • Memoria de Resumen: El agente resume la conversación anterior como contexto comprimido. Permite sesiones largas. Usa Zep para implementación en producción.
  • Memoria Vectorial (RAG): Indexa documentos y conocimiento corporativo en una base de datos vectorial. Herramientas: Chroma, Pinecone, Weaviate.

▸ Python · LangChain + Chroma Pipeline RAG semántico

from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
from langchain.chains import RetrievalQA

embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(
    documents=corporate_docs,
    embedding=embeddings,
    persist_directory="./chroma_db"
)

retriever = vectorstore.as_retriever(
    search_type="similarity",
    search_kwargs={"k": 5}
)

rag_chain = RetrievalQA.from_chain_type(
    llm=llm, retriever=retriever, return_source_documents=True
)

PASO 7: Añade Funciones de Voz o Visión (Opcional)

Capacidades Multimodales: El Agente que Ve y Habla

Para Voz:

  • ElevenLabs: La mejor calidad de síntesis de voz del mercado. Clonación de voz con 10 segundos de muestra.
  • Coqui TTS (open source): Alternativa local, sin costes por token. Desplegable on-premise.
  • OpenAI Whisper: STT de alta precisión en 57 idiomas. Disponible como API o modelo local.

Para Visión:

  • GPT-4o / Claude 3.5 Sonnet: Análisis de imágenes, documentos escaneados, capturas de pantalla.
  • LLaMA 3.2 Vision: Modelo open-weight con capacidades visuales. Desplegable localmente.
Capacidades multimodales de voz y visión en agentes de IA - Paso 7

PASO 8: Formatea y Entrega la Salida

Formateo de salida de agentes en Markdown, PDF y JSON - Paso 8

La Salida Debe Ser Predecible, Limpia y Accionable

  • JSON estructurado (via Pydantic AI): Para consumo directo por APIs, dashboards y bases de datos.
  • Markdown renderizado: Para reportes, documentación y correos. Usa librerías como mistune.
  • PDF generado: Para entregables formales. Usa WeasyPrint, pdfkit o reportlab.

PASO 9: Embebe en una UI o Capa de API

Convierte tu Agente en un Producto Real

  • Streamlit: La forma más rápida de crear una UI web para un agente en Python. Zero configuración de frontend.
  • Gradio: Componentes especializados para ML. Integración nativa con Hugging Face Spaces.
  • FastAPI: La opción correcta para producción. Endpoints REST con documentación OpenAPI automática. Escala con Docker y Kubernetes.
UI y API para agentes de IA con Streamlit, Gradio y FastAPI - Paso 9

▸ Python · FastAPI Endpoint REST para invocar el agente

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI(title="Research Agent API", version="1.0")

class AgentRequest(BaseModel):
    query: str
    max_sources: int = 5

@app.post("/research", response_model=ResearchOutput)
async def run_research(request: AgentRequest):
    result = await agent.run(request.query)
    return result.data

# uvicorn main:app --host 0.0.0.0 --port 8000 --reload

PASO 10: Prueba, Revisa y Mejora

Benchmarking y evaluación de agentes de IA - Paso 10

Un Agente sin Benchmarks es un Sistema sin Garantías

Los agentes en producción se degradan con el tiempo: los modelos cambian, los datos cambian, los casos de uso evolucionan. Sin un sistema de evaluación estructurado, no sabes cuándo tu agente dejó de ser confiable.

  • Fidelidad (Faithfulness): ¿Las respuestas son consistentes con las fuentes? Evita alucinaciones.
  • Relevancia de Respuesta: ¿El output responde directamente a la pregunta planteada?
  • Precisión del Contexto: ¿El retriever RAG está trayendo los chunks correctos?
  • Latencia End-to-End: ¿El tiempo de respuesta es aceptable para el caso de uso?
  • Coste por Invocación: ¿El coste de tokens por tarea justifica el valor generado?

Herramientas: RAGAS (para pipelines RAG), LangSmith (trazabilidad), OpenAI Evaluation API, Prometheus + Grafana.


El Pipeline del Agente: Integración de Flujo Completo

Cada paso en el diseño de un agente debe fluir armónicamente hacia el siguiente. El pipeline de datos conecta la entrada estructurada, los bucles de razonamiento y las salidas validadas de forma continua y modular.

Flujo del Pipeline y Conexión de Agentes

El Mapa Completo: Los 10 Pasos en Perspectiva

PasoFunciónStack RecomendadoNivel
1Propósito y ResultadoFramework propio / Diseño⬛ Conceptual
2Entrada y Salida EstructuradaPydantic AI, JSON Schema🟩 Básico
3Comportamiento del AgenteClaude, GPT-4o, Prompt Tuning🟩 Básico
4Razonamiento y HerramientasReAct, LangChain, OpenAI Tools🟨 Intermedio
5Orquestación Multi-AgenteLangGraph, CrewAI, Swarm🟨 Intermedio
6Memoria y RAGChroma, Zep, Pinecone🟨 Intermedio
7Voz y VisiónElevenLabs, Coqui, Whisper🟧 Avanzado
8Formateo de SalidaPydantic AI, LangChain Parsers🟩 Básico
9UI y Capa de APIStreamlit, Gradio, FastAPI🟨 Intermedio
10Evaluación y BenchmarkingRAGAS, LangSmith, OpenAI Evals🟧 Avanzado
Arquitectura de Sistemas de Inteligencia Artificial

La Arquitectura del Sistema como Solución Holística

Una solución robusta no depende únicamente del modelo de lenguaje, sino del sistema orquestado que lo rodea, garantizando escalabilidad, persistencia e independencia tecnológica.

Conclusión: El Agente es un Sistema, No un Prompt

La principal trampa al construir agentes de IA es confundirlos con prompts avanzados. Un agente bien construido es un sistema de software con arquitectura, contratos de datos, flujos de razonamiento, memoria y mecanismos de evaluación. Este marco de 10 pasos no es una receta mágica es una guía de arquitectura que te obliga a tomar decisiones de diseño en el orden correcto.

En Estudio Naranja acompañamos a organizaciones en todo el proceso: desde la definición del caso de uso (PASO 1) hasta el despliegue en producción y el monitoreo continuo (PASO 10). No vendemos chatbots diseñamos ecosistemas agénticos que automatizan procesos reales y generan ventaja competitiva medible.