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

.NET 诊断技巧 | 日志框架原理、手写日志框架学习汕

一、 什么是 AI Skills从工具级到框架级的演化AI SkillsAI 技能 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初Skills 被视为“工具级”的增强如简单的文件读写或终端操作方便用户快速实现各种操作。然而在以 Solon AI 为代表的现代应用开发框架中AI Skills 已演化为一种更高维度的封装用于智能体应用开发。工具级Tool-level解决的是“手”的问题是具体的执行函数。框架级Framework-level解决的是“脑”的问题。它是工具Tools、指令Instruction与元数据Metadata的聚合体。它不仅包含执行逻辑还包含了准入检查、指令增强及工具染色能力。二、 AI Skills 应有的核心特性为了解决传统 Tool 模式下的上下文噪音、权限真空和行为失控一个成熟的 AI Skill 必须具备以下特质智能准入isSupported 只有满足特定意图、租户或环境条件时可称为提示词上下文技能才会被激活。避免无效工具对模型上下文的干扰和 Token 浪费。指令注入getInstruction 根据当前上下文为模型提供“行为准则”解决模型“该怎么做”的问题。工具路由getTools 根据当前上下文动态分发工具高度自治 技能内部闭环处理特定领域的逻辑对外部输出标准化的结果。三、 MCPAI 时代的万维网协议随着技能需求的爆发MCPModel Context Protocol模型上下文协议 应运而生。它是连接 AI 模型与外部数据/工具的标准协议。MCP 之于 AI正如 HTTP 之于万维网。在互联网时代HTTP 协议让任何浏览器都能访问任何服务器上的资源在 AI 时代MCP 协议让任何智能体都能无缝调用分布在不同物理位置、由不同厂商提供的技能。这种标准化彻底打破了“智能体”与“外部世界”之间的硬编码枷锁。四、 Tool 的分布式进化MCP Tool 的诞生Tool 的形态正在经历本质的变化从本地单体进化为 MCP Tool分布式 Tool。它具有物理位置透明性不再是内存中的一个函数而是一个个独立的分布式能力节点。这种“能力节点化”是 AI 走向微服务架构的第一步。传统 Tool 代码级耦合运行在 Agent 进程内部难以跨语言、跨环境复用。MCP Tool分布式 Tool 通过 MCP 协议暴露具有物理位置透明性。它不再是内存中的一个函数而是一个个独立的分布式能力节点。五、 架构映射从分布式的 MCP Tool 到 MCP SkillsTool 的分布式化为 AI Skills 的分布式化提供了自然的路径参考。当我们将一组具备业务逻辑、指令指导和工具集的 Skill 借助 MCP 协议进行发布时它便进化成了 MCP Skills。我们可以将 AI Agent 的分布式蓝图清晰地映射为传统架构MCP 相当于 RPC远程过程调用 它定义了模型与能力节点之间如何通信是智能体世界的底座管道。MCP Skills 相当于微服务Microservices 每个 Skill 就是一个独立的、具备业务语义的业务单元。题外之话Distributed AI Skills也可以借助传统 RPC 体系实现做的工作会更多些。六、 如何实现 MCP SkillsClient 与 Server 的协同实现 MCP Skills 的核心在于将 Skill 的生命周期语义映射到 MCP 协议的端点上。1. McpSkillClient远程技能的本地代理McpSkillClient 作为本地代理其职责是与远程服务握手并将网络调用包装成 Skill 接口。感知元数据通过约定路径同步远程元数据。动态映射在运行时将本地的 isSupported 或 getInstruction 调用转化为远程 MCP Tool 调用。工具过滤自动剔除标记为 hide 的管理类工具只给 LLM 呈现此时该看的业务工具。应用示例// 1. 构建 MCP 客户端提供者负责协议通信与 Schema 缓存McpClientProvider mcpClient McpClientProvider.builder().channel(McpChannel.STREAMABLE).url(http://localhost:8081/skill/order).build();// 2. 将 MCP 客户端进化为 Skill 代理McpSkillClient skillClient new McpSkillClient(mcpClient);// 3. 构建带有业务上下文的 PromptPrompt prompt Prompt.of(这个订单A001请查询订单详情。).attrPut(tenant_id, 1) // 注入租户上下文.attrPut(user_role, admin); // 注入角色权限// 4. 调用大模型技能将根据 Prompt 自动完成远程准入、指令获取、工具过滤chatModel.prompt(prompt).options(o - o.skillAdd(skillClient)).call();2. McpSkillServer具备感知的技能服务端通过继承 McpSkillServer开发者可以将本地业务逻辑导出为远程技能。生命周期暴露利用 ToolMapping 和 ResourceMapping 将 isSupported、getInstruction 等逻辑导出。智能感知服务端能通过传入的 Prompt 状态感知意图。例如根据角色权限决定 getToolsName 返回哪些工具。安全标记通过给管理端点添加 hide:1 标记确保系统级指令不会泄露给模型。应用示例McpServerEndpoint(channel McpChannel.STREAMABLE_STATELESS, mcpEndpoint /skill/order)public class OrderManagerSkillServer extends McpSkillServer {Overridepublic String description() {return 提供订单查询与取消的专业技能;}//智能准入根据 Prompt 内容与属性决定是否响应Overridepublic boolean isSupported(Prompt prompt) {// 语义检查意图是否相关boolean isOrderTask prompt.getUserContent().contains(订单);// 安全检查必须有租户 IDboolean hasTenant prompt.attr(tenant_id) ! null;return isOrderTask hasTenant;}//动态指令根据上下文为大模型注入实时“行为准则”Overridepublic String getInstruction(Prompt prompt) {String tenantName prompt.attrOrDefault(tenant_name, 未知租户);return 你现在是[ tenantName ]的订单主管。请只处理该租户下的订单数据禁止跨租户查询。;}//挂载钩子技能被激活时触发可用于注入初始化消息或记录日志Overridepublic void onAttach(Prompt prompt) {// 可以在此处通过 prompt.addMessage() 注入 Few-shot 或背景知识System.out.println(订单技能已挂载当前租户 prompt.attr(tenant_id));}/*** 动态能力发现根据用户权限决定暴露哪些工具* return null 表示暴露所有业务工具Empty 表示禁用所有工具List 表示精准暴露。*/Overridepublic List getToolsName(Prompt prompt) {List tools new ArrayList();// 基础权限所有合规用户可见tools.add(OrderQueryTool);// 细粒度权限仅 ADMIN 角色可见“取消订单”工具if (ADMIN.equals(prompt.attr(user_role))) {tools.add(OrderCancelTool);}return tools;}ToolMapping(description 根据订单号查询详情)public String OrderQueryTool(String orderId) {return 订单 orderId 状态已发货;}ToolMapping(description 取消指定订单)public String OrderCancelTool(String orderId) {return 订单 orderId 已成功取消;}}七、 必然性总结AI Skills 走分布式道路是不可逆转的解耦与复用 复杂技能如法律审计、专业代码重构不再需要在每个项目中重写而是作为服务独立存在。安全边界 敏感数据处理技能可以部署在专用的、受保护的内网环境中仅通过受控的 MCP 协议与公网 Agent 通信。异构生态 不同语言、不同算力环境下的能力都可以通过统一的 MCP 接口连接形成一个真正的“智能体微服务网络”。钦墓补老

