面试题
本章按初级、中级、高级三个层次列出与 Tool Use 相关的思考题,覆盖概念理解、工程实现与系统设计。
初级
什么是 Tool Use?它和让模型直接生成 Python 代码有什么区别?
- 参考答案要点:Tool Use 是模型输出结构化调用描述,由运行时执行;直接生成代码则需要解释器执行,风险与可控性不同。
为什么 Tool Use 通常用 JSON Schema 描述工具参数?
- 参考答案要点:JSON Schema 结构化、可校验、跨语言、跨厂商兼容,便于运行时校验与错误回显。
模型怎么知道应该调用哪个工具?
- 参考答案要点:依赖工具 description 与 parameters schema,模型在生成时根据用户意图选择。
Tool Choice 的
auto、required、none分别是什么意思?- 参考答案要点:
auto让模型自行决定;required强制至少调用一个工具;none禁止调用工具。
- 参考答案要点:
工具执行完成后,为什么要把结果再喂给模型?
- 参考答案要点:模型基于工具返回的客观结果生成最终答案,减少幻觉,实现多轮推理。
中级
描述一次完整工具调用的生命周期,并指出每个阶段可能出错的地方。
- 参考答案要点:Register/Discover → Decision → Parse → Validate → Permission → Execute → Format → Feedback。错误包括解析失败、校验失败、权限拒绝、执行超时、结果格式化异常等。
并行工具调用和顺序工具调用各适用于什么场景? 如果两个调用有依赖关系,你会怎么处理?
- 参考答案要点:独立查询可并行;有依赖时串行或由 Planning 模块生成 DAG。不能盲目并行。
什么是严格模式(strict mode)?它有什么限制?
- 参考答案要点:OpenAI strict mode 通过 constrained decoding 强制模型输出符合 schema。限制包括 schema 需可编译、复杂 anyOf 可能不支持。
如何处理工具调用超时和下游故障?
- 参考答案要点:设置连接超时与整体超时;区分可重试与不可重试错误;指数退避重试;熔断与降级。
MCP 和 OpenAI Function Calling 是什么关系?
- 参考答案要点:MCP 是开放协议,统一外部能力发现与调用;OpenAI Function Calling 是厂商 API。Tool Use 层可用 MCP 接入外部能力,再适配到不同模型。
如何保证写操作工具的幂等性?
- 参考答案要点:使用 idempotency key、唯一请求 ID、数据库唯一约束、状态机校验等手段。
结果太长撑爆上下文时怎么办?
- 参考答案要点:截断、摘要、存入 Memory 返回引用、分页查询。
高级
设计一个支持 10,000+ 工具的 Tool Registry,在 100ms 内为每次请求筛选出最相关的工具集合。
- 参考答案要点:
- 按 namespace / domain / tenant 预过滤。
- 工具描述 embedding + 向量检索,按请求意图召回 Top-K。
- 缓存热门工具组合。
- 分层架构:全局 Registry + 本地缓存 + 索引服务。
- 动态发现时异步更新索引,不阻塞请求路径。
- 参考答案要点:
如何设计一个跨 OpenAI、Anthropic、Google 的 Tool Use 抽象层?
- 参考答案要点:
- 内部统一
ToolDefinition与ToolInvocation模型。 - Schema Manager 负责归一化与序列化。
- Parser/Formatter 按 provider 实现适配器。
- Tool Choice 语义做近似映射。
- 通过测试矩阵保证不同 provider 行为一致。
- 内部统一
- 参考答案要点:
在多租户 SaaS 中,如何实现工具级别的权限隔离与审计?
- 参考答案要点:
- 租户级 Registry 视图,不同租户看到不同工具集。
- 工具声明所需 scope,运行时校验 JWT / OAuth token。
- 参数级授权:检查 tenant_id、user_id、resource_id。
- HITL Gate 对高风险操作弹窗确认。
- 审计日志记录调用者、参数、结果、时间、trace ID。
- 参考答案要点:
当模型频繁选错工具或构造错误参数时,你会从哪些维度排查和优化?
- 参考答案要点:
- 检查 description 是否清晰、是否与其他工具冲突。
- 减少每轮可用工具数量,做动态召回。
- 启用严格模式,增强 schema 约束。
- 在 description 中加入 Few-shot 示例。
- 分析错误日志,定位高频错误模式,针对性优化 schema 或增加语义校验。
- 参考答案要点:
如何防止 Tool Use 被用于恶意目的(例如数据泄露、越权访问、资源滥用)?
- 参考答案要点:
- 最小权限原则:每个工具只暴露必要能力。
- 沙箱执行:网络隔离、文件系统只读、禁止危险系统调用。
- 参数级授权与输入校验:防止 IDOR、SQL 注入、命令注入。
- 限流与配额:防止高频调用耗尽资源。
- HITL 与审计:敏感操作人工确认,全链路可追溯。
- 输出过滤:防止工具返回的敏感数据进入模型上下文。
- 参考答案要点:
设计一个可观测方案,帮助团队持续优化 Tool Use 系统的准确率与成本。
- 参考答案要点:
- Trace:OpenTelemetry 全链路,覆盖模型、解析、校验、执行、格式化。
- Metrics:成功率、schema 违规率、工具选择错误率、P99 延迟、token 成本、重试率、降级率。
- Logging:结构化、脱敏、可检索。
- 评估:定期抽样,用人工或 LLM Judge 评估工具选择准确率。
- 告警:核心指标跌破阈值时通知。
- A/B:对比不同 schema 描述、不同模型对准确率和成本的影响。
- 参考答案要点:
面试建议
- 初级题目关注“是什么”和“为什么”,考察候选人是否理解 Tool Use 的基本语义。
- 中级题目关注“怎么做”,考察候选人对生命周期、错误处理、跨协议适配的经验。
- 高级题目关注“如何设计”,考察候选人在大规模、多租户、跨厂商场景下的系统思维与安全意识。