A quién va dirigida esta guía
A investigadores de IA y desarrolladores que quieran explorar, reproducir y ampliar experimentos en Agent-Lab. Si programas en Python, usas Jupyter y piensas en términos de experimentos, agentes y pipelines, te sentirás como en casa. Conocer los LLM, RAG y los fundamentos de los contenedores es útil, pero no imprescindible.
Agent-Lab proporciona componentes reutilizables (tipos de agente, herramientas, integraciones) y una colección de notebooks de Jupyter con ejemplos paso a paso, para que puedas ser productivo rápidamente.
Inicio rápido: ejecutar los ejemplos
Requisitos: Python 3.12+, un entorno de Jupyter operativo (JupyterLab o Notebook) y, opcionalmente, Docker en local para las integraciones de extremo a extremo. Trabajando en un clon del repositorio:
uv sync --group notebooks # runtime + notebook dependencies in one virtualenv
jupyter lab # from the repository rootAbre notebooks/ y empieza por 01_…, avanzando por los que te
interesen.
Notas:
- Los notebooks son en su mayoría autónomos; la cabecera de cada uno indica las variables de entorno y los servicios externos necesarios (claves de API, endpoints).
- Las claves necesarias se guardan en
.env: copia.env.exampley rellénalo (consulta la Referencia de configuración). - Para experimentar con Agent-Lab desde tu propio proyecto en lugar de desde el repositorio,
ejecuta
pip install btech-agent-laby monta la aplicación concreate_app(); consulta Ampliar el framework en la Guía para desarrolladores.
Estructura del proyecto: recorrido rápido
notebooks/: ejemplos interactivos de tipos de agente, evaluación e integraciones. Empieza aquí.agent_lab/: el paquete del framework:app_factory.py: la raíz de composición:create_app().core/: fuentes de configuración, contenedor de DI y resolución deextra_deps.domain/: modelos, interfaces de repositorio y excepciones (el Modelo de dominio de entidades).services/: lógica de negocio y las implementaciones deagent_types/.interface/:api/(routers HTTP) ymcp/(el servidor MCP).infrastructure/: adaptadores de base de datos, autenticación y métricas/trazas.
tests/: bateríasunit/,integration/,template/ysimulation/(consulta Pruebas y simulaciones).doc/: la documentación que estás leyendo.
Entender estas capas te indica dónde reside cada comportamiento: los ejemplos en notebooks,
los contratos centrales en core/ y domain/, y los adaptadores en infrastructure/.
Notebooks: el itinerario de aprendizaje principal
Progresión habitual:
| Notebook | Qué muestra |
|---|---|
| 01_setup_embeddings_service.ipynb | Configura y valida tu proveedor de embeddings (empieza aquí) |
| 02_test_agent_type-adaptive_rag.ipynb | RAG adaptativo: evaluador de recuperación, reescritor de consultas, evaluador de respuestas |
| 03_test_agent_type-react_rag.ipynb | Patrón ReAct con recuperación y uso de herramientas |
| 04_test_agent_type-vision_document.ipynb | Visión + recuperación de documentos |
| 05_test_agent_type-multiagent-coder.ipynb | Colaboración multiagente para tareas de programación |
| 06_test_agent_type-multiagent-researcher.ipynb | Flujos de trabajo de investigación multiagente |
| 07_test_agent_type-multiagent-browser.ipynb | Agentes de navegación web |
| 08_test_agent_type-multiagent-voice-assistant.ipynb | Agente de voz (y variantes 09/10: Azure Entra ID, rápida) |
| 11_mcp_client-openai-responses.ipynb | Comunicarse con el servidor MCP desde la OpenAI Responses API |
Cada notebook contiene: una breve descripción del objetivo del experimento, las variables de entorno y los secretos necesarios, funciones auxiliares y salidas impresas o visuales para inspeccionar las decisiones y las métricas del agente.
Consejo: ejecuta los notebooks en orden para seguir una curva de aprendizaje progresiva. Usa conjuntos de datos y tamaños de muestra más pequeños mientras iteras para que las ejecuciones sean rápidas.
Conceptos básicos
- Agente: una implementación registrada en
agent_lab/services/agent_types/(@discoverable_agent). El registro la resuelve de forma diferida a través del contenedor de DI, inyectando lasextra_depsdeclaradas. - Herramientas: capacidades concretas que un agente puede invocar (búsqueda, navegación, TTS/ASR),
implementadas como adaptadores en
agent_lab/infrastructure/oagent_lab/interface/. - Contenedor: el objeto de composición de DI (
agent_lab/core/container.py); crea una subclase para añadir proveedores para tus experimentos. - Repositorios: interfaces de acceso a datos en
agent_lab/domain/repositories/. - ConfigSource: de dónde procede la configuración; usa las fuentes YAML en los experimentos y Vault en producción.
Cuando quieras modificar un comportamiento, decide si el cambio es experimental
(solo en un notebook), arquitectónico (core/domain/services) o
de integración (un adaptador en infrastructure). Prioriza los cambios pequeños y comprobables,
y añade o actualiza un notebook que muestre el nuevo comportamiento.
Ejecutar experimentos y registrar resultados
Los notebooks imprimen los pasos intermedios; para experimentos más sólidos:
Usa semillas deterministas cuando la aleatoriedad sea relevante.
Registra las métricas relevantes para tu pregunta: latencia, uso de tokens, número de llamadas a herramientas, puntuaciones del juez. La capa de observabilidad lo exporta todo como OpenTelemetry (consulta Observabilidad); el entorno de simulación registra las puntuaciones del juez en Langfuse/LangWatch (consulta Pruebas y simulaciones).
Para ejecuciones repetibles, exporta las celdas de los notebooks a scripts y ejecútalos en la CI o en nodos de cómputo:
jupyter nbconvert --to script notebooks/02_test_agent_type-adaptive_rag.ipynbdocker/app/Dockerfilegenera una imagen de ejecución con versiones fijadas para una ejecución reproducible.
Prototipar nuevos comportamientos
- Añadir un nuevo tipo de agente: crea la clase en
agent_lab/services/agent_types/, decórala con@discoverable_agent("your_type")y añade un notebook que la monte a través del contenedor de DI y la ejercite con un escenario pequeño. El recorrido completo está en Crear flujos de trabajo agénticos. - Cambiar de proveedor de embeddings: implementa un adaptador compatible en
agent_lab/infrastructure/y valídalo con el notebook 01. - Añadir un almacén de recuperación o una base de datos vectorial: implementa los métodos de repositorio en
agent_lab/domain/repositories/y un adaptador enagent_lab/infrastructure/database/; cárgale datos con un pequeño notebook de carga y demuestra la recuperación en un notebook de consultas.
Consejo de diseño: mantén las interfaces de los adaptadores acotadas y pruébalas de forma aislada con pequeñas pruebas unitarias.
Pruebas y evaluación
make test_unit # unit tests — no infrastructure needed
make test # unit + integration with coverage
make test_simulations # LLM-as-judge agent simulations (live LLMs)Cuando cambies el comportamiento central, añade una prueba unitaria y un notebook breve que muestre el cambio: esa combinación es lo que hace que la investigación sea reproducible aquí. El entorno de pruebas completo, la configuración del juez y las plataformas de evaluación se explican en Pruebas y simulaciones.
Lista de comprobación de reproducibilidad
- Fija tu entorno (uv +
pyproject.toml/uv.lock). - Registra las semillas y los archivos de configuración (
config-dev.yml,config-test.yml). - Guarda el checkpoint del notebook y cualquier artefacto de salida (CSV/JSON) junto con tu experimento.
- Anota los endpoints de trazas a los que has exportado: las trazas son el registro de tu experimento.