QAO // QUANT AGENTIC ORCHESTRATION
APÉNDICE B · REFERENCIA DEL CURSO

Apéndice B · Entorno de laboratorio

Setup completo del entorno: dependencias, APIs, paper trading y convenciones del laboratorio.

LECTURA ~8 MIN NIVEL INTERMEDIO-AVANZADO EDICIÓN JUL 2026

Este apéndice define el entorno reproducible con el que se han ejecutado y verificado todos los ejemplos del curso. La filosofía es la que el propio ecosistema impone: la cadencia de releases de LangChain es de minors cada 1–2 meses y patches semanales (questdb.com) , de modo que la única defensa real contra la deriva de versiones es el pin estricto y un entorno recreable desde cero. Se asume Python 3.12 (LangChain v1 exige ≥3.10), pip o uv, y Docker para el servicio de Postgres.

14.1 Setup reproducible

14.1.1 Versiones pineadas, variables de entorno, Docker Compose con Postgres para checkpointer, datasets del curso

Dependencias pineadas. La tabla siguiente recoge las versiones con las que se ha validado el material. Las del stack LangChain se verificaron contra la API JSON de PyPI el 29-jul-2026 (questdb.com) ; las cuantitativas y de datos son las probadas en laboratorio (Riskfolio-Lib 7.0.0 según registro PyPI (DataDrivenInvestorDataDrivenInvestor) ).

Tabla B.1 — Versiones pineadas del entorno del curso (verificadas contra PyPI el 29-jul-2026)

Paquete Versión Propósito en el curso
langchain 1.3.14 create_agent, init_chat_model, middleware (transversal: módulos 2–12)
langchain-core 1.5.2 Runnables/LCEL, content blocks, mensajes
langchain-openai 1.4.1 Modelos GPT (análisis batch, structured output)
langchain-anthropic 1.5.3 Modelos Claude (tesis, razonamiento)
langgraph 1.1.3 Grafos de estado, checkpointers, HITL (módulos 3, 7 y 12)
langsmith 0.4.27 Tracing, datasets, evaluación (módulo 11)
langgraph-checkpoint-postgres 3.0.1 AsyncPostgresSaver para memoria durable
langchain-mcp-adapters 0.4.0 MultiServerMCPClient para datos de mercado vía MCP
pydantic 2.12.4 Esquemas de señales/tesis validados
numpy 2.3.2 Cómputo numérico base
pandas 2.3.1 Series temporales de precios y fundamentales
scipy 1.16.1 Estadística y optimización auxiliar
cvxpy 1.7.3 Motor de optimización convexa de carteras
PyPortfolioOpt 1.5.6 Frontera eficiente, Black-Litterman, HRP
riskfolio-lib 7.0.0 Optimización con 24 medidas de riesgo, HERC/NCO
vectorbt 0.28.0 Backtesting vectorizado y parameter sweeps
yfinance 0.2.66 Descarga OHLCV (solo laboratorio, no producción)
ragas 0.4.2 Métricas RAG: faithfulness, relevancy, precision, recall
datasets 4.1.0 Gestión del subset de evaluación estilo FinanceBench
chromadb 1.2.0 Vector store local para el RAG de filings
rank-bm25 0.2.2 Retrieval léxico para el hybrid search
matplotlib 3.10.5 Gráficos de equity curves y fronteras eficientes

requirements.txt

langchain==1.3.14
langchain-core==1.5.2
langchain-openai==1.4.1
langchain-anthropic==1.5.3
langgraph==1.1.3
langsmith==0.4.27
langgraph-checkpoint-postgres==3.0.1
langchain-mcp-adapters==0.4.0
pydantic==2.12.4
numpy==2.3.2
pandas==2.3.1
scipy==1.16.1
cvxpy==1.7.3
PyPortfolioOpt==1.5.6
riskfolio-lib==7.0.0
vectorbt==0.28.0
yfinance==0.2.66
ragas==0.4.2
datasets==4.1.0
chromadb==1.2.0
rank-bm25==0.2.2
matplotlib==3.10.5

Variables de entorno (.env.example). Nunca se commitea el .env real; el repositorio solo incluye esta plantilla.

# LLM providers
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...

