/ AI, AI-AGENTS, DEEPSEEK, DEVELOPER-TOOLS, AUTOMATION

DeepSeek Harness: a plugin-first framework for building AI agents

DeepSeek just opened up the developer preview of DeepSeek Harness (dsh), an open-source framework for building AI agents. If you’ve already looked at Claude Code with DeepSeek’s API or played with AutoGen, Harness is worth a look for a different reason: instead of shipping a fixed agent loop, it ships almost nothing fixed at all — everything is a plugin.

This post covers what Harness actually is, how its plugin architecture works, the runtime modes it ships with, and how to get it running locally.


What DeepSeek Harness is

DeepSeek Harness is an MIT-licensed, open-source agent development framework, currently in developer preview. It’s not a single agent — it’s infrastructure for building agents: a kernel, a plugin system, a session log, and a set of runtime presets you compose on top of a model.

The stated philosophy is blunt about it: “every capability is a plugin that can be swapped or recomposed: models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and the UI.” Where most agent frameworks bake in a tool loop and let you extend it, Harness treats the loop itself as replaceable.

The plugin architecture: Cordis

Harness is built on Cordis, a plugin kernel responsible for:

  • Mounting and unmounting plugins
  • Resolving dependencies between plugins
  • Providing services and events so plugins can communicate with each other without being hard-wired together

Practically, this means a model provider, a tool, a sandbox backend, or the storage layer are all the same kind of object to the kernel — a plugin with declared dependencies. You can swap DeepSeek’s own models for another provider, replace the default sandbox with your own, or add a scheduling plugin, all without touching the core source. Configuration changes go in config, not in a fork.

💡 Tip: if you’ve used dependency-injection frameworks or Cordis’s sibling projects in the Koishi ecosystem, the mental model — services, events, typed dependencies between mountable units — will feel familiar.

Every prompt and tool call, logged

Harness records everything the model sees into an append-only session log: prompts, reasoning traces, tool calls, and any context injected into the conversation. Because the log is the source of truth for a session, Harness can:

  • Resume a session where it left off
  • Fork a session to explore an alternative path without losing the original
  • Search across past sessions
  • Replay a session step by step

For anyone who has debugged an agent by scrolling through terminal output trying to reconstruct what the model actually saw, this is the feature that matters most day-to-day — it turns an agent run into an artifact you can inspect and share, not just a transcript that scrolls away.

Runtime modes

Rather than one fixed agent shape, Harness ships four presets, each a different composition of plugins:

Mode What it’s for
Standard A full-featured coding agent — file editing, shell access, search, and workflow tools
Code Mode Lets the model orchestrate multi-step operations by writing TypeScript instead of issuing many discrete tool calls
Minimal A two-tool agent, deliberately stripped down for benchmarking
Creator For building your own presets, with runtime inspection and live plugin experimentation

Code Mode is the more interesting departure: instead of the model emitting one tool call per step and waiting for each result, it writes a short program that chains several operations together, and the harness executes it. That collapses a lot of round-trips for anything that’s naturally a sequence (read three files, transform them, write one), at the cost of needing a sandboxed TypeScript runtime to execute it safely.

Quick start

Try it without installing anything, provided you have Node.js:

npx @deepseek-ai/dsh web

Or clone the repository to build a custom preset or contribute a plugin:

git clone https://github.com/deepseek-ai/harness.git
cd harness

From there, Creator mode is the fastest way to see the plugin system in action — it exposes runtime inspection so you can watch which plugins mount, what services they expose, and how swapping one out changes the agent’s behavior.

Ecosystem

Community plugins are tagged dsh-plugin on GitHub, so browsing that topic is currently the best way to find integrations beyond what ships by default — additional model providers, sandbox backends, or tool sets. If you build a preset worth sharing, Creator mode’s export path is the natural way to package it for others.


Where it fits

If you want a batteries-included coding agent today, Claude Code or AutoGen’s AgentChat layer will get you there faster. Harness is a better fit if you’re building an agent product and expect to swap models, sandboxes, or storage backends as requirements change — the append-only session log and Cordis’s plugin boundaries are specifically designed to make that swapping cheap instead of a rewrite.

It’s early — developer preview, and the ecosystem of community plugins is just getting started — but the “everything is a plugin, everything is logged” design is a clear bet on composability and observability over a single opinionated agent loop. Worth watching as it matures.

References: