TAG

#工具调用

共 12 篇文章

MCP 工具参数默认值与必填校验:为什么 inputSchema 里省略的字段会让服务端收到 undefined

Agent 调用带可选参数的 MCP 工具时,模型省略字段常让服务端收到缺键参数对象,引发解引用报错或空值写入。文章从 JSON Schema 中 required 与 default 的语义边界出发,说明缺键如何产生、校验点应放在哪里,并比较客户端预填与服务端容错解析的取舍。

MCP 工具结果的 isError 语义:业务失败与协议错误混用为何让 Agent 误判重试

远程 MCP Server 执行查询工具时,把参数校验失败、业务空结果和传输异常都塞进 isError 或 content 文本,会让客户端与模型无法区分可重试与不可重试。本文拆解 CallToolResult 中 isError 的定位、错误分类混用的失效机制,对比结构化错误码方案,并给出校验点与可观测指标。

MCP 工具参数类型强制转换:为什么模型输出的字符串数字会让服务端校验失败

Agent 调用带数值与布尔参数的 MCP 工具时,模型常把 5 写成 "5"、把 true 写成 "true",服务端按 inputSchema 严格校验就会直接拒绝。本文用一个库存查询工具贯穿全文,梳理类型声明、序列化路径、隐式转换歧义与枚举大小写问题,并对比客户端预校验与服务端宽松解析的取舍。

MCP 工具调用超时重试:客户端重发请求为何导致写操作重复执行

远程 MCP Server 执行下单类写工具时,客户端超时重发同一 JSON-RPC 请求,服务端却把它当成一次新调用,导致重复扣款或重复下单。本文从 JSON-RPC 请求 ID 的会话内语义出发,解释断线重连后 ID 重置、服务端缺少幂等键存储的机制,并对比幂等键、去重窗口与人工确认三种方案,给出可观测指标与部署边界。

MCP 工具输出校验:structuredContent 与 outputSchema 不一致时客户端为何解析失败

远程 MCP Server 返回结构化工具结果时,outputSchema 声明返回结构,structuredContent 承载实际负载。本文用一个订单查询工具贯穿全文,分析二者不一致、schema 未声明、客户端只读 content 文本分支时各自的解析失败路径,对比纯文本封装与严格校验两种方案,并给出服务端与客户端的校验点和可观测指标。

MCP Elicitation 中途索要参数:工具执行到一半如何安全地向人类追问

工具跑到一半才发现缺少必填参数,直接报错会让用户重来一遍。本文以订位工具为例,拆解 MCP elicitation/create 如何暂停调用、用受限 JSON Schema 收集结构化输入并恢复执行,分析 accept、decline、cancel 三条路径、schema 校验失败与超时处理、敏感字段为何必须走 URL 模式,并给出可观测指标与适用边界。

MCP 工具列表变更通知:服务端热更新后客户端为何仍在调用已删除的工具

远程 MCP Server 热更新工具后,客户端仍调用已删除工具,问题往往出在 tools/list_changed 通知链路而非服务端。本文拆解通知、重新拉取与缓存刷新的完整流程,分析通知丢失、未订阅、会话重连三类失效路径,对比轮询与版本校验方案,并给出可观测指标与部署边界。

MCP 工具定义注入如何挤占上下文:工具 schema 的 token 开销与按需加载机制

接入多个 MCP Server 的 Agent 为什么越接越笨?本文从工具名、描述与 JSON Schema 被序列化进系统提示并随每轮请求重复计费讲起,分析工具数量增长带来的上下文挤占与选择准确率下降,对比全量注入、检索式筛选与动态发现三种加载策略的延迟与可靠性权衡,并给出可观测指标与适用边界。

工具调用代理的错误恢复:从重试、回退到人工干预的工程策略

当 LLM Agent 调用外部 API 失败时,简单的重试往往不够。本文以旅行预订助手为场景,分析 API 异常、参数错误和超时等故障模式,对比 ReAct 的自我修正、Toolformer 的过滤机制与基于规则的恢复,讨论重试次数、回退策略与人工介入的工程实现,帮助开发者在自动化与可靠性之间做出权衡。