news 2026/4/18 6:17:56

MCP 进化:让静态 Tool 进化为具备“上下文感知”的远程 Skills

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MCP 进化:让静态 Tool 进化为具备“上下文感知”的远程 Skills

在 AI Agent 的工程实践中,Model Context Protocol (MCP) 已成为连接大模型与外部世界的标准桥梁。然而,随着应用场景从“个人助手”向“企业级复杂业务”迈进,传统的 MCP 交互模式开始显露其“静态化”的瓶颈。

Solon AI 支持将 MCP 封装为 Skill,实现了从“冷冰冰的 API 集合”到“具备感知能力的智能技能”的跨越。

一、静态 Tools 的三大痛点

传统的 MCP 交互类似于一个“无法关闭的工具箱”,无论场景如何,所有工具一涌而上:

  • 上下文噪音(Context Noise):即使是一个简单的问候,模型也会被注入成百上千行的工具 Schema 定义,白白浪费 Token,更干扰模型的推理专注度。
  • 权限真空(Security Risks):模型对工具的可见性是“全量”的。难以根据当前登录用户的角色(如普通用户 vs 管理员)动态隐藏敏感操作(如:删除订单)。
  • 行为失控(Instruction Gap):工具只提供了“能做什么”,却无法告诉模型“在当前背景下该怎么做”。模型缺乏针对特定业务场景的即时指令约束。

二、核心解决方式:感知、挂载与动态分发

Solon AI 通过引入 Skill(Solon AI Skills) 生命周期 来包裹 MCP 协议,实现以下机制解决上述痛点:

A. 智能准入 (isSupported):

只有当 Prompt 上下文(意图、租户信息、环境变量)满足条件时,技能才会被激活。

B. 指令注入 (getInstruction):

在技能挂载时,自动为模型注入针对当前上下文的“行为准则”(System Message)。

C. 三态路由 (getToolsName):

服务端根据 Prompt 属性,动态决定给模型展示哪些工具。支持三种形态的路由方式:

  • 全量使用:未定义过滤逻辑时,显示所有业务工具。
  • 精准授权:仅展示当前用户权限范围内的工具。
  • 完全拒绝:即便技能激活,也可能因安全策略在此时封锁所有工具调用。

三、实战示例

1. 客户端:像本地技能一样调用

开发者只需关注业务属性的注入,无需操心工具的过滤逻辑,一切由 MCP Skill 代理与远程服务端约定与协商。

importorg.noear.solon.ai.chat.ChatModel;importorg.noear.solon.ai.chat.prompt.Prompt;importorg.noear.solon.ai.mcp.McpChannel;importorg.noear.solon.ai.mcp.client.McpClientProvider;importorg.noear.solon.ai.mcp.client.McpSkillClient;//构建 mcp 客户端McpClientProvidermcpClient=McpClientProvider.builder().channel(McpChannel.STREAMABLE).url("http://localhost:8081//skill/order").build();// 构建带有业务属性的提示词Promptprompt=Prompt.of("帮我取消订单 A001").attrPut("tenant_id","solon_001").attrPut("user_role","ADMIN");// 模拟管理员身份// 注入技能,模型将只看到“管理员”权限下的工具chatModel.prompt(prompt).options(o->o.skillAdd(newMcpSkillClient(mcpClient)))//将 mcp 客户端 包装为 Solon AI Skills.call();
2. 服务端:实现具备“感知力”的技能

服务端不再是盲目响应,而是通过解析 Prompt 决定自己的表现。

