作者:互联网 时间: 2026-09-05 12:55:54
在人工智能内容学习中,MiniMax_Agent连续调用多个工具的方法是常见主题。很多人在阅读时会遇到概念分散、步骤不清和注意点难以归纳的问题。本文按照基础概念、操作流程和关键细节,对相关内容进行整理。
MiniMax M2.5+支持串行工具调用,需使用chat.completions接口、正确配置tools依赖描述与JSON Schema,并通过多轮messages追加function响应来维持上下文链。
你需要让 MiniMax Agent 在一次任务中连续调用天气查询→时间查询→温度差计算三个工具,而不是只调用其中一个就停下。这要求模型必须理解任务依赖关系,并在拿到前一步结果后主动发起下一步调用,不能靠人工反复提交。
MiniMax M2.5 及以上版本原生支持串行(sequential)函数调用,但需确保你调用的是 chat.completions 接口而非 legacy /completion,否则 function_call 字段不会出现在响应中。
发送请求前检查 headers 中的 Authorization 值是否以 sk- 开头且未过期;若返回 401 错误,说明凭证失效,需重新生成 API Key。
定义三个工具时,必须在 description 中明确写出输入依赖。例如 calculate 工具的 description 不能只写“执行算术运算”,而要写成“根据前序调用返回的两个温度值,计算温差。输入必须包含 temp_c_a 和 temp_c_b 字段”。
将这三个工具按逻辑顺序放入 functions 数组:get_weather → get_current_time → calculate。顺序本身不影响路由,但能辅助模型理解执行流。
注意:parameters 字段必须严格遵循 JSON Schema,比如 get_weather 的 location 必须标为 "type": "string",若漏写 type 或写成 "stringy",MiniMax 会直接忽略该工具声明。
用户消息内容必须含明确的多步动作指令,例如:“先查北京当前天气和温度,再查上海当前温度,最后算出两地温差”。
避免模糊表述如“帮我看看两地温度情况”,这种表达会让模型倾向并行调用或跳过计算步骤。
如果第一步调用失败(如城市名拼错),模型不会自动重试,也不会进入第二步——它会直接返回错误信息。所以建议在前端做 city 参数校验,或预置常见城市别名映射表。
第一步:发送初始请求 → 解析 response → 若含 function_call,则提取 name=get_weather、arguments={"city": "北京"} → 调用对应 HTTP 接口获取 {"temp_c": 32.1}。
第二步:将原始 messages 数组末尾追加一条 role="function" 消息,content 字段填入上一步返回的完整 JSON 字符串 → 再次发送请求 → 模型收到北京温度后,自动触发 get_weather("上海") → 获取 {"temp_c": 34.7}。
第三步:再次追加 role="function" 消息,content 填入上海温度结果 → 第三次请求 → 模型识别出两个温度值,生成 function_call 调用 calculate,arguments 自动组装为 {"temp_c_a": 32.1, "temp_c_b": 34.7}。
【关键点】每次追加的 function 消息必须与原始 user 消息保持在同一对话线程中,且不能修改之前任何一条消息的内容,否则上下文链断裂,后续调用无法建立依赖。