# Observabilidad LangSmith
LANGSMITH_API_KEY=lsv2_pt_...
LANGSMITH_TRACING=true
LANGSMITH_PROJECT=langchain-quant-course

# Datos de mercado (Massive, antes Polygon)
MASSIVE_API_KEY=...

# SEC EDGAR — obligatorio por la política de fair access de la SEC:
# formato "Nombre Apellido [email protected]"
SEC_USER_AGENT="Ana García [email protected]"

# Alpaca paper trading (nunca claves live en el laboratorio)
ALPACA_API_KEY=PK...
ALPACA_API_SECRET=...

# Checkpointer Postgres (debe coincidir con docker-compose)
POSTGRES_URI=postgresql://quant:quant@localhost:5432/checkpoints

Docker Compose para el checkpointer. Los agentes con memoria durable de los módulos 3 y 12 usan AsyncPostgresSaver, que requiere un Postgres accesible. Un servicio mínimo basta:

services:
  postgres:
    image: postgres:16
    container_name: quant-postgres
    environment:
      POSTGRES_USER: quant
      POSTGRES_PASSWORD: quant
      POSTGRES_DB: checkpoints
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U quant -d checkpoints"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  pgdata:

Nota de inicialización: no hay que crear ninguna tabla a mano. En la primera ejecución, el checkpointer crea su esquema invocando una vez await checkpointer.setup() (los notebooks de los módulos 3 y 12 ya lo hacen de forma idempotente). El volumen pgdata preserva los checkpoints entre reinicios del contenedor; bórrelo con docker compose down -v solo si quiere un estado limpio.

Datasets del curso. Tres conjuntos de datos, todos regenerables, sustentan los ejemplos:

  1. Precios OHLCV diarios: 10 tickers líquidos estadounidenses (mega-caps y ETFs sectoriales), 5 años de historia (jul-2021 a jul-2026), descargables vía la API de Massive o, como fallback gratuito, vía yfinance. Los notebooks cachean el resultado en data/ohlcv.parquet para que los módulos de backtesting sean deterministas y no dependan de la red. yfinance se declara solo para laboratorio: sin SLA, con esquema cambiante y sujeto a rate limiting; en producción se usa un proveedor con contrato.
  2. Corpus de 3 earnings calls: transcripciones (texto plano) de tres earnings calls trimestrales de emisores del universo anterior. Alimentan el pipeline RAG del módulo 5 (chunking, indexación en ChromaDB, hybrid retrieval con BM25) sin costes de licencia: son documentos sintéticos curados para el curso que imitan la estructura de una transcripción real (apertura de operador, prepared remarks del CEO/CFO, Q&A de analistas).
  3. Subset de evaluación estilo FinanceBench: 20 preguntas de respuesta abierta con respuesta de referencia y evidencia asociada, construidas sobre el corpus anterior siguiendo la metodología del benchmark FinanceBench de Patronus AI (QA open-book sobre documentos financieros, tolerancia numérica en el scoring) (API EvangelistAPI Evangelist) . Se usa en el módulo 11 como golden dataset para evaluar el agente RAG con RAGAS y con exact-match numérico, y como semilla del dataset de regresión en CI.

Verificación del entorno. Tras pip install -r requirements.txt, la comprobación mínima es:

python -c "import langchain; print(langchain.__version__)"
# Salida esperada: 1.3.14

Conviene además levantar Postgres (docker compose up -d) y ejecutar el notebook 00_smoke_test.ipynb del repositorio, que valida la conexión del checkpointer, la clave de LangSmith (debe aparecer una traza en el proyecto langchain-quant-course) y la descarga de un ticker de muestra.

Advertencia final. Todas las versiones, precios de APIs y condiciones de los proveedores citados en el curso están verificados a julio de 2026 (questdb.com) . La cadencia semanal de patches del ecosistema LangChain y la frecuente revisión de tarifas de datos y de LLMs hacen imprescindible re-verificar versiones y costes antes de cualquier uso en producción, y ejecutar la suite de tests de integración del repositorio tras cada actualización de dependencias.


Apéndice B de 3 — LangChain para Trading Cuantitativo. Datos y versiones verificados a julio de 2026; precios y cifras de mercado sujetos a cambio. LangChain 1.3.14 / langchain-core 1.5.2.