SuperAPI AI 工具集

select

智能体与模型

查看项目

更新于 10-16 04:02

技能介绍

Select(触发名 $select)是一个“只做规划”的任务选择与编排技能,来源于 tkersey/dotfiles 仓库,定位为 swarm-ready(面向群体/多智能体)的并行执行规划器。它的目标可以概括为:选择一个任务来源,将其细化为依赖感知的原子任务,在安全前提下调度并行波次,并输出一份编排计划。

用途与定位

该技能的意图是:挑选任务来源、将其提炼为具备依赖关系的原子任务、在安全时安排并行波次(waves),并产出编排计划。它明确是 plan-only(仅规划):不实现变更(不编辑代码、不运行 worker);不改动任务源(不写 SLICES.md、不写 plan-N.md);而是给出明确的人工写回步骤(例如“将 <id> 标记为 in_progress”)。它与具体编排/执行器无关,输出是中立的计划 schema;必要时也可给出一个小的、可通过人工步骤(可选循环)把规划产物推进到执行的小型流水线。

任务来源与优先级

当存在多个来源时,必须只选一个,优先级为:1)调用文本中显式提供的任务清单;2)SLICES.md(若存在且可解析);3)plan-N.md(仓库根目录下 N 最大者)。若最高优先级来源存在但无可行任务,不应默认输出空计划:优先尝试选择一个“解阻者”(被阻塞但能解开后续可执行工作的叶子任务);只有当来源为空/不可解析,或全部已关闭/不可调度时,才停下来询问是否回退。来源检测不修改来源:调用任务清单需出现在“Use $select”或“$select:”等显式短语之后的编号/项目符号列表;SLICES.md 需位于仓库根目录且每个 slice 段落恰好包含一个 YAML 映射;plan-N.md 匹配 plan-(\d+).md 并取最大 N。预检为尽力而为:收集候选任务与依赖边;依赖指向未知任务 ID 时视为阻塞,自动修复失败后再告警;依赖图成环/不可调度时,尽量调度环外工作并告警;来源存在但不可解析/为空时,先停下询问再考虑回退。

细化与分解启发式

当来源较粗或偏线性时,需在调度波次前先细化任务结构:识别工作流并尽量让任务描述限定在单一工作流;为 API/schema/接口/配置等能解锁多个下游任务的决策创建显式 contract 任务;为并行分支的汇合点创建显式 checkpoint/integration 任务;保持中等粒度,使每个任务可独立成为 PR;优先用显式依赖边记录真实前置,避免意外串行化。依赖语义分两类:depends_on 是硬前置,参与 DAG 就绪与波次调度;related_to 是软顺序/上下文边,从不为就绪或波次资格设门槛;顺序不确定或仅为建议时,优先用 related_to。

调用指令(可选)

可识别的指令包括:mode(both 默认 / triage / new)——both 先分诊 in_progress 再选新工作,triage 只处理 in_progress 并建议 close/reopen/continue,new 跳过分诊直接选新工作(仍会对 in_progress 告警);max_tasks(auto 或整数,默认 auto,在分诊决策之后生效);review(required 默认 / auto / off)。

并行安全规则

仅当任务提供足够元数据使并行“站得住脚”时才调度并行。任务只有在拥有非空 scope 列表时才具备并行波次资格;两个任务只有在 scope 集合不重叠时才可同波次。scope 条目视为独占锁;推荐使用紧凑的文件或模块 glob,仅在无法更细粒度时才用目录根。重叠检查是保守的:比较 lock root 而非原始字符串——对每个 scope 条目先归一化(去掉前导 ./、合并 /),去掉尾部 /** 或 //,再取第一个 glob 元字符(、?、[)之前的路径前缀;若任一 lock root 相等或一个 lock root 是另一个的路径前缀,即视为重叠。缺失 scope 的任务被视为与一切重叠,只能单独调度;过宽 scope(如 ""、.、./、/、*、、**/*)同样与一切重叠,只能单独调度。因重叠锁必须串行时,优先用显式 depends_on 让顺序成为有意为之。

委托与校验就绪

并行波次只有在每个任务可被 worker 独立执行时才有用。建议任务包含 location(在哪工作,仅用于导航,不影响调度)与 validation(如何证明完成,不影响调度)。若某波次含 2 个及以上任务且其中至少一个带 validation,则该波次中缺 validation 的任务会被告警。agent: orchestrator 仅当用户提供 subtasks 时才可委托;若设了 orchestrator 但 subtasks 为空/缺失,降级为 worker 并记录自动修复与告警。

认领所选工作(必需)

当 $select 选择要现在开始的工作(即第一波 waves[0] 中的任务)时,必须同时发出 claim,以免其他规划/执行者并发领取同一工作。若来源支持 status,认领即把所选任务设为进行中状态,使用来源自身的拼写;规范 token 为 in_progress,读取/分诊时可接受 in progress、in-progress、in_progress 等变体;输出时优先用来源已有的 token,否则默认 in_progress。若来源是 list 或 plan,则 claim: none。若生成的 OrchPlan 要进入持久化执行,后续路径为先 st import-orchplan 再 st claim,然后才 spawn_agent 或 $mesh run;但该技能本身仍只做规划,不执行写回,只说明需要改什么。

输出格式

必须输出一个 YAML 块作为 OrchPlan v1,字段包括 schema_version: 1、kind: OrchPlan、created_at(RFC3339)、source(kind 与 locator)、可选的 cap、prereqs、risks,以及 tasks 列表(id、title、description、workstream、role、parallelism_impact、agent、scope、location、validation、depends_on、related_to、subtasks)与 waves、integration(boundary、order、conflict_policy)、warnings。紧随其后必须输出简短的纯文本 Decision Trace,包含 source、mode、triage、claim、counts、fanout_possible、fanout_selected、fanout_left_on_table、pick、next2、waves、review、warnings、auto_fix 等条目。

调度算法与审查

仅按 depends_on 边构建 DAG(related_to 不参与就绪判定)。维护 ready 集合,循环挑选就绪任务中 scope 锁不重叠的最大子集(贪心即可);cap 与 max_tasks 为 auto 时保留完整最大子集;cap 为数字时限制波次任务数。任务冲突或 cap 压力下,按评分取舍:优先风险/难度/影响面更低者、优先 P0/priority 0、按 kind 顺序(task > bug > feature > chore > epic > docs > question)、同风险层优先 contract/checkpoint 角色再 integration 再 implementation、优先解锁更多任务者、对存在 related_to 的任务施以软顺序惩罚。若 review=required,需迭代审查通过或受阻停下询问。审查者模式只补缺口、降风险,不扩范围、不重设计;需检查缺失依赖/顺序/锁重叠/校验缺口,识别不必要的线性链,并在安全时将建议性边从 depends_on 降为 related_to;多波次计划在可行时应要求显式角色/工作流,多并行实现分支汇聚时应要求 checkpoint/integration 汇合点。

限制与说明

该技能为 plan-only,不实现变更、不修改任务源;与编排执行器无关;关于收费、价格、平台、具体效果等,资料暂未提供。其来源适配器规范位于 codex/skills/select/ADAPTER_LIST.md、ADAPTER_SLICES.md、ADAPTER_PLAN.md,回归样例位于 codex/skills/select/FIXTURES.md,锁根契约位于 codex/skills/select/references/lock-roots.md。