🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

问题编排看板EricJiang0423/dsh-orchestrator

DeepSeek Harnessspec-screened扫描:高危在 GitHub 查看 ↗
未验证

为每个仓库建看板,自动调度并审批代理提出的问题

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

面向 DeepSeek Harness 的本地优先问题看板:看板数据、面向模型的工具、全新智能体规划循环,以及针对智能体所提议问题的人工审批队列。

综合分
27.5
GitHub 分
27.5
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add EricJiang0423/dsh-orchestrator
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · chat
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 41 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-commands@deepseek-ai/dsh-goal@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
English ·

dsh-orchestrator

面向 DeepSeek Harness 的本地优先问题编排器:每个仓库一块看板,每个问题一个全新会话,以及一个自行处理队列的调度器

Cordis 插件 · 工作区范围看板 · 每问题会话 · 自动拉取调度器 · 两道人工审批关卡

功能特性

| 功能特性                  | 描述                                                                                                                                                                                                                                                                         |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 每个仓库一块看板 | 看板绑定到会话的工作目录,而非对话:同一仓库中的两个会话共享一块看板,而另一仓库中的会话看到自己的看板——由宿主进行解析,因此浏览器永远不会混淆项目                                               |
| 每个问题一个全新会话  | “处理此问题”会打开一个全新会话,其中包含该问题的简报,并将问题绑定到该会话,因此每个问题的记录和成本都各自独立——并且可以同时运行多个                                                                                                           |
| 自动拉取调度器      | 调度器最多保持 N 个问题在处理中,并自行从 todo 补充——优先处理最高优先级——看板头部提供并发数和自动拉取开关的实时控制                                                                                             |
| 三道人工关卡 | 智能体永远无法将问题移出 proposed,永远无法将问题标记为 done,也永远无法将其搁置为 archieved:提案需要你的批准,完成的工作需要你的验收,而归档已验收的工作也由你负责——所有这些都在服务层强制执行,而非 UI 层 |
| 持久化审批队列 | 智能体提出的问题会进入 proposed 列,并一直停留在那里,直到人工批准或拒绝——与一次性的审批提示不同,它在重启后依然持久存在 |
| 看板作为聊天对等方 | 看板会注册到对话视图环中,因此它会作为 Chat 和 Trajectory 旁边的标签页出现,而不是一个单独的页面 |

截图

使用示例数据渲染的看板——不包含任何真实部署的项目详情。

看板视图:工作区范围的看板,包含审批队列、调度器条带(自动拉取开关、并行度、实时运行/等待计数),以及正在进行中的问题上的会话标签:

看板视图:proposed、backlog、todo、in progress、in review 和 done 列

问题详情,从卡片展开,显示统一的验收控件——Accept,或 Send back 并附上作为评论落地的原因:

从卡片展开的问题详情,包含验收控件、描述、标签和评论记录

快速开始

前置条件

- Node.js 22.5+
- 一个正在运行的 DeepSeek Harness 配置文件

从源码安装(推荐)

克隆、构建,并将检出目录链接到配置文件中。在检出目录内运行 dsh plugin add . 会注册本地构建,因此之后运行 npm run build 无需重新安装即可被识别:

git clone https://github.com/EricJiang0423/dsh-orchestrator.git
cd dsh-orchestrator
npm install && npm run build
dsh plugin --profile web add .

lib/ 是被 gitignore 的构建输出。当它缺失时,npm test 会自动构建它(pretest 钩子会先运行 npm run build),因此在全新克隆后,你可以在 npm install 之后直接运行测试,无需手动构建。一旦 lib/ 存在,npm test 会跳过重新构建以保持速度——请显式运行 npm run build 来测试你最新的源码更改。

从 npm 安装(注册表)

⚠️ 注册表上未加作用域的 dsh-orchestrator 属于一个无关项目(zibo/dsh-agent-mesh)。本项目发布在某个作用域下:

dsh plugin --profile web add @ericjiang0423/dsh-orchestrator

运行

dsh --profile web

用法

无需离开聊天即可捕获问题

/task Fix the flaky checkout test

从另一个插件调用看板

import type {} from '@ericjiang0423/dsh-orchestrator'
export const inject = ['taskboard']

export function apply(ctx: Context) {
const open = ctx.taskboard.listTasks({ status: 'todo' })
}

调用 RPC 端点

const res = await fetch('/_dsh/taskboard/rpc', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
method: 'task.update',
params: { id, patch: { status: 'in_review' }, expectedVersion: 3 },
}),
})

配置调度器和规划循环

- id: taskboard
config:
scheduler:
concurrency: 2
autoPull: true
plan:
maxRounds: 16
maxHandoffChars: 8192

架构

%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '14px'}}}%%
graph LR
UI[Board ViewReact] -->|RPC + SSE| SVC[Taskboard ServiceCordis Plugin]
TOOLS[taskboard_* ToolsModel-facing] --> SVC
PLAN[taskboard_planWorkflow Engine] -->|fresh subagents| TOOLS
SVC --> DB[(Storage Domain)]
SVC --> WS[Workspace Registrycwd → workspace]
SCHED[Schedulersession-link] -->|agents.create| ISS[Per-Issue Sessionsctx.agents]
SVC --> SCHED
ISS --> SVC

classDef client fill:#3B82F6,stroke:#2563EB,color:#fff,stroke-width:2px
classDef service fill:#10B981,stroke:#059669,color:#fff,stroke-width:2px
classDef data fill:#8B5CF6,stroke:#7C3AED,color:#fff,stroke-width:2px

