fix: ai chat node mcp (#3531)

This commit is contained in:
shaohuzhang1 2025-07-09 16:14:44 +08:00 committed by GitHub
parent 2ba043e801
commit c4293c34d1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -104,16 +104,17 @@ def write_context_stream(node_variable: Dict, workflow_variable: Dict, node: INo
async def _yield_mcp_response(chat_model, message_list, mcp_servers): async def _yield_mcp_response(chat_model, message_list, mcp_servers):
async with MultiServerMCPClient(json.loads(mcp_servers)) as client: client = MultiServerMCPClient(json.loads(mcp_servers))
agent = create_react_agent(chat_model, client.get_tools()) tools = await client.get_tools()
response = agent.astream({"messages": message_list}, stream_mode='messages') agent = create_react_agent(chat_model, tools)
async for chunk in response: response = agent.astream({"messages": message_list}, stream_mode='messages')
if isinstance(chunk[0], ToolMessage): async for chunk in response:
content = tool_message_template % (chunk[0].name, chunk[0].content) if isinstance(chunk[0], ToolMessage):
chunk[0].content = content content = tool_message_template % (chunk[0].name, chunk[0].content)
yield chunk[0] chunk[0].content = content
if isinstance(chunk[0], AIMessageChunk): yield chunk[0]
yield chunk[0] if isinstance(chunk[0], AIMessageChunk):
yield chunk[0]
def mcp_response_generator(chat_model, message_list, mcp_servers): def mcp_response_generator(chat_model, message_list, mcp_servers):