必须在工具声明、权限开关、请求封装三层面做硬性约束:关闭模型自主选工具开关;工具定义中严格声明required字段;调用时启用X-Minimax-Security-Mode: strict头;API Key按场景最小权限隔离;响应中过滤含system角色的tool_calls。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想让MiniMax Agent调用工具时既高效又不被越权劫持、不泄露敏感指令、不触发风控拦截,就必须在工具声明、权限开关、请求封装三个层面做硬性约束。
第一步:在Agent控制台关闭默认工具自动启用
MiniMax Agent默认开启部分基础工具(如计算器、时间查询),但未显式授权的工具若被模型自行调用,可能绕过你设定的沙箱边界。登录Minimax开发者控制台 → 进入对应Agent编辑页 → 点击“工具配置”标签 → 将“允许模型自主选择工具”开关设为关闭状态。【必须关闭,否则模型可能擅自调用未声明的工具并暴露系统提示词】
第二步:声明工具时严格限定function.parameters.required字段
工具定义中若漏写required字段,模型可能传入空值或跳过关键参数,导致后端服务报错甚至执行危险操作。例如声明一个数据库查询工具:
✅ 正确写法(required明确列出):
```json
{"name": "db_query", "description": "执行SQL查询", "parameters": {"type": "object", "properties": {"sql": {"type": "string"}}, "required": ["sql"]}}
```
❌ 错误写法(缺少required):
```json
{"name": "db_query", "description": "执行SQL查询", "parameters": {"type": "object", "properties": {"sql": {"type": "string"}}}}
```
第三步:启用X-Minimax-Security-Mode请求头
在调用Agent接口时,HTTP Header中必须加入:X-Minimax-Security-Mode: strict
该模式会强制校验tools数组中每个tool的name是否已在控制台工具白名单中注册,且拒绝任何未声明函数名的调用请求。未加此头将降级为宽松模式,无法拦截非法tool调用。
使用 MiniMax Coding Plan API 进行网络搜索和图片理解。使用场景:(1) 用户需要搜索实时信息或新闻,(2) 需要分析图片内容,(3) 做研究或查找资料。无需 API key:用户需自行配置。
第四步:API Key按场景最小权限隔离
方法一:生产环境与调试环境使用不同密钥
在控制台“接口密钥”页创建两个密钥:一个命名为prod-tools-only,仅开通tools调用权限;另一个命名为dev-full-access,用于本地开发。部署时只把prod-tools-only密钥注入生产容器。
方法二:通过环境变量动态注入密钥而非硬编码
在Python脚本中用os.getenv("MINIMAX_TOOLS_KEY")读取密钥,确保该变量只在CI/CD流水线中注入,不提交到Git仓库。同时检查~/.minimax.env文件权限是否为600——如果不是,立刻执行chmod 600 ~/.minimax.env。
第五步:响应中过滤含system角色的tool_calls输出
正常tool_calls应只含function对象,若返回内容中出现"role": "system"字段,说明模型试图篡改系统指令,属于典型提示词攻击信号。在解析响应JSON时,添加如下校验逻辑:
```python
for tool_call in response.get("tool_calls", []):
if tool_call.get("function", {}).get("name") == "":
raise ValueError("Empty function name detected — possible prompt injection")
if tool_call.get("role") == "system":
raise ValueError("System role found in tool_calls — security violation")
```










