Una firma de trading de agentes LLM: 117.000 estrellas y un aviso

TradingAgents tiene unas 117.700 estrellas en GitHub y esta semana sumó cerca de 4.900, lo que lo coloca entre los repositorios más populares de la categoría «agentes que hacen trabajo real». Es un framework multiagente de Tauric Research que simula una firma de trading: analistas, investigadores, un operador, un equipo de riesgo y un gestor de cartera, todos movidos por modelos de lenguaje, discutiendo entre sí hasta que algo se aprueba.
El repositorio es cuidadoso con lo que afirma. Su propia descripción dice que está diseñado con fines de investigación y añade que el rendimiento variará según el modelo base elegido, la temperatura, el periodo de operación, la calidad de los datos y la simple no determinación. Esa frase hace mucho trabajo, y es lo más importante del README.
El organigrama es la arquitectura
Lo interesante aquí no es que un LLM pueda elegir acciones. Hay muchos prompts que lo hacen mal. Lo interesante es que el pipeline está estructurado como una empresa real, con separación de funciones y una etapa de debate.
Cuatro analistas trabajan en paralelo y de forma independiente: fundamentales (estados financieros, valor intrínseco, señales de riesgo), sentimiento (titulares, StockTwits, Reddit), noticias (eventos globales y macro) y técnico (MACD, RSI, reconocimiento de patrones). Ninguno ve la producción de los demás. Los cuatro informes tienen que estar listos antes de que empiece cualquier otra cosa.
Después, un equipo de investigación de dos personas —un toro y un oso— debate esos informes en rondas estructuradas. Luego un operador sintetiza el material de analistas e investigadores en una decisión con momento y tamaño. Después el equipo de riesgo evalúa volatilidad, liquidez y exposición, y entrega una valoración a un gestor de cartera que aprueba o rechaza. Las operaciones aprobadas van a un mercado simulado.
Si has trabajado en un fondo, la forma te resultará familiar, incluida la parte en la que el equipo de riesgo tiene poder de veto y el gestor de cartera tiene la última palabra. Eso no es decoración. Las firmas de trading se organizan así porque un único decisor con una sola visión del mundo comete errores correlacionados. La estructura es un mecanismo de corrección de error, y el framework copia el mecanismo, no los nombres de los puestos.

