为 DSH Web 提供可交互画布,用于展示 Agent、Subagent、Workflow、Phase 与工具调用之间的关系。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-agent-canvas
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Lhy723/dsh-agent-canvas
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-agent-canvas
把一个 DSH Web 会话里的 Agent、Subagent、Workflow、Phase 和工具调用,变成一张可交互、实时更新的关系画布。
它作为 conversation.view 插件注册在“对话”和“轨迹”之后:打开 Agent 画布 Tab,就能从全局视角观察一次运行如何拆分任务、调度子代理、执行工具,并在浅色 / 深色主题之间自动适配。
宣传图中的二次元角色依据项目提供的视觉参考重新创作,用作仓库的 GitHub Social Preview;界面截图为与当前组件行为一致的示例会话。
功能
- 力导向图布局
- 节点之间自动排斥,有连线的节点互相牵引。
- 支持拖动节点、拖动画布、滚轮缩放。
- 实时数据同步
- 与对话记录同源:
useSession/useSessions读取会话快照和会话列表。 - Subagent / Workflow / 工具调用状态变化时,画布自动更新。
- 与对话记录同源:
- Workflow 按 Phase 分组
- 主 Agent → Workflow → Phase → Subagent,层级清晰。
- 卡片式节点
- Workflow / Phase / Subagent 使用白底圆角卡片。
- 左侧彩色条区分类型,顶部状态点 + 类型徽标 + 名字,下方内容可滚动。
- 工具和主 Agent 使用圆形节点。
- 力导向参数实时调节
- 右上角 ⚙ 设置面板,可实时调整:
- 向心力
- 节点排斥力
- 连线吸引力
- 连线自然距离
- 阻尼
- 参数自动持久化到
localStorage,刷新后保留。
- 右上角 ⚙ 设置面板,可实时调整:
- 跟随 DSH 明暗模式
- 自动监听
data-ds-dark-theme,画布和卡片在浅色/深色模式下自动适配。
- 自动监听
功能速览
| 模块 | 你能看到什么 | 交互 / 行为 |
|---|---|---|
| Agent & Subagent | 根 Agent、直接子代理、运行状态和任务摘要 | 节点可拖动,状态变化会实时更新 |
| Workflow & Phase | Workflow → Phase → Subagent 的层级关系 | Workflow 成员不会重复连回根 Agent,图更清晰 |
| 工具调用 | 运行中的工具,以及最近完成的工具结果 | 活动连线使用虚线,最近最多保留 12 个结果节点 |
| 力导向布局 | 向心力、排斥力、吸引力、自然距离、阻尼 | 右上角 ⚙ 面板实时调整,并持久化到 localStorage |
| 画布操作 | 平移、缩放、视图重置 | 鼠标拖拽背景 / 节点,滚轮缩放或使用右侧按钮 |
| 主题适配 | DSH Web 的浅色和深色模式 | 自动监听 data-ds-dark-theme |
演示截图
浅色模式:从 Agent 看到完整协作树

深色模式:打开力导向参数面板

关系模型
画布使用和会话区相同的数据源,节点关系大致如下:
主 Agent
├── Workflow
│ └── Phase
│ └── Subagent
├── 直接 Subagent
└── Tool / Tool result
目录结构
dsh-agent-canvas/
├── package.json # dsh.bundle + dsh.client 声明
├── cordis.patch.yml # 作为 bundle 安装时的 loader 行
├── scripts/build.sh # host 半区 tsc 编译
├── tsdown.config.ts # client 半区 tsdown 打包配置
├── docs/assets/
│ ├── social-preview.png # 1280 × 640 GitHub Social Preview
│ ├── social-preview.svg # 宣传图排版源文件
│ ├── social-preview-base.png # 生图底稿
│ ├── agent-canvas-overview.png # 浅色模式演示图
│ ├── agent-canvas-dark-settings.png # 深色模式 / 设置面板演示图
│ └── *.svg # 演示图源文件
└── src/
├── index.ts # host loader 入口(纯 UI 插件,空 apply)
└── client/
├── index.ts # 注册 conversation.view 第三个 Tab
└── AgentCanvasView.tsx # 画布、布局和设置面板
构建与开发
npm install
npm run build # tsc 编译 src → lib
npm run build:client # tsdown 打包浏览器 bundle → lib/client.js
npm run typecheck # 类型检查
scripts/build.sh 会自动从 DSH_CHECKOUT 或全局 @deepseek-ai/dsh 安装中链接 @deepseek-ai/* 类型包。
安装到 DSH web profile
从 npm 安装
npm install dsh-agent-canvas
dsh plugin --profile web add ./node_modules/dsh-agent-canvas
从 tarball 或本地源码安装
npm pack
dsh plugin --profile web add ./dsh-agent-canvas-0.1.0.tgz
# 或本地目录
dsh plugin --profile web add .
连线逻辑
- 主 Agent → Workflow:发起 workflow
- Workflow → Phase:workflow 的阶段分组
- Phase → Subagent:该阶段派生的 subagent
- 主 Agent → Subagent:不属于任何 workflow 的直接子代理
- 主 Agent → 工具节点:工具调用 / 工具结果
Workflow 成员不会重复连回主节点,避免图变得稠密。
使用 Subagent / Workflow 的配置提示
标准 DSH base + web-app 已包含相关服务,但模型侧工具由 agent preset 控制。
如果模型没有 subagent / workflow 工具,可以在 profile patch 中启用:
# ~/.dsh/profiles/web/cordis.patch.yml
- id: tool-subagent
disabled: false
- id: tool-subagent-control
disabled: false
- id: tool-subagent-list-agents
disabled: false
- id: tool-subagent-fork
disabled: false
- id: workflow-worker-thread
disabled: false
- id: tool-workflow
disabled: false
链接
同类插件
Q00/ouroboros#integrations/dsh-plugin★ 6144
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。
loopx-project/loopx#dsh-loopx-plugin★ 6111
LoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
chuspeeism/dashi-taskboard#deepseek-harness★ 3262
把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述文件连接,而不是使用固定端口。
NanmiCoder/dsh-agent-teams★ 1848
AgentTeams 多智能体团队。
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1205
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。
tong-io/tongflow#dsh-tongflow★ 1034
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。