OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:kanghelyu/dsh-deepseek-flow
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
See the workflow. Keep Markdown portable. Review only real canvas edits.
A visual, Markdown-first workflow editor built for the DeepSeek Harness Web UI.
🌐 Official website — deepseekflow.kanghelyu.org
English · 简体中文
DeepSeek Flow turns a WORKFLOW.md and its step-level STEP.md files into an editable diagram inside DeepSeek Harness. The bundled Skill lets the current Session create and maintain workflows through tools, while the diagram and Markdown remain synchronized and portable.
It is intentionally an editor—not a workflow runtime. DeepSeek Flow helps you design, inspect, and improve a workflow; execution remains in the current Session.
WORKFLOW.md, plus one STEP.md workspace for each step.dsh web restarts lose nothing; they are cleared only by an explicit discard or a successful commit. Markdown edits inside the 650 ms autosave window are flushed immediately when you leave the view.Install from GitHub into the Web profile:
dsh plugin --profile web add "github:kanghelyu/dsh-deepseek-flow#main"
Restart dsh web, open a session, and select the DeepSeek Flow tab.
To confirm that the plugin is mounted:
dsh web --dump-config | grep deepseek-flow
deepseek-flow Skill guides it to flow_create or flow_put.flow_finalize_canvas; if it forgets, Studio falls back to detecting that no canvas edit event occurred and presses the same invisible finalize action automatically.A typical workflow directory looks like this:
my-workflow/
├── WORKFLOW.md
├── 01-input/
│ └── STEP.md
├── 02-research/
│ └── STEP.md
├── 03-quality-check/
│ └── STEP.md
└── 04-output/
└── STEP.md
| Tool | Purpose |
|---|---|
flow_create |
Create a documented linear or branched workflow and save it in the current Session. |
flow_list / flow_read |
Discover workflows and read the master document, step documents, revision, graph, and logic contract. |
flow_put |
Import or atomically update a complete flow definition. A successful call is already persisted. |
flow_evaluate |
Evaluate Boolean gates from upstream values without running Agent steps. |
flow_finalize_canvas |
After direct file edits, queue Studio's invisible deterministic finalize action and skip a redundant main-Session review. |
flow_delete |
Delete a Session flow or shared template; managed workspaces are moved to trash. |
The Skill is registered reactively when the Harness skills service becomes available. Its SKILL.md contains real Markdown after frontmatter, so filesystem and runtime providers never return an empty instruction body.
Condition boxes support eight gate types: IF/ELSE, AND, OR, NOT, NAND, NOR, XOR, and XNOR. Gate metadata controls connection labels, outgoing limits, and the Boolean contract exported to the current Session.
| Gate | Connection behavior | Boolean result |
|---|---|---|
| IF / ELSE | One Yes and one No branch at most. | Selects exactly the branch matching the condition result. |
| AND / NAND | Multiple distinct targets; labels are automatic. | Evaluates all known operands, with NAND negating AND. |
| OR / NOR | Multiple distinct targets; labels are automatic. | Evaluates all known operands, with NOR negating OR. |
| XOR / XNOR | Multiple distinct targets; labels are automatic. | Evaluates parity, with XNOR negating XOR. |
| NOT | Exactly one automatically labeled outgoing arrow. | Negates its single input. |
Duplicate targets, duplicate Yes/No branches, excess IF/ELSE or NOT arrows, invalid aggregate input arity, unmarked cycles, and unknown box kinds are rejected with actionable validation messages. A retry loop is allowed only as an explicit feedback edge with a finite maxIterations and a non-empty exitCondition; feedback edges do not participate in one-pass Boolean evaluation or automatic Agent execution. Legacy true/false branches are normalized to IF/ELSE.
The flow_evaluate tool can deterministically evaluate gate state and activated targets from upstream step results. It does not run Agent steps or perform workflow side effects.
Gate predicates are deliberately small and deterministic: truthy, falsy, and nonEmpty. Do not put a natural-language rule such as "the user confirmed" in predicate. Add an upstream Agent step that outputs JSON Boolean true or false, then connect it to a condition with predicate: "truthy".
{
"id": "confirmed",
"kind": "condition",
"data": { "label": "Confirmed?", "gateType": "ifElse", "predicate": "truthy" }
}
Adding or deleting boxes, gates, arrows, inputs, or outputs in Studio creates a local topology draft. Persisting that user-authored draft is an explicit transaction:
Local validation → current Session Agent review → second validation → atomic revision save
Direct Session file edits use a separate trusted path:
Session edits files → optional flow_finalize_canvas signal → deterministic validation → atomic save
The finalize control exists in Studio but is hidden and cannot be clicked through the normal UI. Studio records every user topology edit handler. If a topology difference appears without any such canvas event, it is treated as external/file-driven and the hidden action is pressed automatically. If deterministic validation fails, the draft is preserved and the normal Apply changes path remains available. This fallback means correctness does not depend solely on the Agent remembering the tool call.
Every AI action is started manually. DeepSeek Flow never runs validation or optimization behind your back.
| Action | Scope | What happens before files change |
|---|---|---|
| Logic validation | All workflow documents and arrow relationships | The Agent returns clickable errors and warnings; no file is changed. |
| Optimize current document | The selected WORKFLOW.md or STEP.md only |
A complete proposal appears in the preview. You must Accept or Reject it. |
| Optimize entire workflow | WORKFLOW.md and every STEP.md |
A warning is shown first. After confirmation, the Agent rewrites and saves the complete set directly. There is no per-document review or built-in undo. |
For whole-workflow optimization, commit or back up important Markdown files first. If a document changes while an optimization is running, DeepSeek Flow refuses to overwrite the newer content.
The assistant uses an isolated Agent job and does not run the workflow. Model and reasoning-effort controls are available in the assistant menu.
Topology review is the exception: it deliberately uses the live current Session Agent because that Session owns the workflow context. Document validation and optimization continue to use isolated one-shot Agent jobs.
DeepSeek Flow deliberately does not provide:
That boundary keeps the plugin focused: edit and validate in DeepSeek Flow, execute in the Session.
Clone the repository and link it into your Web profile:
git clone https://github.com/kanghelyu/dsh-deepseek-flow.git
cd dsh-deepseek-flow
dsh plugin --profile web add "link:$PWD"
Useful checks:
npm test
npm run build
npm run smoke
If an older local Harness installation is missing linked dependencies, stop dsh web before running:
bash scripts/ensure-deps.sh
After changing client code, rebuild and hard-refresh the browser. Host changes require restarting dsh web.
deepseek-flow/
├── lib/ Host code, topology transactions, gate semantics, and client bundle
├── src/client/ WebUI client source
├── skills/ Bundled DeepSeek Flow Agent Skill
├── scripts/ Build, dependency, screenshot, and smoke checks
├── test/ Contract and regression tests
├── examples/ Example Markdown workflow
└── docs/images/ README screenshots
Quality safeguards include automated contract and behavior tests covering graph conversion, bounded feedback loops, revision locking, document lifecycle, topology review, hidden finalization, Boolean semantics, connection validation, Agent jobs, JSON tool-argument normalization, and the generated client bundle. See Code quality notes and QA report for more detail.
dsh web --dump-config, then restart the Web profile.npm run build, restart when Host code changed, and hard-refresh the browser.maxIterations and non-empty exitCondition; otherwise fix the reported ordinary cycle, missing input, branch limit, or stale revision, then submit the complete topology again.flow_finalize_canvas with the workflow id and current revision.dsh web; current releases bundle a valid skills/deepseek-flow/SKILL.md and register it after the skills service is ready.deepseek-flow/trash/<date>/; copy the directory back into workspaces/ to restore the documents, then re-import the flow JSON with flow_put.dsh plugin --profile web remove deepseek-flow
MIT. Community project; not affiliated with DeepSeek.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: ai-workflow、developer-tools、flow-editor、markdown、visual-workflow、visualization、workflow、workflow-builder、workflow-management。