相关文章:

.NET 诊断技巧 | 日志框架原理、手写日志框架学习汕

一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...

OpenMatrix 架构解析:基于 Harness 思想的 AI 任务编排系统

引言:AI 编码的信任危机 AI 编码工具已经非常强大,但用户仍然不敢完全信任。为什么? 第一层:AI 补全代码(Copilot)→ 解决「写」的问题 第二层:AI 对话编程(Claude Code&#xff0…...

C语言入门:秒懂数据类型

刚接触C语言,我们总会遇到int、char、float这些关键词,很多同学觉得麻烦,甚至想只用一种类型写完全部代码。其实数据类型是编程的基础,理解它,才能写出规范、少出错的程序。简单来说,数据类型就是给变量规定…...

本周补题 4/5 -- 4/12

Pta 天梯赛:9 10 11 14 13牛客138:A B C D E F...

C 语言数据类型全解析:从基础到实战

数据类型是 C 语言的基石,也是每个 C 语言初学者必须掌握的核心概念。它决定了变量在内存中占用的空间大小、存储方式以及取值范围。本文将从最基础的概念讲起,系统梳理 C 语言所有数据类型,包含详细的语法、示例代码和实战技巧,帮…...

2026年杭州AI搜索营销新宠横评:5大系统供应商性能实测+选型建议

各位老板,2026年了,还在为传统SEO流量下滑发愁吗?AI搜索的流量入口已经明牌,但市面上的GEO(生成式引擎优化)工具和服务商五花八门,选谁合作才能不踩坑、不掉队?今天,我们…...

Vivado FFT IP核避坑指南:从Matlab数据生成到FPGA验证的完整流程

Vivado FFT IP核实战避坑指南:从Matlab数据生成到FPGA验证的全链路解析 在FPGA信号处理领域,FFT(快速傅里叶变换)是实现频域分析的核心运算单元。Xilinx Vivado提供的FFT IP核虽然功能强大,但在实际工程落地过程中&…...

动态数码管鬼影问题全攻略:从51单片机消影代码到TM1637芯片方案

动态数码管鬼影现象深度解析与工程实践指南 1. 数码管显示原理与鬼影成因 数码管作为嵌入式系统中最常见的显示器件之一,其工作原理直接影响着显示质量。我们先从基础结构说起: 数码管内部构造: 7段LED排列成"8"字形(部…...

基于STM32F407与W5500的HAL库TCP通信实战指南

1. 硬件准备与连接 搞嵌入式开发的朋友都知道,硬件连接是第一步也是最容易出错的地方。我刚开始用STM32F407和W5500时,就因为SPI接线问题折腾了好几天。这里分享下我的经验,帮你少走弯路。 首先说说W5500这个模块,它是一款全硬件T…...

【IIC通信】Chap.2 从“线与”到“时序”:I2C总线协议深度解析与实战信号分析

1. 从线与逻辑看I2C总线冲突的本质 第一次用示波器抓取I2C波形时,我盯着那条"不听话"的SDA线陷入了沉思——为什么总线上某个设备拉低电平后,其他设备输出的高电平就消失了?这个现象背后正是I2C最精妙的"线与"设计。所有…...

【实战】ESP32 + LN298N 驱动编码器推杆:从零搭建行程闭环控制系统

1. 硬件选型与系统架构设计 这个项目最核心的硬件就是ESP32开发板、LN298N电机驱动模块和带编码器的电动推杆。先说ESP32,我强烈推荐使用ESP32-S3系列,相比S2多了几个硬件PWM通道,对于多电机控制特别友好。实测下来,ESP32的硬件PW…...

告别物理JTAG:手把手在KV260 PYNQ上配置XVC远程调试接口(含Vivado Block Design)

告别物理JTAG:KV260 PYNQ环境下的XVC远程调试实战指南 调试Zynq平台PL逻辑时,传统JTAG连接常受限于物理接触和线缆长度。去年在开发一个工业视觉项目时,产线设备与调试台相距30米,来回插拔JTAG不仅效率低下,还导致多次…...

【青少年CTF S1·2026 公益赛】easy_php

<?php // 屏蔽报错&#xff0c;增加一点黑盒难度 error_reporting(0); // TIPS: FLAG在根目录下class Monitor {private $status;private $reporter;public function __construct() {$this->status "normal";$this->reporter new Logger();}public funct…...

Serilog:从结构化日志认知到 .NET 工程落地何

1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image&#xff0c;docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin-local…...

Spring Cloud进阶--分布式权限校验OAuth淄

一、核心问题及解决方案&#xff08;按踩坑频率排序&#xff09; 问题 1&#xff1a;误删他人持有锁——最基础也最易犯的漏洞 成因&#xff1a;释放锁时未做身份校验&#xff0c;直接执行 DEL 命令删除键。典型场景&#xff1a;服务 A 持有锁后&#xff0c;业务逻辑耗时超过锁…...

ANARCI抗体序列编号终极指南:从零基础到实战应用的完整教程

ANARCI抗体序列编号终极指南&#xff1a;从零基础到实战应用的完整教程 【免费下载链接】ANARCI Antibody Numbering and Antigen Receptor ClassIfication 项目地址: https://gitcode.com/gh_mirrors/an/ANARCI ANARCI&#xff08;Antibody Numbering and Antigen Rece…...

嵌入式轻量级调试库:零开销DEBUG_PRINT实现原理

1. 项目概述 Utils 是一个面向嵌入式系统的轻量级调试输出工具库&#xff0c;核心目标是为资源受限的MCU平台&#xff08;如ESP32、STM32、nRF52等&#xff09;提供类 printf() 的格式化打印能力&#xff0c;同时严格控制运行时开销与代码体积。该库不依赖标准C库的 stdio.…...

警惕AI患上“讨好症”:来自图灵奖得主Bengio的揭秘

来源&#xff1a;星云创联AI智库在人工智能的万神殿中&#xff0c;“深度学习三巨头”的晚年画像构成了某种充满张力的隐喻。Yann LeCun 活成了永远愤怒的乐观派&#xff0c;在社交媒体上不知疲倦地战斗&#xff0c;坚信AI不过是手中的工具&#xff1b;Geoffrey Hinton 则化身为…...

小白也能玩转AI绘画:Anything V5镜像保姆级部署教程

小白也能玩转AI绘画&#xff1a;Anything V5镜像保姆级部署教程 1. 前言&#xff1a;为什么选择Anything V5&#xff1f; 如果你对AI绘画感兴趣&#xff0c;但又觉得技术门槛太高&#xff0c;那么Anything V5绝对是你的最佳选择。这个基于Stable Diffusion的二次元图像生成模…...

东方仙盟神识训练工具专业训练-[AI人工智能(八十七)]—东方仙盟

{ "intent": "buy", "param": { "房号": "8" }, "text": "给872房间送一瓶拖鞋" }东方仙盟自己研发模型识别错误修正Overfitting & Hot Plugging Model (English Version)1. The Core Contradictio…...

pybind11项目实战:从C++源码到带完整类型提示的Python包,一步都不少

Pybind11全流程实战&#xff1a;构建带智能提示的C扩展包 在Python生态中直接调用C高性能代码一直是个诱人的方案&#xff0c;而pybind11的出现让这个过程变得前所未有的简单。但很多开发者忽略了一个关键问题&#xff1a;当我们把精心优化的C代码打包成.pyd模块后&#xff0c;…...

dplyr和tidyr用法继

1. 引入 在现代 AI 工程中&#xff0c;Hugging Face 的 tokenizers 库已成为分词器的事实标准。不过 Hugging Face 的 tokenizers 是用 Rust 来实现的&#xff0c;官方只提供了 python 和 node 的绑定实现。要实现与 Hugging Face tokenizers 相同的行为&#xff0c;最好的办法…...

【CD4022八进制计数器脉冲分配器】2023-5-31

缘由CD4022可以连接成4进制吗? - 24小时必答区 脉宽调节 中医不用做胃镜&#xff0c;观察出口物颜色是否带血判断&#xff0c;检查表里可判断远近位置确诊&#xff0c;在表为近端&#xff0c;在里为远端&#xff0c;鲜红色为近端&#xff0c;暗黑色为远端&#xff0c;远端在胃…...

Function Calling详解:让AI连接现实世界

Function Calling详解:让AI连接现实世界 1. 核心概念 在当今AI技术飞速发展的时代,大语言模型(LLMs)如GPT-4、Claude等展现出了惊人的语言理解和生成能力。然而,这些模型本质上是"静态"的——它们的知识截止到训练数据的时间点,无法直接访问实时数据,也无法执…...

【51单片机非精准计时2个外部中断启停】2023-5-29

缘由https://ask.csdn.net/questions/7953369/54217159 按下按键1复位&#xff0c;按下按键2开始 &#xff0c;51单片机8位数码管计时器 &#xff0c;程序简便一些 #include "reg52.h" unsigned char code SMD[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F ,0x6…...

JaCoCo在CI/CD流水线中的应用:自动化测试与质量门禁终极指南

JaCoCo在CI/CD流水线中的应用&#xff1a;自动化测试与质量门禁终极指南 【免费下载链接】jacoco :microscope: Java Code Coverage Library 项目地址: https://gitcode.com/gh_mirrors/ja/jacoco JaCoCo&#xff08;Java Code Coverage Library&#xff09;是一款强大的…...

技术判断力之AI三问峭

认识Pass层级结构 Pass范围从上到下一共分为5个层级&#xff1a; 模块层级&#xff1a;单个.ll或.bc文件 调用图层级&#xff1a;函数调用的关系。 函数层级&#xff1a;单个函数。 基本块层级&#xff1a;单个代码块。例如C语言中{}括起来的最小代码。 指令层级&#xff1a;单…...

PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..德

MySQL 中的 count 三兄弟&#xff1a;效率大比拼&#xff01; 一、快速结论&#xff08;先看结论再看分析&#xff09; 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的&#xff01;我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄…...

如何用WebSocket构建高性能物联网实时通信系统:IoT-Technical-Guide完整指南

如何用WebSocket构建高性能物联网实时通信系统&#xff1a;IoT-Technical-Guide完整指南 【免费下载链接】IoT-Technical-Guide :honeybee: IoT Technical Guide --- 从零搭建高性能物联网平台及物联网解决方案和Thingsboard源码分析 :sparkles: :sparkles: :sparkles: (IoT Pl…...

终极Undotree性能优化指南:让Vim撤销历史管理如丝般顺滑

终极Undotree性能优化指南&#xff1a;让Vim撤销历史管理如丝般顺滑 【免费下载链接】undotree The undo history visualizer for VIM 项目地址: https://gitcode.com/gh_mirrors/un/undotree Undotree是Vim编辑器中一款强大的撤销历史可视化插件&#xff0c;它能将复杂…...