当前位置: 首页 > news >正文

海量 MCP 工具场景下的上下文隔离选择方案

海量 MCP 工具场景下的上下文隔离选择方案

海量 MCP 工具场景下的上下文隔离选择方案

本文探讨一种针对大型 ERP 系统接入 MCP 工具时的架构设计思路,核心目标是:在工具数量极多的情况下,既让 AI 能准确找到合适的工具,又不污染主对话的上下文窗口。


背景:MCP 工具多了会怎样

MCP(Model Context Protocol)让 AI 能够调用外部工具。但有一个固有成本:AI 每次对话都需要知道"有哪些工具可以用",这意味着所有工具的描述都要塞进 prompt。

对于小型系统,十几个工具问题不大。但对于大型 ERP 系统,情况完全不同:

  • 销售、采购、库存、生产、财务……每个模块都有大量单据
  • 每张单据都有新增、编辑、查询、审批、关闭等操作
  • 大量报表、基础资料维护工具
  • 工具总数轻松达到数百甚至上千

把这些全部塞进每次请求,token 开销巨大,而且大量描述高度雷同("支持新增、编辑、查询销售订单"和"支持新增、编辑、查询采购订单"几乎一样),信噪比极低。


业界常见方案及其局限

方案一:向量检索动态召回

将工具描述向量化,每次请求前用用户意图检索最相关的 Top N 个工具,只把这些带入 prompt。

局限:向量检索基于语义相似度,但工具选择有时需要逻辑推理。"关闭采购单"和"删除采购单"语义很近,但含义完全不同,容易误召回。

方案二:全量摘要索引常驻上下文

每次请求携带所有工具的摘要索引(名称 + 一句话描述)。

局限:对于 ERP 这种规模,即使是摘要索引也非常庞大,且每轮对话都要携带,累积成本高。


新方案:上下文隔离的工具选择

核心思路

把"选择工具"这件事,做成一次独立的、不污染主上下文的子调用

主对话上下文中不存放任何工具描述,只有一个简短提示告诉 AI:"当你需要调用工具时,先发起一次工具查询。"

执行流程

用户请求 ↓ 主 Agent 循环(上下文干净,无工具描述) ↓ AI 判断需要调用工具 触发 function call: search_mcp_tools(query) ↓ Agent 执行此特殊 function ├─ 将海量工具摘要索引发送给 AI(独立请求,不在 Agent 循环中) ├─ AI 决策:返回所需工具的完整描述 └─ Agent 拿到完整描述后,将其注入当前轮次上下文 ↓ AI 使用完整描述调用实际工具 ↓ Agent 执行完毕后,主动抛弃工具完整描述 继续 Agent 循环(上下文恢复干净)

关键设计点

1. 工具选择请求独立于主上下文

那次携带海量摘要索引的请求是一次独立调用,结果只返回"选中的工具完整描述",不会进入主对话历史。后续轮次的请求不会携带这些信息。

2. 完整描述用完即抛

Agent 在执行完工具调用后,主动从上下文中移除工具完整描述。主上下文始终保持轻量。

3. 工具选择请求可用低成本模型

这次独立请求的任务是"从大量摘要中选出合适的工具",逻辑并不复杂,但需要大上下文窗口。可以选用便宜的大窗口模型,而不必使用最强的模型,控制成本。


解决"AI 不知道自己需要工具"的问题

上述方案有一个潜在风险:如果 AI 误以为自己能直接回答,就不会触发工具查询,结果是产生幻觉而非报错。

解决方式:结构化模块总结

利用 ERP 工具描述高度同构的特点,提前让 AI 将所有工具摘要压缩成一份结构化的模块地图,常驻主上下文。

ERP 工具描述的冗余规律:

  • 销售订单、采购订单、生产订单的描述模式几乎一样
  • 大量报表工具都是"支持查询和导出"
  • 基础资料维护都是"支持增删改查"

压缩后的结构化总结示例:

