在这里插入图片描述

🍃 予枫:个人主页

📚 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》

💻 Debug 这个世界,Return 更好的自己!


# 引言

2024-2025年,我们见证了 AI 大模型的狂欢,但作为一名一线开发者,你是否经常感到一种“割裂感”?

一方面,ChatGPT、Claude 等模型在聊天框里无所不知,写诗作画信手拈来;另一方面,当你试图把它们接入实际业务——比如“自动帮我把数据库里的这 100 张表生成对应的 Java Entity 和 Mapper 文件”时,它们往往就开始“胡言乱语”,要么格式不对,要么逻辑缺失。

为什么?因为大模型只有“嘴”,没有“手”。

单纯的 Prompt Engineering(提示词工程)已经触到了天花板,企业级应用正在从 Chat 模式转向 Agent(智能体)模式。而连接 Agent 与真实业务场景的那个核心载体,就是我们今天要深度解剖的主角——AI Skills(技能)。

这篇文章不讲虚的,予枫带你从概念原理、架构设计、代码实战到未来趋势,彻底吃透 AI Skills。建议先收藏,再阅读。


一、重新定义:为什么我们需要 AI Skills?

在深入技术细节之前,我们需要先打破一个认知误区:AI Skills 不等于 Prompt。

1.1 从“鹦鹉学舌”到“任务执行”

目前的 LLM(大语言模型)本质上是一个概率预测机。当你给它一段 Prompt,它在做的是“补全下一个字”。

  • Prompt 模式:你问“怎么写个 Java 单例?”,它根据概率吐出一堆代码。这叫知识检索。
  • Skill 模式:你指令“读取我的 user.sql 文件,按公司规范生成 Entity,并推送到 Git 仓库”。这是一套复杂的动作序列。

在这个过程中,AI 需要:

  1. 读取文件(IO 操作,模型本体做不到)。
  2. 理解公司规范(复杂的上下文约束)。
  3. 推送到 Git(网络与系统操作,模型本体做不到)。

AI Skills,就是大模型在这个物理世界里的“外骨骼装甲”。 它是将“经验、规则、执行脚本”封装在一起的标准化单元,让 AI 从“知道”进化为“做到”。

1.2 企业级开发的痛点

在企业开发中,直接使用 Prompt 面临三大死穴,而 AI Skills 正是解药:

痛点现象AI Skills 的解法
不可控同样的提示词,今天输出 JSON,明天输出 Markdown。强约束:通过代码后处理和 Schema 校验,强制输出格式。
无状态AI 记不住你们公司的代码命名规范(驼峰还是下划线)。上下文固化:将规范写入 Skill 的元数据和指南中。
软硬件隔离AI 无法操作本地文件、数据库或调用内网 API。资源挂载:Skill 携带 Python/Shell 脚本,直接打通本地环境。

二、解剖手术:AI Skills 的技术骨架

一个成熟的 AI Skill,在代码层面通常表现为一个结构化的配置包(Package)。予枫参考了业界主流的 Agent 框架(如 LangChain、AutoGPT 等),总结出了 AI Skills 的黄金三角架构。

2.1 元数据(Metadata):技能的身份证

这是让 Agent(智能体)能够“检索”和“路由”到该技能的关键。在大模型庞大的上下文窗口中,我们不能把所有技能的细节都塞进去,只能塞入元数据。

JSON Schema 示例:

{
  "name": "java_entity_generator",
  "version": "1.0.2",
  "description": "用于将 SQL 建表语句自动转换为符合阿里巴巴规范的 Java POJO 类。",
  "tags": ["java", "backend", "codegen"],
  "author": "YuFeng_CSDN",
  "inputs": {
    "sql_content": "String: The SQL create table statement",
    "package_name": "String: The target package name (e.g. com.yufeng.model)"
  }
}

  • 关键点:description 字段至关重要。Agent 会通过语义向量匹配(Vector Search)这个描述,来决定是否调用这个技能。描述写得烂,AI 就找不到它。

2.2 行动指南(Action Guide):结构化思维链

这是 Skill 的核心“大脑”。它不是一句简单的“帮我写代码”,而是一套经过精心调试的 CoT(Chain of Thought,思维链) 模板。

