Skills Manager:开源AI技能管家,实现提示词工程化与团队协作
30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度在 AI 助手如 ChatGPT、Claude、DeepSeek 等的使用过程中你是否也遇到过这样的困扰精心调教出一个擅长特定领域比如前端开发、数据分析、文案写作的 AI 助手但当你想在另一台设备、另一个账号或另一个对话中复用时却不得不手动复制粘贴一长串复杂的“系统提示词”System Prompt这个过程不仅繁琐还极易出错一旦漏掉某个关键指令AI 的表现就可能大打折扣。这正是Skills Manager项目要解决的痛点。作为一个在 GitHub 上获得超过 2.4K 星标的热门开源工具它旨在成为你的“AI 技能管家”让你能够像管理代码库一样轻松地创建、存储、分享和调用为不同 AI 模型定制的“技能”Skills。本文将带你从零开始深入理解 Skills Manager 的核心概念并通过一个完整的前端开发技能创建与管理的实战案例手把手教你如何告别手动复制的低效时代实现 AI 助手能力的标准化与复用。1. 背景与核心概念什么是 AI Skills 与 Skills Manager在深入实战之前我们有必要厘清几个核心概念这能帮助你更好地理解 Skills Manager 所解决的问题域及其价值。1.1 AI SkillsAI 技能是什么AI Skills通常指的是一套精心设计的系统提示词System Prompt、对话示例Few-shot Examples、工具调用配置Tool/Function Calling Config以及相关上下文Context的集合。它的目标是将 AI 模型“塑造”成某个特定领域的专家。例如一个“前端代码审查专家”技能可能包含系统指令“你是一名资深前端工程师专注于 React 和 TypeScript 代码审查。请以专业、细致的态度从代码规范、性能、可维护性、安全性等角度提供评审意见。”对话示例提供几个“用户提交代码片段”与“AI 评审意见”的配对示例教会 AI 如何组织评审语言。工具配置如果 AI 支持联网搜索或代码分析工具可以配置相关工具调用权限使其能获取最新的最佳实践。在没有统一管理工具时这些内容通常散落在各个聊天记录、文本文件或笔记中难以维护和复用。1.2 Skills Manager 的核心价值Skills Manager 应运而生它本质上是一个Skills 的版本化存储库和运行时加载器。它的核心价值体现在集中化管理将分散的技能定义通常是 YAML 或 JSON 文件统一存储在一个仓库中支持分类、标签和搜索。一键复用通过简单的命令或 API 调用即可将特定技能加载到与 AI 的对话中无需手动复制粘贴。版本控制与协作借助 Git技能的迭代、回滚、分支管理变得和代码开发一样自然团队可以协作共建技能库。环境隔离与组合可以为开发、测试、生产等不同环境配置不同的技能集甚至可以将多个基础技能组合成一个更复杂的复合技能。简单来说Skills Manager 让“提示词工程”变得工程化、产品化极大地提升了 AI 工作流的效率和可靠性。1.3 相关生态与工具Skills Manager 并非孤立存在它是整个“AI 工程化”AI Engineering和“LLM 应用开发”LLM App Development浪潮中的一环。与之相关的概念和工具有LangChain / LlamaIndex用于构建复杂 AI 应用链的框架它们也涉及提示词管理但更侧重于链的编排。PromptHub / PromptSource专注于提示词管理和共享的平台。GitHub Copilot Custom Instructions允许设置全局和项目级指令可以看作是一种轻量级的技能管理。Skills Manager 的优势在于其轻量、专注、与现有开发流程Git无缝集成特别适合开发者个人或小团队快速搭建私有的、可定制的技能库。2. 环境准备与版本说明为了完成后续的实战我们需要搭建一个基础的 Skills Manager 使用环境。本项目不依赖复杂的后端服务核心是文件管理和 CLI 工具因此环境准备相对简单。2.1 基础环境要求操作系统Windows 10/11, macOS 10.15, 或主流的 Linux 发行版如 Ubuntu 20.04。本文示例将在 macOS/Linux 环境下进行Windows 用户建议使用 WSL2 以获得最佳体验。Node.jsSkills Manager 的参考实现和周边工具多基于 Node.js。请确保安装Node.js 16和npm或yarn。Git用于技能的版本管理。请确保已安装并配置好 Git。文本编辑器/IDE推荐 VS Code它对 YAML/JSON 文件有很好的支持。2.2 核心工具安装Skills Manager CLISkills Manager 本身是一个概念有多种实现方式。我们将以一个流行的、基于 Node.js 的 CLI 工具实现为例进行演示。假设这个工具叫skill-cli此为示例名称实际项目名称可能不同但原理相通。首先全局安装这个 CLI 工具# 使用 npm 安装 npm install -g skill-cli # 或使用 yarn 安装 yarn global add skill-cli安装完成后验证安装是否成功skill-cli --version # 预期输出类似skill-cli/1.0.02.3 初始化技能仓库Skills Manager 的核心是一个 Git 仓库本地或远程用于存放所有的技能定义文件。我们首先初始化一个本地技能仓库。# 1. 创建一个目录作为你的技能库根目录 mkdir my-ai-skills cd my-ai-skills # 2. 初始化 Git 仓库如果打算后续同步到远程如 GitHub git init # 3. 使用 skill-cli 初始化技能库结构 skill-cli init执行init命令后工具会在当前目录生成一个标准的技能库结构my-ai-skills/ ├── .skills/ # Skills Manager 配置文件目录 │ └── config.yaml # 全局配置文件 ├── skills/ # 技能存放目录 │ ├── frontend/ # 分类前端开发 │ ├── backend/ # 分类后端开发 │ ├── writing/ # 分类文案写作 │ └── ... # 其他分类 ├── templates/ # 技能文件模板 └── README.md # 技能库说明文档至此基础环境已经准备就绪。接下来我们将深入技能定义的核心。3. 核心语法技能定义文件详解一个技能的核心是一个定义文件。目前社区常见的格式是YAML因为它结构清晰、可读性好支持多行字符串非常适合存放提示词。3.1 技能定义文件的基本结构让我们创建一个最简单的技能文件skills/frontend/code-review-basic.yaml来剖析其结构# skills/frontend/code-review-basic.yaml id: frontend-code-review-basic version: 1.0.0 name: 前端代码审查助手基础版 description: 针对通用前端JavaScript/TypeScript代码进行基础规范性审查。 author: Your Name tags: - frontend - code-review - javascript - typescript # 核心部分技能内容 skill: # 系统提示词 (System Prompt) system: | 你是一个专注于前端代码审查的助手。你的任务是仔细检查用户提供的代码片段并给出专业、 constructive 的改进建议。 请重点关注以下方面 1. 语法错误和潜在的运行时错误。 2. 代码风格和一致性如命名、缩进。 3. 明显的性能问题如循环内重复计算、未使用的变量。 4. 可读性和代码结构。 请以友好的语气先总结整体印象然后分点列出发现的问题和建议。如果代码很好也请给予肯定。 # 少样本示例 (Few-shot Examples) - 可选但强烈推荐 examples: - role: user content: | javascript function calculateTotal(items) { let total 0; for (let i 0; i items.length; i) { total items[i].price; } return total; } - role: assistant content: | 整体来看这个计算总价的函数功能正确但有一些可优化的地方。 **建议** 1. **使用现代语法**可以考虑使用 Array.reduce 方法使意图更清晰。 javascript function calculateTotal(items) { return items.reduce((sum, item) sum item.price, 0); } 2. **参数验证**如果 items 可能为 null 或 undefined建议添加防御性代码。 # 配置信息 (Configuration) - 可选 config: model: gpt-4 # 建议使用的模型 temperature: 0.2 # 建议的温度参数较低值使输出更稳定 max_tokens: 1500 # 建议的最大输出token数关键字段解释id: 技能的全局唯一标识符通常使用小写和连字符。version: 遵循语义化版本便于管理迭代。skill.system: 这是技能的灵魂定义了 AI 的“角色”和核心行为准则。使用|可以保留多行字符串的格式。skill.examples: 提供对话示例是“教”AI 如何回应的有效方式。每个示例包含role(user/assistant) 和content。skill.config: 提供模型参数建议这些参数在调用技能时可以被覆盖。3.2 高级技能定义变量与组合更强大的技能支持参数化和组合。1. 带变量的技能有时我们希望技能的一部分内容能动态注入。例如一个代码审查技能可以接受“项目主要技术栈”作为变量。# skills/frontend/code-review-advanced.yaml id: frontend-code-review-contextual version: 1.1.0 name: 上下文感知前端代码审查 description: 根据指定的技术栈如React, Vue, 框架版本进行针对性审查。 # ... 其他元数据 skill: system: | 你是一个资深前端工程师专注于使用 {{tech_stack }} 技术栈的项目代码审查。 当前项目主要技术栈为{{ tech_stack }}。 请结合该技术栈的官方最佳实践和常见社区规范进行审查。 除了通用代码问题请特别关注 - 是否符合 {{ tech_stack }} 的特定模式或约定 - 是否使用了已弃用或不推荐的API - 组件/状态管理方式是否合理 {{#if strict_mode}} - **严格模式已开启** 请以最高标准审查即使是细微的代码风格问题也需指出。 {{/if}} ... 其余指令 config: # 定义变量及其默认值 variables: tech_stack: React 18 TypeScript strict_mode: false在调用此技能时我们可以传入不同的变量值来定制 AI 的行为。2. 技能组合一个复杂的任务可能需要多个基础技能协作。Skills Manager 支持将多个技能组合成一个新技能。# skills/frontend/project-starter.yaml id: frontend-project-architect version: 1.0.0 name: 前端项目架构师 description: 组合了需求分析、技术选型和文件结构设计的复合技能。 skill: # 通过 includes 引用其他技能 includes: - id: requirement-analyzer path: ../analysis/requirement-analyzer.yaml - id: tech-stack-selector path: ../analysis/tech-selector.yaml # 复合技能也可以有自己的系统提示对引用的技能进行协调 system: | 你是一个前端项目架构师。你将分三步帮助用户启动一个新项目 第一步分析需求调用requirement-analyzer。 第二步基于需求推荐技术栈调用tech-stack-selector。 第三步根据前两步的结果生成一个推荐的项目目录结构。 请清晰地区分这三个步骤的输出。通过这种组合我们可以构建出能力层次丰富的技能树实现关注点分离和技能复用。4. 完整实战创建并管理一个“前端开发助手”技能库现在我们将理论付诸实践从头开始构建一个专门服务于前端开发的技能库并演示如何使用 Skills Manager CLI 进行全生命周期管理。4.1 创建技能分类与第一个技能假设我们的技能库my-ai-skills已经初始化。我们首先为前端开发创建几个核心技能。1. 创建技能文件React 组件评审专家# 进入前端技能目录 cd my-ai-skills/skills/frontend # 创建技能文件 touch react-component-reviewer.yaml用编辑器打开react-component-reviewer.yaml填入以下内容# skills/frontend/react-component-reviewer.yaml id: react-component-reviewer version: 1.0.0 name: React 组件代码评审专家 description: 深度评审 React 函数组件关注 Hooks 使用、性能、可访问性及 React 18 最佳实践。 author: 前端技能组 tags: - react - frontend - code-review - hooks - typescript skill: system: | 你是一个对 React 生态有极深理解的专家级代码评审员尤其精通 React 18 和函数组件。 你的评审视角必须包含但不限于以下维度并按优先级排序 **P0 - 正确性与健壮性** - Hooks 规则检查是否违反 Rules of Hooks如条件调用、循环调用。 - 状态更新setState 是否基于前一个状态是否存在状态更新冲突 - 副作用清理useEffect 是否返回了正确的清理函数依赖项数组是否完整且准确 - Key 属性列表渲染是否提供了稳定、唯一的 key **P1 - 性能优化** - 不必要的重渲染组件是否因 props/state 未变化而重渲染是否该用 React.memo、useMemo、useCallback - 昂贵的计算是否在渲染函数中进行了复杂计算应移入 useMemo - 事件处理函数是否在每次渲染时都创建了新函数导致子组件不必要的重渲染 **P2 - 代码结构与可维护性** - 组件职责是否单一是否过于庞大需要拆分 - 自定义 Hooks重复的逻辑是否可抽取为自定义 Hook - 错误边界关键组件是否有错误边界保护 - TypeScript 类型类型定义是否精确、完备是否使用了 any **P3 - 可访问性 (a11y) 与用户体验** - 语义化 HTML是否使用了正确的标签如 button, nav - ARIA 属性交互元素是否提供了必要的 ARIA 属性 - 键盘导航所有功能是否可通过键盘操作 - 焦点管理模态框等组件是否管理了焦点 请以结构化格式输出评审报告 1. **总体评价**1-2句话 2. **关键问题**P0必须修复 3. **优化建议**P1建议修复 4. **改进意见**P2/P3长期优化 请对每个问题提供具体的代码位置如行号和修改建议代码示例。语气保持专业、建设性。 examples: - role: user content: | 请评审以下 React 组件 tsx import { useState, useEffect } from react; interface User { id: number; name: string; } function UserList({ users }: { users: User[] }) { const [filteredUsers, setFilteredUsers] useStateUser[]([]); useEffect(() { const result users.filter(u u.name.includes(A)); setFilteredUsers(result); }); // 缺少依赖数组 return ( ul {filteredUsers.map(user ( li{user.name}/li ))} /ul ); } - role: assistant content: | **总体评价**组件基本功能完整但存在一个严重的 Hook 使用错误和几个可优化点。 **关键问题 (P0 - 必须修复)** 1. **useEffect 缺少依赖数组**第9行当前 useEffect 在每次渲染后都会执行可能导致无限循环或性能问题。users 是一个 prop应将其加入依赖数组。 tsx useEffect(() { const result users.filter(u u.name.includes(A)); setFilteredUsers(result); }, [users]); // 添加依赖数组 **优化建议 (P1 - 建议修复)** 1. **列表缺少 key 属性**第15行li 元素在迭代渲染时必须提供唯一的 key 属性以帮助 React 高效更新。 tsx {filteredUsers.map(user ( li key{user.id}{user.name}/li // 添加 key ))} 2. **派生状态**filteredUsers 可以直接从 users 派生无需使用 useState useEffect这更简洁且不易出错。考虑使用 useMemo。 tsx const filteredUsers useMemo(() { return users.filter(u u.name.includes(A)); }, [users]); **改进意见 (P2 - 长期优化)** 1. **组件命名**UserList 更侧重于“列表”而当前组件包含了过滤逻辑。可以考虑将过滤逻辑提升到父组件或重命名为 FilteredUserList 以更准确。 config: model: gpt-4-turbo-preview temperature: 0.1 max_tokens: 20002. 创建技能文件Vue 3 组合式 API 助手同理我们再创建一个 Vue 相关的技能vue3-composition-helper.yaml内容结构类似但系统提示词专注于 Vue 3 的script setup、ref、computed、watch等特性。这里省略详细内容重点在于展示技能库的丰富性。4.2 使用 CLI 管理技能创建好技能文件后我们可以使用skill-cli来管理它们。1. 列出所有技能# 在技能库根目录执行 skill-cli list # 预期输出 # SKILLS LIBRARY: my-ai-skills # # frontend/ # react-component-reviewer (v1.0.0) - React 组件代码评审专家 # vue3-composition-helper (v1.0.0) - Vue 3 组合式 API 助手 # ... 其他分类2. 验证技能文件格式# 验证单个技能 skill-cli validate skills/frontend/react-component-reviewer.yaml # 验证某个分类下所有技能 skill-cli validate skills/frontend/ # 输出 “Validation passed” 表示格式正确。3. 应用技能到 AI 对话核心功能这是最关键的一步。skill-cli提供了apply命令可以将技能的核心内容主要是system提示词和examples格式化成目标 AI 平台如 OpenAI API, Claude API或本地 LLM 工具所需的输入格式。场景一生成 OpenAI API 调用的系统消息# 生成一个包含系统消息和示例消息的 JSON 片段可直接用于 OpenAI ChatCompletion API。 skill-cli apply react-component-reviewer --format openai # 输出示例 { messages: [ { role: system, content: 你是一个对 React 生态有极深理解的专家级代码评审员... # 完整的 system prompt }, { role: user, content: 请评审以下 React 组件\ntsx\n... # 第一个示例的 user 部分 }, { role: assistant, content: **总体评价**组件基本功能完整... # 第一个示例的 assistant 部分 } // ... 可能包含更多示例 ] }你可以将这个 JSON 中的messages数组直接用于构造 API 请求。场景二生成 Claude 或本地 LLM 的提示词文件# 生成一个纯文本提示词文件适用于 Anthropic Claude 或一些本地模型 skill-cli apply react-component-reviewer --format text --output prompt.txt # 查看生成的文件 cat prompt.txt # 文件内容会将 system 和 examples 拼接成一个连贯的文本提示。场景三带变量调用技能对于之前定义的frontend-code-review-contextual技能我们可以动态传入变量skill-cli apply frontend-code-review-contextual \ --var tech_stackVue 3 Vite Pinia \ --var strict_modetrue \ --format openaiCLI 工具会将模板中的{{ tech_stack }}替换为Vue 3 Vite Pinia并根据strict_mode为true来包含严格模式的指令。4.3 集成到开发工作流VS Code 插件示例手动运行 CLI 命令还不够便捷。我们可以将其集成到日常开发环境中。以下是一个简单的 VS Code 任务配置示例让你能在编辑器内快速应用技能。在项目根目录.vscode/tasks.json中配置{ version: 2.0.0, tasks: [ { label: Apply Skill: React Reviewer, type: shell, command: skill-cli apply react-component-reviewer --format text --output ${workspaceFolder}/.temp/ai_prompt.txt, group: { kind: build, isDefault: false }, presentation: { reveal: silent, panel: dedicated }, problemMatcher: [] }, { label: Apply Skill: Vue Helper, type: shell, command: skill-cli apply vue3-composition-helper --format openai, group: build, presentation: { echo: true, reveal: always, focus: false, panel: shared } } ] }配置好后你可以通过 VS Code 的命令面板CtrlShiftP运行 “Tasks: Run Task”选择对应的技能任务快速生成提示词然后复制到你的 AI 聊天窗口。更进一步可以开发一个 VS Code 插件提供图形化界面来选择技能、填充变量并一键将生成的提示词发送到指定的 AI 扩展如 ChatGPT 官方扩展、Cursor 等实现无缝衔接。4.4 技能的版本管理与团队协作Skills Manager 与 Git 的集成是其强大之处。# 1. 将技能文件添加到 Git 跟踪 git add skills/frontend/react-component-reviewer.yaml git commit -m feat(skills): add React component reviewer skill v1.0.0 # 2. 创建技能更新的分支 git checkout -b feat/update-react-reviewer # 3. 修改技能文件比如更新 system prompt增加新的示例 # 编辑 skills/frontend/react-component-reviewer.yaml # 将 version 改为 1.1.0并修改内容... # 4. 提交更新 git add . git commit -m feat(skills): update React reviewer to v1.1.0, add StrictMode checks # 5. 推送到远程仓库如 GitHub, GitLab git push origin feat/update-react-reviewer团队其他成员可以通过git pull获取最新的技能库。他们可以查看提交历史了解每个技能的演变过程甚至通过git checkout回滚到某个稳定版本。最佳实践为技能库建立一个CHANGELOG.md文件记录每个版本的重要变更就像管理一个软件库一样。5. 常见问题与排查思路在搭建和使用 Skills Manager 过程中你可能会遇到一些典型问题。下表汇总了常见问题及其解决方案问题现象常见原因解决思路skill-cli命令未找到或报错1. Node.js 未安装或版本过低。2.skill-cli未全局安装成功。3. 系统 PATH 环境变量未包含 npm 全局安装路径。1. 运行node --version检查 Node.js 版本需 16。2. 重新安装npm install -g skill-cli。3. 查找 npm 全局路径npm config get prefix并将其下的bin目录添加到系统 PATH。skill-cli validate验证失败1. YAML 文件语法错误如缩进、冒号后缺少空格。2. 技能定义文件缺少必填字段如id,skill.system。3. 变量语法错误如{{var}}未闭合。1. 使用在线 YAML 校验器或 IDE 的 YAML 插件检查语法。2. 对照本文 3.1 节的基本结构检查必填字段。3. 确保变量使用正确的模板语法如 Handlebars。应用技能时变量未替换1. 变量名拼写错误。2. 技能定义文件中未在skill.config.variables中声明该变量。3. CLI 命令中--var参数格式错误。1. 仔细核对技能文件中的变量名和 CLI 命令中的变量名。2. 确保所有使用的变量都在variables下有定义可以有默认值。3. 确保使用--var keyvalue格式等号两边无空格。生成的提示词在 AI 中效果不佳1.system提示词指令不清晰或矛盾。2.examples示例质量不高或与当前任务不匹配。3.config中的模型参数如temperature不适合当前任务。1. 精简并聚焦system指令使用明确的行动动词。2. 提供高质量、多样化的示例覆盖边缘情况。3. 对于创造性任务调高temperature对于确定性任务调低。进行 A/B 测试。团队协作时技能冲突多人同时修改了同一个技能文件。1. 建立代码评审Pull Request流程对技能修改进行审核。2. 鼓励创建个人分支进行技能开发通过 PR 合并到主分支。3. 使用skill-cli diff skill-id命令如果支持查看技能版本差异。技能库变得臃肿难以查找技能数量快速增长缺乏组织。1. 制定清晰的分类和命名规范如frontend/react/,backend/node/。2. 善用tags字段进行多维度标记。3. 定期进行技能库“重构”合并相似技能归档过时技能。6. 最佳实践与工程建议将 Skills Manager 引入团队或个人工作流遵循一些最佳实践能让其价值最大化。6.1 技能设计原则单一职责一个技能应专注于一个明确、具体的任务。不要创建“万能前端助手”而是拆分成“React 组件评审”、“Vue 状态管理咨询”、“CSS 布局优化”等多个小技能。清晰明确的指令system提示词应使用肯定、无歧义的语言。使用编号列表、分级标题如P0/P1来结构化指令让 AI 更容易遵循。提供高质量示例examples是“教”AI 的关键。示例应覆盖典型场景和边界情况。展示你期望的输出格式和详细程度。用户输入和 AI 回复都应高质量、无错误。参数化与复用将技能中可能变化的部分如技术栈、严格程度、输出语言提取为变量。这能极大提高技能的灵活性。版本化与变更日志每次对技能进行有意义的修改务必更新version字段并在CHANGELOG.md或技能文件的顶部注释中说明变更内容、原因和影响。6.2 技能库组织与管理目录结构标准化建议按技术领域和子领域分层组织。skills/ ├── frontend/ │ ├── react/ │ │ ├── code-review.yaml │ │ ├── component-generator.yaml │ │ └── hooks-helper.yaml │ ├── vue/ │ └── general/ (如 CSS, 构建工具) ├── backend/ ├── devops/ ├── writing/ └── shared/ (如 git, 项目管理等通用技能)元数据丰富化充分利用description、author、tags字段。良好的元数据便于搜索和发现。可以考虑添加last_updated、compatibility兼容的 AI 模型等自定义字段。建立评审流程将技能库视为重要的知识资产。重要的技能更新应像代码一样通过 Pull Request 进行同行评审确保指令的准确性和示例的质量。定期维护AI 模型和最佳实践在快速演进。定期回顾和更新技能淘汰过时的建议纳入新的模式。6.3 安全与合规考量敏感信息绝对不要在技能文件尤其是system和examples中硬编码 API 密钥、密码、内部服务器地址等敏感信息。使用变量或环境变量来管理。输出审查对于生成代码、配置等可能直接用于生产环境的技能务必强调 AI 的输出需要经过人工审查。可以在system提示词末尾加上“重要你的输出是建议必须由经验丰富的工程师审查后才能应用于生产环境。”合规与版权确保技能中引用的示例代码、文档片段不侵犯版权。对于内部技能库要遵守公司的数据安全政策。6.4 进阶CI/CD 与自动化测试对于追求工程化的团队可以将技能管理纳入 CI/CD 流水线。自动化验证在 Git 推送时通过 GitHub Actions 或 GitLab CI 自动运行skill-cli validate确保所有 YAML 文件格式正确。技能效果测试为关键技能编写“测试用例”——即一组固定的输入和期望的输出。在 CI 中调用 AI API使用一个固定的测试模型和低预算对比实际输出与期望输出的相似度监控技能效果的稳定性。自动生成文档编写脚本解析技能库自动生成一个静态网站或 Markdown 文档展示所有技能的描述、标签和使用示例方便团队查阅。通过 Skills Manager我们不仅是在管理一串串提示词文本更是在系统地构建、沉淀和复用面向特定领域的 AI 交互协议。它让 AI 从临时的、随机的对话伙伴转变为一个能力稳定、可预期、可迭代的标准化“数字员工”。从今天开始告别手动复制粘贴的碎片化模式用工程化的思维来管理你的 AI 技能资产这将是提升人机协作效率的关键一步。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度