🧠AI Agent 与工具调用

工具权限与参数Schema

面试回答

常见问法

为什么 Tool Calling 里工具权限和参数 schema 这么关键?

回答

因为模型会“尝试调用”,但真正执行的是系统。只要工具能触达数据库、支付、外部 API 或内部操作,权限边界和参数校验就不是锦上添花,而是系统底线。

参数 schema 的作用是:

  • 约束模型输出结构
  • 降低参数歧义
  • 方便执行前校验和纠错

权限边界的作用是:

  • 限制哪些用户、哪些场景能调用哪些工具
  • 防止模型误调高风险工具

追问

  • 为什么不能只靠 Prompt 约束模型别乱调
  • schema 足够清楚为什么还能调错
  • 执行前校验应该放在哪一层

原理展开

一个稳定的工具系统至少会做:

  1. 工具描述清晰
  2. 参数格式有 schema
  3. 执行前做类型和必填校验
  4. 执行前做权限判断
  5. 执行结果和异常都可观测
tool_schema = {
    "name": "create_order",
    "parameters": {
        "type": "object",
        "properties": {
            "user_id": {"type": "string"},
            "sku_id": {"type": "string"},
            "quantity": {"type": "integer", "minimum": 1},
        },
        "required": ["user_id", "sku_id", "quantity"],
    },
}

面试里最好明确说: “Prompt 负责引导,schema 和权限负责兜底。真正的安全边界必须落在系统层。”

易错点

  • 只做格式约束,不做业务权限判断
  • 工具太多但没有分级管理
  • 认为模型说得通就可以直接执行

记忆技巧

两句话:

  1. schema 管格式
  2. 权限管边界