🧠AI Agent 与工具调用
工具权限与参数Schema
面试回答
常见问法
为什么 Tool Calling 里工具权限和参数 schema 这么关键?
回答
因为模型会“尝试调用”,但真正执行的是系统。只要工具能触达数据库、支付、外部 API 或内部操作,权限边界和参数校验就不是锦上添花,而是系统底线。
参数 schema 的作用是:
- 约束模型输出结构
- 降低参数歧义
- 方便执行前校验和纠错
权限边界的作用是:
- 限制哪些用户、哪些场景能调用哪些工具
- 防止模型误调高风险工具
追问
- 为什么不能只靠 Prompt 约束模型别乱调
- schema 足够清楚为什么还能调错
- 执行前校验应该放在哪一层
原理展开
一个稳定的工具系统至少会做:
- 工具描述清晰
- 参数格式有 schema
- 执行前做类型和必填校验
- 执行前做权限判断
- 执行结果和异常都可观测
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 和权限负责兜底。真正的安全边界必须落在系统层。”
易错点
- 只做格式约束,不做业务权限判断
- 工具太多但没有分级管理
- 认为模型说得通就可以直接执行
记忆技巧
两句话:
- schema 管格式
- 权限管边界