From 5c2380e31cf232c30beddb1695852d60b4efe97b Mon Sep 17 00:00:00 2001 From: root <953994191@qq.com> Date: Fri, 8 May 2026 02:05:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=82=E9=85=8D=20finalize=20?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E8=BF=94=E5=9B=9E=E7=9A=84=20final=5Freply?= =?UTF-8?q?=20=E5=92=8C=20metadata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- backend/app/agent/agent_service.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/backend/app/agent/agent_service.py b/backend/app/agent/agent_service.py index dc03e74..bedaedf 100644 --- a/backend/app/agent/agent_service.py +++ b/backend/app/agent/agent_service.py @@ -105,19 +105,24 @@ class AIAgentService: config, input_state = self._build_invocation(message, thread_id, resolved_model, user_id) result = await self.graph.ainvoke(input_state, config=config) - - reply = "" - if result.get("messages"): + + # 优先使用 final_reply(finalize 节点返回) + reply = result.get("final_reply", "") + if not reply and result.get("messages"): reply = result["messages"][-1].content - + token_usage = result.get("last_token_usage", {}) elapsed_time = result.get("last_elapsed_time", 0.0) + # 获取元数据 + metadata = result.get("metadata", {}) + return { "reply": reply, "token_usage": token_usage, "elapsed_time": elapsed_time, - "model_used": resolved_model + "model_used": resolved_model, + "metadata": metadata } async def process_message_stream(