Model Plugins
The model is the soul of an Agent, but in Harness it is a plugin too. Switch adapters in configuration to connect DeepSeek-V4 or another provider to the same tools and session logs.
DeepSeek-V4 model pluginDeepSeek Harness · Everything is a Plugin
DeepSeek Harness turns “what can it do” into pluggable modules: model adapters, tools, skills, sessions, sandboxes, storage, loops, scheduling, and UI are all plugins. Align requirements with DeepSeek-V4 on the DeepSeek web version first, then swap the matching plugins in Harness configuration.
Kernel
Cordis
Load / unload / dependencies
Capability
All Plugins
Including model and UI
Config
Compose Freely
No source changes needed
Ecosystem
dsh-plugin
Discover via GitHub topic
Official statement: every Agent capability is provided by plugins. That means DeepSeek-V4 adapters, toolsets, and even the interface can be replaced or extended.
The model is the soul of an Agent, but in Harness it is a plugin too. Switch adapters in configuration to connect DeepSeek-V4 or another provider to the same tools and session logs.
DeepSeek-V4 model pluginFile editing, Shell, retrieval, Skills, and more register into the tool table as plugins. Standard Mode ships the full combination; Minimal Mode can be cut down to bash + editor for evaluations.
DeepSeek Harness toolsSession logs are append-only: system prompts, chain of thought, tool results, sub-agent scheduling, and context injection share one source and can be replayed—so you can debug exactly what the model saw.
DeepSeek session logsSandboxes, filesystems, and persistence are plugins too. Swap sandbox policy without changing the Agent loop—just switch implementations at the configuration layer.
DeepSeek Harness sandboxThe Agent loop, task scheduling, and sub-agent orchestration are composable. PTC / Code Mode goes further by letting the model chain multi-step tools with a TypeScript program.
DeepSeek Agent loopThe Web UI is not an irreplaceable shell. dsh web launches the browser interface, which itself lives in the plugin tree and can overlay different packages by profile (for example web / headless).
DeepSeek Harness Web UIThe official architecture describes a running dsh as a plugin tree composed from multiple configuration layers at startup. Understanding the layers helps you extend instead of fork.
01
A profile is a named combination: the bundles to overlay, out-of-tree plugins, and your own cordis.patch.yml. web and headless are provided as templates.
02
The first layer of almost every profile: model adapters, tools, persistence, sandbox and approval policy, settings, credentials, telemetry, and other fundamentals.
03
web-app overlays the browser application; headless overlays a serverless one-shot runner. Same plugin philosophy, different delivery shapes.
04
Use the dsh-plugin topic so plugins can be found. APIs will change during preview; plugin authors should follow the official developer guide and Discussions.
The license makes the code auditable; Cordis makes the runtime recomposable. For DeepSeek Agent developers, that means a lower cost of forking.
01
Plugins declare required services (such as tools and llm) via inject; Cordis starts consumers only after those services are ready. Load order is decided by dependencies, not YAML line numbers.
02
Listeners, tool registrations, and timers are cleaned up automatically when a plugin unloads. Resources that need explicit release register a disposer with effect, so hot-swap does not leak.
03
When you are unsure whether to swap the model or the tools, ask DeepSeek-V4 on the DeepSeek web version to clarify task boundaries first, then return to Harness to change configuration—avoid swapping plugins blindly.
DeepSeek-V4 helps you spell out the task; Harness plugins connect capabilities into a real environment.
Aligned with official docs: plugin shape, configuration composition, and how work is split with the DeepSeek web version.
The common shape is a TypeScript module that exports apply(ctx); it can also be an object with apply, or a Service subclass that provides a service. The framework passes the shared context ctx at load time.
Register the module path or package name in cordis.yml / overlay / patch. Official tutorials stress that plugin paths need to be absolute in some scenarios, and that you overlay via profile instead of changing core packages.
Officially, UI is listed as a plugin capability at the same level as models and tools. You can select or extend the interface at the configuration layer without modifying DeepSeek Harness source.
No. The web version is for fast conversation and DeepSeek-V4 reasoning; plugins are for turning a validated flow into a tool chain. CTAs on this site take you into web-version chat first.
Breaking changes will happen—that is an official warning in capital letters. Treat plugins as evolving experiments, watch Discussions, and do not assume the API stays stable long-term.
The official repository docs/architecture.md, the Cordis primer, and the developer guide. This page is an introduction for search and product understanding; it does not replace upstream docs.
Enable dsh when you need local tools and a sandbox; you can enter the DeepSeek web version now.