dsh-ai-studio
Verifieddsh-ai-studio · v2.5.3 · MIT · Web UI
Install-and-use AI studio for DeepSeek Harness: owner dashboard, Agent dispatch, token budgets, decision desk, branch/contract conflicts, worktree code execution, host verification, independent AI review, automatic integration gates, docs sync and irrever
Install
dsh plugin add dsh-ai-studio Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-ai-studio
即装即用的 DeepSeek Harness AI Studio:工作室仪表盘、Agent 派单、token 预算、决策台、支线/契约冲突、worktree 代码执行、项目、角色、任务、验收、合并治理,一个独立页面。
当前版本 2.5.3,已在 DSH 0.2.1-rc.2 上完成端到端验证(Web/桌面安装、页面渲染、任务创建、验收门禁、合并治理、工作室仪表盘、Agent 派单与结构化回执、token 计量、决策台、支线/契约冲突自动升级、git worktree 代码编辑与自动提交、Host 独立验证、独立 AI 评审、自动集成分期、文档同步与不可逆决策门禁、ADR 草稿与写入、人工触发的 Git merge 与合并后回归、合并失败升级与回滚、改修票诊断/计划门禁、失败 2 次自动升级与重拆、合并前验证门禁、项目知识/模块契约、契约越界护栏、集成/playtest ticket、真实项目 dogfood、数据导出/导入恢复、Claude Code / Codex CLI 执行器、项目包导出/导入、切换 DSH 页面后保持 Studio 导航位置)。


