diff --git a/nanobot/agent/loop.py b/nanobot/agent/loop.py index 4adc798..b402ea0 100644 --- a/nanobot/agent/loop.py +++ b/nanobot/agent/loop.py @@ -469,6 +469,14 @@ class AgentLoop: content = entry["content"] if len(content) > self._TOOL_RESULT_MAX_CHARS: entry["content"] = content[:self._TOOL_RESULT_MAX_CHARS] + "\n... (truncated)" + if entry.get("role") == "user" and isinstance(entry.get("content"), list): + entry["content"] = [ + {"type": "text", "text": "[image]"} if ( + c.get("type") == "image_url" + and c.get("image_url", {}).get("url", "").startswith("data:image/") + ) else c + for c in entry["content"] + ] entry.setdefault("timestamp", datetime.now().isoformat()) session.messages.append(entry) session.updated_at = datetime.now() diff --git a/nanobot/utils/helpers.py b/nanobot/utils/helpers.py index 62f80ac..06d8fd5 100644 --- a/nanobot/utils/helpers.py +++ b/nanobot/utils/helpers.py @@ -3,7 +3,6 @@ from pathlib import Path from datetime import datetime - def ensure_dir(path: Path) -> Path: """Ensure a directory exists, creating it if necessary.""" path.mkdir(parents=True, exist_ok=True) @@ -77,4 +76,4 @@ def parse_session_key(key: str) -> tuple[str, str]: parts = key.split(":", 1) if len(parts) != 2: raise ValueError(f"Invalid session key: {key}") - return parts[0], parts[1] + return parts[0], parts[1] \ No newline at end of file