<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dsh Plugin on RockB</title><link>https://baeseokjae.github.io/tags/dsh-plugin/</link><description>Recent content in Dsh Plugin on RockB</description><image><title>RockB</title><url>https://baeseokjae.github.io/images/og-default.png</url><link>https://baeseokjae.github.io/images/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 29 Aug 2026 16:01:16 +0000</lastBuildDate><atom:link href="https://baeseokjae.github.io/tags/dsh-plugin/index.xml" rel="self" type="application/rss+xml"/><item><title>DeepSeek Harness Agent Workflow Plugin: Orchestrate Multi-Step Agent Runs</title><link>https://baeseokjae.github.io/posts/dsh-agent-workflow-plugin-2026/</link><pubDate>Sat, 29 Aug 2026 16:01:16 +0000</pubDate><guid>https://baeseokjae.github.io/posts/dsh-agent-workflow-plugin-2026/</guid><description>The DeepSeek Harness Agent Workflow plugin visualizes multi-step agent runs as an execution chain, with token and cache stats for context-reuse analysis.</description><content:encoded><![CDATA[<p>The DeepSeek Harness Agent Workflow plugin (dsh-plugin-agent-workflow) is a standalone, installable Web UI plugin that adds a dedicated &ldquo;Workflow&rdquo; tab to DeepSeek Harness, letting you orchestrate and inspect multi-step agent runs as a clear execution chain. It renders your real recorded Session events — model requests, model responses, and tool calls — in chronological order, split by user conversation turn, with token and cache statistics that reveal exactly how context is reused across steps. Because it is read-only and non-invasive, it never adds messages, prompts, or tools to your requests, making it a trustworthy observability layer for anyone running complex, multi-step agent workflows on DeepSeek Harness.</p>
<h2 id="what-is-deepseek-harness-and-the-everything-is-a-plugin-philosophy">What is DeepSeek Harness and the &ldquo;Everything is a Plugin&rdquo; philosophy?</h2>
<p>DeepSeek Harness (dsh) is DeepSeek&rsquo;s open-source agent harness, currently in developer preview at version 0.1.0-rc.x. The project has roughly 203,000 GitHub stars, and its defining architectural idea is that &ldquo;everything is a plugin.&rdquo; Every capability — models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and even the UI itself — is a swappable, recomposable plugin built on the Cordis kernel, which manages plugin mounting, unmounting, and dependencies.</p>
<p>The conceptual shift is significant compared to other harnesses. There is no separate manifest format per capability type; one plugin mechanism covers everything. A plugin is simply a JavaScript or TypeScript module that exports <code>apply(ctx, config)</code>. What that plugin registers determines what it becomes:</p>
<ul>
<li><code>ctx.tools.register()</code> makes it a tool</li>
<li><code>ctx.commands</code> makes it a slash command</li>
<li>A prompt section plus a tool makes it a skill</li>
<li>One plugin per MCP server connects an MCP server</li>
<li>A listener on <code>agent/pre-step</code> or <code>tools/pre-execute</code> makes it a lifecycle hook</li>
<li><code>ctx.llm.registerAdapter()</code> adds a new LLM provider</li>
<li><code>ctx.jobs</code> adds a background or cron job</li>
</ul>
<p>This means skills, commands, and MCP connections are all just code that calls <code>ctx</code>. The Agent Workflow plugin fits squarely into this philosophy: it is a UI plugin that registers a new tab and reads the session event stream to give you a visual, chronological view of your agent runs.</p>
<h2 id="introducing-the-agent-workflow-plugin-dsh-plugin-agent-workflow">Introducing the Agent Workflow plugin (dsh-plugin-agent-workflow)</h2>
<p>The dsh-plugin-agent-workflow plugin, developed by xuanyuanzhifeng, is a standalone installable DeepSeek Harness Web UI plugin that adds a &ldquo;Workflow&rdquo; tab alongside the built-in &ldquo;Conversation&rdquo; and &ldquo;Trajectory&rdquo; tabs. It has roughly 126 GitHub stars, is written in TypeScript, and is MIT-licensed.</p>
<p>Its core purpose is to make multi-step agent runs legible. Instead of forcing you to read raw logs or reconstruct what happened from a flat conversation, the plugin uses your user conversation turns as the entry point and renders model requests, model responses, and tool calls as a clear execution chain. The left panel organizes tasks by user conversation turn; the right panel shows model and tool calls chronologically; and the top summarizes counts and total time for the whole run.</p>
<p>The plugin is deliberately read-only and non-invasive. It visualizes real recorded Session events and never re-infers behavior from Harness source code. It adds no messages, prompts, or tools to your requests, which makes it a trust and observability layer rather than an active orchestrator. If you want to understand what your agent actually did across a long, multi-step run, this plugin gives you the ground truth.</p>
<h2 id="how-the-workflow-tab-visualizes-multi-step-agent-runs">How the Workflow tab visualizes multi-step agent runs</h2>
<p>The Workflow tab is organized around a two-panel layout that mirrors how you actually think about a run. On the left, tasks are grouped by user conversation turn — each turn is a distinct unit of work. On the right, the model and tool calls for the selected turn appear in chronological order. At the top of the view, a summary bar shows counts and total time, giving you an at-a-glance sense of how long the run took and how many steps it involved.</p>
<p>This structure is especially valuable for multi-step agent runs, where a single user request can trigger a long chain of reasoning, tool calls, subagent scheduling, and context injections. By grouping work by turn and then by call, the plugin lets you trace exactly which model call produced which tool call, and in what order. Independent scrolling for the turn list and the model-call list means you can keep a long chain in view while inspecting a specific step, and virtualized rendering keeps the interface responsive even for very long chains.</p>
<p>Because the data comes from real recorded Session events, the view is always accurate. DeepSeek Harness records everything the model sees in an append-only session log — system prompts, reasoning, tool calls and results, subagent scheduling, and context injections — and the Workflow tab reads that same event stream. You are never looking at a reconstruction; you are looking at the actual execution trace.</p>
<h2 id="inspecting-model-requests-responses-and-tool-execution-in-detail">Inspecting model requests, responses, and tool execution in detail</h2>
<p>Beyond the high-level chain, the plugin lets you drill into each individual step. Request details expose the real recorded system prompt, the provider-agnostic <code>messages[]</code> body, and the tool definitions as collapsible JSON trees with copy and zoom controls. This is useful when you need to verify exactly what context was sent to the model at a given step, or when you are debugging why a tool call was malformed.</p>
<p>Response inspection shows the reasoning, content, tool calls, and raw records for each model response. Tool execution states distinguish running, completed, and failed steps, and each tool call shows its parameters, results, duration, and an error summary when something went wrong. This makes it straightforward to spot a slow tool, a failed call, or a step where the model&rsquo;s reasoning diverged from what you expected.</p>
<p>For a multi-step agent run, this level of detail is the difference between guessing and knowing. When a run fails or produces an unexpected result, you can open the Workflow tab, find the exact step where things went sideways, and inspect the request, the response, and the tool execution state in one place.</p>
<h2 id="token-and-cache-statistics-for-context-reuse-analysis">Token and cache statistics for context-reuse analysis</h2>
<p>One of the most practical features of the Agent Workflow plugin is its token and cache statistics. For each step, the plugin splits token usage into input, uncached input, cache-read, cache-write, and output tokens. This breakdown is essential for context-reuse and cost analysis.</p>
<p>DeepSeek&rsquo;s pricing model rewards context reuse: tokens read from cache are dramatically cheaper than uncached input tokens. By seeing how many tokens were cache-read versus uncached input, you can tell whether your workflow is actually reusing context effectively across steps. A high cache-read ratio means your agent is building on prior context efficiently; a high uncached-input ratio suggests you are re-sending context that could be cached or trimmed.</p>
<p>This is particularly relevant for multi-step agent runs, where context accumulates across turns. The plugin&rsquo;s per-step breakdown lets you identify which steps are the most expensive, whether context is being reused as intended, and where you might restructure your workflow to improve cache hits and reduce cost.</p>
<h2 id="installing-the-plugin-local-tgz-and-github-install-paths">Installing the plugin (local .tgz and GitHub install paths)</h2>
<p>Installing the Agent Workflow plugin follows the standard DeepSeek Harness plugin workflow. The plugin is compatible only with <a href="mailto:dsh@0.1.0-rc.8">dsh@0.1.0-rc.8</a> (0.1.x), so you must be on that version. You can install from a local <code>.tgz</code> package or directly from GitHub:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx @deepseek-ai/dsh@0.1.0-rc.8 plugin --profile web add &lt;path-to.tgz&gt; --workspace-root
</span></span></code></pre></div><p>or, for a GitHub install pinned to a release tag:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx @deepseek-ai/dsh@0.1.0-rc.8 plugin --profile web add github:&lt;owner&gt;/&lt;repo&gt;#v0.1.1 --workspace-root
</span></span></code></pre></div><p>To remove the plugin, use <code>plugin remove</code>. The broader ecosystem uses a similar pattern — for example, the independent DSH Plugin Registry (dshplugin.app) documents installs as <code>dsh plugin --profile web add github:&lt;owner&gt;/&lt;repo&gt;</code>. Because DSH is pre-release, always pin your plugin version to the matching RC version of the harness.</p>
<h2 id="compatibility-versioning-and-known-limitations">Compatibility, versioning, and known limitations</h2>
<p>The most important thing to understand about the Agent Workflow plugin is that it is compatible only with <a href="mailto:dsh@0.1.0-rc.8">dsh@0.1.0-rc.8</a> (0.1.x). DeepSeek Harness is pre-release, which means client interfaces can change across RC versions. A plugin built against one RC may break on the next, so you must track plugin versions against your harness version.</p>
<p>The plugin is also read-only by design. It does not orchestrate agent runs; it visualizes them. If you need active orchestration — assigning work, managing dependencies, or running multi-model teams — you will want a different tool (see the comparison below). And because it reads the session event stream, its fidelity depends on the harness recording those events correctly, which is a core DeepSeek Harness guarantee but still worth noting for pre-release software.</p>
<h2 id="how-it-compares-to-other-deepseek-harness-workflow-plugins">How it compares to other DeepSeek Harness workflow plugins</h2>
<p>The DeepSeek Harness plugin ecosystem has several workflow-oriented tools, and they serve different purposes. Here is how the main ones compare:</p>
<table>
  <thead>
      <tr>
          <th>Plugin</th>
          <th>Primary purpose</th>
          <th>Stars</th>
          <th>Language</th>
          <th>License</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>dsh-plugin-agent-workflow</td>
          <td>Per-turn execution chain visualization, read-only</td>
          <td>~126</td>
          <td>TypeScript</td>
          <td>MIT</td>
      </tr>
      <tr>
          <td>dsh-agent-team-gui</td>
          <td>Persistent multi-model agent teams with orchestration</td>
          <td>~159</td>
          <td>TypeScript</td>
          <td>MIT</td>
      </tr>
      <tr>
          <td>dsh-harness-one</td>
          <td>Visual multi-agent DAG orchestrator with live execution</td>
          <td>~17</td>
          <td>JavaScript</td>
          <td>—</td>
      </tr>
  </tbody>