它通常包含以下层级:

  1. Role(角色设定):你是一个资深 Java 架构师。
  2. Constraints(约束条件):必须使用 Lombok 注解;字段必须添加 Swagger 注解。
  3. Workflow(工作流):
  • 第一步:解析 SQL 类型。
  • 第二步:映射到 Java 类型(TINYINT -> Integer)。
  • 第三步:生成类名(驼峰转换)。
  • 第四步:拼接代码。
  1. Few-Shot Examples(少样本提示):给出一对 Input: SQL 和 Output: Java Class 的完美范例。

2.3 资源文件(Resources):打破次元壁的手

这是 Skill 最强大的地方。它可以挂载:

  • Python 脚本:用于数据清洗、绘图、文件读写。
  • API 定义:OpenAPI (Swagger) json 文件,用于调用 HTTP 接口。
  • 知识库片段:包含特定业务逻辑的 Markdown 文档。

当 AI 执行这个 Skill 时,它不仅仅是在生成文本,它实际上是在编写并运行代码来调用这些资源。


三、实战演练:手写一个“代码审查(Code Review)”Skill

光说不练假把式。接下来,予枫带大家实操一个真实的场景:构建一个自动 Code Review 的 AI Skill。

场景需求:
开发者提交一段 Java 代码,Skill 自动基于《阿里巴巴 Java 开发手册》进行审查,并输出 Markdown 格式的建议报告。

3.1 第一步:定义 Skill 结构

我们在项目中创建一个文件夹 skill_code_review:

skill_code_review/
├── manifest.json       # 元数据
├── prompt.md           # 行动指南(Prompt 模板)
├── rules.txt           # 挂载资源(精简版开发手册)
└── review_script.py    # 挂载资源(用于统计行数或简单的静态分析)

3.2 第二步:编写 manifest.json

{
  "id": "skill_java_review_v1",
  "name": "Java代码深度审查专家",
  "description": "基于阿里规范对 Java 代码进行静态分析,指出命名、并发、异常处理等方面的隐患。",
  "parameters": {
    "code_snippet": {
      "type": "string",
      "description": "待审查的 Java 代码片段"
    }
  }
}

3.3 第三步:编写 Prompt (核心逻辑)

这里展示 prompt.md 的核心部分。注意看我是如何通过引用资源文件来增强 AI 的。

# Role
你是一名拥有 10 年经验的 Java 技术专家,专注于代码质量和并发安全。

# Context
用户将提供一段 Java 代码。你需要根据附带的【阿里巴巴Java开发手册摘要】(见 rules.txt)进行审查。

# Resource Loading
已加载规则文件:{{rules.txt}}

# Steps
1. **预分析**:首先通读代码,理解其业务逻辑。
2. **规则匹配**:逐行比对【rules.txt】中的规则。重点关注:
   - 命名规范(不管是类还是变量,严禁使用拼音与英文混合)
   - 异常处理(不管是吞异常还是大段 try-catch)
   - 线程安全(HashMap 在多线程下的使用)
3. **输出报告**:请按以下 Markdown 格式输出:
   - 🔴 **严重问题**:可能导致 Crash 或数据错误的。
   - 🟡 **警告建议**:代码风格或可优化项。
   - ✅ **优化代码**:给出修改后的代码示例。

# Constraint
不要讲废话,直接指出行号和问题原因。

3.4 第四步:Skill 的运行时(Runtime)

当你把这个 Skill 喂给 Agent 平台(或者自己写的 Python 脚本)时,运行流程是这样的:

  1. 用户输入:“帮我看看这段代码写得咋样…”
  2. 路由:Agent 发现用户意图是“审查代码”,匹配到 skill_java_review_v1。
  3. 装载:系统读取 prompt.md,并将 rules.txt 的内容动态注入到 {{rules.txt}} 占位符中。
  4. 推理:组合后的超级 Prompt 发送给 LLM。
  5. 输出:LLM 返回结构化的 Review 报告。

看到区别了吗?
如果是普通 Prompt,你每次都得把《阿里手册》复制粘贴进去,Token 瞬间爆炸。而通过 Skill 架构,“手册”变成了挂载资源,只有在需要时才被动态加载,且可以随时通过修改 txt 文件来更新规则,而不需要修改 Prompt 逻辑。


四、核心技术辨析:Skill vs Function Calling vs Plugins

