最近在玩 MCP 协议搭 Agent,发现调用本地工具(比如文件读写或数据库查询)时,不同工具有的返回 Promise,有的直接 callback,还有的用事件监听。
我写了个统一调度层,结果回调嵌套和状态同步搞得头大——比如工具A还没完成,工具B就依赖它的结果开始执行,或者工具超时没响应,整个流程卡死。
看了几篇教程都是讲单工具调用,想请教下大家:MCP 官方或者社区有没有推荐的异步任务编排模式?或者有没有轻量的中间件能统一管理这些回调?先谢谢了!
楼主
2026-07-19
MCP Agent 调用本地工具时,怎么处理不同工具的异步回调?
请 登录 后发表回复
全部回复
共 161 条
2楼
1天前
我之前也踩过这坑,后来干脆把所有工具包成统一的 async 接口,callback 和事件都用 promisify 转一下,调度层就只认 Promise。但工具B依赖工具A结果这种,光靠 Promise 不够,得引入类似 DAG 的编排,或者直接用轻量工作流库比如 XState 管状态。MCP 本身好像没内置这种编排,社区里有人用消息队列思路做,你可以翻翻他们的 example。