关于 swarm
Swarm 是可选的分发技能,供调用方提供完整且互不重叠的任务包并选择执行器。它先验证整个批次,再对每个任务包执行一次并返回结果或错误;不会重试、调度任务或给出裁决。
主要功能
- 01每个任务包仅分发一次
- 02执行前验证整个批次
- 03逐包返回候选结果、证据或错误
- 04保留任务包与上下文标识
- 05拒绝不受支持的写入范围排除项
适用场景
- 01并行运行明确划定范围的独立任务包
- 02收集所选执行器调用的独立结果
- 03避免无效任务包导致批次部分启动
- 04返回执行器错误而不自动重试
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ boshu2/ agentops --skill swarm安装后在 Claude Code 中输入/swarm确认已加载。
附带文件scripts/dispatch_once.pytests/test_dispatch_once.py
详细介绍
Swarm
Swarm 暴露一个可选的工厂端口:
dispatch_once(explicit_disjoint_packets, executor)
-> per-packet candidate | evidence | error
调用方提供每个完整数据包,证明它们的写入范围互不相交, 并选择执行器。Swarm 仅分发每个数据包一次,保留数据包和 上下文的身份,收集结果,然后停止。
写入范围必须是相对于工作区且规范化的——已解析符号链接
并完成规范化。互不相交检查采用词法方式:它会对前缀进行大小写折叠,
因此仅大小写不同的范围会被视为冲突(在不区分大小写的文件系统上更安全),
但无法识别将两个范围指向同一目标的符号链接。提供非规范化或包含符号链接的范围会使
互不相交保证失效;非空的 write_scope.exclude 会被拒绝,而非
悄然忽略,因为该证明无法处理它。
对已证明互不相交的范围进行恰好一次的分发,这就是并行失败能保持 彼此独立的原因:任何数据包都无法观察、阻塞或破坏另一个数据包,因此 N 个数据包会产生 关于 N 次实验的 N 个事实结果,而不是一团混乱。这些 结果不是语义判定。
命名失败模式——批次部分启动:在发现无效数据包之前就分发有效数据包,导致批次只运行了一部分;应在首次调用前验证整个批次。
反模式:执行器返回错误后重新分发该数据包。 纠正方式:将错误作为该数据包的事实结果返回;是否重试由 调用方决定,而非分发器。
仅供开发者使用的参考实现是 scripts/dispatch_once.py。
仓库测试会运行此模块;受支持的原生安装路径会通过调用方选择的
执行器遵循此技能,不会调用 Python。
它会在首次调用前验证整个显式批次,对每个数据包恰好调用一次提供的
执行器,并将执行器异常作为每个数据包的事实错误返回。
Swarm 自身的作用是对每个数据包调用一次选定的执行器;真正的影响范围由数据包决定。每个数据包的传递性影响——无论其执行器写入、运行或访问什么——都应由调用方在数据包中声明,而非由 Swarm 限定。
Swarm 不会选择工作、创建数据包、根据待处理队列安排任务、持久化队列、认领所有权、重试、验证、集成、关闭、使用 Git 或交付。执行器失败仍属于执行器证据,不能转化为核心阶段状态或判定状态。适配器不能选择 AgentOps 语义、给出具有约束力的判定,也不能将工厂完成转化为交付或验证证明。