Ya sea que estés creando aplicaciones de IA o automatizando tareas complejas, lograr que un agente de IA trabaje con los datos y las herramientas adecuadas puede ser un desafío. Los sistemas de IA simples suelen tener dificultades cuando necesitan razonar, recuperar información o manejar tareas entre distintas fuentes. Los agentes de LlamaIndex facilitan esto al conectar modelos de IA con herramientas, datos y sistemas de recuperación para manejar tareas de manera más efectiva. Lee este artículo para aprender a crear e implementar un flujo de trabajo de agentes de LlamaIndex para aplicaciones de IA más inteligentes y flexibles.
¿Qué es un agente de LlamaIndex?
Un agente de LlamaIndex es un sistema de IA que puede razonar sobre una tarea y decidir qué pasos se necesitan para completarla. Puede dividir una solicitud compleja en tareas más pequeñas, seleccionar herramientas y usar datos externos cuando sea necesario. Los agentes también pueden recordar pasos anteriores y usar información recuperada para mejorar sus respuestas. Esto les permite manejar tareas que requieren algo más que una simple respuesta a una pregunta.
¿Cómo funcionan los agentes de LlamaIndex?
Los agentes de LlamaIndex permiten que las aplicaciones de LLM vayan más allá de simplemente responder preguntas, ya que permiten que los modelos razonen sobre tareas, seleccionen herramientas y completen flujos de trabajo de varios pasos. En lugar de seguir un proceso fijo, un agente decide dinámicamente qué acciones se necesitan según el objetivo del usuario y las capacidades disponibles.
Un flujo de trabajo típico de un agente de LlamaIndex sigue este proceso:
User request
↓
Understand the task
↓
Select tools
↓
Execute actions
↓
Process results
↓
Return final responseComprender los objetivos del usuario
Cuando un agente recibe una solicitud, el LLM subyacente analiza la tarea, el contexto disponible y las herramientas conectadas para determinar el mejor enfoque.
Para consultas simples, el agente puede generar una respuesta directamente. Para tareas complejas, puede dividir la solicitud en pasos más pequeños y decidir qué operaciones se requieren.
Seleccionar y usar herramientas
Las herramientas extienden las capacidades de un agente más allá del propio LLM. Los agentes de LlamaIndex pueden conectarse a funciones personalizadas de Python, motores de consulta, API, bases de datos y sistemas de recuperación mediante herramientas como FunctionTool y QueryEngineTool.
Por ejemplo, un agente puede usar una herramienta de búsqueda para recopilar información, una herramienta de base de datos para recuperar registros o una función personalizada para realizar cálculos.
Ejecutar tareas mediante un bucle de agente
Después de seleccionar una herramienta, el agente ejecuta la acción, observa el resultado y decide el siguiente paso. Este bucle de razonamiento-acción permite que los agentes manejen flujos de trabajo complejos que requieren varias operaciones.
Reason → Act → Observe → RepeatSi la tarea no está completa, el agente puede seguir llamando a herramientas o ajustando su enfoque hasta generar una respuesta final.
Gestionar el contexto y los flujos de trabajo
Los agentes de LlamaIndex mantienen el contexto relevante durante todo el proceso de ejecución, lo que les ayuda a gestionar tareas de varios pasos y usar resultados de pasos anteriores. Para aplicaciones más complejas, los desarrolladores pueden usar flujos de trabajo y arquitecturas multiagente para coordinar varios agentes, donde cada agente maneja un rol o tarea específica.
Por ejemplo:
Research Agent
↓
Analysis Agent
↓
Writing AgentEsto hace que los agentes react de LlamaIndex sean adecuados para aplicaciones como asistentes de investigación de IA, sistemas de conocimiento empresarial y flujos de trabajo de datos automatizados.
Componentes principales de los agentes de LlamaIndex
Los multiagentes de LlamaIndex combinan varios componentes para convertir un LLM en un sistema capaz de razonar, usar funciones externas y mantener el contexto. Cada componente tiene un rol diferente, pero trabajan juntos para ayudar al agente a manejar tareas de manera más efectiva. Estos son algunos de sus componentes principales:
LLM: el motor de razonamiento de los agentes
El LLM actúa como el motor de razonamiento principal que interpreta las solicitudes del usuario y decide qué hacer a continuación. Puede analizar el contexto disponible y determinar si responder directamente o usar una herramienta. LlamaIndex admite diferentes proveedores de LLM, lo que permite a los desarrolladores elegir un modelo según las necesidades de su aplicación. Por lo tanto, el LLM controla la toma de decisiones del agente y la generación de respuestas.
Herramientas: ampliar las capacidades del agente
Las herramientas permiten que un agente realice acciones que van más allá de generar texto. Pueden ser funciones simples de Python o herramientas especializadas para trabajar con API, motores de consulta y otros servicios externos. El agente decide qué herramienta usar y proporciona las entradas necesarias según la solicitud del usuario. Los resultados de las herramientas se agregan luego a la conversación para que el agente pueda usarlos en el siguiente paso.
Memoria: mantener el contexto
La memoria permite que los agentes de LlamaIndex retengan información relevante mientras completan una tarea. De forma predeterminada, los agentes usan un ChatMemoryBuffer, que mantiene disponible el historial de la conversación durante la ejecución. Los desarrolladores también pueden personalizar la configuración de memoria, como establecer un límite de tokens según la aplicación. Esto ayuda a los agentes a mantener el contexto y manejar tareas que requieren varios pasos.
Tipos de agentes de LlamaIndex
LlamaIndex ofrece diferentes tipos de agentes para manejar tareas según el nivel de razonamiento, uso de herramientas y control requerido. Veamos los tipos principales y en qué se diferencian:
| Tipo de agente | Cómo funciona | Características clave | Mejores casos de uso |
|---|---|---|---|
| FunctionAgent | Utiliza las capacidades de llamada a funciones de los LLM modernos para seleccionar y ejecutar herramientas predefinidas según las solicitudes del usuario. | Llamada nativa a herramientas Entradas y salidas estructuradas Ejecución confiable de herramientas Implementación sencilla | Asistentes de IA Flujos de automatización empresarial Aplicaciones basadas en API Agentes orientados a tareas |
| ReActAgent | Utiliza el enfoque de razonamiento + acción, en el que el agente razona de manera iterativa sobre una tarea, realiza acciones, observa resultados y continúa hasta completarla. | Razonamiento paso a paso Selección dinámica de herramientas Manejo de tareas de múltiples pasos Resolución flexible de problemas | Asistentes de investigación Respuesta a preguntas complejas Exploración de datos Flujos de trabajo abiertos |
| CodeActAgent | Permite que los agentes resuelvan tareas generando y ejecutando código cuando el razonamiento basado en código resulta más efectivo. | Generación y ejecución de código Resolución programática de problemas Adecuado para tareas computacionales | Análisis de datos Flujos de trabajo científicos Asistentes de programación |
| Sistemas multiagente | Utiliza múltiples agentes especializados que colaboran, delegan tareas y completan flujos de trabajo complejos en conjunto. | Colaboración entre agentes Delegación de tareas Especialización de roles Flujos de trabajo escalables | Canalizaciones de investigación automatizadas Flujos de trabajo empresariales Procesos empresariales complejos |
Estos agentes brindan a los desarrolladores la flexibilidad de elegir el enfoque adecuado para diferentes tareas y flujos de trabajo. Una vez seleccionado el tipo de agente, el siguiente paso es conectarlo a un backend de LLM capaz que impulse su razonamiento y uso de herramientas. Veamos cómo puedes crear agentes de IA con LlamaIndex y la API de Kimi.
¿Cómo crear agentes de IA con LlamaIndex y la API de Kimi?
Conectar LlamaIndex a una API de LLM le da al agente el poder de razonamiento que necesita para comprender solicitudes y elegir las acciones correctas. Los siguientes pasos muestran cómo configurar un agente de IA con LlamaIndex y la API de Kimi, desde configurar el modelo hasta ejecutar el agente:
Paso 1: Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
Python 3.9+ instalado
Una clave de API de Kimi válida desde Moonshot AI Platform
Familiaridad básica con los agentes de LlamaIndex y los conceptos de RAG
Paso 2: Instalar las dependencias
El ejemplo original usa llama-index-llms-ollama. Reemplázalo con llama-index-llms-openai para conectarte a la API de Kimi compatible con OpenAI. Conserva el paquete de embeddings de HuggingFace para usar embeddings locales y gratuitos.
pip install llama-index llama-index-llms-openai llama-index-embeddings-huggingfacePaso 3: Configurar las variables de entorno
Guarda tu clave de API de Kimi de forma segura usando una variable de entorno. No la escribas directamente en tus scripts.
export KIMI_API_KEY = "your-kimi-api-key-here"En Windows (PowerShell):
$env:KIMI_API_KEY = "your-kimi-api-key-here"Paso 4: Crear el agente básico con la API de Kimi
Crea un archivo llamado starter_kimi.py. Esto reemplaza el LLM de Ollama con Kimi, manteniendo la misma lógica del agente y las mismas definiciones de herramientas.
from llama_index.core.agent.workflow import FunctionAgent; import os
from llama_index.llms.openai import OpenAI; import asyncio
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.core import Settings
# Configure global settings
Settings.llm = OpenAI(
model="kimi-latest", # Or: kimi-k2, kimi-k2.5, etc.
api_key=os.getenv("KIMI_API_KEY"),
api_base="https://api.moonshot.ai/v1",
temperature=0.3,
request_timeout=120.0,
)
Settings.embed_model = HuggingFaceEmbedding(
model_name="BAAI/bge-base-en-v1.5"
)
# Define a calculator tool
def multiply(a: float, b: float) -> float:
"""Useful for multiplying two numbers."""
return a * b
# Create the agent
agent = FunctionAgent(
tools=[multiply],
llm=Settings.llm,
system_prompt="You are a helpful assistant that can multiply two numbers.",
)
async def main():
response = await agent.run("What is 1234 * 4567?")
print(str(response))
if __name__ == "__main__":
asyncio.run(main())Ejecuta el script:
python starter_kimi.pySalida esperada:
The answer to 1234 * 4567 is 5635678.Paso 5: Agregar historial de chat (contexto)
Para habilitar conversaciones de varios turnos, pasa un objeto Context. El agente conservará la memoria entre llamadas.
from llama_index.core.workflow import Context
# Create context
ctx = Context(agent)
# Run agent with context
response = await agent.run("My name is Logan", ctx=ctx)
print(response)
response = await agent.run("What is my name?", ctx=ctx)
print(response)Paso 6: Agregar capacidades de RAG con la API de Kimi
Mejora el agente con recuperación de documentos. El paso de embeddings sigue siendo local, mientras que la generación se enruta a través de Kimi.
Preparar datos de ejemplo
mkdir data
wget https://raw.githubusercontent.com/run-llama/llama_index/main/docs/examples/data/paul_graham/paul_graham_essay.txt -O data/paul_graham_essay.txtScript completo del agente con RAG habilitado
Crea starter_kimi_rag.py:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings; import os
from llama_index.core.agent.workflow import AgentWorkflow; import asyncio
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
# Global settings
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-base-en-v1.5")
Settings.llm = OpenAI(
model="kimi-k3",
api_key=os.getenv("KIMI_API_KEY"),
api_base="https://api.moonshot.ai/v1",
temperature=0.3,
)
# Load documents and build index
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
# Define tools
def multiply(a: float, b: float) -> float:
"""Useful for multiplying two numbers."""
return a * b
async def search_documents(query: str) -> str:
"""Useful for answering natural language questions about Paul Graham's essay."""
response = await query_engine.aquery(query)
return str(response)
# Create enhanced agent
agent = AgentWorkflow.from_tools_or_functions(
[multiply, search_documents],
llm=Settings.llm,
system_prompt="""You are a helpful assistant that can perform calculations
and search through documents to answer questions.""",
)
async def main():
response = await agent.run(
"What did the author do in college? Also, what's 7 * 8?"
)
print(response)
if __name__ == "__main__":
asyncio.run(main())Ejecuta el script:
python starter_kimi_rag.pypython starter_kimi_rag.pyPaso 7: Persistir el índice de RAG
Para evitar reprocesar los documentos en cada ejecución, guarda el índice vectorial en disco de forma persistente.
# Save the index
index.storage_context.persist("storage")
# Later, load the index
from llama_index.core import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="storage")
index = load_index_from_storage(storage_context)
query_engine = index.as_query_engine()# Save the index
index.storage_context.persist("storage")
# Later, load the index
from llama_index.core import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="storage")
index = load_index_from_storage(storage_context)
query_engine = index.as_query_engine()Solución de problemas
Si tienes problemas al configurar el agente, algunos problemas comunes pueden afectar la autenticación, la conectividad, la instalación de paquetes o la velocidad de los embeddings. La siguiente tabla destaca los errores más comunes y sus soluciones, para que puedas resolver rápidamente los problemas de tu configuración:
| Problema | Causa | Solución |
|---|---|---|
AuthenticationError | Clave de API faltante o inválida | Verifica que KIMI_API_KEY esté exportada correctamente |
Connection timeout | Latencia de red hacia api.moonshot.ai | Aumenta request_timeout a 300.0 o más |
ModuleNotFoundError | Falta un paquete | Vuelve a ejecutar pip install llama-index-llms-openai |
| El embedding es lento en la CPU | El modelo de Hugging Face se ejecuta en la CPU | Usa un modelo más pequeño o habilita la aceleración por GPU |
Beneficios de usar la API de Kimi
Una vez que el agente está conectado y funcionando, la combinación de LlamaIndex y la API de Kimi ofrece varias ventajas prácticas para crear aplicaciones de IA capaces. Estos son algunos beneficios clave de usar la API de Kimi con agentes de LlamaIndex:
Crea agentes de IA más inteligentes: la API de Kimi potencia los agentes de LlamaIndex con una fuerte comprensión del lenguaje y capacidades de razonamiento, lo que ayuda a los agentes a elegir herramientas, procesar información y completar tareas con mayor eficacia.
Mejora la recuperación y el análisis de datos: combinado con el marco de datos de LlamaIndex, Kimi puede trabajar con documentos privados y bases de conocimiento para generar respuestas más precisas y contextualizadas.
Habilita flujos de trabajo de IA flexibles: LlamaIndex conecta a los agentes con herramientas, API y motores de consulta, mientras que Kimi aporta la inteligencia necesaria para decidir cuándo y cómo usar estas capacidades.
Soporta aplicaciones de IA complejas: con comprensión de contexto largo y capacidades de agente, la API de Kimi junto con LlamaIndex es adecuada para crear asistentes de investigación, agentes de conocimiento y aplicaciones de análisis de documentos.
Aplicaciones reales de los agentes de LlamaIndex
Los agentes de LlamaIndex se pueden usar para una amplia variedad de tareas en las que la IA necesita razonar, acceder a información y tomar acciones. Su capacidad para conectar LLM con herramientas y datos los hace útiles en investigación, negocios, análisis y atención al cliente. Estas son algunas aplicaciones prácticas:
Asistente de investigación con IA
Un asistente de investigación con IA puede buscar en documentos, recuperar información relevante y ayudar a responder preguntas complejas. Puede dividir una tarea de investigación en pasos más pequeños y usar distintas herramientas cuando sea necesario. Esto facilita analizar grandes cantidades de información y preparar respuestas detalladas.
Agente de conocimiento empresarial
Un agente de conocimiento empresarial puede conectar a los empleados con documentos internos, bases de datos y bases de conocimiento. Puede recuperar información relevante de la empresa y ofrecer respuestas basadas en los datos comerciales disponibles. Esto ayuda a los empleados a encontrar información más rápido sin tener que buscar manualmente en múltiples sistemas.
Agente de análisis de datos
Un agente de análisis de datos puede trabajar con conjuntos de datos y usar herramientas para procesar, analizar e interpretar información. Puede realizar cálculos, identificar patrones y ayudar a explicar los resultados de manera sencilla. Esto lo hace útil para tareas como la elaboración de informes, la exploración de datos y el análisis de negocio.
Agente de servicio al cliente
Un agente de servicio al cliente puede acceder a información de productos, preguntas frecuentes y recursos de soporte para responder a las consultas de los clientes. Puede usar herramientas para obtener detalles relevantes y gestionar solicitudes según el contexto disponible. Esto puede ayudar a automatizar tareas de soporte rutinarias mientras ofrece respuestas más rápidas y consistentes.
Conclusión
Los agentes de LlamaIndex ofrecen una forma práctica de crear sistemas de IA capaces de razonar, usar herramientas y trabajar con información relevante. Su flexibilidad los hace útiles para crear aplicaciones que van más allá de las conversaciones simples. Con el backend de LLM adecuado, estos agentes pueden adaptarse a distintas tareas y flujos de trabajo. Prueba Kimi API con LlamaIndex para crear y probar tu propio agente de IA. Explora Kimi y descubre qué puedes crear con él.