DeepSeek Harness Hub
← 返回列表

Ready22Race/dsh-team-task

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

team-task — 面向 DeepSeek Harness 的长周期多智能体任务

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/17 · 已提供中文文档

DeepSeek Harness(dsh)的团队任务:长时程多智能体任务——经审查的计划 DAG、运行时拥有的结算、事件日志真相、常驻协调器

综合分
28.9
GitHub 分
28.9
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Ready22Race/dsh-team-task
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-subagent@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

team-task — 面向 DeepSeek Harness 的长周期多智能体任务

npm version
MIT license
DeepSeek Harness plugin

一个 DeepSeek Harness (dsh)
插件:lead 会话规划一张经过评审的 DAG,持久化的 members 执行
其节点,一个常驻的 reconciler 持续推动任务前进——跨越模型
故障、中断的轮次以及 harness 重启。

为耗时数小时而非数轮的目标而构建。

为什么

针对短时爆发优化的团队插件在长任务上会以可预测的
方式失败。team-task 的应对方案,一张表说明:

| 长任务失败 | team-task 的应对 |
|---|---|
| 成员完成了但从未调用完成工具 | 运行时主导的结算:无论怎样,运行都会在其空闲边界结算;工具只是加速,绝不设卡 |
| lead 会话在任务中途离线 | 常驻 reconciler 按定时器重新推动每个任务;lead 一回来工作就恢复 |
| 早期的幻觉污染下游工作 | 评审门:只有 lead 的 approve 才能解锁依赖项;rework 将反馈送回同一节点,尝试次数是一等历史 |
| 被重新分配的 worker 写入迟到的结果 | 在仅追加事件日志上的栅栏令牌;过期栅栏在日志层被拒绝,而非靠礼节 |
| 进程崩溃、唤醒丢失、消息滞留 | 事件日志是唯一真相;投递是调度器的职责,并在每次推动时重试 |
| 每个请求中的协议提示词开销 | 渐进式 playbook:约 8 行的常驻触发器;lead/member 协议按需通过 team_task_playbook 加载 |

完整理由、公理、状态机以及事件日志原生的看板设计:
docs/design.md。

快速开始

前置条件:Node ^22.19 || >=24(Node 23 无法启动 dsh)。

1. 安装 dsh(如果已有可跳过):

npm i -g @deepseek-ai/dsh

2. 添加插件 —— 任选其一:

npm(推荐)
dsh plugin --profile web add @ready22race/dsh-team-task

直接从 GitHub(仓库自带构建产物——无需构建步骤)
dsh plugin --profile web add github:Ready22Race/dsh-team-task

从源码(贡献者;以指向你本地检出的链接方式安装)
git clone https://github.com/Ready22Race/dsh-team-task.git
cd dsh-team-task && pnpm install && pnpm build
dsh plugin --profile web add .

3. 验证组合(应看到一行 id: team-task):

dsh --profile web --dump-config

4. 启动 dsh(plugin add 之后需要重启——bundle
列表在进程内被缓存):

dsh web

5. 首次运行 —— 打开 http://127.0.0.1:3080,设置模型密钥
(Settings → Models)并选择一个工作区,然后发送:

用 team-task 跑一个长任务:先加载 lead playbook,规划一张带依赖和
预指派(assignee)的节点图,逐节点评审,最后合并交付。
你应该看到:对话中有一张任务卡片,右侧有看板浮层(segments / filters / node cards / inspector),以及磁盘上的 /.team-task/tasks//log.jsonl。预分配的节点会在其依赖项批准后自动流转;其他所有内容都等待你的显式派发或审查。

工具

| 工具 | 使用者 | 作用 |
|---|---|---|
| team_task_playbook | 任何人 | 按需加载 lead / member / recovery 协议 |
| team_task_create | lead | 创建任务(+ 可选的初始计划 DAG) |
| team_task_add_member | lead | 生成一个持久成员,带有角色配置(provider/model/effort/playbook;省略的字段继承 lead 的路由) |
| team_task_plan | lead | 添加 / 更新 / 取消计划节点 |
| team_task_dispatch | lead | 派发一个节点(fence++),派发给某个成员、共享池或 lead 自身 |
| team_task_await | lead | 阻塞直到有审查工作出现或所有节点都尘埃落定——而不是轮询 |
| team_task_complete | 被指派人 | 用当前 fence + 自包含的输出认领完成 |
| team_task_review | lead | approve(解锁依赖项)或 rework(必须提供反馈,并带入下一次尝试) |
| team_task_send | 任何人 | 向 lead 或队友发送持久消息;由调度器投递 |
| team_task_status | 任何人 | 快照:节点、运行、fence、成员活动、关注列表、你的收件箱 |
| team_task_finish | lead | 关闭并归档(完整事件历史和每次运行均保留) |

