🎯 学习重点:沿“定义工具 → 模型调用 → 应用执行 → 结果回传 → 安全重试”的状态机掌握词汇。 返回:模块 04 主讲义
🎯 学习重点:工具由谁执行决定回传责任,但任何类型都不能把模型输出直接当授权。
Tool Use — 工具使用 — Claude 通过结构化协议请求外部能力,应用仍负责执行边界与结果验证。
Function Calling — 函数调用 — Tool Use 的常用别名,强调模型生成函数名和结构化参数。
Client Tool — 客户端工具 — 由你的应用执行,必须校验权限、处理超时并回传 tool_result。
Server Tool — 服务端工具 — 由 Anthropic 基础设施执行,结果直接进入模型响应。
Custom Tool — 自定义工具 — 由业务定义 schema 和执行逻辑,权限模型也由业务负责。
Tool Executor — 工具执行器 — 接收已校验调用、落实审批和幂等、隔离副作用的确定性组件。
Dispatch — 分发 — 按工具名路由到实现;分发前必须完成 allowlist 与权限校验。
Capability — 能力凭证 — 真正授权某动作的安全边界,tool_use 本身不是 capability token。
Side Effect — 副作用 — 对外部状态的写入或动作,重试和审批设计都应围绕它展开。
🎯 学习重点:工具描述决定模型判断质量,schema 决定参数形状,tool_choice 决定调用约束。
Tool Definition — 工具定义 — name、description、input_schema 等会进入系统前缀并消耗 token。
Tool Name — 工具名 — 限 1–64 位字母数字下划线或连字符,跨服务应命名空间化。
Tool Description — 工具描述 — 官方建议至少 3–4 句说明用途、边界、参数和限制,是选中质量的首要杠杆。
Input Schema — 输入模式 — 用 JSON Schema 描述参数类型和 required 字段,不承担业务授权。
Input Examples — 输入示例 — 帮助复杂、嵌套或格式敏感参数生成正确形状。
Required Field — 必填字段 — schema 中不可缺失的参数,仍需应用做值域和业务规则校验。
Action Parameter — 动作参数 — 将同一业务对象的相关操作合并,减少工具数量和选择歧义。
Tool Choice — 工具选择 — 控制模型自主、强制任意、强制指定或禁止调用。
Auto — 自动选择 — 提供 tools 时的默认模式,由 Claude 判断是否及调用哪个工具。
Any — 强制任意工具 — 要求至少调用某个工具,但不指定具体名称。
Forced Tool — 强制指定工具 — 固定调用某个工具,适合确定流水线步骤而非授权控制。
None — 禁止工具 — 阻止本轮工具调用,适合纯文本处理阶段。
Strict Tool Use — 严格工具使用 — strict: true 保证参数符合支持的 schema 子集,但不保证业务正确。
Disable Parallel Tool Use — 禁用并行工具 — 将一轮调用限制为最多一个,降低执行与对账复杂度。
🎯 学习重点:tool_use 与紧邻的 tool_result 构成协议状态转换,顺序错误会 400 或提前结束。
Tool Use Block — 工具调用块 — 包含 id、name、input,是模型提出的一次具体调用。
Tool Result Block — 工具结果块 — 应用用 tool_use_id 回传成功或错误结果,必须位于 user 消息前部。
Tool Use ID — 工具调用 ID — 对账这一次调用与结果,不是跨重试的业务幂等键。
Stop Reason: Tool Use — 工具调用停止原因 — 表示模型等待工具结果,应用不能把它当最终答案。
Stop Reason: End Turn — 自然结束停止原因 — 表示本轮收尾,仍需业务和格式校验。
Pending Tool Call — 待处理工具调用 — 尚未收到对应结果的调用,状态机应阻止普通文本分支越过它。
Conversation History — 对话历史 — tool_use、tool_result 和 thinking 都需按协议原样保留并消耗上下文。
Thinking Block — 思考块 — 回传时必须原样原序,修改会触发 invalid_request_error。
Agent Loop — 智能体回路 — tool_use 与 tool_result 多轮循环,必须设置停止条件和预算。
State Machine — 状态机 — 用合法状态和转换实现工具协议,优于任意拼接聊天消息。
🎯 学习重点:结果要高信号,错误要可行动,外部内容要始终按不可信数据处理。
High-Signal Result — 高信号结果 — 只返回下一步需要的字段和语义化标识,降低 token 与注入面。
is_error — 错误标记 — 表明 tool_result 是执行失败信息,让 Claude 调整计划或参数。
Actionable Error — 可行动错误 — 包含安全的错误类型、原因和建议动作,避免模型盲目猜测。
Error Mapping — 错误映射 — 将内部异常转换为安全模型消息,同时在受控日志保留诊断细节。
Trace ID — 追踪 ID — 关联模型可见错误与内部日志,不向上下文泄露敏感实现信息。
Indirect Prompt Injection — 间接提示注入 — 恶意指令通过网页、邮件或第三方结果进入 tool_result。
Untrusted Content — 不可信内容 — 外部数据必须与系统指令隔离,不能搬进 system prompt。
Data Minimization — 数据最小化 — 只向模型和日志暴露完成任务所需数据,降低泄露和合规风险。
🎯 学习重点:模型决定候选动作,应用决定是否允许执行,高风险动作再交给人批准。
Application Enforcement — 应用强制 — 用代码落实权限、配额和租户边界,是 prompt 无法替代的硬约束。
Authorization Check — 授权检查 — 在每次执行前验证主体对目标资源和动作的权限。
Tenant Isolation — 租户隔离 — 防止工具参数跨租户访问数据,必须由数据层和执行器共同强制。
Allowlist — 允许列表 — 仅分发预先注册的工具与动作,未知名称应确定性拒绝。
Human-in-the-loop — 人在环 — 对不可逆、高代价或合规动作加入人工确认。
Approval Gate — 审批门 — 位于执行器中的强制状态转换,prompt 中“先询问”不是等价实现。
Irreversible Action — 不可逆动作 — 删除、外发、支付等难以撤销的副作用,应提高审批与审计等级。
Audit Log — 审计日志 — 记录主体、意图、参数摘要、审批、执行和结果,支持事后追责。
Policy Enforcement Point — 策略执行点 — 对工具调用做最终允许或拒绝判定的应用组件。
🎯 学习重点:并行减少墙钟等待但增加执行、对账和配额压力,多步循环还会持续膨胀上下文。
Parallel Tool Use — 并行工具调用 — 一轮返回多个调用以降低独立 I/O 的墙钟时间。
Fan-Out — 扇出 — 一次模型决策触发多个下游调用,必须设置数量和并发上限。
Correlation — 关联对账 — 用 tool_use_id 将每个并行结果匹配到原调用。
Wall-Clock Latency — 墙钟延迟 — 用户实际等待时间,并行可降低它但不减少总调用工作量。
Context Growth — 上下文增长 — 每轮工具定义、调用和结果持续进入历史,必须裁剪与压缩。
Step Limit — 步数上限 — 限制 agent loop 最大轮次,防止无法收敛的工具循环。
Token Budget — Token 预算 — 限制工具结果与推理历史占用,防止上下文和成本失控。
Cost Budget — 成本预算 — 按模型与工具费用为一次任务设置硬上限。
🎯 学习重点:跨三层重试去重依赖业务幂等键,超时后必须先对账而非假设失败。
Idempotency — 幂等性 — 同一逻辑操作执行一次与多次效果相同,是写工具安全重试前提。
Idempotency Key — 幂等键 — 跨模型重发和执行器重试识别同一业务动作的唯一键。
Deduplication Store — 去重存储 — 保存幂等键到首次结果的映射,重复请求直接复用结果。
At-Least-Once Delivery — 至少一次投递 — 网络与重试常见语义,副作用端必须预期重复到达。
Reconciliation — 对账 — 超时后查询订单、流水或消息状态,确认真实结果再决定下一步。
Exponential Backoff — 指数退避 — 逐步延长重试间隔,避免持续故障时高频冲击。
Jitter — 抖动 — 随机错开多个客户端的重试时间,降低同步风暴。
Retry Storm — 重试风暴 — 多层或多客户端重试相互放大,使上游过载恶化。
Retry Budget — 重试预算 — 分层限制次数、时限和并发,防止重试乘法失控。
Circuit Breaker — 熔断器 — 连续失败时暂停调用,让上游恢复并保护本系统资源。
🎯 学习重点:工具协议、server tool 行为和 strict 支持会演进,实施时按目标模型和 API 版本核验。