From f6055b290a7b3c7100db0d846d3c8b2796d463f1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 19 Jan 2026 13:28:07 +0000 Subject: [PATCH 1/3] Initial plan From 2b9cda15e47ca2cdcdd2bf4a57c3f6c677346219 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 19 Jan 2026 13:31:43 +0000 Subject: [PATCH 2/3] Fix tool_call_id error by adding metadata to tool_result and using it in ToolMessage Co-authored-by: jxxghp <51039935+jxxghp@users.noreply.github.com> --- app/agent/__init__.py | 6 +++++- app/agent/tools/base.py | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/agent/__init__.py b/app/agent/__init__.py index 9965ccf9..880f6aa1 100644 --- a/app/agent/__init__.py +++ b/app/agent/__init__.py @@ -113,7 +113,11 @@ class MoviePilotAgent: ) ) elif msg.get("role") == "tool_result": - chat_history.add_message(ToolMessage(content=msg.get("content", ""))) + metadata = msg.get("metadata", {}) + chat_history.add_message(ToolMessage( + content=msg.get("content", ""), + tool_call_id=metadata.get("call_id", "unknown") + )) elif msg.get("role") == "system": chat_history.add_message(SystemMessage(content=msg.get("content", ""))) return chat_history diff --git a/app/agent/tools/base.py b/app/agent/tools/base.py index 6246ef4f..f200aa46 100644 --- a/app/agent/tools/base.py +++ b/app/agent/tools/base.py @@ -83,7 +83,10 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta): session_id=self._session_id, user_id=self._user_id, role="tool_result", - content=formated_result + content=formated_result, + metadata={ + "call_id": self.__class__.__name__ + } ) return result From 08eb32d7bd5e15264d7b742995d168439eae5864 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 19 Jan 2026 13:33:01 +0000 Subject: [PATCH 3/3] Fix isinstance syntax error for int/float type checking Co-authored-by: jxxghp <51039935+jxxghp@users.noreply.github.com> --- app/agent/tools/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/agent/tools/base.py b/app/agent/tools/base.py index f200aa46..66c01c1b 100644 --- a/app/agent/tools/base.py +++ b/app/agent/tools/base.py @@ -75,7 +75,7 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta): # 记忆工具调用结果 if isinstance(result, str): formated_result = result - elif isinstance(result, int, float): + elif isinstance(result, (int, float)): formated_result = str(result) else: formated_result = json.dumps(result, ensure_ascii=False, indent=2)