跪拜 Guibai
← All articles
Frontend · Backend · Architecture

DeepSeek Ships Harness, an Open-Source Agent Framework That Runs on Your Machine

By 万少 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Agent tooling is shifting from cloud-hosted chat to local, file-system-aware execution. DeepSeek Harness puts a transparent, auditable agent directly into a developer's project directory, with a permission model that makes it viable for real work rather than just demos.

Summary

DeepSeek Harness is an MIT-licensed agent framework that moves AI coding out of the chat box and onto the developer's own machine. It provides a graphical cockpit where an agent can read project files, execute shell commands, and modify code, with every action gated by an approval system. The architecture is built on a plugin model using the Cordis framework, making capabilities like file I/O, web search, and tool execution pluggable and configurable.

A session inside dsh supports advanced primitives including sub-agents for parallel task execution, background tasks for long-running jobs, a plan mode that requires human sign-off before code changes, and a goal system that keeps the agent on track. The tool call tree and a raw trace view expose every model thought and command run, giving developers full auditability.

The tool runs via a single `npx` command and supports over twenty model providers out of the box, plus any OpenAI-compatible endpoint for local models or internal gateways. A headless CLI profile lets the same agent run in CI pipelines or scripts, making the jump from interactive use to automation straightforward.

Takeaways
Harness is a local agent runtime that reads, writes, and executes commands inside a developer-chosen workspace directory.
Every file write and command execution is gated by an approval prompt; the agent cannot act without explicit, per-step consent.
The tool call tree and trace view log every model thought and shell command, making agent actions fully auditable.
Sub-agents can be spawned for parallel tasks, and background tasks prevent long-running jobs from blocking the session.
Plan mode forces the agent to propose a step-by-step plan and wait for human approval before modifying any code.
A headless CLI profile accepts a natural-language task string and runs it to completion, suitable for scripts and CI.
Over twenty model providers are supported natively, and any OpenAI-compatible endpoint can be added as a custom provider.
The entire tool starts with `npx @deepseek-ai/dsh web` and requires only Node.js 22+ and an API key.
Conclusions

Harness treats the agent as an operator on a real filesystem, not a chatbot, which changes the failure mode from hallucinated answers to real file damage—hence the mandatory approval gates.

The plugin architecture based on Cordis means the agent's capabilities are not a monolithic product decision but a configurable assembly, lowering the barrier for community extensions.

Offering a headless mode alongside the GUI suggests DeepSeek sees agent automation as a first-class CI primitive, not just an interactive developer tool.

The combination of plan mode, goals, and sub-agents creates a project-management layer on top of raw tool calling, pushing the agent toward multi-step, reviewable workflows rather than one-shot prompts.

Concepts & terms
Agent Harness
A runtime framework that equips an AI model with tools—file system access, shell execution, web search—and manages the loop of thinking, acting, and observing results.
Tool Call Tree
A visual log in the dsh UI that records every step the agent took: model thoughts, executed commands, file reads, and writes, presented as an expandable tree.
Cordis Plugin Framework
The underlying plugin architecture used by dsh. It allows every capability—terminal access, web search, model routing—to be packaged as an independent, pluggable module.
Workspace
A persistent record in dsh that maps a local project directory to a set of sessions. The agent's file access and command execution are scoped to this directory.
Sub-agent
A child agent spawned by the main agent to handle a subtask in parallel. Each sub-agent runs in its own context and reports back to the parent session.
From the discussion

The discussion is thin. One comment questions whether custom skills can be added, another probes how image attachments work given DeepSeek's lack of multimodal support, and a third dismisses the project as just another undifferentiated framework. The remaining remarks are a resource link and a compliment.

Custom skills or skill packs cannot be added through the interface.
The framework's attachment support raises a contradiction: DeepSeek models lack multimodal capabilities, so image uploads may only yield text extraction, mirroring the web client's behavior.
The project offers no clear differentiator from other agent frameworks, appearing to be a generic scaffold.
Featured comments
过路人796

Looking at the interface, is there no way to add custom skills or skill packs?

Petterli

Learned something, just one question. It says it supports attachments, so if I upload an image, but doesn't DeepSeek not support multimodal? Is it like the web version, only able to read text?

Finished reading, didn't see any difference from others, so it's simply just providing a framework for people to use, right.

See top comments, translated →
Source: juejin.cn ↗ Google Translate ↗ Backup ↗