9.3.1 工具路线图:Schema、权限、观察
工具让 Agent 从语言走向行动。更多工具不会自动让 Agent 更强;不清楚的工具会带来错误调用、不安全动作、循环和成本泄漏。
先看行动边界



工具调用必须受控:选择工具、校验参数、检查权限、执行、观察,再决定下一步。
跑一个工具 Schema 检查
执行任何工具调用前,先使用 schema。
tool_call = {
"name": "search_course_docs",
"args": {"query": "RAG evaluation", "top_k": 3},
}
schema = {
"name": "search_course_docs",
"required": ["query", "top_k"],
"max_top_k": 5,
}
name_ok = tool_call["name"] == schema["name"]
args_ok = all(field in tool_call["args"] for field in schema["required"])
limit_ok = tool_call["args"]["top_k"] <= schema["max_top_k"]
print("can_execute:", name_ok and args_ok and limit_ok)
print("observation_needed:", True)
预期输出:
can_execute: True
observation_needed: True
工具运行后,Agent 必须观察并总结结果。不要让模型假装失败的工具已经成功。
按这个顺序学
| 步骤 | 阅读 | 实操产出 |
|---|---|---|
| 1 | Function Calling | 把模型意图转成结构化行动 |
| 2 | 工具描述 | 写清用途、输入、限制、示例和失败模式 |
| 3 | 工具策略 | 选择工具顺序、fallback、timeout 和停止规则 |
| 4 | 工具安全 | 加入权限、沙箱、审计和人工确认 |
| 5 | 多工具实战 | 记录成功和失败调用 trace |
通过标准
如果你能阅读工具 trace,并判断失败发生在规划、参数、执行、观察还是权限控制,就通过了本章。
本章出口小项目是一个学习助手:包含 3 个工具 schema、5 个测试调用、1 条失败调用记录和一份可打印 trace。