name: skill-creator description: 创建高效技能的指南。当用户想要创建新技能(或更新现有技能)以扩展AI在专业知识、工作流程或工具集成方面的能力时使用。 command: /skill-creator verified: true hidden: true
技能创建器
本技能提供创建高效技能的指导。
关于技能
技能是模块化、自包含的包,通过提供专业知识、工作流程和工具来扩展AI能力。将它们视为特定领域或任务的“入门指南”——它们将通用代理转变为具备程序性知识的专业代理。
技能提供的内容
- 专业工作流程 - 特定领域的多步骤程序
- 工具集成 - 处理特定文件格式或API的说明
- 领域专业知识 - 公司特定知识、架构、业务逻辑
- 捆绑资源 - 用于复杂和重复任务的脚本、参考资料和资产
核心原则
简洁是关键
上下文窗口是公共资源。技能与所需的一切共享上下文窗口:系统提示、对话历史、其他技能的元数据以及实际用户请求。
默认假设:AI已经非常智能。 只添加它尚未拥有的上下文。质疑每条信息:“这个解释真的需要吗?”和“这段文字是否值得其token成本?”
优先选择简洁示例而非冗长解释。
设置适当的自由度
将特异性级别与任务的脆弱性和可变性相匹配:
高自由度(基于文本的说明):当多种方法有效、决策取决于上下文或启发式方法指导时使用。
中等自由度(带参数的伪代码或脚本):当存在首选模式、允许一定变化或配置影响行为时使用。
低自由度(特定脚本、少量参数):当操作脆弱易错、一致性至关重要或必须遵循特定顺序时使用。
技能结构
每个技能包含一个必需的SKILL.md文件和可选的捆绑资源:
技能名称/
├── SKILL.md(必需)
│ ├── YAML前置元数据(必需)
│ │ ├── name:(必需)
│ │ ├── description:(必需)
│ │ └── command:(可选,例如 /my-skill)
│ └── Markdown说明(必需)
└── 捆绑资源(可选)
├── scripts/ - 可执行代码(Python/Bash等)
├── references/ - 按需加载的文档
└── assets/ - 输出中使用的文件(模板、图标、字体等)
SKILL.md(必需)
每个SKILL.md包含:
- 前置元数据(YAML):包含
name、description和可选的command字段。这些决定了技能何时被使用——要清晰全面。 - 正文(Markdown):使用技能的说明和指导。仅在技能触发后加载。
捆绑资源(可选)
脚本(scripts/)
用于需要确定性可靠性或重复重写的任务的可执行代码。
- 何时包含:当相同代码被重复重写或需要确定性可靠性时
- 示例:
scripts/rotate_pdf.py用于PDF旋转任务
参考资料(references/)
按需加载到上下文中的文档和参考资料。
- 何时包含:用于工作时应参考的文档
- 示例:
references/schema.md用于数据库架构,references/api_docs.md用于API规范
资产(assets/)
不打算加载到上下文中,但在输出中使用的文件。
- 何时包含:当技能需要文件用于最终输出时
- 示例:
assets/logo.png用于品牌资产,assets/template.html用于样板文件
技能创建流程
- 理解技能 - 收集技能将如何使用的具体示例
- 规划内容 - 确定哪些脚本、参考资料和资产会有帮助
- 创建技能目录 - 设置文件夹结构
- 编写SKILL.md - 包含前置元数据和说明
- 验证创建 - 强制:确认文件存在于正确路径且内容有效
- 测试和迭代 - 在实际任务上使用技能并改进
第1步:理解技能
要创建有效技能,请理解其将如何使用的具体示例:
- “这个技能应支持什么功能?”
- “你能举例说明这个技能将如何使用吗?”
- “用户说什么会触发这个技能?”
第2步:规划内容
分析每个示例以识别可重用资源:
- 考虑如何从头开始执行示例
- 确定哪些脚本、参考资料和资产会有帮助
第3步:创建技能
为技能创建新目录:
my-skill/
├── SKILL.md
└──(可选资源)
第4步:编写SKILL.md
前置元数据:
---
name: my-skill
description: 清晰描述技能的作用以及何时使用它。
command: /my-skill
---
正文:
编写清晰的使用技能说明。包括:
- 技能目的概述
- 逐步工作流程
- 有帮助的示例
- 对任何捆绑资源的引用
第5步:测试和迭代
创建技能后:
- 在实际任务上使用它
- 注意困难或低效之处
- 更新SKILL.md或捆绑资源
- 再次测试
在Accomplish中保存技能
重要提示: 在Accomplish中创建技能时,你只能创建“自定义”技能。你无法创建“官方”技能——这些是随应用捆绑并由Accomplish团队管理的。
用户技能目录
关键:你必须将技能保存到确切路径。不要询问用户保存位置——路径由应用固定。
技能必须保存到Accomplish用户数据目录下的skills文件夹:
macOS: ~/Library/Application Support/Accomplish/skills/<技能名称>/SKILL.md
Windows: %APPDATA%\Accomplish\skills\<技能名称>\SKILL.md
Linux: ~/.config/Accomplish/skills/<技能名称>/SKILL.md
切勿:
- 询问用户将技能文件保存在哪里
- 使用任何其他路径,如
~/skills/、./skills/或自定义路径 - 向用户提供关于保存位置的选择
路径由操作系统决定。检测操作系统并自动使用正确路径。
如何保存技能
不要询问用户路径。自动执行以下步骤:
-
检测操作系统以确定正确的基本路径:
- macOS:
~/Library/Application Support/Accomplish/skills/ - Windows:
%APPDATA%\Accomplish\skills/ - Linux:
~/.config/Accomplish/skills/
- macOS:
-
创建技能目录,以技能名称命名(小写,连字符分隔):
<基本路径>/my-awesome-skill/ -
在该目录内编写SKILL.md文件:
<基本路径>/my-awesome-skill/SKILL.md -
根据需要添加任何捆绑资源作为子目录:
<基本路径>/my-awesome-skill/ ├── SKILL.md ├── scripts/ ├── references/ └── assets/ -
技能被自动检测 - Accomplish在启动时扫描此目录并将新技能同步到其数据库。该技能将出现在设置 > 技能中,作为“自定义”技能。
技能前置元数据规则
对于Accomplish中的自定义技能:
name:必需 - 技能的显示名称description:必需 - 何时使用此技能command:可选 - 斜杠命令,如/my-skill- 不要使用
verified: true- 只有官方技能可以被验证 - 不要使用
hidden: true- 只有内部技能应该被隐藏
自定义技能示例
---
name: my-awesome-skill
description: 做很棒的事情。当用户想做很棒的事情时使用。
command: /awesome
---
创建后 - 强制验证
重要提示: 在告诉用户完成之前,你必须验证技能是否正确创建。
验证步骤(必需)
-
读取文件 - 使用读取工具读取你刚刚创建的SKILL.md文件。这确认:
- 文件实际存在
- 内容被正确写入
-
验证路径 - 确认文件路径匹配所需位置:
- macOS:
~/Library/Application Support/Accomplish/skills/<技能名称>/SKILL.md - Windows:
%APPDATA%\Accomplish\skills\<技能名称>\SKILL.md - Linux:
~/.config/Accomplish/skills/<技能名称>/SKILL.md
- macOS:
-
验证前置元数据 - 确认YAML前置元数据包含:
name:存在且非空description:存在且非空- 没有禁止字段(
verified: true或hidden: true)
-
报告结果 - 只有在所有检查通过后,才告诉用户:
- 技能已保存到他们的技能目录
- 显示保存的确切路径
- 点击设置 > 技能或+菜单中的刷新按钮(↻)以检测新技能
- 他们可以从设置面板启用/禁用或删除自定义技能
如果验证失败: 不要告诉用户技能已创建。相反,诊断问题并在重新验证之前修复它。
示例:创建简单技能
这是一个最小技能示例:
---
name: greeting-generator
description: 为各种场合生成个性化问候语。当用户需要帮助写贺卡、欢迎信息或庆祝便条时使用。
command: /greet
---
# 问候语生成器
为任何场合生成温暖、个性化的问候语。
## 用法
1. 询问需要什么类型的问候语(生日、节日、感谢等)
2. 收集有关收件人的详细信息
3. 生成多个问候语选项
4. 根据反馈进行优化
## 语气指南
- **正式**:专业场合、业务关系
- **温暖**:朋友和家人
- **活泼**:儿童、休闲场合
## 示例
**生日问候语:**
“祝你一天充满欢乐,一年充满成功!”
**感谢便条:**
“你的体贴比言语更能表达。谢谢你!”