news 2026/2/6 13:20:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Solon AI Remote Skills:开启分布式技能的“感知”时代

引言: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逻辑,服务端可以决定当前技能是否参与此次对话。

  • 工程价值:只有当对话涉及“财务报表”且用户具备“审计员”权限时,财务技能才会被挂载到内存图中。这从物理层面消除了非相关工具的干扰。
2. 动态指令注入 (getInstruction): 赋予工具“业务灵魂”

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

  • 示例:当感知到请求来自移动端,服务端注入:“回复请保持简洁,尽量使用 Markdown 表格,不要输出超过 200 字。”
3. 三态能力路由 (getToolsName): 精细化权限隔离

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

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

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

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

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

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;// 1. 构建 mcp 客户端McpClientProvidermcpClient=McpClientProvider.builder().channel(McpChannel.STREAMABLE).url("http://localhost:8081//skill/order").build();// 2. 构建带有深度业务属性的提示词Promptprompt=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(newMcpSkillClient(mcpClient))).call();
2. 服务端:声明式的安全能力导出

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

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,mcpEndpoint="/skill/order")publicclassOrderRemoteSkillServerextendsMcpSkillServer{@OverridepublicbooleanisSupported(Promptprompt){// 逻辑准入:如果请求没有租户标识,直接拒绝挂载该技能returnprompt.attr("tenant_id")!=null;}@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){...}}

四、 架构反思:为什么这是企业级 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 开发框架。

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

Face Fusion模型选型困惑?unet image与其他方案对比评测教程

Face Fusion模型选型困惑&#xff1f;unet image与其他方案对比评测教程 1. 为什么你会在Face Fusion上纠结&#xff1f; 你是不是也遇到过这样的情况&#xff1a;想做个换脸小工具&#xff0c;搜了一圈发现满屏都是“SOTA”“最新架构”“开源免费”&#xff0c;结果下载下来…

作者头像 李华
网站建设 2026/2/6 10:08:10

用Unsloth实现模型导出,过程超简单

用Unsloth实现模型导出&#xff0c;过程超简单 你是不是也经历过这样的时刻&#xff1a;辛辛苦苦微调完一个大模型&#xff0c;结果卡在最后一步——怎么把训练好的模型保存下来、部署出去&#xff1f;导出格式五花八门&#xff0c;Hugging Face、GGUF、AWQ、EXL2……光看名字就…

作者头像 李华
网站建设 2026/2/4 23:53:10

【Linux命令大全】007.磁盘管理之mmount命令(实操篇)

【Linux命令大全】007.磁盘管理之mmount命令&#xff08;实操篇&#xff09; ✨ 本文为Linux系统磁盘管理命令的全面汇总与深度优化&#xff0c;结合图标、结构化排版与实用技巧&#xff0c;专为高级用户和系统管理员打造。 (关注不迷路哈&#xff01;&#xff01;&#xff01;…

作者头像 李华
网站建设 2026/2/6 8:48:39

基于STM32单片机的语音播报密码锁 门禁刷卡指纹识别蓝牙wifi成品

目录基于STM32的多功能门禁系统介绍硬件组成核心功能实现系统特点典型应用场景扩展接口源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;基于STM32的多功能门禁系统介绍 该成品整合了语音播报、密码锁、刷卡识别、指纹验证、蓝牙及Wi-Fi…

作者头像 李华
网站建设 2026/2/5 4:49:19

软件国产化信创测试机构【高级参数化:如何从数据库实时读取测试数据到LoadRunner脚本】

性能测试使用静态参数文件往往无法模拟真实情形的动态性&#xff0c;尤其是当测试数据需要和当前数据库状态保持实时一致时。LoadRunner通过强大的数据库查询功能&#xff0c;支持在脚本运行时直接从数据库实时获取数据&#xff0c;实现真正动态的参数化。 根据LoadRunner 12.5…

作者头像 李华