60 秒回答模板

我会先把 Skill 看成沙箱内可执行能力的封装,它必须有明确的名称、适用场景、输入 schema、输出 schema、权限需求、依赖、超时和错误语义。工具调用幻觉通常来自三类问题:模型不知道真实可用工具,工具描述含糊,或者没有执行前校验。解决思路是用注册表和 allowlist 只暴露当前任务可用 Skill;用结构化 schema 校验参数;用能力匹配或路由器先判断是否需要调用;对高风险 Skill 做用户确认或策略审批;执行在沙箱里限制文件、网络、环境变量和资源;返回结果要结构化,失败要告诉模型可恢复方式。多工具切换混乱时,要维护任务计划、当前步骤、已调用工具和停止条件,避免模型在相似工具之间反复跳转。核心是让模型在受控能力集合里决策,而不是让它凭自然语言猜工具。

考点 契约清晰
难度 真实面经题
回答目标 讲清机制、训练与评估取舍

深入解析

01

Skill 要有机器可读契约

一个 Skill 不只是说明文档,还应包含名称、用途、参数 schema、返回 schema、权限、依赖、执行入口、超时、幂等性和错误码。契约越清晰,模型越不容易编造不存在的参数或误用能力。

02

只暴露当前可用能力

沙箱运行时应根据用户权限、任务类型、环境状态和风险等级生成工具 allowlist。模型看不到或无法调用未授权 Skill,即使它在训练中见过类似工具名,也不能越权执行。

03

调用前做路由和校验

在执行前检查工具是否存在、参数是否符合 schema、权限是否满足、是否需要确认、是否和当前任务步骤匹配。校验失败要返回明确错误,让模型修正参数或改走澄清,而不是直接执行危险动作。

04

沙箱隔离降低执行风险

Skill 执行应限制文件系统、网络、环境变量、进程、CPU、内存和运行时间。尤其是代码、文件、外部 API 或账户相关能力,要做到最小权限、可审计和可回滚。

05

多工具切换要看任务状态

相似工具多时,Agent 要维护当前目标、已尝试工具、失败原因和下一步计划。若连续调用没有新信息,应停止并总结问题,避免在搜索、读取、执行、修复工具之间循环。

06

评估要看误调用和恢复

指标包括不存在工具调用率、参数校验失败率、越权拦截率、重复工具调用率、工具成功率、人工确认触发率和任务恢复率。badcase 要回到工具描述、schema、路由策略和沙箱权限设计中修复。

易错点

  • 把 Skill 当成普通函数列表,没有定义输入输出和权限契约。
  • 把所有工具都暴露给模型,导致越权、误调用和选择混乱。
  • 只靠 Prompt 要求模型不要乱调工具,没有执行前校验。
  • 沙箱没有限制文件、网络、环境变量和资源,执行风险过高。
  • 工具失败后让模型无限重试,不记录失败原因和停止条件。
  • 缺少误调用率、校验失败率和越权拦截率等指标。

面试官追问

什么是工具调用幻觉?

模型尝试调用不存在的工具、编造参数、误解工具能力,或在没有权限和前置条件时调用工具,都属于工具调用幻觉。

工具描述写得更详细就够了吗?

不够。描述能降低误用,但还需要注册表、allowlist、schema 校验、权限控制、沙箱隔离和执行 trace。

高风险 Skill 如何处理?

高风险能力应要求用户确认、策略审批或人工审核,并提供预览、撤销或只读模式,不能让模型自动执行。

多工具循环怎么中止?

设置最大调用次数、重复参数检测、状态无进展检测和错误阈值,触发总结、澄清或人工接管。