dsh-deepseek-flow

49Star4Fork1Issue1Watching

为 DeepSeek Harness 提供 Markdown 优先的可视化工作流编辑器,画布与文档双向同步,并支持可计算的布尔逻辑门判定。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
ai-workflowdark-modedeepseek-harnessdeveloper-toolsdsh-pluginflow-editormarkdownvisual-workflow

安装

$ dsh plugin --profile web add github:kanghelyu/dsh-deepseek-flow

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 kanghelyu/dsh-deepseek-flow:先查看仓库 https://github.com/kanghelyu/dsh-deepseek-flow.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

DeepSeek Flow 是 DeepSeek Harness Web 端的可视化工作流编辑器,把一份 WORKFLOW.md 与每步独立的 STEP.md 文件变成可编辑的流程图,画布与 Markdown 双向同步。插件只做编辑、保存与确定性布尔门求值,不运行 Agent 步骤,真实执行仍在当前 Session 内完成。

核心能力

  • WORKFLOW.md 总控文档和每步的 STEP.md 工作区渲染成可编辑的可视化流程图
  • 在画布与 Markdown 之间双向同步,新增、移动、连接、删除节点或箭头都会写回工作流文件
  • 提供八类逻辑门(IF/ELSE、AND、OR、NOT、NAND、NOR、XOR、XNOR)与确定性布尔求值,结果不依赖运行 Agent
  • 通过 flow_create / flow_put / flow_list / flow_read / flow_evaluate / flow_finalize_canvas / flow_delete 等 Agent 工具创建、导入、读取、删除工作流
  • 按 Session 隔离工作流,跨 Session 切换会复制为当前 Session 的独立副本;支持共享模板
  • 手动触发逻辑校验、单文档 AI 优化与整工作流 AI 优化,结果和未应用草稿落盘保存,切视图或重启不丢

