0

0

Solon AI Remote Skills(Mcp Skill):开启分布式技能的“感知”时代

聖光之護

聖光之護

发布时间:2026-01-26 19:51:15

|

227人浏览过

|

来源于php中文网

原创

solon ai remote skills(mcp skill):开启分布式技能的“感知”时代

引言:AI Agent 的“最后一公里”挑战

在 AI Agent 的工程实践中,我们正在经历一场从“本地集成”到“云端插件化”的变革。过去一年,行业见证了 Model Context Protocol (MCP) 的崛起,它成功解决了大模型与外部工具跨进程连接的“协议标准化”问题。然而,随着企业级场景的深入,开发者们发现:仅仅实现连接是不够的。

今天,Solon AI 3.9.0 正式提出 Remote Skills(远程技能) 的概念。这一特性并非对 MCP 的简单封装,而是将原本静态的、被动触发的 MCP 工具集,进化为具备业务感知力、生命周期管理和动态路由能力的分布式智能单元。

一、 从 MCP Tools 到 Remote Skills 的跨越

传统的 MCP 交互模式本质上是一种“静态广播”。服务端一旦启动,便会将所有工具(Tools)全量暴露给大模型。这种模式在单机实验环境下运行良好,但在复杂的多租户、高安全要求的企业级业务中,会引发三个致命的工程痛点:

1. 上下文噪音(Context Noise)与 Token 膨胀:

大模型的上下文窗口是昂贵且有限的。如果一个系统拥有 500 个工具,即使是简单的闲聊或基础查询,传统的 MCP 也会将 500 个工具的 JSON Schema 全部塞进 System Prompt。这不仅白白浪费了大量 Token 成本,更严重的是,过多的干扰信息会导致模型产生“注意力分散”,降低推理的准确性。

2. 权限真空(Security Risks)与越权调用:

在 MCP 的原生架构中,模型对工具的可见性是“全量”的。模型无法自发地根据当前用户的角色动态隐藏敏感操作。例如,一个实习生询问订单信息,模型可能会在推理过程中尝试调用 OrderCancel(取消订单)工具。虽然执行层可以拦截,但这种“可见即可试”的模式本身就是巨大的安全隐患。

3. 行为失控(Instruction Gap):

工具(Tools)描述了“能做什么”,却无法告知模型在特定背景下“该怎么做”。例如,同一个“查询利率”工具,在深圳分行和上海分行的业务逻辑中可能有着截然不同的前置约束,静态的 MCP 协议无法传递这种动态的“行为准则”。

Remote Skills 的核心思想是: 将远程工具包装在 Skill 生命周期之中,使其具备感知当前 Prompt 上下文的能力,从而实现从“静态描述”到“动态契约”的跃迁。

二、 核心机制:感知、挂载与动态路由

Solon AI 通过在 McpSkillClient(客户端代理)与 McpSkillServer(服务端实现)之间建立一套上下文协商机制,赋予了远程技能“思考”的能力。这主要体现在以下三个层面:

1. 智能准入 (isSupported): 从“全量加载”到“按需激活”

Remote Skill 不再是盲目激活。在会话开始前,服务端会解析当前的 Prompt 属性(如租户 ID、用户画像、当前意图属性)。通过执行 isSupported 逻辑,服务端可以决定当前技能是否参与此次对话。

微信 WeLM
微信 WeLM

WeLM不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型。

下载
  • 工程价值:只有当对话涉及“财务报表”且用户具备“审计员”权限时,财务技能才会被挂载到内存图中。这从物理层面消除了非相关工具的干扰。

2. 动态指令注入 (getInstruction): 赋予工具“业务灵魂”

技能不再仅仅是 API。挂载时,服务端会通过 getInstruction 根据上下文动态下发指令约束。这种机制允许开发者在不修改模型提示词的情况下,实时调整 Agent 的行为逻辑。

  • 示例:当感知到请求来自移动端,服务端注入:“回复请保持简洁,尽量使用 Markdown 表格,不要输出超过 200 字。”

3. 三态能力路由 (getToolsName): 精细化权限隔离

这是 Remote Skills 最具突破性的功能。服务端可以根据请求者的身份,动态决定下发哪些工具名称,实现“工具级的 RBAC”:

  • 全量授权:针对超级管理员暴露所有调试和管理工具。
  • 精准过滤:针对普通业务员,隐藏 Delete  BatchUpdate 类的高危工具。
  • 完全拦截:当检测到异常请求(如 IP 属地异常)时,即便技能已激活,也可瞬间关闭所有工具访问权限。

三、 实战:构建具备“自省”能力的远程技能

1. 客户端:极致简化的集成体验

在 Solon AI 框架中,McpSkillClient 将复杂的远程通信和协议转换透明化了。开发者只需关注业务属性(Attrs)的注入。