它是什么
Studio 把 DSH 从「一个会话」扩展成「一间工作室」:
- 公司仪表盘:跨项目的项目组合、老板收件箱、角色负载、风险雷达和交付流;token 消耗来自 DSH meter,金额成本等报价接入后再显示。
- Agent 分析派单:在 Task Room 把任务派给负责人角色,DSH Agent 读取任务/契约后返回
summary / evidence / artifacts / decisions / contract_deltas / rejected_options / blockers结构化回执。 - 决策台:Agent 的项目级决策建议自动进入待裁决;Owner 在独立页面批准/拒绝并记录结论与理由。Agent 不能替 Owner 拍板。
- 支线/契约冲突:每次派单自动登记支线;Agent 回执里的
contractDeltas写入契约变更。两条支线改同一契约且内容不同时,自动升级为待裁决决策。 - worktree 代码执行:项目绑定 git 仓库后,每个任务自动创建
.worktrees/<taskId>和studio/<taskId>分支;Agent 在 worktree 内改代码,Run 记录 diff;主工作区不被直接修改。 - Host 独立验证:Task Room 的验证命令由 Studio Host 在 worktree 内执行,记录退出码/输出并写 evidence;不依赖 Agent 会话,也不会自动通过验收。
- 工作流护栏:Task 记录模块/契约/票类型;连续失败 2 次自动 blocked 并升级决策;代码项目没有通过的验证时不能提交合并提案。
- 项目知识层:绑定 PRD / INVARIANTS / MODULES 路径,只读查看仓库原文;Module 契约卡记录职责、接口摘要、允许/禁止路径与依赖,派单时自动加载对应模块契约。
- 契约护栏:代码 Run 改动模块契约文件、禁止路径,或越出允许的
src//test/路径时,任务自动 blocked 并生成「契约越界」决策,不静默接受。 - 集成/重拆闭环:Task 可标记为集成/playtest ticket;连续失败 2 次自动生成 Architect 重拆 ticket(backlog),而不是只留一个决策。
- 独立 AI 评审:验收人角色另开 Agent 会话,只读 diff 和 Host 验证输出,给出 pass/fail 与具体发现;代码任务没有通过的评审不能 done。
- 自动集成分期:每完成 3 个任务自动生成一张 backlog 集成/playtest ticket(打包可玩 + 人玩 10 分钟),不会自动派单。
- 文档同步门禁:项目绑定 PRD/INVARIANTS/MODULES 时,任务 done 前必须勾选“文档已同步”。
- 不可逆决策:Decision 可标记不可逆;批准时必须写结论和理由。
- ADR 草稿:不可逆决策批准后自动生成 Markdown ADR 草稿(标题/背景/决策/理由/建议),保存于决策记录,不自动写文件。
- 评审同族提示:评审模型与实现模型相同时,Task Room 显示共享盲点警告。
- 人工触发 Git merge:已批准提案可在 Task Room 执行真实
git merge --no-ff;要求当前在 base、工作区干净、分支存在;冲突自动 abort,不自动 push。 - 合并后回归:merge 成功后自动在 repo 执行任务验证命令,记录 pass/fail 和输出;失败不会自动回滚。
- 合并失败升级:post-merge 回归失败时自动生成「合并后回归失败」决策,附 merge commit、回滚命令和修复选项。
- ADR 落盘:人工确认后将 ADR 草稿写入
docs/adr/,自动取下一个四位编号;幂等,不覆盖已有路径。 - 合并回滚:回归失败的 merge 可人工触发
git revert --no-edit <mergeCommit>,记录 rollback commit;不 reset、不 push。 - 改修票工序:
kind=fix的任务必须有 diagnosis 和 plan 才能派单;新建型不受影响。 - 1.9.1 修复:回滚改用
git revert -m 1处理 merge commit;新增真实 merge 失败 → 回滚 E2E 测试。 - 2.0 自动提交:Agent 成功后,Host 自动把 worktree 内所有改动(含未跟踪文件)提交到任务分支。
- 2.0 Git 身份预检:merge 前检查 repo 的
user.name/user.email,缺失时给出明确错误。 - 2.0 真实 dogfood:在外部真实仓库完成派单、Host 验证(5/5)、独立评审 pass、merge 和 post-merge 回归(5/5)。
- 2.1 数据导出:右上角「导出」下载完整
studio.json备份(含 schema/版本/时间);/studio-api/export需要 Bearer token。 - 2.2 数据导入:右上角「导入」选择导出文件恢复;Host 先把原文件备份为
studio.json.pre-import-*,校验 schema 后替换。 - 2.4 外部执行器:角色可以选择 DSH Agent、Claude Code 或 Codex CLI;Claude/Codex 必须在对应机器上先登录,Host 在 worktree 内以 headless 模式运行并归一化回执。
- 2.5 项目包:设置页「导出项目包」生成 tar.gz(
studio.json+project.bundle+manifest.json+ 迁移说明 + SHA-256),「导入项目包」校验后 clone 并重绑;不含 API Key。 - 2.5.1 导航保持:切到 DSH 对话再回 Studio,保留上次的页签和打开的任务,不再跳回初始页。
- 角色薪资与预算:角色可配置模型和单任务/每日 token 预算;项目可配置总 token 预算。
- 项目:一个项目边界,下面有角色和任务。
- 角色:持久的职责契约(使命、职责、决策权),不是人设卡。
- 任务:目标 + 负责人 + 验收人 + 可验证的验收标准 + 证据。
- 验收门禁:Agent 不能自己把任务标记为完成;必须勾完验收项,并至少记录一条证据。
- 合并治理:验收通过后可提交合并提案,记录摘要、风险、回滚、评审备注和合并提交;批准、打回、标记已合并都有审计事件。
- 独立页面:DSH 侧栏出现「工作台」,主区域是一整套 Mission Control,不占用聊天会话。
- 本地持久化:数据自动写到
$DSH_HOME/studio/studio.json,重启不丢;首次运行自动生成演示项目。 - 版本适配:
engines.dsh >= 0.2.1-rc.2;宿主只依赖 Web Server 路由、client slots 和 React,不依赖私有 Remote 生成器。
DSH 生态发现
- GitHub topic:
dsh-plugin - npm keywords:
dsh-plugin、deepseek-harness、dsh - package.json 包含
dsh.bundle.patch和dsh.client.platform cordis.patch.yml插入的包名必须与package.json的name完全一致
如果侧栏没有出现「AI 工作室」,优先检查这三处是否一致。
安装
方式 A:桌面端(推荐)
打开 DSH 的 Plugins 页面。
Add plugin → 选择 本地目录,填入:
D:\dsh-ai-studio安装完成后点 Enable now。
刷新页面;左侧栏出现 工作台。
如果打开工作台显示「没有返回启动参数」,请完全退出并重新打开 DSH。桌面端的 Host 启动参数表是在应用启动时收集的,热安装后需要重启一次 Host;0.2.1 的 Boot 回退路径会让后续刷新不再依赖这次重启。
如果 DSH 不让你直接选目录,先在终端打包,再在 Add plugin 里填 tarball 路径:
cd D:\dsh-ai-studio\packages\dsh-studio pnpm pack
方式 B:Web profile
dsh plugin --profile web add "D:\dsh-ai-studio\packages\dsh-studio"
dsh --profile web
打开启动时打印的 URL,左侧栏出现 工作台。
方式 C:打包分发给别人
cd D:\dsh-ai-studio\packages\dsh-studio
pnpm pack
把生成的 dsh-ai-studio-2.5.3.tgz 发给对方,在 Add plugin 里填 tarball 路径即可。
使用
首次打开会自动生成一个「示例项目」、4 个角色和 5 个任务。
- 公司:老板视角的项目组合、老板收件箱、角色负载、风险雷达和交付流。
- 决策台:Agent 提出的项目级决策、人工提出的决策、跨支线契约冲突;批准/拒绝并记录结论与理由。
- 项目:看当前项目的支线、契约变更、任务板、验收、团队和最近事件。
- 任务:点卡片打开 Task Room;勾验收项、写证据、推进状态;未绑定仓库时点「派单分析」,绑定仓库后点「派单执行」,Agent 在 worktree 内工作并把 diff 写入 Run;再用「独立验证」跑测试命令。
- 合并:查看合并队列;批准、打回、记录合并提交。
- 团队:新增角色,写使命/职责/决策权,并配置模型与 token 预算。
- 设置:绑定/更换代码仓库,查看 DSH 版本、兼容状态、数据目录和能力边界。

