众所不周知,iflow cli 是有并发限制的
| 类型 | 并发数 |
|---|---|
| 主 agent | 1 |
| subagent | 2 |
并且通常不会自动触发,就算触发也是只使用一个 subagent,所以需要通常需要通过类似以下提示词来主动触发
请使用 2 个 subagent 帮我 ...
但这种方式通常会出现两种现象:
- 两个 subagent 一路干到底
- 两个 subagent 做完前两个任务,剩下的任务由主 agent 一路干到底
所以我的做法是分批执行,来提高效率,前提是任务可以并发,不然滥用并发效果可能反而变差,比如对信息重复收集,多个 subagent 修改同一个文件等
提示词类似这样
任务...;使用多个 subagent 拆分成多个高并发任务分批执行,一批任务完成后进行整理总结再进行下一批,每批可以进行 n 个并发,合理安排每批次的并发数
然后又看到了下面这篇帖子获得了灵感,可以将提示词封装成 command,就不需要每次都复制粘贴这么一段内容
这篇帖子中将不同的并发数做成了不同的 command,方便随时使用指定的并发数
但我觉得可以稍作调整,将最大并发数写在 AGENTS.md 中,iflow 就能根据任务,拆分出不同的任务点,并整理每个批次最合适的并发数
比如像下面这个复杂任务,涉及了资料的收集整理,以及代码编写
在 AGENTS.md 中,设定了最大并发数为 3,这是用来展示可配置性,不受限于 1、2、5 个并发
这样 iflow 就会开始规划任务和调整每个任务批次的并发数,然后分批并发执行任务了
最终效果还需要微调一下,不过这是一次性生成,效果还算可以了吧 ![]()
由于提示词太长,就不放在帖子里了,直接上架到平台上,到时候一键安装就能用了
命令在审核中,等审核通过了就能安装体验一下
2026-03-14 补充
突然发现没讲这个 command 的细节
![]()
这个 command 主要主要分为
- 用户输入检查
- 目标效果
- 执行流程
用户输入检查
这部分是参考 spec-kit 的写法,大概是这样,这是防止用户只执行了命令没有填需求的
## User Input
```text
$ARGUMENTS
```
你**必须**在继续前考虑用户的意见 (如果不是空的话)。用户在触发消息后面输入的文本就是功能描述。假设你在这段对话中随时都有它,即使字面上显示在下面。除非用户提供了空命令,否则不要要求用户重复输入。
目标效果
就是告诉 iflow 最终需要达到什么效果
## Goal
将复杂任务自适应拆分为可并发的子任务批次,通过智能调度器动态分配 subagent,在保证质量的前提下最大化并发效率。
执行流程
执行流程就是详细告诉 iflow 应该如何进行 并发,这部分需要让 iflow 先拆分子任务,再找出可并行的任务,为的就是防止简单粗暴的直接拉满并行数量,因为不是所有任务都需要并行,像编写代码,需要做到文件隔离避免多个 agent 各有各的想法,然后还修改相同的文件,这样反而拉低的生成的质量,要让每隔 agent 做自己该做的事情
首先是让 iflow 知道要去 AGENTS.md 找最大并发数,才能合理的安排每批的并发
### 1. 初始化调度上下文
1. **解析用户输入**:解析 `$ARGUMENTS` 中的任务描述
2. **读取并发配置**:
- 优先级:用户显式指定 > AGENTS.md 配置 > 默认值 2
- 有效范围:1 ~ 5
- 存储为 `MAX_CONCURRENCY`
然后是构建有向无环图,也就是大学数据结构和软考做题做到烦的关键路径题
1. **识别任务类型**:
| 类型 | 特征 | 典型操作 |
|------|------|----------|
| 研究类 | 信息收集、分析 | 文件读取、网络搜索、代码探索 |
| 开发类 | 代码编写、重构 | 文件创建、修改、删除 |
| 测试类 | 验证、测试 | 测试执行、断言检查 |
| 文档类 | 文档编写 | Markdown 创建、更新 |
2. **评估任务复杂度**:
- **简单**:单文件操作,无外部依赖
- **中等**:多文件相关操作,有内部依赖
- **复杂**:跨模块/系统集成,有外部依赖
3. **构建任务依赖图**:
- 提取任务间的强依赖关系
- 识别可并行执行的任务组
- 标记关键路径任务
### 3. 自适应批次规划
**批次划分算法**:
```
输入: 任务列表 + 依赖图 + MAX_CONCURRENCY
输出: 批次列表
1. 拓扑排序获取执行顺序
2. 按 DAG 层级划分批次
3. 每批次任务数 ≤ MAX_CONCURRENCY
4. 同文件操作必须同批次或串行批次
5. 高复杂度任务独占或降低并发数
```
以上就是大概的细节,然后填充更多的补充信息进行完善就能打造一个同款 command 了













