Skip to content

Commit 7353817

Browse files
committed
fix: handle empty content in tool result parsing
1 parent d1c2def commit 7353817

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

apps/application/flow/tools.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -399,14 +399,18 @@ async def _yield_mcp_response(chat_model, message_list, mcp_servers, mcp_output_
399399

400400
if tool_id in tool_calls_info:
401401
tool_info = tool_calls_info[tool_id]
402-
tool_result = json.loads(chunk[0].content)
403-
tool_lib_id = tool_result.pop('tool_id') if 'tool_id' in tool_result else None
404-
if tool_lib_id:
405-
await save_tool_record(tool_lib_id, tool_info, tool_result, source_id, source_type)
402+
try:
403+
tool_result = json.loads(chunk[0].content)
404+
tool_lib_id = tool_result.pop('tool_id') if 'tool_id' in tool_result else None
405+
if tool_lib_id:
406+
await save_tool_record(tool_lib_id, tool_info, tool_result, source_id, source_type)
407+
tool_result = json.dumps(tool_result)
408+
except Exception as e:
409+
tool_result = chunk[0].content
406410
content = generate_tool_message_complete(
407411
tool_info['name'],
408412
tool_info['input'],
409-
json.dumps(tool_result),
413+
tool_result
410414
)
411415
chunk[0].content = content
412416
else:

0 commit comments

Comments
 (0)