importorg.noear.solon.ai.annotation.ToolMapping;importorg.noear.solon.ai.chat.prompt.Prompt;importorg.noear.solon.ai.mcp.McpChannel;importorg.noear.solon.ai.mcp.server.McpSkillServer;importorg.noear.solon.ai.mcp.server.annotation.McpServerEndpoint;importjava.util.ArrayList;importjava.util.List;@McpServerEndpoint(channel=McpChannel.STREAMABLE_STATELESS,mcpEndpoint="/skill/order")publicclassOrderSkillServerextendsMcpSkillServer{@OverridepublicbooleanisSupported(Promptprompt){// 感知意图:只有涉及“订单”且租户合规时才激活returnprompt.getUserContent().contains("订单")&&prompt.attr("tenant_id")!=null;}@OverridepublicStringgetInstruction(Promptprompt){// 动态指令:注入租户特定的业务规则return"你现在是租户["+prompt.attr("tenant_id")+"]的订单助手。";}@OverridepublicList<String>getToolsName(Promptprompt){// 权限隔离:根据用户角色动态下发工具名List<String>tools=newArrayList<>();tools.add("OrderQuery");// 基础权限if("ADMIN".equals(prompt.attr("user_role"))){tools.add("OrderCancel");// 仅管理员可见}returntools;}@ToolMapping(description="查询订单")publicStringOrderQuery(Stringid){...}@ToolMapping(description="取消订单")publicStringOrderCancel(Stringid){...}}

四、Skills 架构反思与局限性补充

尽管将 MCP 进化为 Skills 带来了显著的工程优势,但开发者仍需理清其技术边界:

  • 非标准化的架构增强:

LLM 的底层标准仅包含 Prompt 和 Tool-Call。Skills 并非模型原生标准,也不属于 MCP 的公共协议规范,而是一种 架构设计模式(模式,是通用的)。它通常由 AI 开发框架(如 Solon AI)在消费侧实现,用于解决复杂业务下的能力调度问题。

  • 消费侧驱动的定制:

MCP 向 Skills 的进化本质上是“业务驱动”或“领域驱动”的。在设计远程 MCP Skill 时,必须参考消费侧(即 Agent 执行引擎)的具体规范进行深度定制。

  • 适用场景的选择:

Tool:适用于原子化、无状态、全量公开的简单功能插件。

Skill:适用于需要上下文感知、多租户隔离、动态指令约束的复杂业务逻辑块。

五、 好处总结

将 MCP 进化为 Skills 之后,您的 AI Agent 架构将获得:

  • 极致的上下文纯净度:

模型只看到此时此刻该看的工具(通过 getToolsName 实现按需加载,或权限控制)。

  • 天然的权限安全:

通过服务端感知的动态分发,实现真正的跨进程角色权限控制(RBAC for Tools)。

  • 低耦合的业务演进:

业务逻辑和规则变更集中在服务端,客户端 “无需” 任何代码改动即可获得最新能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:42:43

爬虫项目:利用 Playwright 和 Asyncio 高效收集酒店信息

更多内容请见: 《爬虫和逆向教程》 - 专栏介绍和目录 文章目录 一、为什么选择 Playwright + Asyncio? 1.1 Playwright 的核心优势 1.2 Asyncio 的并发优势 1.3 实践建议 二、环境准备与基础配置 2.1 安装依赖 2.2 基础目录结构 三、核心架构设计 3.1 异步爬虫工作流 3.2 关键…

作者头像 李华
网站建设 2026/4/16 13:46:10

CAD二次开发中关于非模态对话框的使用

1.添加 Dialog 资源&#xff08;普通 DLL 中创建对话框&#xff0c;可视化操作&#xff09; 普通 DLL 项目添加 Dialog 资源和 BRX 模板项目操作一致&#xff0c;全程可视化&#xff0c;无需手动写复杂脚本&#xff1a; 1.1 添加资源脚本文件&#xff08;.rc&#xff09; 右…

作者头像 李华
网站建设 2026/4/18 7:04:51

吐血推荐8个AI论文工具,本科生搞定毕业论文!

吐血推荐8个AI论文工具&#xff0c;本科生搞定毕业论文&#xff01; AI 工具如何帮你轻松应对论文难题 对于大多数本科生来说&#xff0c;毕业论文是大学生活中最令人头疼的任务之一。从选题、写大纲到撰写初稿、反复修改&#xff0c;再到查重降重&#xff0c;每一个环节都可能…

作者头像 李华
网站建设 2026/4/18 7:07:33

8.开发工具

1.按单词光标移动w b也可以nw nb2.批量化注释Ctrl v shift g shift i //Ctrl v 25shift g shift i //3.取消注释Ctrl v 25shift g l d //3.补充一行自动补充下面几行Ctrl v 25shift g shift i 打字 esc4.查找函数变量啥的 逆向查找shift#&#xff0c;&am…

作者头像 李华
网站建设 2026/4/18 10:19:14

华为MetaERP锂电池行业数字化转型总体蓝图架构设计解决方案

华为MetaERP锂电池行业数字化转型总体蓝图架构设计解决方案 核心理念&#xff1a; 以华为MetaERP为数字核心基座&#xff0c;构建覆盖锂电池“研、产、供、销、服、管”全价值链的一体化、智能化、韧性化运营平台&#xff0c;驱动业务模式创新与效率跃升。 一、 业务架构蓝图…

作者头像 李华
网站建设 2026/4/18 7:39:16

SAP ERP的成本中心与Oracle ERP会计科目弹性域中部门段的比较

SAP ERP的成本中心与Oracle ERP会计科目弹性域中部门段的比较 这两个概念在ERP系统中属于不同维度的管理工具&#xff0c;虽然都涉及部门维度的财务数据追踪&#xff0c;但存在本质区别。 核心概念对比 维度SAP成本中心Oracle会计科目弹性域中的部门段系统定位管理会计&#…

作者头像 李华