工具与协议面试题(U01–U20)
20 道 Tool Gateway、MCP、A2A 与工具安全题。
模型只提出调用,宿主系统负责执行、授权和验证。
建议先口答 60~90 秒,再展开【追问问题】。不要背句子,要说清判断依据和取舍。
U01|Tool、Function、Skill、Workflow 如何区分?
简明答案: Tool 是可调用原子能力,Function 是常见工具承载形式,Skill 通常把说明、资源和流程封装成可复用能力,Workflow 是预定义编排。不同框架命名不同,应看控制权和执行边界。
【追问问题】
- Skill 是否一定调用代码?
- Agent 能否把 Workflow 当工具?
关联知识: 工具、技能与工作流
U02|Tool Schema 为什么重要?
简明答案: 它是模型与执行器的接口合同,限制参数类型、必填、枚举和结构,直接影响工具选择和参数正确率。Schema 合法仍需业务与权限校验。
【追问问题】
- description 与 schema 谁更重要?
- Schema 版本如何兼容?
关联知识: Tool Schema 设计
U03|工具返回应该是文本还是结构化数据?
简明答案: 程序继续处理时优先短小结构化数据,保留 status、data、error 和引用;用户展示可在最后格式化。直接回长文本会增加 Token、解析不稳并隐藏错误。
【追问问题】
- 二进制结果怎么返回?
- 大结果如何分页?
关联知识: 工具结果与错误协议
U04|工具错误怎样分类?
简明答案: 至少分 validation、permission、not_found、conflict、temporary、rate_limit、timeout 和 unknown_result。分类决定修参数、停止、重试、对账还是转人工。
【追问问题】
- 异常堆栈应给模型吗?
- unknown_result 为什么特殊?
关联知识: 工具结果与错误协议
U05|如何设计统一工具注册表?
简明答案: 保存名称、版本、描述、Schema、执行器、权限标签、风险级别、超时和所有者;提供注册、发现、健康检查和弃用。运行时先按身份与任务筛选再暴露。
【追问问题】
- 动态卸载如何处理在途任务?
- 工具冲突如何命名?
关联知识: 工具注册表与发现
U06|什么是 Tool Gateway?
简明答案: 位于 Agent 与业务工具之间,统一做身份、授权、限流、Schema、幂等、审计、脱敏和路由,让安全规则不散落在 Prompt 与每个 Agent 中。
【追问问题】
- 它会成为单点吗?
- 怎样支持第三方 MCP?
关联知识: Tool Gateway
U07|工具调用如何防止 SSRF?
简明答案: 限制协议、域名、端口和重定向,解析后检查实际 IP,阻止内网/元数据地址,网络层再做 egress policy。不能只验证 URL 字符串。
【追问问题】
- DNS rebinding 如何处理?
- 网页抓取工具怎样隔离?
关联知识: 工具安全与网络边界
U08|数据库查询工具怎样安全设计?
简明答案: 优先暴露参数化业务查询而非任意 SQL;只读账号、租户过滤、行列权限、超时、结果行数限制和审计。生成 SQL 也必须解析或在沙箱只读副本执行。
【追问问题】
- 如何防止全表扫描?
- 写 SQL 工具何时允许?
关联知识: Tool Gateway
U09|代码执行工具怎样隔离?
简明答案: 每任务使用容器或 microVM,限制文件、网络、系统调用、CPU、内存和时间,默认无密钥;输出扫描后显式导出,任务结束销毁。
【追问问题】
- 容器一定足够安全吗?
- 依赖安装如何控制?
关联知识: Computer Use 与沙箱
U10|并行工具调用什么时候不安全?
简明答案: 调用之间有数据依赖、共享写资源、顺序语义或总预算限制时不应盲目并行。并行还要处理部分失败、取消和结果顺序。
【追问问题】
- 查询与写入能否并行?
- 如何合并部分结果?
关联知识: 并行与异步工具
U11|如何处理长时间运行的工具?
简明答案: 工具返回 job_id,Agent 进入等待状态,通过事件、轮询或 wait 工具恢复;持久化 deadline 和幂等键,不让单个 HTTP 请求或模型调用一直阻塞。
【追问问题】
- 轮询间隔怎么定?
- 用户取消如何传播?
关联知识: 并行与异步工具
U12|MCP 的 Tools、Resources、Prompts 谁控制?
简明答案: Tools 通常由模型选择,Resources 由应用选择加入上下文,Prompts 由用户显式选择。具体客户端可有差异,但控制边界有助于设计同意与权限。
【追问问题】
- Sampling 是谁发起?
- Roots 解决什么?
关联知识: MCP 深入
U13|MCP 的 Host、Client、Server 如何通信?
简明答案: Host 内为每个 Server 管理 Client 会话,协议使用请求、响应和通知交换能力;传输可本地 stdio 或远程 HTTP。Host 负责用户体验和最终安全边界。
【追问问题】
- 本地 Server 就一定可信?
- 能力变化如何发现?
关联知识: MCP 深入
U14|MCP 与 REST API 有何关系?
简明答案: MCP 是面向模型应用的能力发现与交互协议,Server 内部仍可调用 REST。REST 定义业务资源接口,MCP 负责把合适能力以模型可用形式暴露,两者不是替代关系。
【追问问题】
- 何时直接 Function Tool 更简单?
- MCP Server 如何封装 OAuth?
关联知识: MCP、A2A 与 API
U15|A2A 与 MCP 有何区别?
简明答案: MCP 主要连接 Agent 应用与工具/数据,A2A 主要让独立、可能不透明的 Agent 发现能力、委派任务和交换结果。一个 Agent 可同时用 MCP 获得工具、用 A2A 协作。
【追问问题】
- Agent Card 是什么?
- A2A 如何表示长任务?
关联知识: MCP、A2A 与 API
U16|什么是 Agent Card?
简明答案: A2A 中用于描述 Agent 身份、端点、能力、技能、输入输出模态和认证要求的元数据,便于客户端发现与选择。它是声明,不应被无条件信任。
【追问问题】
- 如何验证 Agent Card?
- 能力版本如何兼容?
关联知识: A2A 协议
U17|Remote Agent 为什么不能共享全部内部状态?
简明答案: 跨组织 Agent 应通过最小任务合同交换必要上下文和产物,内部记忆、工具和策略保持封装,以降低耦合、隐私泄漏和提示注入传播。
【追问问题】
- 如何传递身份与授权?
- 失败状态怎样标准化?
关联知识: A2A 协议
U18|如何实现动态工具发现?
简明答案: 先从注册表或 MCP 获取候选,再按用户权限、任务语义、风险与环境过滤,只把少量 Schema 加入上下文。工具发现本身也要评测召回与误选。
【追问问题】
- 百万工具怎样检索?
- 描述被污染怎么办?
关联知识: 工具注册表与发现
U19|工具版本升级如何兼容在途任务?
简明答案: 工具调用和 Checkpoint 记录版本;新版本保持兼容或提供适配器,在途任务继续旧版本,待完成后再下线。破坏性 Schema 变更不能静默替换。
【追问问题】
- 如何做双写验证?
- MCP 能力列表变化怎么办?
关联知识: 工具注册表与发现
U20|如何评测工具选择器?
简明答案: 构建包含无需工具、单工具、易混淆、多工具和越权请求的数据集,计算选择准确率、参数正确率、无效调用率和拒绝率,并检查最终环境结果。
【追问问题】
- 多条正确工具路径怎么算?
- 如何做混淆矩阵?
关联知识: 工具调用评测