必须启用tool_choice并声明tools字段才能触发MiniMax Agent真实工具调用,否则仅输出伪代码;需绑定M2.5+模型、在控制台启用工具调用并重新发布Agent,工具声明须符合OpenAI格式且name全小写无重复,支持显式指定或auto模式触发,响应需解析tool_calls并按规范构造follow-up请求。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在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结构。
构造含tools声明的JSON请求体
工具声明必须严格遵循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即可获得最终答案。











