DeepSeek Harness developer preview
DeepSeek has released an open-source “harness” for coding agents that uses a plugin-centric architecture (Cordis) to make every part of the system hot-reloadable and revertible, while logging all prompts, tool calls, and reasoning steps in an append-only event stream. Commenters compare it to tools like Claude Code, Pi, Cline, and other agent frameworks, debating whether DeepSeek’s tight integration with its own low-cost models and full traceability are meaningful advantages over existing first- and third-party setups. Much of the debate also centers on the choice of TypeScript/Node.js, plugin ecosystems, performance and bloat, and the broader question of how much innovation is really happening in agent harness design versus reusing familiar patterns with new buzzwords.
What DeepSeek Harness Is
- Seen as a new coding/agent harness in the same family as Claude Code, Pi, Codex, Zed integrations, etc.
- Primary use: orchestrating LLM-based coding and tools, with both TUI and GUI possible.
- Supports multiple providers, including local models (e.g., llama.cpp setups), and some early users report it works well with local 9B models for small projects.
- Early “developer preview,” MIT-licensed for now, with warnings of rough edges and breaking changes.
Cordis Plugin Architecture
- Core idea: “everything is a plugin,” built on Cordis, a plugin system with hot-load/unload and “revertible effects.”
- Plugins must define initialization and cleanup (RAII/Drop-like), letting the runtime revert side effects on unload and propagate deactivation through dependencies.
- Compared to OSGi, Eclipse, dependency injection containers, React’s
useEffect, and prior agent harnesses like Pi. - Some find the underlying algebra and DI system sophisticated but potentially over-complex, especially since many plugins don’t depend on each other.
Traceability and Event-Sourced Logs
- Major praised feature: every run is fully traceable via an append-only event log (prompts, reasoning, tool calls, subagents, context injections).
- Enables resume, fork, search, replay, and stable message history; likened to event sourcing architectures.
- Seen as a contrast to US model agents where reasoning traces are hidden/encrypted; some argue this visibility is crucial for improving harnesses and tools.
- Others downplay it as “just logs,” but supporters emphasize completeness and usability.
Language, Runtime, and Bloat Debates
- Node.js/TypeScript choice sparks heated debate:
- Pro: async-friendly, cross-platform, fast iteration, npm as distribution, rich UI ecosystem (React/Electron/Tauri), good LLM support.
- Con: heavy runtimes, large dependency trees (reports of ~1.5 GB after install), slower CLIs vs Go/Python/Rust, and supply-chain/security worries.
- Alternative stacks discussed: Python (easy scripting, hard distribution), JVM/C#, Rust, Go; no consensus on a “right” choice.
Plugin Ecosystems and Fatigue
- Some love plugin-centric design for extensibility and AI-written custom plugins, especially when the core ships minimal tools.
- Others report “plugin fatigue”: long-term breakage, inconsistent UX, reliance on community maintainers, and lack of batteries-included defaults.
- Concern that if everything is a plugin and core features aren’t bundled, users face configuration overhead and instability.
Harness Quality, Comparisons, and Philosophy
- Users ask for systematic benchmarks of harnesses (and harness+model combos), but many doubt comparisons are meaningful given configuration variance.
- Mixed views on whether first-party harnesses (from model vendors) are actually better than third-party ones; some say they feel similar.
- Broader criticism that many harnesses reinvent solved problems with prompts (e.g., pre-commit checks via “skills” instead of git hooks), arguably burning tokens and reducing determinism.
- Others argue that combining deterministic tools with LLM-driven orchestration is the core value of harnesses and that experimentation is still early and “janky” by nature.