游乐游手机版
首页/AI热点日报/热点详情

MiniMax Agent代码工具调用使用教程与实战指南

类型:热点整理2026-08-17
要触发 MiniMax Agent 的真实工具调用,必须启用 tool_choice 并正确声明 tools 字段,否则模型通常只会返回伪代码而不会实际执行工具;同时需绑定 M2 5 及以上模型,在控制台开启工具调用并重新发布 Agent。工具声明还必须符合 OpenAI 标准格式,且 functi

要触发 MiniMax Agent 的真实工具调用,必须启用 tool_choice 并正确声明 tools 字段,否则模型通常只会返回伪代码而不会实际执行工具;同时需绑定 M2.5 及以上模型,在控制台开启工具调用并重新发布 Agent。工具声明还必须符合 OpenAI 标准格式,且 function 的 name 需全小写、不可重复。调用时既可以显式指定工具,也可以使用 auto 模式自动触发,响应结果则需要解析 tool_calls,并按规范构造后续 follow-up 请求。

MiniMax Agent代码工具调用教程

如果你想在 Python 项目中让 MiniMax Agent 自动调用代码执行器、Shell 命令或浏览器等工具,就不能继续使用手动复制粘贴结果这种低效流程,而应直接在 API 请求中开启 tool_choice 并正确配置 tools 字段。否则,Agent 往往只会生成调用思路或伪代码,无法真正触发工具执行。

配置Agent支持工具调用的必要参数

这一步本身并不复杂,通常把相关文件拖入即可。但前提是你创建的 Agent 必须绑定 M2.5 或更高版本模型,因为旧版模型无法正确解析 tool_choice 字段,也就无法完成工具调用。

登录Minimax开发者控制台→进入【Agent】列表→点击目标Agent右侧【编辑】→在「模型配置」区域勾选「启用工具调用」→下拉选择模型为【MiniMax-M2.5】→点击【保存并重新发布】。

注意:如果没有重新发布,Agent 仍会沿用旧配置。此时即使请求中传入了 tools 字段,系统也可能静默忽略,最终只返回纯文本内容,而不是 function_call 结构或 tool_calls 结果。

构造含tools声明的JSON请求体

tools 工具声明必须严格遵循 OpenAI 的标准格式,并且每个 tool 都要完整包含 type、function.name、function.description 以及 function.parameters 这四个关键字段,缺少任意一项都可能导致调用失败。

在 POST 请求的 JSON body 中加入 tools 数组,例如可以声明一个用于执行 Python 代码的工具:

{"type": "function", "function": {"name": "python_interpreter", "description": "用于运行Python代码并输出stdout结果,适合处理数学计算或一些基础数据处理任务", "parameters": {"type": "object", "properties": {"code": {"type": "string", "description": "符合Python 3.9规范的有效代码,且不包含任何输入交互语句"}}}}}

如果需要声明多个工具,一定要保证每个 function.name 都是全小写且名称唯一;一旦名称中包含大写字母、空格或重复值,接口很可能直接返回 400 错误,而且通常不会给出明确的报错原因。

触发工具调用的两种方式

方法一:显式指定tool_choice

在请求体中加入"tool_choice": {"type": "function", "function": {"name": "python_interpreter"}},这样 Agent 会被强制调用该函数,即使同时声明了其他可用工具,也会优先执行这里指定的工具。

方法二:由Agent自主决策

设置"tool_choice": "auto",并在 user 消息中给出清晰指令,例如:“请计算斐波那契数列第20项,并用python_interpreter执行”。此时 Agent 会根据你的要求,自行匹配 tools 数组中名称一致的函数并尝试发起调用。

【关键区别】使用 "auto" 模式时,如果 tools 数组中没有与需求匹配的 name,Agent 通常会退化成普通文本回复,不会主动报错,也不会提示缺少对应工具,这是很多开发者排查失败原因时最容易忽略的问题。

解析带工具调用的响应结果

第一步:检查response.choices[0].message.tool_calls是否存在

如果该字段为空列表或为 None,说明 Agent 并没有触发任何工具调用,常见原因包括 tool_choice 配置不正确,或者用户指令表达不够明确,没有形成实际执行动作。

第二步:提取首个tool_call的function.name与function.arguments

arguments 通常是 JSON 字符串,需要通过 json.loads() 解析成字典,例如{"code": "print(1+1)"};不要直接传给 eval() 执行,因为这样存在明显安全风险,更推荐在受限沙箱环境中运行。

第三步:将执行结果按规范封装回follow-up请求

接下来需要重新组装新的 messages 数组,并在原始对话末尾追加两条消息。第一条消息的 role 设为 assistant,content 保持为空,同时把上一步获取到的 tool_calls 原样写入 tool_calls 字段;第二条消息的 role 设为 tool,tool_call_id 对应原始返回中的 ID,content 则填写工具执行后的结果字符串。将这组新消息再次发起 POST 请求后,通常就能拿到 Agent 返回的最终答案。

来源:https://www.php.cn/faq/2991082.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。