OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  task-decomposer:任务分解器:将复杂请求拆解为可执行的子任务流

task-decomposer:任务分解器:将复杂请求拆解为可执行的子任务流

 
  cache ·  2026-02-23 04:20:22 · 3 次点击  · 0 条评论  

名称: task-decomposer
描述: 将复杂的用户请求分解为可执行的子任务,识别所需能力,在 skills.sh 搜索现有技能,并在无现有解决方案时创建新技能。当用户提交复杂的多步骤请求、希望自动化工作流或需要将大型任务分解为可管理部分时,应使用此技能。


任务分解器与技能生成器

此技能帮助将复杂的用户请求分解为可执行的子任务,识别每个任务所需的能力,从开放的技能生态系统中搜索现有技能,并在没有现有解决方案时自动创建新技能。

核心工作流

用户请求 → 任务分解 → 能力识别 → 技能搜索 → 差距分析 → 技能创建 → 执行计划

阶段 1:任务分析与分解

收到用户请求时,请遵循以下步骤:

步骤 1:理解用户意图

分析请求以识别:
- 核心目标:最终目的是什么?
- 涉及领域:需要哪些专业知识领域?
- 触发机制:一次性、计划任务还是事件驱动?

示例分析:

用户输入:"每天早上帮我获取邮件摘要并发送到 Slack"

分析:
- 核心目标:自动将邮件摘要发送到 Slack
- 涉及领域:邮件访问、内容摘要、消息传递
- 触发机制:计划任务(每日早晨)

步骤 2:分解为原子任务

将复杂任务分解为最小的可执行单元:

任务分解:
  - 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]

阶段 2:能力识别

将每个子任务映射到通用能力分类中的能力类型。

通用能力类型

能力 描述 搜索关键词
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"]

阶段 3:技能搜索

使用 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"

阶段 4:差距分析

识别没有匹配技能的任务:

内置能力(无需技能)

这些能力通常由代理的原生能力处理:
- content_generation - LLM 的原生文本生成
- data_transformation - 通过代码进行基本数据操作
- code_execution - 直接脚本执行
- scheduling - 系统级 cron/调度器配置

所需技能

对于没有内置支持的能力,确定:
1. 技能存在:从 skills.sh 安装
2. 技能未找到:创建新技能

阶段 5:技能创建

当没有现有技能匹配所需能力时,创建新技能。

技能创建流程

  1. 定义范围:确定技能应做什么
  2. 设计接口:定义输入、输出和使用模式
  3. 创建 SKILL.md:编写技能定义文件
  4. 添加资源:根据需要包含脚本、参考或资源

技能模板

---
**名称:** {技能名称}
**描述:** {清晰描述技能的作用和使用时机。使用第三人称书写。}
---

# {技能标题}

{简要介绍,解释技能的目的。}

## 何时使用

{描述应触发此技能的场景。}

## 先决条件

{列出任何所需的安装、配置或凭据。}

## 使用方法

{包含示例的详细使用说明。}

### 基本用法

```bash
{基本命令或代码示例}

高级用法

{更复杂的示例和选项。}

配置

{任何配置选项或环境变量。}

示例

示例 1:{使用案例}

{包含代码的逐步示例。}

故障排除

{常见问题及解决方案。}


### 初始化新技能

```bash
# 使用 skills CLI 创建技能
npx skills init <技能名称>

# 或手动创建结构:
# 技能名称/
# ├── SKILL.md (必需)
# ├── scripts/ (可选)
# ├── references/ (可选)
# └── assets/ (可选)

阶段 6:生成执行计划

将所有信息编译成结构化的执行计划:

执行计划:
  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 成功}"

任务分解原则

原则 1:原子性

每个子任务应是最小的可执行单元,具有清晰的输入和输出。

原则 2:独立性

尽量减少任务间的依赖,以便在可能时并行执行。

原则 3:可验证性

每个任务应有明确的方法来验证成功完成。

原则 4:可重用性

识别可重用模式,并优先创建通用技能。

原则 5:单一职责

每个任务应做好一件事。

输出格式

以结构化格式呈现分解结果:

════════════════════════════════════════════════════════════════
📋 任务分解报告
════════════════════════════════════════════════════════════════

🎯 原始请求:
{用户的原始请求}

────────────────────────────────────────────────────────────────
📊 子任务
────────────────────────────────────────────────────────────────
┌─────┬────────────────────────┬───────────────────┬───────────┐
│ ID  │ 任务                   │ 能力              │ 状态      │
├─────┼────────────────────────┼───────────────────┼───────────┤
│ 1   │ {任务名称}             │ {能力}            │ 已找到    │
│ 2   │ {任务名称}             │ {能力}            │ 内置      │
│ 3   │ {任务名称}             │ {能力}            │ 需创建    │
└─────┴────────────────────────┴───────────────────┴───────────┘

────────────────────────────────────────────────────────────────
🔍 技能搜索结果
────────────────────────────────────────────────────────────────
任务 1: {任务名称}
  搜索:npx skills find {关键词}
  找到:所有者/仓库@技能名称
  URL:https://skills.sh/所有者/仓库/技能名称

任务 3: {任务名称}
  搜索:npx skills find {关键词}
  找到:无匹配技能
  操作:创建新技能

────────────────────────────────────────────────────────────────
🛠️ 需创建的技能
────────────────────────────────────────────────────────────────
1. {技能名称}
   能力:{能力类型}
   描述:{功能描述}

────────────────────────────────────────────────────────────────
📝 执行计划
────────────────────────────────────────────────────────────────
先决条件:
  • {先决条件 1}
  • {先决条件 2}

步骤:
  1. 使用 {技能} 执行 {操作}
  2. 使用 {技能} 执行 {操作}
  3. 使用 {技能} 执行 {操作}

════════════════════════════════════════════════════════════════

示例

示例 1:工作流自动化

用户请求:

创建一个工作流,监控 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
     状态:内置(系统)

示例 2:数据管道

用户请求:

搜索 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"

最佳实践

  1. 从技能搜索开始:在创建新技能前,始终检查 https://skills.sh/
  2. 使用具体搜索词:结合能力关键词和领域术语
  3. 利用内置能力:不要为代理原生能做的事情创建技能
  4. 创建可重用技能:尽可能将新技能设计为通用目的
  5. 详细记录:新技能应有清晰的使用说明
  6. 执行前验证:在执行任务前确认技能安装
  7. 优雅处理错误:在执行计划中包含备用策略

与 find-skills 集成

此技能与 find-skills 技能协同工作,用于发现现有解决方案:

# 搜索技能生态系统
npx skills find <查询>

# 安装发现的技能
npx skills add <所有者/仓库@技能> -g -y

# 浏览所有可用技能
# 访问:https://skills.sh/

注意事项

  • 在创建新技能前,始终搜索现有技能
  • 内置能力(LLM、基础代码)不需要技能
  • 技能创建需要在继续前获得用户确认
  • 复杂工作流可能需要多个技能协同工作
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor