-
Notifications
You must be signed in to change notification settings - Fork 64
增强异步任务功能:支持模型指定、时长控制、多任务隔离与智能合并 #45
Copy link
Copy link
Open
Description
增强异步任务功能:支持模型指定、时长控制、多任务隔离与智能合并
功能概述
当前异步任务功能需进一步增强,以支持更灵活的任务配置、多模型并行处理及智能合并能力。通过新增模型指定、运行时长控制、worktree隔离及多任务合并机制,提升异步任务的实用性与效率,满足长任务运行、多方案对比等场景需求。
详细需求
1. 异步任务参数增强
- /async 标识:保持使用
/async明确标识异步子智能体任务 - /model 指定模型:支持通过
/model [模型名]参数为任务指定运行模型(如v3、glm4-6等),实现同一任务不同模型的并行处理 - /time 时长控制:支持通过
/time [时长]参数设置任务最小运行时长(如10m、1h),确保任务有足够时间完成细致检查与处理,减少后续review负担 - /name 唯一命名:通过
/name [任务名]参数指定唯一任务名称,用于任务管理、查询与合并
2. 任务管理能力
- 任务列表查看:支持通过命令(如
$snow --task-list)查看所有异步任务的状态(运行中、已完成、失败等) - 任务详情查询:支持查看指定任务的实时日志、已完成修改内容(如通过类似
!cursor ~/.snow/tasks/[任务名]的方式) - 任务状态展示:在UI底部状态栏显示异步任务数量及运行状态,支持用户实时感知任务进度
3. 多任务隔离与并行
- worktree隔离:当多个任务使用不同模型或处理可能冲突的内容时,自动在独立worktree中运行,避免相互干扰
- 并发支持:允许同时提交多个异步任务(如10个并发),无需担心任务间的即时冲突
4. 任务合并机制
- 单任务合并:支持通过命令(如
$snow --merge [任务名])将指定完成任务的修改合并回主分支 - 多任务合并:支持通过逗号分隔任务名(如
$snow --merge task1,task2,task3)合并多个任务,系统自动处理合并冲突 - 智能选择合并(Best Of N):支持让指定模型评估多个任务结果并选择最优方案合并,如
$snow --merge task1,task2 -query "选择最优实现合并",由模型根据查询条件自动决策
使用示例
-
创建多模型异步任务:
$snow --task /async /model v3 /time 10m /name task1 "在@./src/utils/task.js中添加任务重试逻辑" $snow --task /async /model glm4-6 /time 15m /name task2 "在@./src/utils/task.js中添加任务重试逻辑"
-
查看任务列表:
$snow --task-list -
合并指定任务:
$snow --merge task1,task2 -query "选择更符合代码规范的实现合并"
预期收益
- 提升异步任务灵活性:支持按需求选择模型,适配不同任务场景
- 提高代码质量:通过时长控制让任务充分处理,减少review负担
- 支持多方案对比:多模型并行运行同一任务,便于选择最优实现
- 简化多任务管理:通过隔离与自动冲突解决,降低多任务并行的操作复杂度
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels