【GitHub热点速览】GitHub173K高星:mattpocock/skills 开源 AI 技能库完整指南|自定义可复用 Skill、告别重复写提示词
仓库地址https://github.com/mattpocock/skills绝大多数人使用大模型存在一个痛点相同的任务、固定的处理逻辑每次对话都要粘贴一大段提示词重复劳动切换模型、切换 Agent 工具后提示词无法复用输出格式经常混乱、充满幻觉。mattpocock/skills是轻量、强类型的 TS 开源库核心目标是把零散的提示词封装成可序列化、可复用、带类型校验、跨模型兼容的标准 Skill技能。 区别于一次性 PromptSkill 拥有固定入参校验、标准化输出约束、可执行业务逻辑、错误捕获一次编写可在 Kimi、DeepSeek、Claude、本地 Agent 之间任意迁移完美适配 Cursor、Hermes、Claude Code 等 AI 开发工具。无绑定 Git 相关内容全程聚焦框架本身设计、安装、编写自定义技能、模型对接、序列化复用、生产落地。一、项目核心基础信息1. 核心定位一套类型优先的 Skill 定义标准统一所有大模型工具调用的编写范式解决 Prompt 无规范、无法复用、输出不可控三大痛点。2. 技术栈语言TypeScript完整类型推导依赖Zod参数 / 输出结构化校验运行环境Node.js、浏览器双端支持协议MIT商用无限制3. 核心概念区分Prompt普通提示词纯自然语言文本无参数校验、无固定返回结构单次对话生效无法批量复用极易出现输出错乱。Skill本库核心结构化封装单元包含唯一 ID、功能描述、入参 Schema、输出 Schema、自定义执行逻辑支持序列化导出 JSON 跨项目迁移内置异常捕获大模型自动识别调用规则。4. 仓库目录结构mattpocock/skills/ ├── src/ │ ├── skill.ts # Skill 核心类型定义 │ ├── builder.ts # createSkill 快速构建工具 │ ├── adapters/ # 各大主流大模型适配器OpenAI/Claude/DeepSeek │ └── types/ # 通用工具调用基础类型 ├── examples/ # 官方示例文本总结、代码重构、SQL生成、数据解析等通用Skill ├── dist/ # 打包产物npm直接引入 └── tests/ # 单元测试用例二、快速安装引入npm/pnpm 安装# npm npm install mattpocock/skills zod # pnpm pnpm add mattpocock/skills zod # yarn yarn add mattpocock/skills zod三、核心 APIcreateSkill 完整基础示例示例 1通用文本摘要 Skillimport { createSkill } from mattpocock/skills; import { z } from zod; // 1. 定义入参校验规则 const SummaryInput z.object({ content: z.string().describe(需要总结的长文本内容), maxLength: z.number().default(200).describe(摘要最大字符长度), extractKeyPoint: z.boolean().default(true).describe(是否提取关键要点) }); // 2. 定义输出结构约束 const SummaryOutput z.object({ summaryText: z.string().describe(精简摘要正文), keyPoints: z.array(z.string()).optional().describe(拆分的核心要点列表) }); // 3. 创建标准化Skill const TextSummarySkill createSkill({ id: text-summary, name: 长文本智能摘要, description: 接收长篇文本生成精简摘要支持控制长度、提取关键信息适用于文档、文章、会议记录处理, inputSchema: SummaryInput, outputSchema: SummaryOutput, // execute自定义执行逻辑可封装API调用、本地计算、文件读取等任意逻辑 async execute(input) { // input 经过Zod自动校验非法参数会直接抛出错误无需手动判断 const { content, maxLength, extractKeyPoint } input; // 此处可对接任意大模型接口如DeepSeek/Claude const llmRes await callLLM({ prompt: 请对以下文本生成摘要最多${maxLength}字符${extractKeyPoint ? 拆分关键要点 : 仅输出一段摘要}\n${content}, responseFormat: json }); return JSON.parse(llmRes); } }); // 4. 调用技能TS自动提示参数非法参数编译报错 await TextSummarySkill.execute({ content: 这里粘贴任意长篇文档、文章内容..., maxLength: 300, extractKeyPoint: true });四、核心能力详解1. Zod 强类型校验杜绝非法入参幻觉所有传入参数会经过inputSchema自动校验类型错误、缺失必填字段、数值越界会直接抛出标准化错误不需要手动写大量 if 判断。 输出通过outputSchema强制约束 AI 返回 JSON 结构避免大模型返回杂乱无章的自由文本。2. 多模型原生适配器一键切换模型仓库内置adapters适配层一套 Skill 无需修改对接 OpenAI、Claude、DeepSeek、通义千问等模型。import { ClaudeAdapter } from mattpocock/skills/adapters/claude; import { TextSummarySkill } from ./skills/text-summary; // 初始化适配器 const adapter new ClaudeAdapter({ apiKey: xxx }); // 注入Skill集合给模型AI自动识别可用技能 adapter.registerSkills([TextSummarySkill]); // 发起对话模型自动按需调用注册的Skill await adapter.chat(帮我总结这篇长文档..., documentContent);3. Skill 序列化导出跨项目 / 跨 Agent 复用支持将 Skill 完整导出为 JSON 文件导入 Hermes、自定义本地 Agent、Cursor 插件中使用不用重复编写提示词与逻辑。// 导出Skill为JSON字符串可存文件/数据库 const skillJson JSON.stringify(TextSummarySkill.toJSON()); // 反序列化恢复Skill实例 import { parseSkill } from mattpocock/skills; const restoreSkill parseSkill(JSON.parse(skillJson));4. 自定义 execute 执行层拓展无限场景execute 函数内可以编写任意逻辑调用各类大模型 API本地文件读写、批量文本处理网络请求、第三方接口调用数据清洗、数值计算、正则解析本地向量库检索、RAG 流程封装5. 批量技能分组管理大量 Skill 可统一数组管理批量注册至模型适配器实现多工具协同工作// 技能分组 const DocumentSkills [TextSummarySkill, TextTranslateSkill, TextMarkdownConvertSkill]; const CodeSkills [CodeRefactorSkill, SqlOptimizeSkill]; // 批量注册 adapter.registerSkills([...DocumentSkills, ...CodeSkills]);五、官方内置示例场景开箱即用仓库 examples 目录自带成熟 Skill 模板直接复制改造文本处理摘要、翻译、markdown 转换、语法润色代码工具代码重构、SQL 优化、单元测试生成、Bug 定位数据处理JSON 结构化解析、表格文本转换、数据清洗文档工具合同提取、论文大纲生成、会议纪要整理六、生产环境核心优势一次编写永久复用传统 Prompt 只能单次对话使用Skill 序列化后可跨项目、跨 AI 工具无限复用大幅减少重复编写提示词的工作量。类型约束降低 AI 幻觉Zod 严格限制输入输出格式强制模型返回结构化数据解决 AI 自由输出、漏字段、格式错乱问题。模型无关无缝切换大模型统一适配器层业务 Skill 逻辑完全不用修改仅切换适配器即可更换 DeepSeek、Claude、MiniMax 等模型。可集成各类 Agent 开发工具 适配 Hermes Agent、Claude Code、Cursor、自研本地智能体作为标准化工具调用底层支撑。轻量无重型依赖 仅依赖 zod打包体积极小前端浏览器、后端 Node 服务均可部署无环境负担。七、常见踩坑解决方案序列化后 Skill 调用报错原因execute 函数无法 JSON 序列化函数会丢失 解决方案导出纯描述 Schema 用于模型识别执行逻辑本地重新注入分离纯定义与运行逻辑。大模型不主动调用 Skill解决方案在 skill.description 完整描述能力用途adapter 会自动把所有技能定义注入系统提示词引导模型按需调用。Zod 校验报错信息晦涩 优化给 schema 字段添加.describe()描述文本报错时会附带字段说明快速定位参数问题。浏览器环境无法读取本地文件 区分运行环境execute 内增加环境判断Node 开启文件读写浏览器禁用本地 IO 能力。八、适用人群与落地场景AI Agent 开发者统一标准化工具调用管理数十个自定义技能全栈开发封装代码、文档处理类 AI 能力集成到后台 / 前端项目提示词工程从业者沉淀标准化可复用技能库避免重复造轮子独立开发者 / 副业搭建个人专属 AI 工具集导出技能在多个 AI 客户端通用。总结mattpocock/skills解决了原生提示词无规范、不可复用、输出不可控的行业痛点以 TypeScriptZod 构建一套标准化 Skill 开发范式。 只需要编写一次带类型校验、完整执行逻辑的技能即可跨模型、跨 Agent、跨项目复用是工程化管理 AI 工具调用、摆脱手写重复 Prompt 的轻量首选开源库。