异步 MCP 工具要把契约写进描述里,不只是写进返回值

Confident-Truck-7186 · reddit · 2026-07-21

MCP 工具如果是异步的,描述里就该直接写明

作者用 Claude Code 的真实调用方式 smoke-test 自己的 MCP server:通过 stdio 启动、初始化、tools/list,然后执行一次真实 tools/call。

这次调用返回的是一个 job ticket,里面有:

也就是说,工具本身已经把“任务排队中”的信息返回了。但问题是:工具描述里没有明确写它是异步的,也没有告诉模型要继续轮询状态工具直到完成。作者检查后发现,45 个工具里只有 2 个在描述里明确提到了 poll/job/async。

作者的结论很直接:模型会先读描述再决定怎么做,拿到响应后才继续推理,所以异步契约应该写在描述里,而不只是返回值里。否则能力弱一点的模型,很可能只回一句“我已经帮你提交任务”然后就停住。

另外还有两个工程经验:

这是一个很典型的 agent 工程实践帖。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →