AI编程助手进阶:用mattpocock/skills打造专属开发技能
如果你是一名开发者,最近可能已经感受到了 AI 编程助手带来的效率提升。从 Copilot 的代码补全,到 Cursor 的对话式编程,再到 Devin 的“全栈工程师”愿景,AI 正在重塑我们的开发工作流。
但你是否也遇到过这样的困境:当你向 AI 助手提出一个稍微复杂的需求时,比如“帮我写一个解析这个 CSV 文件并生成统计图表的脚本”,它要么生成一个过于通用、需要你大量修改的代码块,要么干脆无法理解你的业务上下文,给出的方案离实际可用差得很远。
问题的核心在于,当前的 AI 助手普遍缺乏对 你个人或团队专属开发环境、工具链和业务逻辑 的深度理解。它们擅长通用语法,却难以掌握你的“独门秘籍”——那些你每天都在用的内部 CLI 工具、自定义的构建脚本、或者处理特定数据格式的私有库。
今天要介绍的项目 mattpocock/skills ,正是为了解决这个痛点而生。它不是另一个 AI 模型,而是一个精巧的 框架 ,让你能够将你的本地开发环境、工具和知识,“教会”给 AI 助手(特别是 Claude Desktop)。简单来说,它让你能创建自定义的“技能”(Skills),让 AI 助手真正成为你团队中的一员,理解你的代码库、调用你的脚本、遵循你的规范。
这篇文章不会只告诉你“这个项目很酷”。我们将深入探讨:
skills究竟解决了什么传统 AI 编程工具解决不了的问题?- 它的核心设计思想是什么?为什么说它代表了一种新的 AI 交互范式?
- 如何从零开始,为你自己的项目配置一个专属技能?
- 在实际使用中,有哪些“坑”和最佳实践?
无论你是独立开发者,还是技术团队的负责人,如果想让 AI 更深地融入你的开发流程,而不仅仅是作为一个高级的代码补全工具,那么 mattpocock/skills 值得你花时间深入了解。
1. 重新定义“助手”:从通用补全到专属技能
在深入技术细节之前,我们必须先厘清一个关键认知: mattpocock/skills 项目的目标,不是创造一个更聪明的 AI,而是 让现有的聪明 AI(如 Claude)变得更“懂你” 。
1.1 传统 AI 编程助手的局限性
以 Claude、ChatGPT 或 GitHub Copilot 为例,它们的能力边界非常清晰:
- 强于通用知识 :对主流框架、标准库、常见算法了如指掌。
- 弱于特定上下文 :对你的项目特有的目录结构、内部工具、部署流程、业务规则一无所知。
- 无法执行操作 :它们可以生成执行某个操作的命令或代码,但无法替你执行。你需要手动复制、粘贴、运行。
这就导致了一个尴尬的局面:AI 生成的代码“看起来”正确,但一放到你的项目环境里就可能因为路径、依赖或配置问题而报错。你仍然需要扮演“系统集成者”的角色,花费大量时间将 AI 的输出适配到你的本地环境。
1.2 skills 带来的范式转变
mattpocock/skills 引入了一个核心概念: 技能(Skill) 。一个技能本质上是一个可执行的脚本或工具,它被封装并描述后,暴露给 AI 助手。
这个转变的意义在于:
- 从生成建议到执行操作 :AI 不再只是给你一段
git commit -m “...”的命令文本,而是可以直接调用封装好的git_commit技能,并传递参数,真正执行提交操作。 - 从通用到专属 :你可以为你项目的专属构建命令
./scripts/build --env=staging创建一个技能。AI 助手学会后,就能在正确的目录下,以正确的参数执行它。 - 从孤立到集成 :AI 助手通过技能,能够与你的整个开发生态系统(版本控制、包管理、测试框架、部署工具)进行交互,获得实时反馈。
简单来说, skills 把 AI 助手从一个“博学的顾问”,变成了一个“听得懂指令、并能动手操作的实习生” 。这个实习生需要你先“培训”(定义技能),之后它就能自主完成你教过它的任务。
1.3 谁最需要这个项目?
- 团队技术负责人 :希望将团队的最佳实践(代码规范检查、特定部署流程)固化并赋能给所有成员,减少沟通成本和操作失误。
- 全栈或 DevOps 工程师 :日常需要频繁在多个工具和环境中切换,渴望一个统一的、可自动化的交互界面。
- 复杂项目维护者 :项目拥有复杂的脚本和工具链,新成员上手困难,可以通过技能库快速让 AI 协助新人。
- 效率极客 :不满足于现有工具的边界,热衷于探索和定制下一代开发工作流。
如果你对上述任何一点有共鸣,那么继续往下看,我们将开始动手实践。
2. 核心概念与架构解析
要玩转 skills ,需要理解它的几个核心概念,它们共同构成了项目的骨架。
2.1 核心概念三要素
-
技能 (Skill) :
- 是什么 :一个可执行的操作单元。它可以是一个 Shell 脚本、一个 Python 脚本、一个二进制程序,或者任何可以通过命令行调用的东西。
- 关键属性 :每个技能必须有清晰的 名称 、 描述 和 参数定义 。描述尤为重要,因为 AI 助手通过文本来理解何时以及如何使用这个技能。
- 示例 :
run_tests(运行测试套件)、deploy_to_staging(部署到预发环境)、generate_api_docs(生成 API 文档)。
-
技能清单 (Skills Manifest) :
- 是什么 :一个配置文件(通常是
skills.json),它列出了所有可用技能的定义。 - 作用 :这是 AI 助手的“技能手册”。Claude Desktop 会读取这个文件,从而知道它能调用哪些技能,以及每个技能怎么用。
- 结构 :一个 JSON 数组,每个元素描述一个技能,包括
name,description,command(执行命令的模板)和arguments(参数规范)。
- 是什么 :一个配置文件(通常是
-
Claude Desktop 集成 :
- 是什么 :
skills目前主要与 Anthropic 推出的 Claude Desktop 应用深度集成。 - 原理 :Claude Desktop 提供了一个本地 API 服务器。
skills框架通过向这个服务器注册技能清单,使 Claude 模型在与你对话时,能够“看到”并“调用”这些技能。 - 流程 :你告诉 Claude “请运行测试”。Claude 识别出这与
run_tests技能匹配,然后在后台执行对应的命令,并将执行结果(成功/失败、输出日志)返回给对话界面。
- 是什么 :
2.2 工作流程与架构
下图清晰地展示了从你定义技能到 Claude 调用技能的完整闭环:
flowchart TD
A[开发者定义技能<br>e.g. 测试/部署脚本] --> B[编写技能描述与命令<br>注册至 skills.json]
B --> C[Claude Desktop 启动<br>加载本地技能清单]
C --> D[用户提出自然语言请求<br>e.g. “运行一下测试”]
D --> E{Claude 理解意图<br>匹配技能}
E -- 匹配成功 --> F[Claude 调用对应技能<br>在后台执行命令]
F --> G[技能执行完毕<br>返回结果/错误]
G --> H[Claude 将结果整合<br>以自然语言回复用户]
E -- 无匹配技能 --> I[Claude fallback 到<br>通用代码生成或回答]
这个架构的美妙之处在于 解耦 :技能的定义和执行完全在你的控制之下(本地脚本),AI 只负责理解和调度。这既保证了灵活性(你可以写任何脚本),又保障了安全性(技能的执行权限与你的本地用户权限一致)。
3. 环境准备:从零开始搭建技能平台
理论讲完,我们开始实战。首先确保你的环境符合要求。
3.1 系统与工具要求
- 操作系统 :macOS 或 Linux 是首选,对
skills支持最完善。Windows 用户可以通过 WSL2 获得近乎完美的体验。 - Node.js :项目基于 Node.js 开发,需要
node(版本建议 16+) 和npm/yarn/pnpm包管理器。 - Claude Desktop :这是核心运行时环境。你需要从 Anthropic 官网下载并安装 Claude Desktop 应用。确保它已安装并可以正常使用。
- Git :用于克隆项目仓库。
3.2 初始化项目
我们将在本地创建一个新的技能项目。
# 1. 克隆官方示例仓库(这是一个很好的起点)
git clone https://github.com/mattpocock/skills.git
cd skills
# 2. 安装项目依赖
npm install
# 或使用 yarn/pnpm
# yarn install
# pnpm install
安装完成后,查看项目结构:
tree -L 2 -I ‘node_modules’
典型结构如下:
.
├── skills.json # 技能清单配置文件
├── package.json
├── README.md
├── src/
│ └── skills/ # 技能脚本存放目录
│ ├── test.js
│ └── ...
└── ...
skills.json 是核心配置文件, src/skills/ 目录通常用来存放技能的具体实现脚本。
3.3 验证 Claude Desktop 连接
启动 Claude Desktop 应用。 skills 项目会通过本地网络与 Claude Desktop 的 API 通信。通常安装后默认配置即可工作。
你可以运行一个简单的命令来测试连接和列出已注册的技能:
# 在项目根目录下执行
npx skills list
如果配置正确,你会看到来自 Claude Desktop API 的响应,可能是一个空数组 [] (初始状态),或者包含一些预定义技能。
至此,你的基础环境已经就绪。接下来,我们将创造第一个属于自己的技能。
4. 技能创建全流程:打造你的第一个“AI 实习生”
让我们通过一个实际场景来学习技能的创建。假设我们有一个 Node.js 项目,经常需要运行 npm test ,但有时需要带不同的参数,比如 --watch 或针对某个特定文件。我们将创建一个智能的 run_tests 技能。
4.1 第一步:编写技能脚本
首先,在 src/skills/ 目录下创建一个 JavaScript 文件。为什么用 JS?因为 skills 框架本身是 Node.js 的,用 JS 编写技能可以更方便地处理参数和逻辑。
// 文件路径:src/skills/runTests.js
#!/usr/bin/env node
const { exec } = require(‘child_process‘);
const { promisify } = require(‘util‘);
const execAsync = promisify(exec);
/**
* 运行项目测试
* @param {Object} args - 技能参数
* @param {string} [args.watch] - 是否启用监听模式 (true/false)
* @param {string} [args.file] - 指定运行某个测试文件
* @param {string} [args.pattern] - 匹配测试名称的模式
*/
async function runTests(args) {
console.log(‘🚀 开始运行测试...‘);
// 构建 npm test 命令
let command = ‘npm test‘;
// 处理参数
const extraArgs = [];
if (args.watch === ‘true‘) {
extraArgs.push(‘-- --watch‘); // 注意:需要将 --watch 传递给底层的测试运行器
}
if (args.file) {
extraArgs.push(`-- --testFile=${args.file}`);
}
if (args.pattern) {
extraArgs.push(`-- --testNamePattern="${args.pattern}"`);
}
if (extraArgs.length > 0) {
command += ‘ ‘ + extraArgs.join(‘ ‘);
}
console.log(`📝 执行命令: ${command}`);
try {
const { stdout, stderr } = await execAsync(command, { cwd: process.cwd() });
if (stderr) {
console.error(‘⚠️ 测试执行有警告或错误输出:‘);
console.error(stderr);
}
console.log(‘✅ 测试输出:‘);
console.log(stdout);
return { success: true, output: stdout, error: stderr };
} catch (error) {
console.error(‘❌ 测试运行失败:‘);
console.error(error.message);
console.error(‘错误详情:‘, error.stderr || error.stdout);
return { success: false, error: error.message };
}
}
// 如果这个脚本被直接调用(用于本地调试)
if (require.main === module) {
const args = process.argv.slice(2).reduce((acc, arg) => {
const [key, value] = arg.replace(‘--‘, ‘‘).split(‘=‘);
acc[key] = value;
return acc;
}, {});
runTests(args);
}
module.exports = runTests;
关键点解析 :
- 参数处理 :脚本通过函数参数接收一个
args对象,里面包含了从 AI 助手那里传递过来的参数。 - 命令构建 :我们根据参数动态构建
npm test命令。注意-- --watch的用法,第一个--告诉 npm 将后续参数传递给npm test实际运行的脚本。 - 执行与捕获 :使用 Node.js 的
child_process执行命令,并捕获标准输出和错误输出。 - 返回结果 :函数返回一个对象,明确指示成功与否以及输出内容。这对于 AI 助手理解执行结果至关重要。
4.2 第二步:在技能清单中注册技能
光有脚本还不够,我们需要在 skills.json 中声明这个技能,让 Claude 知道它的存在。
打开或创建项目根目录下的 skills.json 文件:
[
{
“name“: “run_tests“,
“description“: “运行项目的单元测试。可以指定监听模式、特定测试文件或测试名模式。“,
“command“: “node ./src/skills/runTests.js“,
“arguments“: [
{
“name“: “watch“,
“description“: “是否在监听模式下运行测试,文件变化时自动重新运行。值为 ‘true‘ 或 ‘false‘。“,
“required“: false,
“type“: “string“
},
{
“name“: “file“,
“description“: “指定要运行的测试文件路径,例如 ‘src/utils/calculator.test.js‘。“,
“required“: false,
“type“: “string“
},
{
“name“: “pattern“,
“description“: “匹配测试名称的模式,只运行名称中包含此模式的测试用例。“,
“required“: false,
“type“: “string“
}
]
}
]
配置详解 :
name: 技能的调用标识,最好用蛇形命名(snake_case)。description: 这是最重要的部分 。必须清晰、无歧义地描述技能的功能、适用场景和参数用法。AI 助手完全依赖这个描述来理解技能。command: 实际执行的命令。这里调用我们刚写的 Node.js 脚本。arguments: 定义技能接受的参数列表。每个参数都需要name,description,required和type。清晰的参数描述能极大提高 AI 调用的准确性。
4.3 第三步:将技能同步到 Claude Desktop
现在,我们需要让 Claude Desktop 加载这个新的技能清单。
# 在项目根目录运行
npx skills sync
这个命令会将当前目录下 skills.json 中定义的技能,注册到本地运行的 Claude Desktop 实例中。
如果成功,你应该会看到类似 Skills synced successfully. 的提示。
4.4 第四步:在 Claude Desktop 中测试技能
- 打开 Claude Desktop 应用。
- 在聊天框中,尝试用自然语言触发你的技能:
- “请运行一下项目的测试。”
- “运行测试,并开启监听模式。”
- “帮我测试
src/components/Button.test.js这个文件。”
- Claude 会识别你的意图,并在后台调用
run_tests技能。你会看到它显示“正在执行技能...”,然后返回脚本的执行结果。
至此,你已经完成了从技能构思、脚本编写、注册到测试的完整闭环。你的 AI 助手现在拥有了一个专属的测试运行能力。
5. 进阶技能设计:处理复杂交互与安全边界
基础技能只能算入门。在实际项目中,我们需要处理更复杂的场景,比如交互式操作、敏感信息处理和多步骤工作流。
5.1 交互式技能:让 AI 与你确认
有些操作(如数据库操作、生产部署)风险较高,不应该让 AI 直接执行。我们可以设计需要用户确认的技能。
// 文件路径:src/skills/deployStaging.js
#!/usr/bin/env node
const readline = require(‘readline‘);
const { exec } = require(‘child_process‘);
const { promisify } = require(‘util‘);
const execAsync = promisify(exec);
async function deployStaging(args) {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 首先,让AI助手询问用户确认
// 这个信息会通过技能结果返回给Claude,Claude会将其呈现给用户
console.log(‘⚠️ 这是一个部署到预发环境的操作。‘);
console.log(‘⚠️ 目标分支:‘, args.branch || ‘main‘);
console.log(‘⚠️ 请确认你是否要继续?(yes/no)‘);
// 注意:在实际的skills框架中,复杂的交互可能需要通过Claude来回传递消息。
// 更简单的做法是:技能先返回一个“需要确认”的结果,由Claude与用户对话,获得确认后再次调用技能。
// 这里演示一个简化逻辑:假设我们通过环境变量或参数传递了确认信息。
if (args.confirmed !== ‘yes‘) {
const answer = await new Promise(resolve => {
rl.question(‘请输入 yes 或 no: ‘, resolve);
});
rl.close();
if (answer.toLowerCase() !== ‘yes‘) {
return { success: false, output: ‘用户取消了部署操作。‘ };
}
}
console.log(‘🚀 开始部署到预发环境...‘);
try {
// 模拟部署命令
const command = `./deploy-script.sh --env=staging --branch=${args.branch || ‘main‘}`;
const { stdout } = await execAsync(command);
return { success: true, output: `部署成功!输出:${stdout}` };
} catch (error) {
return { success: false, error: `部署失败:${error.message}` };
}
}
// ... 导出和本地调试部分与之前类似
在 skills.json 中,你可以为这个技能添加一个 confirmed 参数,或者设计成两个技能: request_deploy (请求部署)和 confirm_deploy (确认部署)。
5.2 安全最佳实践:最小权限与沙箱
让 AI 执行命令存在安全风险。请务必遵循以下原则:
- 绝不暴露敏感信息 :不要在技能描述、命令或代码中硬编码密码、API密钥、私钥。使用环境变量或安全的配置管理系统。
- 遵循最小权限原则 :技能脚本应以当前用户权限运行,不要使用
sudo或高权限账户。对于高风险操作,应设计为“生成指令”而非“执行指令”。 - 输入验证与净化 :所有从 AI 传递来的参数都必须视为不可信输入,进行严格的验证和转义,防止命令注入。
// 反例:直接拼接参数,危险! // const command = `ls ${args.path}`; // 正例:使用子进程的参数数组形式,或进行严格过滤 const { spawn } = require(‘child_process‘); const child = spawn(‘ls‘, [args.path]); // args.path 会被正确处理为参数,而非命令的一部分 - 沙箱化执行 :对于特别不信任或复杂的技能,可以考虑在 Docker 容器或虚拟机内执行,隔离其对主机系统的影响。
5.3 组合技能:构建工作流
真正的威力在于组合多个简单技能,形成复杂的工作流。这可以通过创建一个“协调者”技能来实现。
// 在 skills.json 中定义一个发布工作流技能
{
“name“: “release_pipeline“,
“description“: “执行完整的发布流水线:运行测试、构建项目、生成版本号、部署到预发环境。“,
“command“: “node ./src/skills/releasePipeline.js“,
“arguments“: [
{
“name“: “version_type“,
“description“: “版本号更新类型:‘patch‘, ‘minor‘, ‘major‘。“,
“required“: true,
“type“: “string“
}
]
}
对应的 releasePipeline.js 可以按顺序调用其他技能(通过 Node.js 的模块导入或再次调用 CLI)或直接执行一系列命令,并处理中间步骤的失败情况。
6. 调试与排查:当技能不工作时
你的技能没有按预期工作?别担心,这是常态。以下是系统的排查思路。
6.1 常见问题排查表
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
运行 npx skills sync 失败 |
1. Claude Desktop 未运行 2. 网络端口被占用或配置错误 3. skills.json 格式错误 |
1. 确保 Claude Desktop 应用已启动。 2. 检查终端是否有连接错误信息。 3. 使用 jsonlint 验证 skills.json 格式。 |
1. 启动 Claude Desktop。 2. 重启 Claude Desktop 或检查 ~/.config/claude-desktop/config.json 。 3. 修正 JSON 语法错误。 |
| Claude 无法识别技能 | 1. 技能描述不清晰 2. 技能未成功同步 3. 用户请求与技能描述不匹配 |
1. 在 Claude 中直接问:“你现在有哪些可用的技能?” 2. 运行 npx skills list 查看已注册技能。 3. 仔细检查技能 description ,用更自然、涵盖更多关键词的方式重写。 |
1. 根据 npx skills list 结果重新同步。 2. 优化技能描述,模拟用户可能会说的话。 |
| 技能被识别但执行失败 | 1. 技能脚本本身有 bug 2. 命令路径或环境变量问题 3. 参数解析错误 |
1. 本地直接调试脚本 : node ./src/skills/yourSkill.js --arg1=value 。 2. 在脚本中增加详细的 console.log ,打印命令和参数。 3. 检查执行命令的当前工作目录 ( cwd )。 |
1. 修复脚本逻辑错误。 2. 使用绝对路径或确保 cwd 正确。 3. 完善脚本的参数处理和错误捕获。 |
| 技能执行无输出或输出混乱 | 1. 脚本输出格式不符合 Claude 解析预期 2. 异步操作未正确处理 |
1. 确保脚本最终将结果 console.log 或 return 一个对象。 2. 检查异步函数是否使用了 async/await 或正确返回 Promise。 |
1. 技能脚本应返回一个包含 success , output , error 等字段的对象。 2. 确保所有异步操作完成后再结束进程。 |
| 权限错误 (Permission denied) | 1. 脚本文件没有执行权限 2. 命令需要更高权限 |
1. ls -l src/skills/yourSkill.js 查看权限。 2. 检查命令是否包含 sudo (应避免)。 |
1. chmod +x src/skills/yourSkill.js 赋予执行权限。 2. 重新设计技能,避免需要特权操作。 |
6.2 本地调试技巧
技巧一:模拟 Claude 调用 创建一个简单的测试脚本,模拟 Claude 调用你的技能时传递的参数格式。
// testSkill.js
const runTests = require(‘./src/skills/runTests.js‘);
async function test() {
// 模拟用户说:“运行测试,开启监听模式”
const result = await runTests({ watch: ‘true‘ });
console.log(‘测试结果:‘, result);
}
test();
技巧二:开启详细日志 在技能脚本开头或关键位置添加日志,观察执行流程。
console.log(‘[DEBUG] 技能开始执行,参数:‘, JSON.stringify(args));
console.log(‘[DEBUG] 当前工作目录:‘, process.cwd());
技巧三:检查 Claude Desktop 日志 Claude Desktop 应用本身可能会输出错误日志,查看这些日志有助于定位集成问题(具体日志位置请参考 Claude Desktop 文档)。
7. 工程化与最佳实践
将 skills 用于个人项目很有趣,但要将其融入团队和生产环境,就需要一些工程化考量。
7.1 技能代码管理
- 版本控制 :将
skills.json和src/skills/目录纳入 Git 仓库管理。这保证了团队所有成员使用的技能定义一致。 - 模块化设计 :将复杂的技能逻辑拆分成多个模块或函数,放在
src/skills/lib/下,便于复用和测试。 - 编写测试 :为你的技能脚本编写单元测试。毕竟,它们是重要的自动化工具。
# 示例:使用 Jest 测试技能函数 npm install --save-dev jest// runTests.test.js const runTests = require(‘./runTests‘); describe(‘runTests skill‘, () => { it(‘should construct correct command without args‘, async () => { // 模拟 execAsync 等 }); });
7.2 技能清单的组织
当技能数量增多时,一个庞大的 skills.json 文件会难以维护。可以考虑以下方式:
- 分拆文件 :将技能定义按功能分拆到多个
*.skill.json文件中,使用一个构建脚本将它们合并。 - 动态生成 :对于某些可以从项目结构(如
package.json中的 scripts)自动生成的技能,可以写一个 Node.js 脚本在postinstall时动态生成skills.json。
7.3 团队协作流程
- 技能设计评审 :新增或修改重要技能(尤其是涉及部署、数据库操作的)时,应像代码评审一样进行。
- 文档化 :在项目 Wiki 或 README 中维护一个“技能目录”,说明每个技能的用途、参数和示例用法。
- 权限管理 :区分“查询类”技能(如
get_logs)和“执行类”技能(如deploy)。对于高危执行类技能,可以考虑引入额外的审批流程或二次确认机制(如前文所述)。
7.4 与现有工具链集成
skills 不应取代你现有的 CI/CD 或自动化脚本,而应成为它们的 智能前端 。
- 封装现有脚本 :你已有的
deploy.sh、build-and-upload.js等,都可以包装成技能。 - 触发 CI 任务 :可以创建技能,通过调用 CI 系统(如 Jenkins、GitLab CI、GitHub Actions)的 API 来触发流水线,并将状态返回给 Claude。
- 查询系统状态 :创建技能来查询服务器状态、监控图表、最近部署记录等,让 AI 助手成为你的运维信息聚合器。
8. 总结与展望:技能生态的想象力
回过头看, mattpocock/skills 项目的价值远不止于“让 Claude 能运行命令”。它实际上定义了一种 将人类自然语言指令映射到本地自动化能力 的通用协议。
通过今天的实践,我们掌握了:
- 核心理念 :将 AI 视为一个可编程的“操作接口”,通过定义技能来扩展其能力边界。
- 核心技能 :创建、描述、注册和调试一个专属技能的全过程。
- 安全与工程化 :在享受便利的同时,如何规避风险并将其纳入规范的开发流程。
这个模式的想象力是巨大的。未来,我们或许会看到:
- 技能市场 :社区共享可复用的技能包(如“一键搭建 React 组件库”、“连接特定云服务”)。
- 跨助手兼容 :类似的技能框架可能被 Copilot、Cursor 或其他 AI 编码工具采纳,形成标准。
- 低代码集成 :通过自然语言描述,AI 自动生成或组合技能,进一步降低自动化门槛。
对于当下的你,最实际的下一步是: 审视你每天重复三次以上的那些命令行操作 。无论是繁琐的 git 操作流程、特定的项目启动顺序,还是复杂的数据处理命令,它们都是封装成技能的最佳候选。
从今天起,别再只把 AI 助手当作一个聊天机器人或代码补全工具。试着把它打造成你的“数字副驾”,一个真正理解你工作环境、并能动手帮你解决问题的伙伴。 mattpocock/skills 就是你开始这场改造的扳手。
更多推荐
所有评论(0)