AI也需要工作手册?详解Agent技能系统实战 文章目录前言工具是扳手技能是维修手册技能系统的三件套核心数据结构技能长什么样技能管理器HR部门上线三个老员工内置技能实战Remember技能给AI配个笔记本Simplify技能代码整容医生Verify技能代码质检员怎么给AI喂饭集成原理DIY技能自己写外挂总结从手工作坊到工业化组装P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01前言你有没有招过那种实习生你跟他说把这份资料整理一下他问你用什么颜色的文件夹你给了他文件夹他又问按日期排还是按姓名排你告诉他按日期他接着问正序还是倒序等你全部回答完抬头一看——下班了资料还在桌上摊着。现在的AI就跟这种实习生一模一样。你给它塞一百个工具它就像你给了实习生一百个文件夹、一百支笔、一百个订书机但他还是不知道先干啥。为啥因为你只给了装备没给说明书。今天咱们就聊聊怎么给AI发一本维修手册让它从啥都能聊的聊天机器人变成能干活的专业助手。这套手册就叫技能系统Skill System。工具是扳手技能是维修手册很多刚开始搞AI开发的朋友Tool和Skill傻傻分不清。我打个比方你就明白了工具是一把扳手AI拿着它去拧螺丝拧一下是一个独立动作用完就放下。技能是AI背下来的一套维修手册遇到问题它先翻手册按步骤判断“嗯这里得先检查电路再换电容最后测试”——手册一直挂在脑子里持续影响行为。更接地气一点Tool是执行者只负责单一功能Skill是协调者通过编排工具实现复杂的业务逻辑。如果把Tool比作食材和厨具那Skill就是菜谱——光给AI一堆锅碗瓢盆没用它得知道先烧水、再下面、等三分钟关火才能煮出一碗面来。不然你让它自由发挥它可能给你端上来一盘开水泡生鸡蛋还跟你说这是分子料理。业界有个特形象的比喻Tool是肌肉Skill是神经系统Agent是大脑。肌肉提供基础执行能力神经系统实现标准化流程控制大脑负责自主决策。没有神经系统的肌肉那就是一坨会抽搐的蛋白质看着吓人其实啥也干不成。**一句话总结**工具告诉AI你能做什么技能告诉AI你该怎么做。技能系统的三件套mini-cc的技能系统代码主要搁在src/skills/目录底下。核心组件就三个像公司的组织架构一样清晰第一个types.ts相当于员工档案定义了技能的接口——名字、描述、分类、Prompt、上下文等。第二个SkillManager.ts相当于HR部门负责注册、加载和搜索。第三个built-in/相当于公司的老员工内置了三个已经培训好的技能。整个系统跑起来的流程特别像公司晨会每次用户提问之前先把所有激活技能的Prompt揉在一起塞进LLM的系统指令里。LLM根本不知道背后是谁干的它只觉得自己好像变聪明了——就像你早上喝咖啡不会去想咖啡豆是哪块地种的一样AI也不知道自己突然被塞了一本工作手册。核心数据结构技能长什么样技能在代码里长什么样看看types.ts里的定义。注意一个关键点**真实的技能定义里没有execute方法**这不是偷懒而是技能的本质就不是可执行代码——技能的核心是一段精心设计的Prompt告诉AI应该怎么思考和行动。这跟我一开始的想法完全不一样。我最初以为Skill就是一个会自己跑的函数结果发现它更像是一份岗位说明书。你招人的时候不会给新员工写一段可执行代码吧你给他的是一份JD上面写着岗位职责、工作流程、考核标准。Skill干的就是这个事儿。exportinterfaceSkill{name:string;// 技能唯一标识displayName:string;// 显示名称description:string;// 技能描述category:SkillCategory;// 分类prompt:string;// 核心提示词——最精华的部分examples?:string[];// 使用示例tags?:string[];// 标签}Skill与普通Prompt的本质区别在于Skill是一份清晰、严谨、可执行的指令文档明确告诉AI在什么条件下按照哪些步骤产出什么结果而不是一次性、临时性的口头交代。就像你教媳妇做番茄炒蛋口头说先炒蛋和给她一份打印好的菜谱成功率完全不是一个量级——虽然最后可能还是糊的但至少糊得有章法。技能管理器HR部门上线管理器是整个技能系统的大脑用了单例模式确保全局只有一个实例。就像公司只有一个HR总监要是同时有三个HR给你发工资那你这个月可能收到三份工资也可能一份都收不到——系统复杂度直接爆炸。管理器主要干三件事注册、搜索、加载。注册就是把技能存进Map同时按分类整理好方便后面用。搜索支持按名称、描述、标签模糊搜索——用户说帮我找找关于记忆的技能马上就能找到。加载就是在启动时自动加载内置技能和用户自定义技能。exportclassSkillManager{privatestaticinstance:SkillManager;privateskills:MapnewMap();publicstaticgetInstance():SkillManager{if(!SkillManager.instance){SkillManager.instancenewSkillManager();}returnSkillManager.instance;}publicregisterSkill(skill:Skill):void{this.skills.set(skill.name,skill);}publicsearchSkills(query:string):Skill[]{constlowerQueryquery.toLowerCase();returnthis.getAllSkills().filter(skillskill.name.toLowerCase().includes(lowerQuery)||skill.description.toLowerCase().includes(lowerQuery));}}三个老员工内置技能实战mini-cc目前内置了三个技能都是我在实际使用中反复打磨的实用小工具。Skill的核心魅力正在于此它不是让AI多一个函数能调而是让它知道一种新的工作方法。就像你给实习生培训了三个月他终于知道来客人要先倒水这不是你给了他一个水壶而是他学会了接待流程。Remember技能给AI配个笔记本这个技能专门用来记东西。用户说记住我们使用TypeScript和ReactAgent就会把这个信息存进长期记忆。下次再问帮我写个组件Agent就会自动用前端的思路来答而不是给你写个Python脚本——虽然Python也能写网页但那就跟用菜刀削苹果一样能用但看着别扭。实现原理很简单通过Prompt告诉AI在什么情况下该记笔记怎么提取关键信息以及用什么格式存。这部分Prompt我反复改了好几版——一开始AI连记住今天是周四都往记忆里存后来加了只记事实性信息不记对话细节这条规则才总算老实。就像你那个刚入职的助理一开始你把老板今天心情不好也让他记进会议纪要后来发现这玩意不该存档得靠眼神交流。Simplify技能代码整容医生这个技能专门用来简化代码。比如用户说帮我简化src/utils/helper.ts中的代码Simplify技能会分析代码复杂度识别过长的函数、深层嵌套、重复代码然后应用重构技巧进行优化。它就像代码界的整容医生专治意大利面条代码——那种函数五十行、嵌套三层、变量名叫a、b、c的代码看着就像一团解不开的耳机线。设计思路是用Prompt引导AI建立结构化的重构思维而不是靠代码逻辑来硬编码简化方法。这样做的好处是灵活——今天优化前端代码明天优化后端逻辑AI都能用同样的结构化思路去处理只要Prompt写得够好就行。就像你教徒弟修车你教的是诊断思路而不是只修丰田。**重构四板斧**提取函数、提取变量、简化条件、消除重复。就像收拾房间要么把东西分类装箱要么直接扔掉——代码也一样要么拆分要么删除。Verify技能代码质检员这个技能用来检查代码质量。用户说检查src目录下的代码是否有问题Verify技能会按顺序执行编译检查、Linter检查、测试检查并生成详细报告。它就像公司里的质检员你写完代码它问你编译过了吗Lint过了吗测试跑了吗console.log删了吗你烦它但你又需要它。没有它你提交的代码就像没化妆就出门——自己觉得还行别人看了直摇头。它会调用多种工具来执行不同的检查任务然后汇总成一份详细的报告。这是一个实用的开发辅助功能帮助开发者在提交代码前确保代码质量。就像你出门前要照镜子虽然麻烦但总比到了公司才发现衣服上有一坨牙膏要强。怎么给AI喂饭集成原理技能是怎么跟Agent主循环捏合在一起的呢核心逻辑概括起来就是把技能的Prompt合并成LLM的系统指令。就像你给运动员准备比赛餐不是让他自己下厨房而是直接把营养餐塞到他手里。具体流程是这样的用户说的话进来之后先把所有激活技能的Prompt合并成一段系统提示然后传给LLM。AI只知道自己接收到了一个优化过的输入并不知道背后是谁干的。这就是给AI喂饭的精髓——悄无声息地帮AI把问题变得更容易解决。就像你偷偷给男朋友的衬衫熨平了他穿上觉得自己今天特别帅但不知道是你凌晨两点爬起来干的。asyncfunctionrunSkillSystem(userInput:string){constskillManagerSkillManager.getInstance();constenabledSkillsskillManager.getAllSkills();constskillPromptsenabledSkills.map(skill{return【${skill.displayName}】\n${skill.prompt};}).join(\n\n);constmessages[{role:system,content:你是mini-cc智能助手\n\n${skillPrompts}},{role:user,content:userInput}];returnawaitprovider.chat(messages);}技能系统被挂在Agent循环的最前端是Agent的预处理注入机制。每次用户提问之前先把所有激活技能的Prompt揉在一起塞进LLM的系统指令里。LLM根本不知道背后是谁干的它只觉得自己好像变聪明了——就像你早上喝咖啡不会去想咖啡豆是哪块地种的一样。DIY技能自己写外挂mini-cc支持用户自己写技能。你可以在用户级目录下放一个JSON文件一个自定义技能就诞生了。配置好之后重启mini-cc这个技能就会自动加载AI就会拥有新的能力。这就像给游戏角色装MOD原本只能拿剑砍人装了个MOD之后还能种菜养鸡——虽然画风有点奇怪但功能确实丰富了。自定义技能的核心就是写一段好的Prompt明确告诉AI在什么场景下按照什么步骤产出什么结果。你可以写翻译助手、写作助手、甚至怼人助手——但建议别在老板面前用不然你的职业生涯可能会像那段Prompt一样被直接删除。**自定义技能三步走**1.写JSON配置文件2.放到指定目录3.重启生效。门槛比学做蛋炒饭还低至少不会糊锅。总结从手工作坊到工业化组装技能系统是mini-cc里一个低调但挺重要的组件。三个内置技能覆盖记忆、简化、验证三大场景自定义技能支持JSON配置门槛不高按分类组织支持搜索方便管理无缝集成自动挂在Agent主循环上用户基本无感知。核心设计理念其实就一句话技能不是让AI多一个函数可调用而是让AI多一种做事的方法。这就是Anthropic开源Agent Skills标准的思路与其给每个领域造一个专用AI不如造一个通用Agent再挂上可插拔的能力模块。2025年底Anthropic把Agent Skills发布为开放标准后2026年这套规范已经被多家主流云服务商采纳形成了覆盖3000社区技能的生态。Gartner预测2026年75%的AI项目将聚焦于可组合的Skills而非单体Agent——AI开发正在从手工作坊向工业化组装转型。就像以前做衣服要一针一线缝现在直接买布料拼接效率高了一个数量级。我下一步计划是让mini-cc的技能系统继续迭代让技能能跟Claude、Cursor等工具互认互用。毕竟给AI造一个统一的充电接口才是更长远的目标。不然每个工具都有自己的标准就像每个手机品牌都用不同的充电线出门带一包线比带钱包还重。所以别再给你的AI实习生塞一百个文件夹了。给它一本维修手册让它知道先检查电路再换电容最后测试。你会发现原来AI不是笨只是之前没人教它怎么干活。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01