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 {}