Skip to content

Commit bf36dd6

Browse files
authored
Revert "fix(agentscope): fix illegal tool argument message transfer (#266)"
This reverts commit 9106495.
1 parent 8ee9baa commit bf36dd6

File tree

1 file changed

+5
-37
lines changed
  • src/agentscope_runtime/adapters/agentscope

1 file changed

+5
-37
lines changed

src/agentscope_runtime/adapters/agentscope/message.py

Lines changed: 5 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -338,16 +338,6 @@ def message_to_agentscope_msg(
338338
A single Msg object or a list of Msg objects.
339339
"""
340340

341-
def _try_loads(v, default, keep_original=False):
342-
if isinstance(v, (dict, list)):
343-
return v
344-
if isinstance(v, str) and v.strip():
345-
try:
346-
return json.loads(v)
347-
except Exception:
348-
return v if keep_original else default
349-
return default
350-
351341
def _convert_one(message: Message) -> Msg:
352342
# Normalize role
353343
if message.role == "tool":
@@ -375,23 +365,12 @@ def _convert_one(message: Message) -> Msg:
375365
MessageType.FUNCTION_CALL,
376366
):
377367
# convert PLUGIN_CALL, FUNCTION_CALL to ToolUseBlock
378-
tool_args = None
379-
for cnt in reversed(message.content):
380-
if hasattr(cnt, "data"):
381-
v = cnt.data.get("arguments")
382-
if isinstance(v, (dict, list)) or (
383-
isinstance(v, str) and v.strip()
384-
):
385-
tool_args = _try_loads(v, {}, keep_original=False)
386-
break
387-
if tool_args is None:
388-
tool_args = {}
389368
result["content"] = [
390369
ToolUseBlock(
391370
type="tool_use",
392371
id=message.content[0].data["call_id"],
393372
name=message.content[0].data.get("name"),
394-
input=tool_args,
373+
input=json.loads(message.content[0].data["arguments"]),
395374
),
396375
]
397376
elif message.type in (
@@ -400,18 +379,7 @@ def _convert_one(message: Message) -> Msg:
400379
):
401380
# convert PLUGIN_CALL_OUTPUT, FUNCTION_CALL_OUTPUT to
402381
# ToolResultBlock
403-
out = None
404-
for cnt in reversed(message.content):
405-
if hasattr(cnt, "data"):
406-
v = cnt.data.get("output")
407-
if isinstance(v, (dict, list)) or (
408-
isinstance(v, str) and v.strip()
409-
):
410-
out = _try_loads(v, "", keep_original=True)
411-
break
412-
if out is None:
413-
out = ""
414-
blk = out
382+
blk = json.loads(message.content[0].data["output"])
415383

416384
def is_valid_block(obj):
417385
return any(
@@ -421,12 +389,12 @@ def is_valid_block(obj):
421389

422390
if isinstance(blk, list):
423391
if not all(is_valid_block(item) for item in blk):
424-
blk = out
392+
blk = message.content[0].data["output"]
425393
elif isinstance(blk, dict):
426394
if not is_valid_block(blk):
427-
blk = out
395+
blk = message.content[0].data["output"]
428396
else:
429-
blk = out
397+
blk = message.content[0].data["output"]
430398

431399
result["content"] = [
432400
ToolResultBlock(

0 commit comments

Comments
 (0)