存储

/.team-task/
└── tasks/                                  # 任务列表,按时间顺序排序
└── 20260816-2145-竞品分析示例任务/       # id = 创建时间戳 + 名称 slug(保留 CJK)
├── log.jsonl        # 仅追加的事件日志——唯一真相
├── snapshot.json    # 最新投影(团队情况 + 节点 + seq);派生
└── inbox/
├── lead.jsonl   # 按收件人的邮箱镜像;派生,人类可读
└── .jsonl

log.jsonl 是唯一真相来源;每个界面(工具、看板路由、离线校验)都折叠相同的事件,任何历史上的“时刻 T 的团队情况”都是对日志前缀的重放。snapshot.json 和 inbox/ 是写穿透的派生视图,供人类使用——可安全读取,绝不手工写入,也绝不会被代码读回。

配置

- id: team-task
config:
stateDir: .team-task
memberProvider: spawn      # 子代理运行时后端,不是 LLM provider
memberMaxDepth: 1
maxMembers: 8
reconcileIntervalMs: 30000

开发

pnpm install
pnpm build
pnpm verify   # 离线:fences、审查门、返工、结算、重放确定性

发布(维护者)

仓库提交了 lib/,因此 github: 安装无需构建步骤——始终从干净的 pnpm build 发布(css-module 哈希是仓库相对的,因此输出与机器无关)。

npm login                      # 账户必须拥有 @ready22race 作用域
npm publish --otp=   # prepublishOnly 会先运行 build + verify

启用 2FA 后,单独执行 npm publish 会返回 403 —— 请传入 --otp,或创建一个
作用域限定为此包、带有“绕过 2FA”权限的细粒度访问令牌,并将其放入
~/.npmrc 以用于令牌化发布。发布后,为发布打标签:
sh
gh release create vX.Y.Z --title "dsh-team-task X.Y.Z" --generate-notes

状态与路线图

- M1(本次发布) —— 宿主插件端到端:工具、事件日志、fence、
调度器 + 协调器、运行时结算、评审/返工、playbook、看板
数据路由(/plugins/team-task/state、/plugins/team-task/log)。
- M2 —— 事件日志原生的看板 UI(看板泳道 + DAG 叠加层 +
关注条 + 每节点运行时间线 + 回放滑块;design.md §6)。
- M3 —— 消费确认式投递与无父级成员唤醒(需要
上游接缝;跟踪于 design.md §7)、npm 发布、按运行成本
核算。

已知限制(v0.1):成员唤醒仍需要活跃的 lead Agent(这是
上游 followup 约束 —— 协调器会在 lead 返回时恢复工作);
message_delivered 标记的是收件箱接收,而非轮次消费。

中文速览

team-task 是面向长任务的 dsh 多智能体插件:lead 规划一张需评审的
DAG,durable member 执行节点,常驻 reconciler 保证崩溃/重启后任务继续。

核心主张(详见 docs/design.md):

1. 事件日志是唯一真相 —— 状态是 log.jsonl 的纯投影,看板/工具/验证
折叠同一份事件,重放即历史。
2. 进度归运行时,表达归模型 —— 成员不调完成工具也会在 idle 边被结算;
工具只是加速,不是闸门。
3. fence 即运行权 —— 每次派发递增 fence,旧 fence 的迟到写入在日志层
被拒;停止 = 撤销 fence,不是发消息。
4. 投递归调度器 —— 消息先落日志(立即安全),调度器在 idle 边 / 定时
sweep 时投递;没有“队长在线才能通信”。
5. 评审是默认闸门 —— 只有 lead approve 才解锁下游;rework 必须带
反馈,原节点重派、attempt 历史完整保留;机械节点可声明 auto_approve
走快速档。
6. 渐进式 playbook —— 常驻 prompt 只有 ~8 行触发器,完整协议按角色
(lead / member / recovery)用 team_task_playbook 按需加载。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群