fix(m11/s02): optimize and correct code implementation

This commit is contained in:
Annyfee
2026-01-14 11:29:42 +08:00
parent 9eac193295
commit caf8088eac
+16 -2
View File
@@ -1,3 +1,4 @@
import json
import os
import asyncio
@@ -6,7 +7,7 @@ from langchain_mcp_adapters.client import MultiServerMCPClient
# LangChain/LangGraph 组件
from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage
from langchain_core.messages import SystemMessage, ToolMessage
from langgraph.graph import StateGraph, MessagesState, START, END
from langgraph.prebuilt import ToolNode
@@ -64,7 +65,20 @@ def build_graph(available_tools):
sys_prompt = "你是一个地理位置助手,请根据用户需求调用工具查询信息。"
async def agent_node(state: MessagesState):
messages = [SystemMessage(content=sys_prompt)] + state["messages"]
# 格式化消息,确保ToolMessage的content是字符串
formatted_messages = []
for msg in state["messages"]:
if isinstance(msg,ToolMessage) and not isinstance(msg.content,str):
# 将list/dict转为JSON字符串
formatted_messages.append(
ToolMessage(
content=json.dumps(msg.content,ensure_ascii=False),
tool_call_id=msg.tool_call_id
)
)
else:
formatted_messages.append(msg)
messages = [SystemMessage(content=sys_prompt)] + formatted_messages
return {"messages": [await llm_with_tools.ainvoke(messages)]}
workflow = StateGraph(MessagesState)