import org.noear.solon.ai.chat.ChatModel;
import org.noear.solon.ai.chat.prompt.Prompt;
import org.noear.solon.ai.mcp.McpChannel;
import org.noear.solon.ai.mcp.client.McpClientProvider;
import org.noear.solon.ai.mcp.client.McpSkillClient;

// 1. 构建 mcp 客户端
McpClientProvider mcpClient = McpClientProvider.builder()
                .channel(McpChannel.STREAMABLE)
                .url("http://localhost:8081//skill/order")
                .build();
                
// 2. 构建带有深度业务属性的提示词
Prompt prompt = Prompt.of("帮我处理 A001 订单")
                .attrPut("tenant_id", "solon_cloud")
                .attrPut("user_role", "ADMIN")
                .attrPut("client_ip", "10.0.0.1");

// 3. 注入远程技能代理,框架会自动处理上下文透传
chatModel.prompt(prompt)
         .options(o -> o.skillAdd(new McpSkillClient(mcpClient))) 
         .call();

2. 服务端:声明式的安全能力导出

通过继承 McpSkillServer,你可以轻松实现具备动态防御能力的远程服务。注意这里是如何通过代码逻辑控制工具暴露的。

import org.noear.solon.ai.annotation.ToolMapping;
import org.noear.solon.ai.chat.prompt.Prompt;
import org.noear.solon.ai.mcp.McpChannel;
import org.noear.solon.ai.mcp.server.McpSkillServer;
import org.noear.solon.ai.mcp.server.annotation.McpServerEndpoint;

import java.util.ArrayList;
import java.util.List;

@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/skill/order")
public class OrderRemoteSkillServer extends McpSkillServer {
    
    @Override
    public boolean isSupported(Prompt prompt) {
        // 逻辑准入:如果请求没有租户标识,直接拒绝挂载该技能
        return prompt.attr("tenant_id") != null;
    }

    @Override
    public List getToolsName(Prompt prompt) {
        // 动态路由:实现物理级的工具隔离
        List tools = new ArrayList<>();
        tools.add("OrderQuery"); 

        if ("ADMIN".equals(prompt.attr("user_role"))) {
            tools.add("OrderCancel"); // 仅管理员可见
        }
        return tools;
    }

    @ToolMapping(description = "查询订单详情,包含物流状态")
    public String OrderQuery(String id) { ... }

    @ToolMapping(description = "紧急取消订单,此操作不可逆")
    public String OrderCancel(String id) { ... }
}

四、 架构反思:为什么这是企业级 Agent 的必然选择?

将 MCP 进化为 Remote Skills 之后,AI 系统的架构质量获得了质的飞跃:

  • 极致的上下文纯净度(Purity): 通过动态过滤,模型只看到“此时此刻、此人此权”下该看到的工具。这种“最小化信息原则”极大提升了推理成功率,并显著降低了 Token 损耗,对于大规模并发系统而言,这直接关系到运营成本。
  • 硬核安全模型(Hardened Security): 在过去,我们试图通过“提示词(Prompt Injection)”来防御非法调用。但在 Remote Skills 架构下,权限控制从“约束模型”提升到了“服务端物理过滤”。即便大模型尝试攻击未授权工具,由于工具定义根本未曾下发,攻击将无从谈起。
  • 能力的热更新与治理(Governance): 在分布式环境下,业务逻辑、工具列表和行为准则全部收敛于远程服务端。这意味着,当业务调整(如增加一个退款限制逻辑)时,开发者只需更新 McpSkillServer 的代码,成百上千个正在运行的客户端 Agent 即可瞬间获得能力升级,无需重新发布。

Solon AI Remote Skills 不仅仅是一套协议的实现,它更是一种关于“如何管理分布式智能体能力”的深度思考。它让 AI 插件从此告别了“静态广播”的时代,步入了“按需分配、智能感知”的新阶段。

五、 展望未来:迈向“技能即服务”

Solon AI Remote Skills 不仅仅是一套协议的实现,它更是一种关于 “如何像管理微服务一样管理 AI 能力” 的深度思考。在未来的 AI 架构中,大模型将不再是一个臃肿的“万能盒子”,而是一个精简的“推理枢纽”,通过 Remote Skills 协议,按需连接全球各地的分布式专家单元。

通过让 AI 插件告别“静态广播”,步入“按需分配、智能感知”的新阶段,Solon AI 正在为开发者提供更稳健、更可控、更具商业价值的 Agent 开发框架。

源码地址:点击下载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

868

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

745

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

741

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

398

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

420

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

447

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

431

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

16948

2023.08.03

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

31

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 2.9万人学习

C# 教程
C# 教程

共94课时 | 7.6万人学习

Java 教程
Java 教程

共578课时 | 51.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号