Exemplo: Pesquisa com agentes
Uma plataforma de pesquisa com agentes autônomos. Mostra as quatro formas de
orquestração da jangada lado a lado: agente único, time (Squad),
planejamento (plan) e failover (with_fallback) — além de integração
com servidores MCP remotos.
Pasta: pocs/pesquisa-agentes · Porta sugerida: 8004
Recursos da jangada
Agent— agente autônomo com loop de toolsSquad— time de agentes com handoff sequencialplan()— decompõe um objetivo em tarefaswith_fallback()— failover automático entre providersMCPClient+run_agent()— agente sobre tools de um servidor MCP
Núcleo do exemplo
Agente único (app/routers/pesquisa.py):
from jangada_ai import Agent
from jangada_ai.prebuilt import calculator, current_datetime, wikipedia_search
agente = Agent(
llm, role="Pesquisador", goal="responder com precisão usando as ferramentas",
tools=[wikipedia_search, calculator, current_datetime],
)
res = agente.run(req.tarefa)Time com handoff:
from jangada_ai import Squad
pesquisador = Agent(llm, role="Pesquisador", goal="levantar fatos e fontes", tools=[wikipedia_search])
analista = Agent(llm, role="Analista", goal="organizar os achados em tópicos")
redator = Agent(llm, role="Redator", goal="escrever um briefing claro e conciso")
res = Squad([pesquisador, analista, redator]).run(req.tarefa)Failover entre providers:
llm = primario.with_fallback(reserva) # cai p/ o reserva em 429/5xx/timeout
comp = await llm.acomplete(req.prompt)
print(comp.provider, comp.model) # quem de fato respondeuAgente sobre MCP remoto (app/routers/mcp.py):
from jangada_ai import MCPClient, run_agent
async with MCPClient(url, headers={"Authorization": f"Bearer {token}"}) as mcp:
ans = await run_agent(llm, req.tarefa, client=mcp)Pontos de atenção
- Prefira
Squadsequencial quando os papéis são claros (pesquisar → analisar → redigir); é mais previsível que um agente único longo. - O
with_fallbackfaz failover antes do primeiro token — não troca de provider no meio de uma resposta.
Como rodar
cd pocs/pesquisa-agentes
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8004 # http://localhost:8004/docsVeja Agentes, Retry e fallback e MCP.