MirrorYuChen
MirrorYuChen
Published on 2025-03-28 / 0 Visits
0
0

Qwen-Agent源码解析(四):大模型调用工具的流程

Qwen-Agent源码解析(四):大模型调用工具的流程

1.工具地注册与学习

​ 在使用大模型调用工具前,需要将工具的元信息(包括工具名、描述及参数等)注册到大模型中,这些元信息帮助大模型理解每个工具的功能和使用场景。例如,查询天气的工具:

@register_tool('amap_weather')
class AmapWeather(BaseTool):
    description = '获取对应城市的天气数据'
    parameters = [{
        'name': 'location',
        'type': 'string',
        'description': '城市/区具体名称,如`北京市海淀区`请描述为`海淀区`',
        'required': True
    }]

​ 这里 description帮助大模型理解当前工具的功能,进而帮助大模型判断是否应该调用当前工具。parameters则是对调用当前工具需要的传参描述,它会帮助大模型理解调用当前工具时,需要生成什么样的参数。

2.工具调用流程

function_call.png

2.1 解析用户请求

​ 用户向大模型发送请求后,大模型会对接收到地请求内容进行解析,并根据其对已注册工具的了解,推测需要调用哪个工具。例如,用户问“今天北京的天气怎么样?”大模型会根据其对工具的注册信息,识别出需要调用 amap_weather工具,并提取出参数“北京”。

2.2 推理与决策

​ 大模型通过内部推理机制,判断是否要调工具或哪个工具最适合处理当前用户请求,这通常涉及对用户输入的理解和对工具功能的匹配。

2.3 生成调用指令

​ 大模型一旦确定要调用的工具,就会根据解析出的参数及工具调用参数描述来生成调用指令,包括工具名称和参数,这些指令会被发送给工具执行环境,由 Agent 负责具体执行工具。

2.4 工具执行与结果返回

​ Agent 根据大模型生成的调用指令执行工具,并将结果返回给大模型,大模型进一步处理这些结果,并将其以合适的方式返回给用户。

3.参考资料


Comment