Task Room 里,验收项、证据和状态推进是同一份事实:没勾完、没证据,就无法验收通过。

合并队列把「验收通过」和「合入主干」分开:提案先评审,批准后才记录合并;打回会把任务退回执行中。
核心规则:
- 新建任务必须至少有一条验收标准。
- 任务进入「已完成」前,所有验收项必须勾选,且至少有一条证据。
- 任务验收通过后才能提交合并提案;合并提案必须有摘要、风险和回滚方案。
- 合并提案被打回时,任务退回执行中;需要重新验收后才能再提交。
- 合并命令由人或 Integrator 执行,Studio 记录治理状态和审计事件,不自动改 Git。
数据与安全
- 数据文件:
$DSH_HOME/studio/studio.json(默认C:\Users\<你>\.dsh\studio\studio.json)。 - 每次进程启动生成随机 Bearer token,只注入当前 DSH 页面;数据接口同源、
Cache-Control: no-store,桌面 Boot 回退使用受控 CORS。 - 不存储模型密钥;不要手动把 token 贴到聊天/日志里。
- 数据损坏时会备份为
studio.json.corrupt-<timestamp>,并重建演示数据。 - 旧 schema(v1-v15)会自动迁移到 v16:增加
mergeProposals、runs、branches、contractChanges、decisions、verifications、reviews、modules、项目仓库/worktree/知识文档路径、任务模块/契约/票类型/诊断/计划/集成标记/重拆来源/文档同步标记、决策不可逆标记/ADR 草稿/ADR 路径、合并后回归/回滚字段、角色模型/预算字段和项目预算;已有项目/角色/任务不丢失。 - 桌面渲染器运行在
dsh-app://上,因此/studio-api/boot会对dsh-app:///nullorigin 反射 CORS 并发放进程级 token;数据接口仍然只认这个 token。Web 端的 Boot 路由继续走 DSH 会话认证。
版本兼容策略
package.json的engines.dsh写成>=0.2.1-rc.2,未来版本不会被硬拒绝。- Host 使用
ctx.webServer.register()、结构化webserver/index-inject、ctx.connection.admit();Client 使用ctx.slots、ctx.layout和平台 React。 - 启动参数有三条路径:页面注入 → 已认证的
/studio-api/boot→ 桌面自定义 origin 的 Boot 回退(只发放进程级 token,数据接口仍需 token)。 - DSH 版本读取顺序:
@deepseek-ai/dsh-app-boot→ 安装包清单 → 环境变量 →unknown。 - 页面会显示兼容状态;能力缺失时显示错误提示,不白屏。
- 如果未来 DSH 改掉
webServer、index injection 或 slots,只需替换src/host/src/client的少量适配代码,领域逻辑不动。
开发
pnpm install
pnpm typecheck
pnpm build
pnpm test
仓库已带
lib/构建产物,所以可以直接安装;改完src/后运行pnpm build重新生成。
构建产物:
lib/index.js:Host 插件(ESM)。lib/client.js:浏览器模块(DSH module-loader 格式,React 外置)。lib/store.js:仅供 Node 测试使用的内部构建。
目录:
packages/dsh-studio/
src/host/ # Cordis 插件、HTTP API、文件存储、版本适配
src/client/ # React 独立页面、API client、样式
src/shared/ # 跨端类型、状态机、标签
tests/ # 存储层单测
cordis.patch.yml
当前边界(v2.5)
- ✅ 项目/角色/任务/验收/证据/事件持久化。
- ✅ 独立页面、侧栏入口、主题、响应式。
- ✅ 验收门禁和状态机。
- ✅ 合并提案、批准、打回、合并记录和审计事件。
- ✅ 公司级 Owner Dashboard:项目组合、老板收件箱、角色负载、风险雷达、交付流。
- ✅ Agent 派单与结构化回执;回执缺
summary/evidence时任务退回可开始,不能进入验收。 - ✅ 角色模型/token 预算、项目 token 预算、DSH token meter 消耗。
- ✅ 决策台:项目级决策持久化、待裁决列表、批准/拒绝、结论与理由、Agent 决策自动入会。
- ✅ 支线自动登记、Agent 契约变更记录、跨支线同契约冲突自动升级为待裁决决策。
- ✅ 项目绑定 git 仓库;每 Task 独立 worktree/branch;Agent 在 worktree 内改代码,Run 记录 branch/workspace/diff。
- ✅ Host 独立验证:验证命令在 worktree 内执行,记录 exit code/输出,通过时写 evidence;不自动通过验收。
- ✅ 工作流护栏:Task 模块/契约/票类型;连续失败 2 次 blocked + 决策升级;代码项目合并前必须有通过的验证。
- ✅ 知识层:PRD/INVARIANTS/MODULES 路径与只读查看;Module 契约卡(职责、契约、允许/禁止路径、依赖)。
- ✅ 契约护栏:代码改动契约文件/禁止路径/越出允许的 src/test 时自动 blocked + 决策。
- ✅ 工作流闭环:集成/playtest ticket 标记;连续失败 2 次自动生成 Architect 重拆 ticket。
- ✅ 独立评审:验收人 Agent 只读 diff/Host 验证,pass/fail + findings;代码任务 done 前必须有通过评审。
- ✅ 自动集成分期:每 3 个完成任务生成一张 backlog 集成票;不自动派单、不替代单任务验收。
- ✅ 文档同步门禁:项目有知识文档时 done 前必须勾选“文档已同步”。
- ✅ 不可逆决策:Decision 标记不可逆后,批准必须写结论和理由。
- ✅ 人工触发 Git merge:已批准提案 + 干净 repo + 当前 base + 分支存在;冲突自动 abort;不自动 push。
- ✅ ADR 草稿:不可逆决策批准后生成 Markdown 草稿,保存在决策记录。
- ✅ 评审同族提示:评审模型与实现模型相同时显示共享盲点警告。
- ✅ 合并后回归:merge 成功后自动执行任务验证命令并记录结果;失败只警告,不自动回滚。
- ✅ 合并失败升级:回归失败自动生成决策台决策,附回滚命令和修复选项。
- ✅ ADR 落盘:人工触发,写入
docs/adr/,自动编号且幂等。 - ✅ 合并回滚:回归失败后可人工触发
git revert,记录 rollback commit;不 reset/push。 - ✅ 改修票流程:diagnosis + plan 必填,缺一不可派单;UI 有诊断/计划字段与校验。
- ✅ 真实项目 dogfood:外部仓库完成一次真实派单→验证→评审→merge→回归;仍不是完整垂直切片。
- ✅ Agent 改动自动提交到任务分支(含未跟踪文件)。
- ✅ Git 身份预检:repo 缺
user.name/email时明确报错。 - ✅ 数据导出/导入:页面「导出」「导入」;导入前自动备份,schema 不支持时拒绝。
- ✅ Claude Code / Codex CLI:角色可选外部执行器;Host 在 worktree 内以 headless 模式运行,回执仍走同一套证据门禁。
- ✅ 项目包导出/导入:状态 + git bundle + manifest + SHA-256;导入前备份,目标目录必须为空。
- ⏳ 项目包自动选择目录(当前用路径输入)。
- ⏳ 直接填写 GPT/Claude/GLM/Kimi API Key;当前外部执行器依赖对应 CLI 的登录态。
- ⏳ Cursor 执行器(Cursor CLI 目前是 IDE 启动器,不是 headless Agent)。
- ⏳ 项目模板/初始化向导、自动回滚策略、项目级阈值/跨厂商配置。
- ⏳ 运行中 token 硬停、金额报价。
- ⏳ 新建型 red→green 强制、完整垂直切片 dogfood。
- ⏳ Project Book 检索、角色/Scope 强隔离。
- ⚠️ Windows 沙箱在部分 worktree 上可能报
SetNamedSecurityInfoW grantWrite,导致 Agent 能改文件但无法启动 shell 跑测试;这属于环境 ACL 限制,Run 会如实记录 blocker。 - ✅ v0.6.1 的 Host 独立验证可以绕过 Agent 会话的 shell 限制,由 Studio 直接执行验证命令;仍不会自动合并或自动通过验收。
v0.6.1 的 Agent 已经能在独立 worktree 内写代码并产生 diff,Verifier 可以用 Host 独立验证拿机器证据;但仍不会 merge/push,验收由人决定。
License
MIT