mirror of
https://github.com/hoshikawa2/first_contas.git
synced 2026-07-09 10:14:20 +00:00
2.1 KiB
2.1 KiB
Correção V6 — Diagnóstico MCP e Judges
Problema observado
No teste, o agent_framework_oci acionava o MCP Router, mas os resultados das tools vinham como:
ok: False
result: None
error: ''
metadata: {}
cached: False
Isso impedia saber se a falha era URL, autenticação, payload, timeout, status HTTP, rede ou bug no adapter.
Também apareceu:
Judge calibrado declarado em judges.yaml, mas nenhum LLM foi fornecido ao pipeline.
Correções aplicadas
1. MCP server preserva erro real
Arquivo alterado:
mcp_servers/legacy_tim_mcp/main.py
Agora toda falha HTTP ou de rede retorna metadata com:
servertoolmockprefixmethodurlstatus_code, quando houver resposta HTTPresponse_content_typeresponse_body_previewexception_typetimeout_secondsrequest_payload_keys- headers sanitizados, sem segredo
Exemplo esperado:
{
"ok": false,
"result": null,
"error": "TIM_COMPLETE_INVOICES falhou: status=400 body=...",
"metadata": {
"server": "legacy_tim",
"tool": "consultar_fatura",
"mock": false,
"method": "POST",
"url": "http://10.151.3.100:8000/customers/v1/completeInvoices",
"status_code": 400,
"exception_type": "HTTPStatusError",
"response_body_preview": "..."
}
}
2. Judges recebem LLM do framework
Arquivo alterado:
app/workflows/agent_graph.py
Antes:
self.judges = JudgePipeline()
Depois:
self.judges = JudgePipeline(llm=llm, settings=settings)
Assim o judges.yaml usa o LLM criado pelo backend e o profile judge do llm_profiles.yaml.
3. .env corrigido para uso com source .env
Valores com espaço, como Basic ... e Bearer ..., foram colocados entre aspas.
Exemplo:
TIM_COMPLETE_INVOICES_AUTH="Basic ..."
Como validar
Suba o MCP:
./scripts/start_legacy_tim_mcp.sh
Teste direto:
./tests/curl_mcp_consultar_fatura.sh
Depois teste pelo backend:
./tests/curl_gateway_fatura.sh
No log, procure por:
mcp_results
metadata
status_code
response_body_preview
mock: false