Skip to content

Agent 面试 · Tool Calling ​

工具调用是 Agent 的「手脚」。面试重点:模型出意图,你的系统执行。


高频问法 ​

  1. Tool Calling / Function Calling 是什么?
  2. 和「让模型输出 JSON 再自己解析」有什么区别?
  3. 怎么设计一个工具(入参、出参、错误)?
  4. 并行调多个工具可以吗?注意什么?
  5. 工具太多了模型选错怎么办?

口述参考 ​

1)是什么 ​

模型不「假装调了接口」,而是按约定产出:

text
工具名 + 参数(结构化)
  → 后端真实执行
  → 结果(成功/失败信息)写回上下文
  → 模型继续推理或结束

你方负责:鉴权、校验、超时、幂等、审计。

2)对比自己解析 JSON ​

做法优点风险
自然语言里「我已经查询了」演示快不可信
正则 / 手写 JSON 解析灵活格式一漂就挂
官方 Tool Calling + Schema与模型对齐、可校验依赖厂商协议

生产建议:Schema 校验失败就重试或降级,不要硬跑。

3)工具设计清单(面试可照念) ​

每个工具至少讲清:

项说明
名称与描述给模型看,描述要「何时用」
入参 Schema类型、必填、枚举、范围
出参成功结构;失败要有 code/message,别只抛栈
副作用只读 vs 写入;写入是否要确认
超时与重试多久算失败;能否幂等重试
权限谁能调;是否按租户隔离

示例(口述):「查订单工具只读;取消订单工具要用户 id + 订单 id,且做幂等键,防止重复取消。」

4)并行工具 ​

可以:互不依赖的只读查询可并行,降低延迟。
注意:有先后依赖(先查库存再下单)必须串行;并行写入要防冲突。

5)工具太多选错 ​

  • 按场景拆子集(不同 Agent 不同工具包)
  • 描述写清「不要用于…」
  • 危险操作二次确认或人工审批
  • 监控「选错工具率」,用日志反推改描述

追问预备 ​

  • 「流式输出时怎么插工具?」→ 先收齐 tool_call,再执行,再继续生成。
  • 「和 MCP 关系?」→ MCP 偏「工具/资源怎么标准暴露」;Tool Calling 是模型侧调用形态。知道分层即可。