技术实现

  • 语言: JavaScript(ES Module,TypeScript 风格),客户端使用 React 18 + 原生 SVG 画布
  • 关键依赖: @deepseek-ai/dsh-typert-protocol@deepseek-ai/dsh-tools(peer)、zod;开发态依赖 @deepseek-ai/cordis 与若干 @deepseek-ai/dsh-* 内部包
  • 架构模式: Host/Client 分离;Host 在 apply(ctx, config) 中注册 Remote 服务 dflow/* 与 Cordis 工具,Client 注入 conversation.view slot 渲染编辑器;包内附带 SKILL.md,运行时响应式注册 Skill
  • 入口文件: Host 入口 lib/index.js,Client 入口 src/client/entry.js(构建后产物为 lib/client.js),调度入口 cordis.patch.yml

适用场景

当用户希望把多步骤任务(例如「找论文 → 读论文 → 出综述 → 名词解释」)以可视化流程图的方式整理出来,并在 Harness Session 内由 Agent 按节点逐步执行时使用本插件。它也适合需要把已有 Markdown 工作流结构化、加入分支条件或有限重试、并由 Agent 在画布和文档之间双向维护的场景。

前置依赖与兼容性

依赖最低版本说明
DSH0.1.0-rc.6peerDependencies 与 devDependencies 中各 dsh-* 包均为 ^0.1.0-rc.6
@deepseek-ai/dsh-typert-protocol^0.1.0-rc.6运行时依赖,用于 Remote 服务
@deepseek-ai/dsh-tools^0.1.0-rc.6peer 依赖,注册 Agent 工具
平台跨平台插件本身不绑定 OS;DSH Web profile 在 macOS/Windows/Linux 均可运行
原生模块未声明原生依赖,仅使用 Node 内置 node:fs/promisesnode:osnode:crypto

安装方式

dsh plugin --profile web add github:kanghelyu/dsh-deepseek-flow

配置项

本插件通过 cordis.patch.yml 暴露的注入配置包含以下字段;说明列写人话:

配置类型说明默认值
dataDir字符串插件数据目录,存放工作流文件、UI 状态、Assist 结果与回收区未设置时取 $DSH_HOME/deepseek-flow,未设置 DSH_HOME 则取 ~/.dsh/deepseek-flow
assistantProvider字符串AI 助手使用的模型供应商标识;为空时跟随 Session未设置(跟随 Session)
assistantModel字符串AI 助手使用的模型;为空时跟随 Session未设置(跟随 Session)
assistantTimeoutMs数字(毫秒)助手子代理超时,合法范围 10000–600000;超过 600000 会被截断600000(10 分钟)
assistResultTtlMs数字(毫秒)AI 助手结果保留时长;不设置则永久保留直到用户显式丢弃未设置(永久保留)

常见问题

Q: 这个插件是工作流运行器吗?

A: 不是。DeepSeek Flow 只负责编辑、保存与确定性布尔门求值;Agent 步骤与完整工作流的真实执行仍在当前 Harness Session 内由 Agent 完成。

Q: 安装后看不到 DeepSeek Flow 标签怎么办?

A: 先用 dsh web --dump-config | grep deepseek-flow 确认插件已挂载。若已经挂载但下拉为空,需要完全停止再重启 dsh web(仅刷新浏览器不够,因为 Typert 路由表在进程启动时快照)。

Q: AI 整工作流优化写不进去是什么原因?

A: 通常是 Agent 工作期间原文发生了变化,或 Agent 没有返回全部必需文档。优化器会基于原始 revision 比对,发现原文变化就拒绝覆盖;请让 Agent 基于最新文件重新生成。

Q: 删除的工作流能找回吗?

A: 可以。插件托管的工作区会被移到 ~/.dsh/deepseek-flow/trash/<日期>/ 目录,把整个工作区目录复制回 workspaces/ 即可恢复文档;flow 定义本身可用导出的 JSON 通过 flow_put 重新导入。

Q: 条件框为什么必须用 truthy/falsy/nonEmpty 而不能写自然语言?

A: 逻辑门只做确定性布尔运算,不理解语义。要做语义判断,应在条件框上游加一个 Agent 步骤,让它输出 JSON 布尔值 truefalse,再连到 predicate: "truthy" 的条件框。

Q: 什么是有限反馈边?什么时候用它?

A: 反馈边是带 maxIterations(1–1000 的正整数)和非空 exitCondition 的回退箭头,用来表达有限重试;它不参与单次布尔门求值,也不会自动执行步骤。普通执行箭头必须无环,要做重试只能画反馈边。

Q: 直接编辑文件后 Studio 一直显示「应用修改」怎么办?

A: 等几秒让 Studio 通过文件来源兜底机制自动按下隐藏定稿动作,或让 Agent 调用 flow_finalize_canvas(传入工作流 id 与当前 revision)显式触发确定性定稿,跳过主 Session 重复审核。

上手难度

入门 — 安装后让 Agent 用自然语言说「构建工作流」即可生成第一份流程图;普通用户无需阅读 README 也能上手,进阶配置(有限反馈边、跨 Session 切换、AI 优化)才需要查阅文档。

已知问题与限制

  • 修改 Host 代码或新增 Remote 方法后必须完全重启 dsh web,仅刷新浏览器或硬刷新都不能让新的 /api/dflow/* 接口生效(CHANGELOG.md:5-45、README.md:230)
  • 0.3.21 曾出现 @deepseek-ai/dsh-tools 重复副本导致所有 DSH 工具调用失败的严重问题;当前版本通过将其移入 peerDependencies 并在运行时桥接 TOOL_RUNTIME_SCHEDULER 修复(CHANGELOG.md:78-82、lib/index.js:967-978)
  • harness-flow 数据目录中的无主 flows 会在首次启动时自动迁移为共享模板(排除 starter-flow 示例);迁移是一次性的,不会回写(lib/index.js:1054-1073)
  • applyChanges(应用修改)只接受显式有限反馈边的回环,普通执行箭头有环会被校验拒绝;IF/ELSE 出线必须各只有一条,NOT 只允许一条(lib/flow-validation.js:78-85、lib/graph-analysis.js:76-96)
  • flow_finalize_canvas 排队后 30 分钟内未被 Studio 消费即过期,需要重新调用(lib/index.js:44、lib/index.js:914-923)
  • 插件不做工作流执行、API Key / 凭据管理、定时任务、Webhook 与执行历史;这是产品边界,详见 README.zh-CN.md 功能边界章节

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/kanghelyu/dsh-deepseek-flow)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录