跳到主要内容
SUN / 笔记
← 全部文章

智能体工具调用面试速记

本页只保留常见误区、短答案和综合口述;完整原理请阅读同目录专题笔记。

常见错误观点

错误 1:工具调用就是把 Action 文本从回答里解析出来

早期 ReAct 可能解析 Action: ...,现代实现更多使用原生结构化 Tool Calling,并通过 call_id 关联调用与结果。

错误 2:模型直接执行工具

模型只生成调用请求。真正执行文件、命令和 API 的是 Harness、宿主程序或 MCP Server。

错误 3:Harness 提前知道模型下一轮要调用什么

Harness 只决定候选工具和硬限制;通常要等模型响应后,才能知道它实际选择了什么。

错误 4:工具越多 Agent 能力越强

工具过多会消耗上下文并增加混淆,应通过动态筛选、Namespace、Tool Search 或 MCP 做按需暴露。

错误 5:只靠 Prompt 就能避免无限循环

Prompt 只能软约束,必须有轮数、时间、预算、去重、无进展检测和终止状态。

错误 6:所有错误都可以自动重试

只有瞬时且副作用可控的错误适合同调用重试。业务错误需要重新规划,危险写操作需要幂等和审批。

错误 7:Tool Search 一定是向量检索

Client-executed Search 可以自行使用 Embedding;Hosted Tool Search 的内部算法没有完全公开,不能武断地说一定使用某种检索算法。

错误 8:Skill 就是一组工具

Skill 主要封装流程、规范、参考资料和脚本使用方式;Tool 是可执行接口。Skill 可以指导 Agent 何时以及如何使用 Tool,但二者不是同一概念。


面试高频问答

Harness 如何调用工具?

Harness 内部维护 Tool Definition 到 Handler 的注册表,将候选工具的名称、描述和参数 Schema 放入模型请求。模型返回结构化 Tool Call 后,Harness 根据工具名找到 Handler,校验参数、权限和风险,执行真实函数,再用 call_id 将 Tool Result 回填给模型进入下一轮。

有很多工具时如何注册?

小规模工具可以直接全部注册;大规模工具应先按权限和任务阶段过滤,再使用 Namespace、Tool Search 或 MCP 动态发现。只向模型加载当前最相关的少量完整 Schema。

Harness 怎么知道下一轮模型需要什么工具?

它通常不知道。Harness 只确定本轮可用候选集;模型根据目标和上一轮 Observation 返回 Tool Call。Harness 检查响应类型后执行对应调用,或者在模型返回最终答案时结束。

Harness 每轮筛选和 Tool Search 分别在哪一层?

Harness 筛选发生在主模型调用之前,候选工具由应用层生成;Tool Search 由主模型在推理过程中主动发起。Hosted 模式由平台检索,Client-executed 模式由 Harness 检索,最终具体工具仍由模型选择。

Tool Search 如何匹配近义表达?

Client-executed 模式一般将工具名称、描述、使用边界、参数、返回值和业务同义词构造成检索文档,通过 BM25 和 Embedding 混合召回,再用规则或 Reranker 排序并返回 Top-K Schema。Hosted 模式内部算法未完全公开,不应直接断言使用向量检索。

如何避免无限循环?

设置最大轮数、工具数、时间、Token 和费用预算;根据工具名、规范化参数、环境版本与结果生成重复指纹;检测连续无进展;逐级触发警告、重新规划、工具禁用和强制终止。

工具出错怎么处理?

参数错误返回模型修正;短暂网络错误由 Harness 有限退避重试;业务错误回填给模型重新规划;状态冲突先重新观察;权限和危险操作暂停审批;有副作用的写操作使用幂等键和状态查询;不可恢复错误保存状态并明确失败。

多轮调用时如何记住核心任务?

不是依赖模型永久记忆,而是 Harness 每轮重建上下文:固定保留目标、约束和验收标准,维护最近调用轨迹,将计划、修改文件、测试状态和 Checkpoint 存在模型外部;上下文过长时压缩旧历史,并通过文件、Git 和测试重新验证真实状态。


90 秒综合回答

我认为 Agent 工具调用是一套模型决策与 Harness 执行相结合的机制。Harness 维护 Tool Definition 到 Handler 的注册表,把本轮允许使用的工具名称、描述和 JSON Schema 提供给模型;模型根据用户目标、当前状态以及上一轮工具结果,输出结构化 Tool Call。Harness 再校验参数、权限和副作用,执行真实的文件、Shell、API 或 MCP 工具,通过 call_id 回填结果并进入下一轮。

Harness 不会提前知道模型下一轮一定要调用什么,它主要控制候选工具和硬边界。工具少时可以直接注册;工具很多时,可以由 Harness 根据权限和任务阶段预筛选,也可以用 Tool Search 延迟加载。Hosted Tool Search 由平台检索 Deferred Tools,Client-executed Tool Search 则由 Harness 使用关键词、Embedding、规则和重排返回 Top-K Schema,最终具体调用仍由模型决定。

为保证生产可靠性,Harness 还要维护任务状态和硬性预算,设置最大轮数、时间、Token、费用和重复调用检测。参数错误交给模型修正,瞬时错误有限重试,业务错误触发重新规划,危险或有副作用的操作使用审批、幂等键和状态查询。Skill 与 Tool 也都可以渐进披露:Skill 按“简介、完整 SKILL.md、附属资源”加载工作方法,Tool 按“Namespace、具体 Schema、真实调用”加载执行能力。

相关笔记

相关文章

强化学习笔记 →上下文工程 →Mission: 掌握多模态 LoRA 与 QLoRA →