名称: task-decomposer
描述: 将复杂的用户请求分解为可执行的子任务,识别所需能力,在 skills.sh 搜索现有技能,并在无现有解决方案时创建新技能。当用户提交复杂的多步骤请求、希望自动化工作流或需要将大型任务分解为可管理部分时,应使用此技能。
此技能帮助将复杂的用户请求分解为可执行的子任务,识别每个任务所需的能力,从开放的技能生态系统中搜索现有技能,并在没有现有解决方案时自动创建新技能。
用户请求 → 任务分解 → 能力识别 → 技能搜索 → 差距分析 → 技能创建 → 执行计划
收到用户请求时,请遵循以下步骤:
分析请求以识别:
- 核心目标:最终目的是什么?
- 涉及领域:需要哪些专业知识领域?
- 触发机制:一次性、计划任务还是事件驱动?
示例分析:
用户输入:"每天早上帮我获取邮件摘要并发送到 Slack"
分析:
- 核心目标:自动将邮件摘要发送到 Slack
- 涉及领域:邮件访问、内容摘要、消息传递
- 触发机制:计划任务(每日早晨)
将复杂任务分解为最小的可执行单元:
任务分解:
- task_id: 1
name: "访问并获取邮件列表"
type: "data_retrieval"
input: "邮件凭据/会话"
output: "包含元数据的邮件列表"
dependencies: []
- task_id: 2
name: "从邮件中提取关键信息"
type: "data_extraction"
input: "邮件列表"
output: "结构化的邮件数据"
dependencies: [1]
- task_id: 3
name: "生成邮件摘要"
type: "content_generation"
input: "结构化的邮件数据"
output: "格式化的摘要文本"
dependencies: [2]
- task_id: 4
name: "发送消息到 Slack"
type: "message_delivery"
input: "摘要文本、Slack webhook/令牌"
output: "发送确认"
dependencies: [3]
- task_id: 5
name: "配置计划执行"
type: "scheduling"
input: "工作流脚本、计划配置"
output: "激活的计划任务"
dependencies: [4]
将每个子任务映射到通用能力分类中的能力类型。
| 能力 | 描述 | 搜索关键词 |
|---|---|---|
browser_automation |
网页导航、交互、抓取 | browser, selenium, puppeteer, playwright, scrape |
web_search |
互联网搜索和信息检索 | search, google, bing, duckduckgo |
api_integration |
第三方 API 通信 | api, rest, graphql, webhook, |
data_extraction |
解析和提取结构化数据 | parse, extract, scrape, ocr, pdf |
data_transformation |
转换、清理、变换数据 | transform, convert, format, clean, etl |
content_generation |
创建文本、图像或其他内容 | generate, write, create, summarize, translate |
file_operations |
读取、写入、操作文件 | file, read, write, csv, excel, json, pdf |
message_delivery |
发送通知或消息 | notify, send, email, slack, discord, telegram |
scheduling |
基于时间的任务执行 | schedule, cron, timer, daily, weekly |
authentication |
身份和访问管理 | auth, oauth, login, token, credentials |
database_operations |
数据库 CRUD 操作 | database, sql, mongodb, query, store |
code_execution |
运行脚本或程序 | execute, run, script, shell, python |
version_control |
Git 和代码仓库操作 | git, github, gitlab, commit, pr, review |
testing |
自动化测试和质量保证 | test, jest, pytest, e2e, unit |
deployment |
应用程序部署和 CI/CD | deploy, docker, kubernetes, ci-cd, release |
monitoring |
系统和应用程序监控 | monitor, alert, log, metrics, health |
对于每个子任务:
1. 分析任务描述和需求
2. 匹配到一个或多个能力类型
3. 生成用于技能发现的搜索关键词
示例:
任务:"发送消息到 Slack"
能力:message_delivery
搜索关键词:["slack", "notification", "message", "webhook"]
使用 Skills CLI 在 https://skills.sh/ 搜索现有技能。
对于每个能力需求,使用相关关键词进行搜索:
# 搜索匹配该能力的技能
npx skills find <关键词>
# 示例:
npx skills find slack notification
npx skills find browser automation
npx skills find pdf extract
npx skills find github api
当返回结果时:
使用 npx skills add <所有者/仓库@技能> 安装
所有者/仓库@技能名称
└ https://skills.sh/所有者/仓库/技能名称
评估每个结果的:
- 相关性:是否匹配所需能力?
- 完整性:是否涵盖所有需要的功能?
- 质量:文档是否完善且维护良好?
能力映射:
- task_id: 1
capability: browser_automation
search_query: "browser email automation"
found_skills:
- name: "anthropic/claude-skills@browser-use"
url: "https://skills.sh/anthropic/claude-skills/browser-use"
match_score: high
recommendation: "安装 browser-use 技能"
- task_id: 4
capability: message_delivery
search_query: "slack notification"
found_skills: []
recommendation: "创建新技能:slack-notification"
识别没有匹配技能的任务:
这些能力通常由代理的原生能力处理:
- content_generation - LLM 的原生文本生成
- data_transformation - 通过代码进行基本数据操作
- code_execution - 直接脚本执行
- scheduling - 系统级 cron/调度器配置
对于没有内置支持的能力,确定:
1. 技能存在:从 skills.sh 安装
2. 技能未找到:创建新技能
当没有现有技能匹配所需能力时,创建新技能。
---
**名称:** {技能名称}
**描述:** {清晰描述技能的作用和使用时机。使用第三人称书写。}
---
# {技能标题}
{简要介绍,解释技能的目的。}
## 何时使用
{描述应触发此技能的场景。}
## 先决条件
{列出任何所需的安装、配置或凭据。}
## 使用方法
{包含示例的详细使用说明。}
### 基本用法
```bash
{基本命令或代码示例}
{更复杂的示例和选项。}
{任何配置选项或环境变量。}
{包含代码的逐步示例。}
{常见问题及解决方案。}
### 初始化新技能
```bash
# 使用 skills CLI 创建技能
npx skills init <技能名称>
# 或手动创建结构:
# 技能名称/
# ├── SKILL.md (必需)
# ├── scripts/ (可选)
# ├── references/ (可选)
# └── assets/ (可选)
将所有信息编译成结构化的执行计划:
执行计划:
title: "{任务描述}"
prerequisites:
- "{先决条件 1}"
- "{先决条件 2}"
skills_to_install:
- skill: "所有者/仓库@技能名称"
command: "npx skills add 所有者/仓库@技能名称 -g -y"
url: "https://skills.sh/所有者/仓库/技能名称"
skills_to_create:
- name: "{新技能名称}"
capability: "{能力类型}"
description: "{功能描述}"
execution_steps:
- step: 1
task: "{任务名称}"
skill: "{技能名称 | built-in}"
action: "{要采取的具体操作}"
- step: 2
task: "{任务名称}"
skill: "{技能名称 | built-in}"
action: "{要采取的具体操作}"
verification:
- "{如何验证步骤 1 成功}"
- "{如何验证步骤 2 成功}"
每个子任务应是最小的可执行单元,具有清晰的输入和输出。
尽量减少任务间的依赖,以便在可能时并行执行。
每个任务应有明确的方法来验证成功完成。
识别可重用模式,并优先创建通用技能。
每个任务应做好一件事。
以结构化格式呈现分解结果:
════════════════════════════════════════════════════════════════
📋 任务分解报告
════════════════════════════════════════════════════════════════
🎯 原始请求:
{用户的原始请求}
────────────────────────────────────────────────────────────────
📊 子任务
────────────────────────────────────────────────────────────────
┌─────┬────────────────────────┬───────────────────┬───────────┐
│ ID │ 任务 │ 能力 │ 状态 │
├─────┼────────────────────────┼───────────────────┼───────────┤
│ 1 │ {任务名称} │ {能力} │ 已找到 │
│ 2 │ {任务名称} │ {能力} │ 内置 │
│ 3 │ {任务名称} │ {能力} │ 需创建 │
└─────┴────────────────────────┴───────────────────┴───────────┘
────────────────────────────────────────────────────────────────
🔍 技能搜索结果
────────────────────────────────────────────────────────────────
任务 1: {任务名称}
搜索:npx skills find {关键词}
找到:所有者/仓库@技能名称
URL:https://skills.sh/所有者/仓库/技能名称
任务 3: {任务名称}
搜索:npx skills find {关键词}
找到:无匹配技能
操作:创建新技能
────────────────────────────────────────────────────────────────
🛠️ 需创建的技能
────────────────────────────────────────────────────────────────
1. {技能名称}
能力:{能力类型}
描述:{功能描述}
────────────────────────────────────────────────────────────────
📝 执行计划
────────────────────────────────────────────────────────────────
先决条件:
• {先决条件 1}
• {先决条件 2}
步骤:
1. 使用 {技能} 执行 {操作}
2. 使用 {技能} 执行 {操作}
3. 使用 {技能} 执行 {操作}
════════════════════════════════════════════════════════════════
用户请求:
创建一个工作流,监控 GitHub issues,总结新 issues,并将通知发布到 Discord
分解:
子任务:
1. 监控 GitHub 仓库的新 issues
能力:api_integration
搜索:"npx skills find github issues"
2. 提取 issue 内容和元数据
能力:data_extraction
状态:内置(代码)
3. 生成 issue 摘要
能力:content_generation
状态:内置(LLM)
4. 发送通知到 Discord
能力:message_delivery
搜索:"npx skills find discord notification"
5. 配置 webhook 或轮询触发器
能力:scheduling
状态:内置(系统)
用户请求:
搜索 AI 研究论文,下载 PDF,提取关键发现,并保存到 Notion
分解:
子任务:
1. 搜索 AI 研究论文
能力:web_search
搜索:"npx skills find academic search"
2. 下载 PDF 文件
能力:browser_automation
搜索:"npx skills find browser download"
3. 从 PDF 中提取文本
能力:data_extraction
搜索:"npx skills find pdf extract"
4. 生成关键发现摘要
能力:content_generation
状态:内置(LLM)
5. 保存到 Notion 数据库
能力:api_integration
搜索:"npx skills find notion"
此技能与 find-skills 技能协同工作,用于发现现有解决方案:
# 搜索技能生态系统
npx skills find <查询>
# 安装发现的技能
npx skills add <所有者/仓库@技能> -g -y
# 浏览所有可用技能
# 访问:https://skills.sh/