Ponerlo en marcha
Python 3.11 o superior. El README sugiere conda o uv:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
pip install .
Luego copia el archivo de entorno y añade las claves:
cp .env.example .env
Y ejecuta la CLI interactiva:
tradingagents
También hay una vía con Docker, que es la que yo usaría si quieres resultados reproducibles:
docker compose run --rm tradingagents
Para ejecuciones programadas existe un modo no interactivo con selección explícita de modelo:
export TRADINGAGENTS_LLM_PROVIDER=openai \
TRADINGAGENTS_QUICK_THINK_LLM=gpt-6-luna \
TRADINGAGENTS_DEEP_THINK_LLM=gpt-6-sol
tradingagents --ticker NVDA --date 2026-09-23 \
--analysts market,news,fundamentals --save --no-show
Ese reparto en dos modelos merece atención. El «quick think» se ocupa de los turnos mecánicos; el «deep think» se ocupa del análisis. Es una decisión de control de costes disfrazada de opción de configuración, y da a entender que los autores saben que una ejecución multiagente completa sobre un modelo grande sale cara por cada ticker.
El problema de los números
Aquí es donde discreparía de cómo se suele hablar de este repositorio.
Un sistema de trading multiagente que produce una decisión por ticker y por día genera muy pocos puntos de datos al año. Si lo ejecutas sobre 30 tickers durante 12 meses, tienes 7.560 decisiones, lo que suena a mucho hasta que recuerdas que todas salen de los mismos 12 meses de condiciones de mercado. El tamaño efectivo de la muestra se parece más a un solo régimen que a 7.560 observaciones independientes.
Súmale la no determinación que advierte el README. La temperatura, la versión del modelo, la latencia de las herramientas y el orden en que llegan las noticias recuperadas mueven la salida. Dos ejecuciones en la misma fecha y el mismo ticker pueden divergir en la etapa de debate de los investigadores y acabar con posiciones distintas. Eso hace que un backtest convencional sea casi imposible de replicar, y la replicación es lo único que convierte un resultado en evidencia.
Nada de esto es un ataque al framework. Es un ataque al género de artículos del tipo «mi agente superó al S&P» que siguen a cada lanzamiento como este. Los propios autores lo publican como paper en arXiv (2412.20138) con un enfoque de investigación, y el repositorio dice «fines de investigación» en la primera frase. La brecha entre eso y la manera en que se comparte es donde la gente pierde dinero.
Qué compra realmente la capa de debate
He leído bastantes transcripciones de debates entre agentes y hay un patrón constante: el debate cambia menos a menudo la conclusión que la confianza.
Aun así es útil. Un toro y un oso discutiendo sobre los mismos informes de analistas sacan a la superficie el supuesto concreto del que depende la operación —«esto funciona si la expansión de márgenes continúa»—, y esa es justo la frase que un analista humano debería estar leyendo de todos modos. La salida no es una señal. Es una declaración estructurada de lo que tiene que ser cierto.
También hay un riesgo real en la dirección opuesta: las transcripciones de debate son persuasivas. Una tesis bajista bien escrita se lee como hallazgo aunque esté construida sobre una cifra de beneficios alucinada. El framework lo mitiga aislando a los analistas entre sí y dando poder de veto al equipo de riesgo, pero nada en el pipeline verifica que el número citado exista. Si lo despliegas, la capa de verificación es cosa tuya, y debería ser una barrera dura y no la opinión de otro agente.
Cómo tendría que ser un resultado de verdad
Si alguien quiere convencerme de que una configuración multiagente así tiene ventaja, este es el listón mínimo, y está más alto que cualquier demo que haya visto.
Congela todo. Versiones de modelo, temperatura, plantillas de prompt, fecha de la instantánea de datos y corpus de recuperación. Un resultado obtenido con datos en vivo un martes concreto es una anécdota, no una medición.
Compara con la referencia correcta. No «¿ganó dinero?», sino «¿superó a una estrategia ingenua con la misma exposición?». Un sistema solo largo en un mercado alcista bate al efectivo por definición, y una cantidad sorprendente del contenido sobre trading con agentes es exactamente eso, con pasos extra.
Reporta el coste. Una ejecución completa con cuatro analistas y varias rondas de debate consume tokens reales por ticker y por día. Si la estrategia rinde un 12 por ciento anual y la factura de modelos es el 3 por ciento de la cartera, la capa de debate tiene que valer una cuarta parte del alfa antes de ganarse su sitio.
Y publica las ejecuciones perdedoras. El repositorio de seguridad de Cloudflare es creíble porque dice en voz alta que una pasada encuentra la mitad de lo que encuentran las pasadas repetidas. El equivalente aquí sería publicar los tickers en los que el investigador bajista tenía razón y el gestor de cartera lo anuló. Nadie lo hace todavía, en ningún repositorio.
Quién debería clonarlo de verdad
Tres usos legítimos, y ninguno es «gestiona mi dinero».
Como andamiaje para investigar la coordinación multiagente, es genuinamente bueno: separación de roles limpia, un protocolo de debate, un mecanismo de veto y un paper que describe el diseño. Si estudias si el desacuerdo estructurado mejora el razonamiento de los LLM, esto es un banco de pruebas que funciona y cuya interfaz no tienes que construir.
Como herramienta educativa para quien aprende cómo un escritorio de trading descompone una decisión, es mejor que un diagrama de manual, porque puedes ver fluir los informes y ver dónde se propaga una mala entrada.
Como pre-mortem personal, con límites estrictos: pásalo sobre una posición que ya tengas, lee la tesis bajista y trata la salida como una lista de cosas que verificar. El valor está en las preguntas, no en el campo BUY/SELL. Y mantenlo en el mercado simulado, que es donde viene por defecto y donde debería quedarse.
Las 117.000 estrellas son una señal de demanda, no de rendimiento. La gente quiere un sistema que lea las noticias por ellos y les diga qué hacer. Este framework les da algo más honesto y menos satisfactorio: una sala llena de colegas que no están de acuerdo, y una decisión que sigue dependiendo de si los datos eran correctos.
Artículos relacionados
225,000 estrellas para un Markdown: Karpathy en cuatro reglas
Sin código, sin compilación, sin benchmark: cuatro principios en un CLAUDE.md atrajeron más atención que la mayoría de los lanzamientos de capacidad del año.
Cloudflare libera su auditor interno: lo importante es que rebate
Seis fases, tres veredictos y una regla que importa: el agente que comprueba un hallazgo nunca es el que lo encontró. Cloudflare además admite que una sola ejecución encuentra más o menos la mitad.
Impeccable: 62 reglas deterministas contra el slop de IA
Inter por todas partes, degradados violetas, tarjetas dentro de tarjetas: 24 comandos y 62 reglas deterministas frenan el slop en CI sin gastar un token.
Graphify convierte una carpeta en un grafo. El 71.5x pide contexto
Apunta un agente de programación a una carpeta, escribe /graphify y sale un grafo con aristas etiquetadas como extracted, inferred o ambiguous. La etiqueta, no el ahorro de tokens, es lo interesante.