Skip to content

Commit c4293c3

Browse files
authored
fix: ai chat node mcp (#3531)
1 parent 2ba043e commit c4293c3

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,17 @@ def write_context_stream(node_variable: Dict, workflow_variable: Dict, node: INo
104104

105105

106106
async def _yield_mcp_response(chat_model, message_list, mcp_servers):
107-
async with MultiServerMCPClient(json.loads(mcp_servers)) as client:
108-
agent = create_react_agent(chat_model, client.get_tools())
109-
response = agent.astream({"messages": message_list}, stream_mode='messages')
110-
async for chunk in response:
111-
if isinstance(chunk[0], ToolMessage):
112-
content = tool_message_template % (chunk[0].name, chunk[0].content)
113-
chunk[0].content = content
114-
yield chunk[0]
115-
if isinstance(chunk[0], AIMessageChunk):
116-
yield chunk[0]
107+
client = MultiServerMCPClient(json.loads(mcp_servers))
108+
tools = await client.get_tools()
109+
agent = create_react_agent(chat_model, tools)
110+
response = agent.astream({"messages": message_list}, stream_mode='messages')
111+
async for chunk in response:
112+
if isinstance(chunk[0], ToolMessage):
113+
content = tool_message_template % (chunk[0].name, chunk[0].content)
114+
chunk[0].content = content
115+
yield chunk[0]
116+
if isinstance(chunk[0], AIMessageChunk):
117+
yield chunk[0]
117118

118119

119120
def mcp_response_generator(chat_model, message_list, mcp_servers):

0 commit comments

Comments
 (0)