wooden-tan/dsh-team-autopilot ↗★ 0

dsh-team-autopilot

Deterministic auto-dispatch for native DeepSeek Harness Agent Teams: wakes idle members when a task becomes ready, and turns advisory write scopes into an effective soft lock.

パッケージ
dsh-team-autopilot
互換性
未検証
Harness ピア範囲
>=0.2.1-rc.2 <0.3.0 || >=0.2.2-alpha.2 <0.3.0-0
Cordis ピア範囲
>=4.0.5 || >=4.0.5-alpha.1 <5.0.0-0 || >=4.0.6-alpha.1 <5.0.0-0
バージョン
0.6.4
ライセンス
MIT
最終更新
2026/10/29

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add dsh-team-autopilot

ドキュメント

README 全文を読む ↗

配置

键默认说明
enabledtrue关掉后只保留状态工具,不跑循环
tickTimeoutMs30000每次等待窗口,原生硬限制 10000–3600000
maxConcurrent2团队并发预算默认值(见下)
wakeCooldownMs60000同一任务在该窗口内不重复唤醒
dryRunfalse只记录决策,不发消息
teamBudgets{}按团队覆盖并发预算,key 为团队 TeamId(root Session 标识)
errorThreshold3连续 sendMessage 失败几次后切开熔断
openCooldownMs60000熔断打开后保持多久再半开探针
halfOpenProbe1半开阶段允许的探针派发次数
reclaimAfterMs300000持有者 inactive 持续多久后把任务收回池子(1000–3600000)
reclaimOnFailedtrue持有者 failed 时是否立即回收
reclaimRetryLimit3同一任务被回收几次后停止派发(0 = 不限,0–32)。见第 9 条
statusFile''状态有变化时追加一行到该文件(绝对路径),空 = 关闭。见下「零 token 观测」
statusHeartbeatMs600000状态未变也至少这么久写一行;0 = 逐轮写
livenessEnabledtrue是否订阅 agent/status 用真实的回合边界判定「唤醒是否被答复」,关掉则退回纯计时
livenessGraceMs60000有回合边界证据时,回合结束后多久仍没完成就回收(替代 reclaimAfterMs)
livenessSettleGraceMs3000回合结束后再等多久才把一次唤醒判定为「已被答复」,避开状态写入的竞态
stalledRunningMs900000持有者持续 running/provisioning 多久算卡死并上报;0 = 关闭。只上报,不动任务板
interruptStalledfalse卡死时是否真的 interrupt 那个成员。默认关:中断会掐掉正在做的工作
wakeBudgetPerHour0每队滚动一小时内最多发起多少次唤醒(一次唤醒 = 一个模型回合,也就是钱)。0 = 不设上限。花完的那一轮不再派发,记 why=budget 并累加 budgetSkips

数值越界会被收敛:schema 先拒绝明显非法的输入,resolveConfig 再兜一层。兜底这一层不是装饰——maxConcurrent: 0 会把槽位永久归零,halfOpenProbe: 0 会让熔断器卡在 half-open、从此再不发一条唤醒,而两者都不报错,看起来和「今天没活」一模一样。cordis.patch.yml 只设 enabled: true,其余全部走 schema 默认值——默认值只有一份,把数字抄进 patch 会在默认值改动时悄悄覆盖掉用户意图。要改就在自己的 profile 里按 id: team-autopilot 覆盖。