</table>
<p>The Agent Workflow plugin is the observability choice: it shows you what happened, step by step, with token and cache stats. The dsh-agent-team-gui plugin is the orchestration choice: it lets you build persistent, reusable multi-model teams where each member gets its own model, role, fallback route, token limit, and tool policy, with dynamic workflow planning and bounded DAG execution. The dsh-harness-one plugin is a visual AI workflow orchestrator that builds multi-agent DAGs with live execution, recovery, and Feishu integration.</p>
<p>If your goal is to understand and optimize a single agent&rsquo;s multi-step run, the Agent Workflow plugin is the right fit. If your goal is to coordinate multiple specialized agents, look at dsh-agent-team-gui or dsh-harness-one. Many teams use both: an orchestrator to run the work, and the Workflow tab to inspect and optimize it.</p>
<h2 id="local-development-and-packaging-pnpm-typecheck-test-pack">Local development and packaging (pnpm, typecheck, test, pack)</h2>
<p>If you want to build or modify the plugin yourself, the development workflow is standard for a TypeScript plugin. The project requires Node ^22.19.0 or &gt;=24.0.0 and pnpm 11. The typical loop is:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pnpm install
</span></span><span style="display:flex;"><span>pnpm typecheck
</span></span><span style="display:flex;"><span>pnpm test
</span></span><span style="display:flex;"><span>pnpm pack
</span></span></code></pre></div><p><code>pnpm pack</code> produces the <code>.tgz</code> file you can install with the <code>plugin add</code> command. Because the plugin is MIT-licensed and open source, you can fork it, adjust the visualization to your needs, and repackage it for your own workspace. The same &ldquo;everything is a plugin&rdquo; philosophy means your modifications remain a self-contained plugin rather than a fork of the harness itself.</p>
<h2 id="faq-and-troubleshooting">FAQ and troubleshooting</h2>
<p><strong>Is the DeepSeek Harness Agent Workflow plugin read-only?</strong>
Yes. It visualizes real recorded Session events and adds no messages, prompts, or tools to your model requests. It is a pure observability layer, so it cannot alter the behavior of your agent runs.</p>
<p><strong>Which version of DeepSeek Harness does the plugin require?</strong>
The plugin is compatible only with <a href="mailto:dsh@0.1.0-rc.8">dsh@0.1.0-rc.8</a> (0.1.x). Because DeepSeek Harness is pre-release, client interfaces may change across RC versions, so you must match the plugin version to your harness version.</p>
<p><strong>How is the Workflow tab different from the built-in Trajectory tab?</strong>
The Trajectory tab inspects the session log by source, while the Workflow tab organizes the same event stream by user conversation turn and renders model requests, responses, and tool calls as a chronological execution chain with token and cache statistics.</p>
<p><strong>Can the plugin help me reduce token costs?</strong>
Yes. It splits token usage into input, uncached input, cache-read, cache-write, and output tokens per step, so you can identify where context is not being reused and restructure your workflow to improve cache hits and lower cost.</p>
<p><strong>Does the plugin orchestrate multi-agent teams?</strong>
No. It visualizes and inspects runs. For active orchestration of multi-model teams, use a tool like dsh-agent-team-gui or dsh-harness-one, which handle team composition, dependency planning, and DAG execution.</p>
]]></content:encoded></item></channel></rss>