This commit is contained in:
2026-06-13 10:12:53 -03:00
parent a3f5e9966f
commit 42c167212a
5 changed files with 80 additions and 10 deletions

View File

@@ -145,12 +145,23 @@ class BackofficeAgent(AgentRuntimeMixin):
{"message": "Backoffice native agent completed", "type": "INFO"},
component="agent.backoffice.native.completed",
)
siebel = self._extract_siebel_result(mcp_results)
return {
"answer": answer,
"next_state": self._next_state(normalized_state, mcp_results),
"mcp_results": mcp_results,
"rag_metadata": rag_metadata,
"crmProtocol": siebel.get("crmProtocol"),
"fieldsToUpdate": siebel.get("fieldsToUpdate"),
"transitions": siebel.get("transitions"),
"metadata": {
**(normalized_state.get("metadata") or {}),
"siebel_response": siebel.get("siebel_response"),
},
"framework_native": {
"agent": self.name,
"intent": normalized_state.get("intent"),
@@ -419,3 +430,16 @@ Regras obrigatórias:
if any(r.get("skipped") for r in mcp_results):
return "BACKOFFICE_WAITING_ACTION_TEXT"
return "BACKOFFICE_ACTIVE"
def _extract_siebel_result(self, mcp_results: list[dict[str, Any]]) -> dict[str, Any]:
for item in mcp_results:
tool = item.get("tool_name") or item.get("tool")
if tool in {"registrar_acao_siebel", "abrir_chamado_siebel", "backOfficeSRopening"}:
result = item.get("result") or item.get("data") or item
return {
"crmProtocol": result.get("crmProtocol"),
"fieldsToUpdate": result.get("fieldsToUpdate"),
"transitions": result.get("transitions") or [],
"siebel_response": result,
}
return {}

View File

@@ -117,7 +117,7 @@ class AgentWorkflow:
self.embedding_provider = create_embedding_provider(settings)
self.rag_service = RagService(settings, telemetry=telemetry)
self.router = EnterpriseRouter(settings, llm=llm, telemetry=telemetry)
agent_kwargs = {"telemetry": telemetry, "tool_router": getattr(self, "tool_router", None), "rag_service": self.rag_service, "cache": self.cache, "settings": settings, "observer": self.observer}
agent_kwargs = {"telemetry": telemetry, "tool_router": self.tool_router, "rag_service": self.rag_service, "cache": self.cache, "settings": settings, "observer": self.observer}
self.billing = BillingAgent(llm, **agent_kwargs)
self.product = ProductAgent(llm, **agent_kwargs)
self.orders = OrdersAgent(llm, **agent_kwargs)