基于任务的多智能体系统技能Skill task-based-multiagent

本技能用于设置基于任务的多智能体系统,通过共享任务文件和工作树隔离实现并行任务执行、工作流协调和可扩展性。它指导如何设计任务队列系统、管理多代理工作流、避免竞态条件,并支持 AI 智能体模型选择。关键词包括任务管理、多智能体系统、并行执行、工作流隔离、AI 智能体、DevOps、任务文件协调。

AI智能体 0 次安装 0 次浏览 更新于 3/11/2026

name: 基于任务的多智能体系统 description: 使用共享任务文件设置基于任务的多智能体系统。适用于并行代理执行、设计工作树隔离模式或实现任务文件协调。 allowed-tools: 读取、搜索、全局匹配

基于任务的多智能体技能

指导使用共享任务文件和工作树隔离创建基于任务的多智能体系统。

使用场景

  • 设置并行代理执行
  • 管理多个并发工作流
  • 扩展到单代理模式之外
  • 构建任务队列系统

核心概念

代理共享一个任务文件,作为协调机制:

## 待办事项
- [ ] 任务 A
- [ ] 任务 B

## 进行中
- [🟡 abc123] 任务 C - 正在处理

## 已完成
- [✅ def456] 任务 D - 已完成

任务文件格式

tasks.md:

# 任务

## Git 工作树 {工作树名称}

## 待办事项
[] 待处理任务描述                           # 可用
[⏰] 阻塞任务(等待上述任务)                   # 阻塞
[] 带有 #opus 标签的任务                     # 模型覆盖
[] 带有 #adw_plan_implement 标签的任务        # 工作流覆盖

## 进行中
[🟡, adw_12345] 正在处理的任务               # 代理已认领

## 已完成
[✅ abc123, adw_12345] 已完成任务           # 保存提交哈希
[❌, adw_12345] 失败任务 // 错误原因         # 捕获错误

状态标记

标记 含义 状态
[] 待处理 可供拾取
[⏰] 阻塞 等待前置任务
[🟡, {id}] 进行中 正在处理
[✅ {hash}, {id}] 完成 成功结束
[❌, {id}] 失败 发生错误

标签系统

标签修改代理行为:

标签 效果
#opus 使用 Opus 模型
#sonnet 使用 Sonnet 模型
#adw_plan_implement 复杂工作流
#adw_build 简单构建工作流

实现架构

┌─────────────────────────────────────────┐
│            定时触发器                   │
│  (每 N 秒轮询 tasks.md)                │
└─────────────────┬───────────────────────┘
                  │
        ┌─────────┼─────────┐
        │         │         │
        v         v         v
   ┌────────┐ ┌────────┐ ┌────────┐
   │ 任务 A │ │ 任务 B │ │ 任务 C │
   │工作树  │ │工作树  │ │工作树  │
   │   1    │ │   2    │ │   3    │
   └────────┘ └────────┘ └────────┘

设置工作流

步骤 1: 创建任务文件

# tasks.md

## 待办事项
[] 第一个要完成的任务
[] 第二个要完成的任务
[⏰] 直到第一个完成才解除阻塞

## 进行中

## 已完成

步骤 2: 创建数据模型

from pydantic import BaseModel
from typing import Literal, Optional, List

class Task(BaseModel):
    description: str
    status: Literal["[]", "[⏰]", "[🟡]", "[✅]", "[❌]"]
    adw_id: Optional[str] = None
    commit_hash: Optional[str] = None
    tags: List[str] = []
    worktree_name: Optional[str] = None

步骤 3: 创建触发器脚本

# adw_trigger_cron_tasks.py
def main():
    while True:
        tasks = parse_tasks_file("tasks.md")
        pending = [t for t in tasks if t.status == "[]"]

        for task in pending:
            if not is_blocked(task):
                # 标记为进行中
                claim_task(task)
                # 生成子进程
                spawn_task_workflow(task)

        time.sleep(5)  # 轮询间隔

步骤 4: 创建任务工作流

# adw_build_update_task.py (简单)
def main(task_id: str):
    # 标记为进行中
    update_task_status(task_id, "[🟡]")

    # 执行 /build
    response = execute_template("/build", task_description)

    # 标记完成
    if response.success:
        update_task_status(task_id, "[✅]", commit_hash)
    else:
        update_task_status(task_id, "[❌]", error_reason)

步骤 5: 添加工作树隔离

每个任务都有自己的工作树:

git worktree add trees/{task_id} -b task-{task_id} origin/main

协调规则

  1. 处理前认领: 立即更新状态为 [🟡]
  2. 尊重阻塞: 在依赖完成前不处理 [⏰] 任务
  3. 完成时更新: 即使失败也要更新状态
  4. 包含上下文: 保存提交哈希、错误原因、ADW ID

关键内存参考

  • @git-worktree-patterns.md - 工作树隔离
  • @composable-primitives.md - 工作流组合
  • @zte-progression.md - 扩展到 ZTE

输出格式

## 多智能体系统设置

**任务文件:** tasks.md
**触发间隔:** 5 秒
**最大并发:** 5 代理

### 组件
1. 任务文件格式与状态标记
2. 数据模型(任务、状态、标签)
3. 定时触发器脚本
4. 任务工作流脚本
5. 工作树隔离

### 工作流路由
- 默认: adw_build_update_task.py
- #adw_plan_implement: adw_plan_implement_update_task.py
- #opus: 使用 Opus 模型

### 状态流
[] -> [🟡, id] -> [✅ hash, id]
                -> [❌, id] // 错误

反模式

  • 轮询过于频繁(< 1 秒)
  • 处理前未认领(竞态条件)
  • 忽略阻塞任务
  • 未捕获失败原因
  • 在同一目录运行(无隔离)

版本历史

  • v1.0.0 (2025-12-26): 初始发布

最后更新

日期: 2025-12-26 模型: claude-opus-4-5-20251101