class UI client
class SVC,TOOLS,PLAN,SCHED,ISS service
class DB,WS data

浏览器端从不直接与存储通信。每一次读取和写入都经过 ctx.taskboard,无论调用方是看板自身的 RPC 路由、面向模型的工具、规划循环,还是调度器——因此两道人工关卡(不可自行审批、不可自行验收)集中在一处,并对所有调用方生效。调度器是唯一会自行启动工作的组件,并且它只从 todo 中拉取任务,而只有人类才能将议题置入 todo。

配置

| 键                          | 默认值  | 描述                                                                                                                         |
| --------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| scheduler.concurrency     | 1     | 可同时运行的议题数量;可从看板头部实时更改                                                                                   |
| scheduler.autoPull        | true  | 看板是否自行从 todo 中拉取任务;可从看板头部实时更改                                                                       |
| scheduler.sweepIntervalMs | 30000 | 安全网式清扫,释放被已消失会话占用的槽位                                                                                     |
| plan.subagentProvider     | spawn | 每一轮规划所使用的全新结构化输出子代理提供方                                                                                 |
| plan.maxRounds            | 32    | 单次 taskboard_plan 运行的默认值和上限;调用可以降低它,但绝不能提高它                                        |
| plan.maxHandoffChars      | 16384 | 单轮结构化报告中序列化字符的最大数量;超大的报告会导致运行失败,而不是被截断 |
| plan.maxIssues            | 16    | 单次规划运行中允许纳入的最大问题数量                                                                                |

API

浏览器端通过一个端点 POST /_dsh/taskboard/rpc 与宿主端通信,请求体中包含 { method, params },而不是为每个资源使用一个 REST 路径。DeepSeek Harness 的类型化 RPC 层需要构建时代码生成,而本插件的构建不会运行该生成,因此该路由被有意设计为显式形式——原因参见 docs/spike-findings.md。

| 方法                | 描述                                                                                    |
| --------------------- | ---------------------------------------------------------------------------------------------- |
| board.view          | 此会话所属的看板(根据其工作区解析),并带有实时调度器状态     |
| project.list        | 列出所有项目                                                                             |
| project.create      | 创建一个项目                                                                               |
| task.list           | 列出问题,可选按项目、状态或会话进行筛选                                |
| task.get            | 读取一个问题及其评论和活动记录                                            |
| task.create         | 创建一个问题                                                                                |
| task.update         | 更改一个问题;拒绝过期的 expectedVersion                                             |
| comment.create      | 向一个问题添加评论                                                                      |
| task.start          | 为某个问题打开一个全新会话,并将工作交给它                                        |
| task.startNext      | 启动下一个 todo 问题——优先级最高者优先——而无需指定具体问题                      |
| task.accept         | 接受已完成的工作(in_review → done)——这是任何代理都无法通过的人工关卡                 |
| task.sendBack       | 将已完成的工作连同原因退回 todo(记录为一条评论),并解除其会话绑定 |
| scheduler.configure | 更改并发数或自动拉取开关;返回结果状态                        |

变更通知通过 GET /_dsh/taskboard/events 以服务器发送事件(Server-Sent Events)的形式流式传输。

目录结构

src/
├── client/              # 浏览器端部分
│   ├── board.tsx         # BoardView:列、卡片、调度器条带、审批 + 验收控件
│   ├── index.tsx          # 客户端插件入口,插槽注册
│   ├── rpc.ts              # 基于 fetch() 的 RPC 客户端 + SSE 订阅
│   └── styles.ts            # 仅布局的 CSS;每种颜色都是主题令牌
├── domain.ts             # Zod schema 和状态机
├── service.ts            # ctx.taskboard:读取、写入、版本 CAS
├── rpc.ts                 # 宿主 RPC 路由 + SSE 变更流
├── tools.ts                # 面向模型的 taskboard_* 工具
├── command.ts               # /task 人类命令
├── plan-loop.ts               # taskboard_plan:固定的规划循环
├── session-link.ts              # 工作区解析、按 issue 的会话、调度器
├── skill.ts                      # 注册 manage-taskboard 技能
├── actors.ts                      # 参与者身份
├── wire.ts                         # 共享的浏览器  宿主 RPC 类型
└── index.ts                        # 插件入口:挂载每一个面
test/                    # node:test 测试套件
skills/manage-taskboard/  # 捆绑的工作约定技能
docs/                     # 扩展点研究笔记

技术栈

运行时

| 技术  | 用途                                                                 |
| ----------- | ----------------------------------------------------------------------- |
| TypeScript  | 插件两半部分的源语言                                  |
| Cordis      | 宿主插件框架:服务、效果、依赖注入          |
| Zod         | 四个存储域表的 schema 验证                    |
| Schemastery | 插件 Config 验证                                              |
| React       | 看板视图渲染(对等依赖,由宿主在运行时提供) |

构建与测试

| 技术          | 用途                                                                  |
| ------------------- | ------------------------------------------------------------------------ |
| esbuild             | 将浏览器半部分打包成宿主所服务的客户端模块封装 |
| Node.js 测试运行器 | node --test,无测试框架依赖                              |

贡献

1. Fork 仓库
2. 创建功能分支(git checkout -b feature/amazing)
3. 提交你的更改(git commit -m 'feat: add amazing feature')
4. 推送到分支(git push origin feature/amazing)
5. 打开一个 Pull Request

许可证

Apache-2.0。领域模型和 issue 流转规则源自 dashi-taskboard —— 参见 NOTICE。

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

💬 加入社群

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

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群