From a2455bcbec40a8ce474a680e07b805e0cd60da8b Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman Date: Thu, 21 Aug 2025 21:07:20 +0000 Subject: [PATCH] Seems to fix the vetting stage --- src/cleveragents/agents/llm.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/cleveragents/agents/llm.py b/src/cleveragents/agents/llm.py index 9c1f59fac..b8ec53282 100644 --- a/src/cleveragents/agents/llm.py +++ b/src/cleveragents/agents/llm.py @@ -425,10 +425,21 @@ class LLMAgent(AgentWithMemory): ) conversation_messages = [m for m in messages if m.get("role") != "system"] - contents: List[Dict[str, Any]] = [ - {"role": msg["role"], "parts": [{"text": msg["content"]}]} - for msg in conversation_messages - ] + # Map roles to Google Gemini's expected format + role_mapping = { + "user": "user", + "assistant": "model", + "model": "model" # In case it's already mapped + } + + contents: List[Dict[str, Any]] = [] + for msg in conversation_messages: + original_role = msg.get("role", "user") + gemini_role = role_mapping.get(original_role, "user") + contents.append({ + "role": gemini_role, + "parts": [{"text": msg["content"]}] + }) data: Dict[str, Any] = { "contents": contents,