销售:订单/退货/发货/对账,各支持增删改查+审批 采购:订单/退货/收货/对账,各支持增删改查+审批 库存:入库/出库/调拨/盘点,各支持增删改查 报表:销售/采购/库存/财务,各支持查询/导出 基础资料:客户/供应商/物料/仓库,各支持增删改查

200 字以内覆盖 80% 的场景。AI 看到用户说"帮我查上个月的销售报表",能准确判断"我需要去查报表类工具",带着精准的查询语义触发工具选择请求,而不是盲猜。


完整三层架构

┌─────────────────────────────────────────┐ │ 结构化模块总结(~200字,常驻主上下文) │ │ 作用:让 AI 知道有哪些模块,往哪里找工具 │ └────────────────┬────────────────────────┘ │ AI 判断需要工具,带精准查询触发 ┌────────────────▼────────────────────────┐ │ 独立工具选择请求(海量摘要,用完即弃) │ │ 作用:从全量工具中精确定位,返回完整描述 │ │ 模型:低成本大窗口模型即可 │ └────────────────┬────────────────────────┘ │ 完整描述注入当前轮次,执行后抛弃 ┌────────────────▼────────────────────────┐ │ 实际工具调用 │ │ 主上下文始终干净 │ └─────────────────────────────────────────┘

方案对比

全量索引常驻向量检索本方案
主上下文 token 开销高(每轮携带)中(召回 Top N)极低(仅模块总结)
工具数量扩展性
选择准确性中(语义相似≠逻辑正确)高(AI 推理决策)
额外 LLM 调用有(工具选择独立请求)
适用场景工具少工具中等工具极多(ERP级别)
http://www.jsqmd.com/news/1106370/

相关文章:

  • 性价比高的降英文AI工具推荐工具
  • 【NWFSP问题】基于matlab麝牛算法MO求解零等待流水车间调度问题NWFSP【含Matlab源码 15685期】
  • WAIC 2026前瞻:AI办公不缺聊天机器人,缺的是可信会议智能体
  • 内网渗透测试实战指南:从信息收集到域控攻防的完整攻击链
  • 节点】[SmoothStep节点]原理解析与实际应用
  • ZXing:一个扫描条码的基础库
  • Dockery:一个容器跑起来,就是你的私有 Docker Registry
  • GitHub 53K Star 爆款:不用 JS 逆向,7 大平台数据一把抓
  • 2026 跨境云网融合服务商榜单:海外企业组网与安全运维推荐
  • 企业微信二次开发中的定期对账机制
  • 墨香情手游官方下载:重拾纯粹武侠情怀开启全新快意恩仇江湖征途
  • 2026年AIGC检测怎么过?5大检测平台对比+AI痕迹降低实战指南
  • ICM-42688-P与PIC18F4553在机器人控制与工业监测中的应用
  • 类比StandardServer, 抓住StandardService整体类依赖结构来理解
  • Better BibTeX架构解析:为LaTeX用户打造的企业级文献管理解决方案
  • 【节点】[Clamp节点]原理解析与实际应用
  • Kubernetes 核心机制与运维实践知识精要
  • 别折腾了!3步教你用标准 API 调通企业微信外部群机器人
  • Python 最大冤案:你以为 `await` 在“死等”?它其实在
  • 如何轻松地从 iPhone 备份恢复 iPad?
  • 任务计划程序不显示后边的信息
  • 墨香情手游官方下载:均衡稳定经济生态适配养老休闲打金玩家群体
  • 张鹏翔在AI营销实战方法论沙龙上详解智能体如何助力企业长效流量增长
  • Apache SeaTunnel 搞定瀚高数据库读写一把过
  • SPI EEPROM与MCU高速数据检索方案解析
  • 如何把报告错误消灭在出稿前?AI报告审核结合IACheck实现前置校验
  • 好用还专业!盘点2026年最强的的降AI率软件
  • 别再建一个无人问津的知识库:用AI原生平台打造活文档系统
  • CSS定位:relative、absolute、fixed、sticky
  • 2024年南安多功能太阳能路灯选购指南:3招教你挑对好产品