在技术选型时,很多同学会晕:OpenAI 出了 Function Calling,还有 Plugin,那还需要自己封装 Skills 吗?

4.1 Function Calling (函数调用)

这是 OpenAI 提供的底层能力。它让模型可以输出一个 JSON,告诉程序“我要调用函数 A,参数是 B”。

  • 定位:底层 API。
  • 局限:它只解决了“意图识别”和“参数提取”。它不包含“业务逻辑”和“上下文”。你需要自己在后端写好对应的 Python/Java 函数。

4.2 Plugins (插件)

这是 ChatGPT 网页版的产品形态。

  • 定位:SaaS 化的应用接口。
  • 局限:作为一个开发者,你很难在自己的私有化部署中复用 ChatGPT 的插件标准。

4.3 AI Skills (我们的主角)

Skill 是构建在 Function Calling 之上的业务封装。

  • 公式:AI Skill = Function Calling (能力) + Prompt (指导思想) + Knowledge (上下文)。
  • 优势:Function Calling 只是把手伸出去了,Skill 则是告诉手“怎么动,拿什么,在这个场景下该注意什么”。

结论:在自研 Agent 或企业级应用中,你应该使用 Function Calling 作为底层技术,来构建上层的 AI Skills 体系。


五、高级进阶:AI Skills 的组合拳(Orchestration)

单个 Skill 只是士兵,要想打赢战争,需要排兵布阵。这就是 Skill Orchestration(技能编排)。

5.1 串行编排(Pipeline)

场景:日报自动生成。

  1. Skill A (SQL Fetcher):去数据库查今日数据。 -> 输出 JSON。
  2. Skill B (Analyzer):接收 JSON,进行数据分析,计算增长率。 -> 输出 摘要文本。
  3. Skill C (Writer):接收摘要,生成正式日报邮件。

在代码实现上,这类似 Linux 的管道操作 |。

5.2 动态路由(Router)

场景:智能客服。
用户问:“我的包裹在哪?” -> Router 识别 -> 调用 物流查询 Skill。
用户问:“这款手机支持 5G 吗?” -> Router 识别 -> 调用 产品知识库 Skill。

这里需要一个Master Agent,它的唯一职责就是“分发任务”。

5.3 递归与自修正

最高级的玩法。
Skill 执行完代码后(比如 Python 绘图),如果报错了,Agent 可以捕获 stderr,将错误信息作为新的 Prompt 输入,再次调用该 Skill 进行自我修复,直到运行成功。这才是真正的“智能”。


六、未来展望:Skills as a Service (SaaS)

予枫大胆预测一下未来 1-3 年的技术趋势:

  1. Skill Store (技能商店):
    未来企业内部会有“技能市场”。财务部开发了“发票识别 Skill”,研发部直接拿来调用,不需要重新对接 OCR 接口。
  2. 多模态 Skill:
    现在的 Skill 大多处理文本和代码。未来的 Skill 将集成 Vision(视觉)能力。比如“UI 走查 Skill”,直接截图网页,对比设计稿,指出像素级偏差。
  3. 标准化协议:
    类似于 MCP (Model Context Protocol),业界将会出现统一的 Skill 定义标准。你在 LangChain 里写的 Skill,可以无缝迁移到 Microsoft Semantic Kernel 中。

总结

AI Skills 不仅仅是一个技术名词,它是大模型落地应用的必经之路。

它标志着我们从“调戏 AI”的阶段,正式进入了“驯服 AI”的工程化阶段。通过元数据、行动指南、资源文件的封装,我们实际上是在编写一种新型的软件——这种软件的内核是概率,但外壳是严谨的工程逻辑。

作为程序员,我们不需要焦虑被 AI 替代。因为构建这些 Skill、设计这些架构、赋予 AI“手”和“脑”的人,依然是我们。

行动起来吧! 哪怕是从最简单的“自动写 Commit Message”的 Skill 开始,去亲手打造属于你的数字员工。


📝 博主予枫的碎碎念
码字不易,这篇长文如果让你对 AI Skills 有了新的理解,请务必 点赞、收藏、关注 三连!
另外,如果你在构建 AI Agent 或 Skill 的过程中遇到了坑(比如模型总是记不住指令,或者 JSON 解析失败),欢迎在评论区留言,每一条评论我都会认真看,咱们评论区见!


更多推荐