DSH Agent Preset vs Plugin
Connect DSH Agent Preset vs Plugin to the DeepSeek API
DeepSeek Harness says everything is a plugin, but a plugin is not automatically an Agent. The distinction matters when installing community projects, designing a composition and deciding what belongs in a native Agent directory.
Short definition
- A plugin contributes a capability or service: a tool, model adapter, memory layer, UI panel, hook, scheduler or storage provider.
- An Agent preset composes the capabilities one session receives: tools, persona, prompt sections, delegation behavior and compaction policy.
- A native DSH Agent is a preset or Harness distribution that uses this composition to perform a defined job.
Files on disk
A user preset is normally one directory containing:
my-agent/
├── agent.cordis.yml
├── preset.yml # optional display metadata
├── skills/ # optional preset-scoped skills
└── local-plugin.mjs # optional preset-local plugin
agent.cordis.yml is the executable composition. preset.yml carries display metadata such as name and description; it does not grant trust or define the preset id. The directory name is the id.
Host plane versus agent plane
The host plane owns process-wide infrastructure: registries, session persistence, credentials, settings, model routes, sandbox and approval services. The agent plane contributes what one selected session sees: scoped tools, prompt sections, persona and workflow behavior.
Putting a process-wide service in every preset can create duplicate registrations or leave host consumers waiting for a service mounted only under one agent scope. A native Agent author must decide the plane before adding a row.
Why a preset can still contain plugins
“Preset versus plugin” is not a choice between mutually exclusive package formats. A preset is a composition of plugins. It may reference official packages, community packages, relative local modules and skill directories. The distinction describes roles:
- plugins implement pieces;
- the preset selects and scopes the pieces;
- the running Agent is the resulting session composition.
What does not count as a native Agent
- A theme that changes colors.
- A model provider that makes DeepSeek available.
- A button that switches presets.
- A memory plugin usable by every preset.
- A generic agent that supports the DeepSeek API but does not run on Harness.
- A README describing an Agent without shipping a native composition.
These can all be valuable projects. They simply belong in a plugin, client or integration directory rather than a native Agent dataset.
Trust
A user-authored preset is as privileged as the plugins it names. Copying an official preset does not make later additions official or reviewed. Inspect every package and local module before selecting the preset for a sensitive workspace.
Publishing checklist
- Ship
agent.cordis.ymland clearpreset.ymlmetadata. - State the compatible DSH tag.
- Document every non-official plugin and permission requirement.
- Keep host services out of the agent plane unless the architecture requires them.
- Include a minimal installation path and removal path.
- Test mounting twice and starting more than one session.
- Provide screenshots of the actual artifact or workflow when possible.
- Describe limitations without calling the project “official.”
FAQ
Is an Agent preset just a system prompt?
No. It can compose tools, plugins, skills, persona, policies and workflow behavior for one session.
Can a plugin create subagents?
It can contribute delegation capabilities, but that does not by itself make the plugin a complete task-oriented Agent preset.
Why does the native Agent directory have fewer entries than the plugin directory?
Because it applies a narrower structural rule: the project must ship and use a native session composition for a defined job.