Skip to content

Commit 8a44647

Browse files
committed
fix:修正子agent无法正确接收本地图片(参考图)路径的问题
1 parent 7a2eefa commit 8a44647

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

astrbot/core/astr_agent_tool_exec.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from astrbot.core.agent.handoff import HandoffTool
1212
from astrbot.core.agent.mcp_client import MCPTool
1313
from astrbot.core.agent.message import Message
14+
from astrbot.core.message.components import Image
1415
from astrbot.core.agent.run_context import ContextWrapper
1516
from astrbot.core.agent.tool import FunctionTool, ToolSet
1617
from astrbot.core.agent.tool_executor import BaseFunctionToolExecutor
@@ -165,6 +166,23 @@ async def _execute_handoff(
165166
):
166167
input_ = tool_args.get("input")
167168
image_urls = tool_args.get("image_urls")
169+
if image_urls is None:
170+
image_urls = []
171+
elif isinstance(image_urls, str):
172+
image_urls = [image_urls]
173+
174+
# 获取当前事件中的图片
175+
event = run_context.context.event
176+
if event.message_obj and event.message_obj.message:
177+
for component in event.message_obj.message:
178+
if isinstance(component, Image):
179+
try:
180+
# 调用组件的 convert_to_file_path 异步方法
181+
path = await component.convert_to_file_path()
182+
if path and path not in image_urls:
183+
image_urls.append(path)
184+
except Exception as e:
185+
logger.error(f"转换图片失败: {e}")
168186

169187
# Build handoff toolset from registered tools plus runtime computer tools.
170188
toolset = cls._build_handoff_toolset(run_context, tool.agent.tools)

0 commit comments

Comments
 (0)