Skip to content

面试题

本章按初级、中级、高级三个层次列出与 Tool Use 相关的思考题,覆盖概念理解、工程实现与系统设计。

初级

  1. 什么是 Tool Use?它和让模型直接生成 Python 代码有什么区别?

    • 参考答案要点:Tool Use 是模型输出结构化调用描述,由运行时执行;直接生成代码则需要解释器执行,风险与可控性不同。
  2. 为什么 Tool Use 通常用 JSON Schema 描述工具参数?

    • 参考答案要点:JSON Schema 结构化、可校验、跨语言、跨厂商兼容,便于运行时校验与错误回显。
  3. 模型怎么知道应该调用哪个工具?

    • 参考答案要点:依赖工具 description 与 parameters schema,模型在生成时根据用户意图选择。
  4. Tool Choice 的 autorequirednone 分别是什么意思?

    • 参考答案要点:auto 让模型自行决定;required 强制至少调用一个工具;none 禁止调用工具。
  5. 工具执行完成后,为什么要把结果再喂给模型?

    • 参考答案要点:模型基于工具返回的客观结果生成最终答案,减少幻觉,实现多轮推理。

中级

  1. 描述一次完整工具调用的生命周期,并指出每个阶段可能出错的地方。

    • 参考答案要点:Register/Discover → Decision → Parse → Validate → Permission → Execute → Format → Feedback。错误包括解析失败、校验失败、权限拒绝、执行超时、结果格式化异常等。
  2. 并行工具调用和顺序工具调用各适用于什么场景? 如果两个调用有依赖关系,你会怎么处理?

    • 参考答案要点:独立查询可并行;有依赖时串行或由 Planning 模块生成 DAG。不能盲目并行。
  3. 什么是严格模式(strict mode)?它有什么限制?

    • 参考答案要点:OpenAI strict mode 通过 constrained decoding 强制模型输出符合 schema。限制包括 schema 需可编译、复杂 anyOf 可能不支持。
  4. 如何处理工具调用超时和下游故障?

    • 参考答案要点:设置连接超时与整体超时;区分可重试与不可重试错误;指数退避重试;熔断与降级。
  5. MCP 和 OpenAI Function Calling 是什么关系?

    • 参考答案要点:MCP 是开放协议,统一外部能力发现与调用;OpenAI Function Calling 是厂商 API。Tool Use 层可用 MCP 接入外部能力,再适配到不同模型。
  6. 如何保证写操作工具的幂等性?

    • 参考答案要点:使用 idempotency key、唯一请求 ID、数据库唯一约束、状态机校验等手段。
  7. 结果太长撑爆上下文时怎么办?

    • 参考答案要点:截断、摘要、存入 Memory 返回引用、分页查询。

高级

  1. 设计一个支持 10,000+ 工具的 Tool Registry,在 100ms 内为每次请求筛选出最相关的工具集合。

    • 参考答案要点:
      • 按 namespace / domain / tenant 预过滤。
      • 工具描述 embedding + 向量检索,按请求意图召回 Top-K。
      • 缓存热门工具组合。
      • 分层架构:全局 Registry + 本地缓存 + 索引服务。
      • 动态发现时异步更新索引,不阻塞请求路径。
  2. 如何设计一个跨 OpenAI、Anthropic、Google 的 Tool Use 抽象层?

    • 参考答案要点:
      • 内部统一 ToolDefinitionToolInvocation 模型。
      • Schema Manager 负责归一化与序列化。
      • Parser/Formatter 按 provider 实现适配器。
      • Tool Choice 语义做近似映射。
      • 通过测试矩阵保证不同 provider 行为一致。
  3. 在多租户 SaaS 中,如何实现工具级别的权限隔离与审计?

    • 参考答案要点:
      • 租户级 Registry 视图,不同租户看到不同工具集。
      • 工具声明所需 scope,运行时校验 JWT / OAuth token。
      • 参数级授权:检查 tenant_id、user_id、resource_id。
      • HITL Gate 对高风险操作弹窗确认。
      • 审计日志记录调用者、参数、结果、时间、trace ID。
  4. 当模型频繁选错工具或构造错误参数时,你会从哪些维度排查和优化?

    • 参考答案要点:
      • 检查 description 是否清晰、是否与其他工具冲突。
      • 减少每轮可用工具数量,做动态召回。
      • 启用严格模式,增强 schema 约束。
      • 在 description 中加入 Few-shot 示例。
      • 分析错误日志,定位高频错误模式,针对性优化 schema 或增加语义校验。
  5. 如何防止 Tool Use 被用于恶意目的(例如数据泄露、越权访问、资源滥用)?

    • 参考答案要点:
      • 最小权限原则:每个工具只暴露必要能力。
      • 沙箱执行:网络隔离、文件系统只读、禁止危险系统调用。
      • 参数级授权与输入校验:防止 IDOR、SQL 注入、命令注入。
      • 限流与配额:防止高频调用耗尽资源。
      • HITL 与审计:敏感操作人工确认,全链路可追溯。
      • 输出过滤:防止工具返回的敏感数据进入模型上下文。
  6. 设计一个可观测方案,帮助团队持续优化 Tool Use 系统的准确率与成本。

    • 参考答案要点:
      • Trace:OpenTelemetry 全链路,覆盖模型、解析、校验、执行、格式化。
      • Metrics:成功率、schema 违规率、工具选择错误率、P99 延迟、token 成本、重试率、降级率。
      • Logging:结构化、脱敏、可检索。
      • 评估:定期抽样,用人工或 LLM Judge 评估工具选择准确率。
      • 告警:核心指标跌破阈值时通知。
      • A/B:对比不同 schema 描述、不同模型对准确率和成本的影响。

面试建议

  • 初级题目关注“是什么”和“为什么”,考察候选人是否理解 Tool Use 的基本语义。
  • 中级题目关注“怎么做”,考察候选人对生命周期、错误处理、跨协议适配的经验。
  • 高级题目关注“如何设计”,考察候选人在大规模、多租户、跨厂商场景下的系统思维与安全意识。

Released under CC-BY-SA-4.0 License.