作者
Xavier
精通javase,javeWeb,SpringBoot,RabbitMQ,SpringCloud,mybatis,docker,redis,SpringMVC等技术,精通python,js等语言。正在学习Agent的路上。相信技术为本。
Skill 是 AI 系统中的能力封装单元——比 Prompt 更结构化,比 Fine-tuning 更灵活。本文解释 Skill 的概念、设计原则,以及它与 Plugin、Tool 的区别。
最简单的 AI 能力扩展方式是写一个好的 Prompt。但 Prompt 难以复用、难以版本管理、难以测试。当你需要在数十个场景中使用"数据分析"能力时,复制粘贴 Prompt 显然不是工程化的解法。
Skill(技能) 的概念就是为了解决这个问题而生的——它是一个封装了特定能力的、可复用的、有明确输入输出规范的模块。
一个设计良好的 Skill 应该包含:
微软的 Semantic Kernel 框架是 Skill 概念最具代表性的工程实现:
# 语义函数 Skill:用 Prompt 实现摘要能力
summarize_skill = kernel.create_semantic_function(
prompt_template="请用三句话总结:{{$input}}",
function_name="Summarize",
skill_name="TextProcessing",
max_tokens=200
)
# 原生函数 Skill:用代码实现天气查询
@sk_function(description="获取城市实时天气")
def get_weather(city: str) -> str:
return weather_api.fetch(city)Orchestrator 可以自动将这些 Skill 组合成复杂工作流,就像乐高积木一样。
这三个概念经常被混用,但有细微差异:
如果把 AI 系统比作人,Tool 是手脚,Plugin 是与外界沟通的接口,而 Skill 是大脑中习得的能力——可以被调用、被组合、被持续改进。