评测与工程
让工具调用真正完成业务动作
把模型提案、权限校验、幂等执行和结果对账串成闭环。
模型返回工具调用只是提出动作。真正完成任务,需要服务端验证权限和业务前置条件,执行并持久记录结果,然后让回复与最终状态一致。
理解这条链路
检查整份调用计划
逐项校验工具名称、所有参数、依赖顺序和禁止动作。第一条是查询、第二条是未授权取消时,不能因第一条正确就判成功。用户身份、订单归属和额度应从可信系统注入,而不是信任模型传来的字段。
超时进入 UNKNOWN
网络断开时,服务端操作可能已经完成。使用业务级 operation_id/幂等键查询原操作结果,再决定重试或补偿。补偿也需要状态与审计;把 HTTP 200、函数返回和业务已完成分成不同事件。
按这个顺序操作
- 选一个带副作用的操作,写清前置条件、最终状态与禁止重复的效果。
- 验证完整调用数组和业务权限,拒绝未知字段与未授权操作。
- 在已执行但回执丢失处注入超时,确认重试不造成第二次扣款或取消。
- 重新查询最终状态后组织回复,无法确认时明确保持未确认。
配套本地工具
以下工具位于 AI 学习工作区。先阅读对应说明,确认所需数据与依赖;本轮未重新运行这些实验。
- tool-transaction-bench/README.md
可直接复用的记录模板
operation_id:稳定业务幂等键 actor / tenant / target:由可信上下文确定 expected_state_before: status:PROPOSED / VALIDATED / COMMITTED / UNKNOWN / FAILED result_receipt: reconcile_after_timeout:先查原操作,再决定是否重试 response_claim:只能使用已确认的最终状态
做到什么程度才算通过
- 每条调用都被检查。
- 越权参数无法覆盖可信身份。
- 回执丢失不会重复产生副作用。
- 用户听到的结果与业务状态一致。
本轮未调用外部业务工具;本地基准为确定性控制实验,不能用来排名真实模型。
本轮确认的事实与来源
以下为公开资料支持的具体结论;操作流程和验收建议属于工程推导。仓库说明或厂商效果表述不等于独立实测。
OpenAI Function calling 文档说明 strict 模式要求对象设置 additionalProperties:false,并将 properties 中字段设为 required;可用 null 表达可选值。Schema 约束不负责业务权限和最终状态。
资料日期:页面未统一标注;以复核日期为准 · 复核:2026-09-08
阅读原始来源 ↗RFC 9110 将幂等定义为重复相同请求与单次请求具有相同的预期服务端效果,并反对在不知语义安全时自动重试非幂等请求。
资料日期:2022-06 · 复核:2026-09-08
阅读原始来源 ↗这次更新了什么
合并 Function Call 厂商比较与事务专题;撤下异步工具调用“第一名”式排名,保留可执行的控制要求。
合并前的内容入口
以下旧地址仍可访问,并会带你来到本篇。完整重构前材料已留存本地备份。
- research-hub/tool-transaction-consistency.html
- ai-nav/function-call-compare.html