TL;DR / Resposta Rápida
A forma mais prática e rápida de integrar o TradingAgents a um fluxo de trabalho de engenharia é rodá-lo como um pacote Python, envolvê-lo em um serviço FastAPI simples e testar essa API usando o Apidog. Assim, você cria um fluxo repetível para acionar análises, inspecionar resultados, documentar o contrato da API e compartilhar a configuração com a equipe.
Introdução
TradingAgents é um framework de negociação multiagente fácil de admirar no GitHub: possui uma CLI bem feita, suporta múltiplos provedores de modelos e oferece documentação acadêmica sólida. Porém, o desafio real começa quando você quer usá-lo de verdade em um ambiente de engenharia.
Se sua equipe precisa acionar análises por API, monitorar resultados, documentar contratos e entregar esse fluxo para frontend, QA ou plataforma, envolver o TradingAgents em uma API controlada e documentada é essencial. Isso evita dependência de scripts locais e melhora a segurança, auditabilidade e colaboração.
💡 O Apidog encaixa perfeitamente aqui: basta importar o OpenAPI do FastAPI, salvar ambientes, extrair variáveis de respostas, encadear requisições e publicar documentação para a equipe. Baixe o Apidog gratuitamente para acompanhar.
O Que o TradingAgents É e Não É
Antes de começar, entenda o escopo da ferramenta.
TradingAgents é um framework open-source para negociação multiagente. Ele mapeia funções típicas de uma empresa de trading:
- Analistas de fundamentos, sentimento, notícias e sinais técnicos
- Pesquisadores otimistas e pessimistas
- Agente trader
- Funções de gerenciamento de risco
- Gestor de portfólio
O framework utiliza LangGraph, suporta diversos LLMs (OpenAI, Google, Anthropic, xAI, OpenRouter, Ollama), e sua configuração padrão usa, por exemplo:
llm_provider = "openai"deep_think_llm = "gpt-5.2"quick_think_llm = "gpt-5-mini"backend_url = "https://api.openai.com/v1"max_debate_rounds = 1
Ou seja, é um framework Python configurável – não uma API SaaS pronta.
O projeto é explícito: é um framework de pesquisa, não consultoria financeira. Mantenha esse aviso visível em qualquer software ou documentação que utilize o TradingAgents.
Passo 1: Instalar o TradingAgents
Clone o repositório e instale as dependências:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
conda create -n tradingagents python=3.13
conda activate tradingagents
pip install .
Para criar o wrapper de API, adicione FastAPI e Uvicorn:
pip install fastapi uvicorn
Configure as variáveis de ambiente (exemplo do .env.example):
OPENAI_API_KEY=
GOOGLE_API_KEY=
ANTHROPIC_API_KEY=
XAI_API_KEY=
OPENROUTER_API_KEY=
Dicas práticas:
- Guarde credenciais em variáveis de ambiente ou em um gerenciador de segredos.
- Nunca envie segredos pelo corpo da API pública.
Isso simplifica ambientes no Apidog e protege sua aplicação.
Passo 2: Execute o TradingAgents em Python Localmente
Antes de qualquer API, certifique-se de que o TradingAgents funciona no seu ambiente:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
Para customizar parâmetros:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "openai"
config["deep_think_llm"] = "gpt-5.2"
config["quick_think_llm"] = "gpt-5-mini"
config["max_debate_rounds"] = 2
ta = TradingAgentsGraph(debug=True, config=config)
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
Principais parâmetros a expor futuramente via API:
tickeranalysis_datellm_providerdeep_think_llmquick_think_llm-
research_depth(profundidade da pesquisa)
Testar localmente evita dores de cabeça na depuração de API.
Passo 3: Escolha Como Usar o TradingAgents
Você pode usar o framework de três formas:
Opção 1: CLI
A CLI é ideal para aprender, experimentar sozinho ou explorar rapidamente. Não use se pretende entregar para frontend, QA ou outros times.
Opção 2: Python Direto
Use scripts Python quando precisar de automação local, notebooks ou controle programático. Ainda não é suficiente para múltiplas equipes.
Opção 3: API Wrapper + Apidog
Exponha o TradingAgents via FastAPI e use o Apidog para testar, documentar e compartilhar o fluxo de trabalho. Ideal para times, frontends, QA e ambientes colaborativos.
Passo 4: Envolva o TradingAgents em um Serviço FastAPI
Utilize o padrão de API baseada em tarefas (task-based):
POST /analyses -> retorna analysis_id
GET /analyses/{id} -> retorna status/resultados
Contrato mínimo da API
| Endpoint | Propósito |
|---|---|
GET /health |
Verificação de saúde |
POST /analyses |
Aciona uma execução do TradingAgents |
GET /analyses/{analysis_id} |
Obtém status e resultado da análise |
Exemplo de wrapper FastAPI
from concurrent.futures import ThreadPoolExecutor
from datetime import date, datetime
from uuid import uuid4
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field
from tradingagents.default_config import DEFAULT_CONFIG
from tradingagents.graph.trading_graph import TradingAgentsGraph
app = FastAPI(title="TradingAgents API", version="0.1.0")
executor = ThreadPoolExecutor(max_workers=2)
jobs: dict[str, dict] = {}
class AnalysisRequest(BaseModel):
ticker: str = Field(..., min_length=1, examples=["NVDA"])
analysis_date: date
llm_provider: str = Field(default="openai")
deep_think_llm: str = Field(default="gpt-5.2")
quick_think_llm: str = Field(default="gpt-5-mini")
research_depth: int = Field(default=1, ge=1, le=5)
def run_analysis(job_id: str, payload: AnalysisRequest) -> None:
jobs[job_id]["status"] = "running"
jobs[job_id]["started_at"] = datetime.utcnow().isoformat()
config = DEFAULT_CONFIG.copy()
config["llm_provider"] = payload.llm_provider
config["deep_think_llm"] = payload.deep_think_llm
config["quick_think_llm"] = payload.quick_think_llm
config["max_debate_rounds"] = payload.research_depth
config["max_risk_discuss_rounds"] = payload.research_depth
try:
graph = TradingAgentsGraph(debug=False, config=config)
_, decision = graph.propagate(
payload.ticker,
payload.analysis_date.isoformat(),
)
jobs[job_id].update(
{
"status": "completed",
"finished_at": datetime.utcnow().isoformat(),
"result": decision,
}
)
except Exception as exc:
jobs[job_id].update(
{
"status": "failed",
"finished_at": datetime.utcnow().isoformat(),
"error": str(exc),
}
)
@app.get("/health")
def health() -> dict:
return {"status": "ok"}
@app.post("/analyses", status_code=202)
def create_analysis(payload: AnalysisRequest) -> dict:
analysis_id = str(uuid4())
jobs[analysis_id] = {
"status": "queued",
"ticker": payload.ticker,
"analysis_date": payload.analysis_date.isoformat(),
"created_at": datetime.utcnow().isoformat(),
}
executor.submit(run_analysis, analysis_id, payload)
return {"analysis_id": analysis_id, "status": "queued"}
@app.get("/analyses/{analysis_id}")
def get_analysis(analysis_id: str) -> dict:
job = jobs.get(analysis_id)
if not job:
raise HTTPException(status_code=404, detail="Analysis not found")
return job
Inicie o serviço:
uvicorn app:app --reload
Endpoints disponíveis:
http://localhost:8000/docs-
http://localhost:8000/openapi.json(para importar no Apidog)
Passo 5: Use o TradingAgents Pela API
Acionar uma análise
Envie um POST /analyses com:
{
"ticker": "NVDA",
"analysis_date": "2026-03-26",
"llm_provider": "openai",
"deep_think_llm": "gpt-5.2",
"quick_think_llm": "gpt-5-mini",
"research_depth": 2
}
Resposta esperada:
{
"analysis_id": "88f9f0f5-7315-4c73-8ed5-d0a71f613d31",
"status": "queued"
}
Polling do resultado
Use GET /analyses/{analysis_id} para acompanhar o progresso:
{
"status": "running",
"ticker": "NVDA",
"analysis_date": "2026-03-26",
"created_at": "2026-03-26T06:00:00.000000",
"started_at": "2026-03-26T06:00:01.000000"
}
Ao finalizar:
{
"status": "completed",
"ticker": "NVDA",
"analysis_date": "2026-03-26",
"result": {
"decision": "hold"
}
}
Em caso de erro, retorne "status": "failed" e mensagem clara.
Passo 6: Importe a API no Apidog
No Apidog, importe o esquema OpenAPI:
http://localhost:8000/openapi.json
Vantagens:
- Documentação sempre alinhada ao código
- Parâmetros e exemplos prontos para uso
- Colegas não precisam reconstruir a coleção manualmente
- Facilita design, testes, ambientes e documentação centralizada
Passo 7: Crie um Ambiente no Apidog
Configure variáveis como:
base_url = http://localhost:8000
analysis_id =
Se precisar de autenticação:
internal_api_key = sua-chave-dev-local
Isso permite alternar facilmente entre ambientes (local, staging, produção) e reutilizar requisições.
Passo 8: Teste o Fluxo Completo no Apidog
Requisição 1: Criar análise
- Método:
POST - URL:
{{base_url}}/analyses - Corpo:
{
"ticker": "NVDA",
"analysis_date": "2026-03-26",
"llm_provider": "openai",
"deep_think_llm": "gpt-5.2",
"quick_think_llm": "gpt-5-mini",
"research_depth": 2
}
Script de teste:
pm.test("Status é 202", function () {
pm.response.to.have.status(202);
});
const data = pm.response.json();
pm.expect(data.analysis_id).to.exist;
pm.environment.set("analysis_id", data.analysis_id);
Requisição 2: Polling
- Método:
GET - URL:
{{base_url}}/analyses/{{analysis_id}}
Teste de status válido:
pm.test("Análise tem um status válido", function () {
const data = pm.response.json();
pm.expect(["queued", "running", "completed", "failed"]).to.include(data.status);
});
Teste de resultado ao completar:
pm.test("Tarefas concluídas incluem um resultado", function () {
const data = pm.response.json();
if (data.status === "completed") {
pm.expect(data.result).to.exist;
}
});
Encadeie as requisições em cenários
Monte um cenário no Apidog:
- Envia
POST /analyses - Armazena
analysis_id - Aguarda alguns segundos
- Executa
GET /analyses/{{analysis_id}}
Assim, QA e devs validam todo o ciclo de vida, não apenas respostas pontuais.
Passo 9: Publique Documentação Interna para a Equipe
Depois dos testes, publique docs no Apidog explicando:
- Provedores permitidos
- Significado do
research_depth - Possíveis status de tarefa
- Duração média das execuções
- Quais erros podem ser reprocessados
- Aviso de uso “apenas para pesquisa”
Transforme o TradingAgents em um workflow de API documentado e compartilhado.
Erros Comuns ao Usar o TradingAgents Desta Forma
Tratar o framework como uma API hospedada
TradingAgents não é uma SaaS pronta. Projete o contrato de API que sua equipe precisa.
Passar segredos no corpo das requisições
Sempre use gerenciamento de ambiente para chaves. Nunca exponha segredos em exemplos, frontend ou screenshots.
Retornar resposta síncrona longa
Evite endpoints que bloqueiam por muito tempo. Use APIs baseadas em tarefas (job/task pattern).
Expor excesso de parâmetros de configuração
Comece expondo só o essencial. Expanda conforme o caso de uso amadurecer.
Manter resultados apenas em memória
O exemplo usa dicionário em memória. Em produção, armazene tarefas em Redis, Postgres, etc.
Esconder o aviso de pesquisa
Seja claro: TradingAgents é para pesquisa, não para decisões financeiras automáticas.
Conclusão
A melhor forma de usar o TradingAgents depende do seu objetivo. Para fluxos colaborativos, envolva-o em uma API, teste e documente tudo com o Apidog.
Resumo do caminho mais prático:
- Instale o TradingAgents.
- Teste o
TradingAgentsGraphlocalmente. - Crie endpoints
POST /analyseseGET /analyses/{id}. - Importe o OpenAPI no Apidog.
- Construa cenários ponta a ponta e compartilhe com a equipe.
Esse fluxo é muito mais sustentável do que scripts isolados ou conhecimento tribal de terminal.
FAQ
Como usar o TradingAgents pela primeira vez?
Instale o repositório, configure as variáveis de ambiente do provedor e rode o exemplo Python com TradingAgentsGraph. Só depois avalie se precisa de uma API.
O TradingAgents vem com uma API REST oficial?
Não. O projeto fornece CLI e pacote Python. A FastAPI é necessária para equipes que desejam API.
Qual a melhor forma de usar o TradingAgents em um frontend?
Não chame o Python direto do frontend. Exponha via API backend que retorna um analysis_id e permita polling pelo resultado.
Por que usar o Apidog com o TradingAgents?
O Apidog permite importar o OpenAPI, salvar ambientes, adicionar exemplos, scripts de teste, asserções e documentar o fluxo de trabalho para toda a equipe, sem depender de engenharia reversa.
Quais configurações do TradingAgents devo expor na API?
Comece com: ticker, data de análise, provedor, modelos e profundidade de pesquisa. Expanda a API conforme a necessidade real.
Posso manter o estado da tarefa em memória como no exemplo?
Apenas para prototipagem. Em produção, use um backend durável (Redis, Postgres etc).
O TradingAgents é adequado para decisões financeiras em tempo real?
Não. O projeto é para pesquisa e experimentação, não para decisões finais de investimento. Se precisar disso, adicione controles e validação próprios.


Top comments (0)