From bd1b0a283629f38b606714b9ab3ab69ea09c856e Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Fri, 26 Dec 2025 21:12:34 +0800 Subject: [PATCH] perf: drop unnecessary none-value fields in tool call loop (#4213) --- astrbot/core/agent/message.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/astrbot/core/agent/message.py b/astrbot/core/agent/message.py index d69bc6a81..c51ce5008 100644 --- a/astrbot/core/agent/message.py +++ b/astrbot/core/agent/message.py @@ -169,6 +169,15 @@ class Message(BaseModel): ) return self + @model_serializer(mode="wrap") + def serialize(self, handler): + data = handler(self) + if self.tool_calls is None: + data.pop("tool_calls", None) + if self.tool_call_id is None: + data.pop("tool_call_id", None) + return data + class AssistantMessageSegment(Message): """A message segment from the assistant."""