主题
Tool Calling 遇到越权、Prompt 注入、超时和重复执行时怎么处理?
题型:问题排查 · 安全边界必须在确定性代码中,不交给模型决定。
建议回答
首先,模型输出只是调用建议,执行前必须用服务端身份重新校验租户、用户、资源和操作权限,敏感凭证由服务端注入。来自网页、知识库和工具结果的文本都视为不可信数据,不能让其中的指令覆盖系统策略;对高风险工具使用白名单、参数约束、人工确认和沙箱。
超时按错误类型处理:连接失败或明确未执行的只读工具可退避重试;结果未知或有副作用的调用先用 operationId 查询执行状态,不能直接重放。每次调用记录 runId、toolId、主体、脱敏参数、耗时、结果摘要和错误分类,并设置单工具并发、速率、超时和熔断。
线上止损
- 动态下线异常 Tool 或 MCP Provider。
- 收紧高风险工具权限和自动执行策略。
- 对重复 operationId 返回历史结果。
- 对异常调用率、越权拒绝率和参数校验失败率告警。
易错点
- Tool Schema 校验不能替代业务授权。
- 无脑重试可能重复下单、发消息或写入业务数据。