deepseek-harness vs LangGraph
Both are catalogued under Agent Frameworks. The figures come from the GitHub API; the assessments are ours.
At a glance
| At a glance | deepseek-harness | LangGraph |
|---|---|---|
| License | MIT | MIT |
| Languages | TypeScript | Python, TypeScript |
| Deployment | Self-hosted / Runs locally | Self-hosted / Managed cloud |
| Maturity | Growing | Established |
| Stars | 116k | 39.8k |
| Star growth over the last 7 days | — | +14 ★ |
| Forks | 11.4k | 6.7k |
| Open issues | 0 | 695 |
| Last commit | 13 Aug 2026 | 16 Aug 2026 |
| Activity | Active | Active |
What each one does
deepseek-harness
`dsh` is the agent harness DeepSeek AI develops itself. `npx @deepseek-ai/dsh web` brings up a Web UI on `http://127.0.0.1:3080`, and the architecture behind it is one where everything is a plugin, powered by the Cordis runtime, so it suits people who intend to extend a harness rather than only operate one. The caveat comes from the project itself: it is labelled a developer preview and warns in capitals that there will be compatibility-breaking changes, so plugins written today should budget for rework. It is also a poor fit if you want a documented scripted or embedded entry point right now, since the README covers only the `web` command and a source checkout, and links out to a development guide and architecture documentation without saying what either contains.
Full entry →LangGraph
Models an agent as an explicit graph of nodes and edges rather than a loop you cannot inspect. Durable checkpoints let a run pause for human approval and resume later, which is what makes it viable for workflows that touch production systems. The trade-off is verbosity: simple tool-calling agents need noticeably more setup here than elsewhere.
Full entry →What you can do
deepseek-harness
- Get a Web UI running from one command — With Node.js installed,
npx @deepseek-ai/dsh webstarts the harness and serves its Web UI athttp://127.0.0.1:3080by default. - Build on the plugin architecture — The harness is powered by the Cordis runtime under an everything-is-a-plugin architecture; the README's Development section points at a development guide (
docs/development.md) and architecture documentation (docs/architecture.md). - Make your plugin discoverable — Adding the
dsh-pluginGitHub topic to a plugin repository is the route the README gives for discoverability, with feedback and bug reports going through GitHub Discussions or the project's Discord. - Run and modify the harness from source — Clone the repo, then
pnpm install,pnpm run buildandpnpm dsh webto launch your own checkout instead of the published package. - Hand the repo to a coding agent — The README directs agents working in this codebase to follow
AGENTS.mdat the repo root.
LangGraph
- Resume a run after failure — Durable execution persists state as the graph advances, so an agent that dies mid-run restarts from exactly the step it left off rather than the beginning.
- Pause for human approval — Interrupts halt execution at a chosen node so a person can inspect and modify the agent state before letting it continue.
- Trace state transitions in LangSmith — Debugging is handed to LangSmith, a separate LangChain product paired with the graph: it visualises execution paths, captures state transitions and reports runtime metrics, so a wrong result is traced back to the node that produced it.
- Start higher up with Deep Agents — Deep Agents is a package built on top of LangGraph for agents that plan, delegate to subagents and use a file system, saving you the graph wiring for those patterns.
- Build the same graph in TypeScript — LangGraph.js is the equivalent library for JS/TS runtimes, so a Node service is not forced onto a Python sidecar.