Qué es
smolagents es una libreria ultraligera de Hugging Face que le da a los modelos de lenguaje la capacidad de realizar acciones en el mundo real para resolver tareas complejas.
La idea central es radicalmente simple: en vez de obligar al modelo a generar acciones en JSON (que suelen ser propensos a errores de sintaxis), smolagents usa codigo como formato nativo para las acciones del agente.
Cómo funciona por dentro
El motor principal es el CodeAgent. Imagina el bucle de un agente clasico:
- El LLM recibe una tarea en su memoria.
- Mientras la tarea no este resuelta, el LLM decide la siguiente accion.
- Se ejecuta la accion (una herramienta o funcion).
- El resultado se anade a la memoria del LLM.
La ventaja critica de escribir esto en codigo es la composabilidad. Como el LLM escribe codigo real, puede manejar variables, bucles y estructuras de control de forma nativa, tal como lo haria un programador humano.
Estructura basica de un agente:
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel
# Definis herramientas (tools) decoradas con @tool
# Definis el modelo (HfApiModel para usar la API gratuita de Hugging Face)
agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
# Ejecutas
agent.run("Cuantos segundos tardaria un leopardo a maxima velocidad en cruzar el Pont des Arts?")
Por qué es importante
Los agentes son el siguiente paso evolutivo para integrar LLMs en aplicaciones reales. Pero la mayoria de los frameworks son pesados y complejos. smolagents propone:
- Minimalismo extremo: Pocas lineas de codigo que mantienen el control y la transparencia.
- First-class Code Actions: El modelo no esta "escribiendo codigo", esta pensando en codigo. Esto aprovecha que los modelos ya han visto muchisimo codigo en sus datasets de entrenamiento.
- Seguridad: Soporta ejecucion en entornos aislados (sandboxed) para que las acciones del agente no comprometan tu sistema.
Siguiente paso
Si queres dejar de pelearte con JSONs mal formados y empezar a construir agentes que realmente funcionen de forma logica, proba smolagents.
pip install smolagents
Enlaces oficiales
* GitHub: huggingface/smolagents