DeepSeek Harness v0.1.2-alpha.4
DeepSeek Harness v0.1.2-alpha.4: Two-Way Agent Messaging
- Author
- DeepSeekAgent.io Editorial Team
- Published
- Updated
DeepSeek released dsh-v0.1.2-alpha.4 on September 1, 2026. Its most consequential product change is two-way follow-up messaging between parent Agents and continuable child Agents through send_message. Python SDK, Headless, ACP, and custom Profiles also gain web_fetch by default, while model discovery and long-conversation rendering continue to improve.
Plugin authors have two additional compatibility changes to handle: on-demand read APIs replace Session.events, and SessionSeq is now strongly distinguished from SessionLogOffset.
The short version
Alpha.4 moves continuable child Agents beyond one-way completion reports and toward ongoing collaboration. It also expands URL-fetching support beyond the default Web entry point. Users can focus on the interaction changes; Agent and plugin developers should prioritize messaging and Session API tests.
Release status
| Check | Status |
|---|---|
| GitHub Release | v0.1.2-alpha.4, marked Pre-release |
| GitHub tag | dsh-v0.1.2-alpha.4 at 4e84901 |
| Release time | September 1, 2026 at 15:45 UTC |
| Exact npm version | @deepseek-ai/[email protected] published |
| Stability | Official pre-release |
Pin the exact build when reproducing it:
npx @deepseek-ai/[email protected] web
Two-way parent and child Agent messaging
Alpha.4 replaces the one-way report tool for parent and continuable child Agents with send_message, allowing follow-up messages in both directions.
That changes the collaboration model. A parent does not have to wait for a single terminal report before refining a request, adding a constraint, or asking for verification. A child that remains continuable can receive that new context in a later exchange. Research, code review, and long delivery workflows are the clearest beneficiaries.
Two-way does not mean every child stays online indefinitely. Continued messaging still depends on the child's lifecycle, Session state, and the caller retaining the correct identity.
More entry points get web_fetch by default
Python SDK, Headless, ACP, and custom Profiles now provide web_fetch by default. Agents launched outside the standard Web interface can read a known URL without every deployment rebuilding the same capability.
Fetched pages remain untrusted external input. They can contain prompt injection, incorrect claims, or malicious instructions, so Agents should treat them as data rather than higher-priority commands. Network policy and SSRF controls still apply.
Web PTC Mode drops the general workflow tool by default
The general-purpose workflow tool is no longer exposed to the model by default in Web PTC Mode. This is a composition-boundary change, not evidence that all workflow capabilities were removed.
If a custom Preset expects the model to invoke the general tool directly, inspect the effective tool roster and system prompt after upgrading. An installed plugin is not necessarily model-visible in every Preset.
Search and filter the model catalog
Custom model discovery now reuses Profile request headers, and the model catalog supports search and filtering. This helps authenticated private gateways and Providers that expose long model lists.
Discovery alone does not prove that a model supports the Agent's required vision, tool-calling, reasoning-effort, or context features. Validate actual requests after selection.
More long-conversation performance work
Alpha.4 reduces rendering overhead during streaming, layout, and turn-navigation previews in very long conversations. It also refines corners, borders, navigation, and shadows.
This continues alpha.3's work: alpha.3 emphasized paginated navigation and memory use, while alpha.4 further optimizes streaming updates and interface geometry.
Session API migration for plugin authors
Alpha.4 replaces Session.events with on-demand accessors:
seqeventAt()snapshotEvents()
It also separates SessionSeq and SessionLogOffset into strong types. Both may look numeric at runtime, but one identifies an event sequence position while the other identifies a storage offset. Plugins that read the old event array or mix these positions should complete both compile-time and behavioral tests before upgrading.
Pre-upgrade checklist
- Test
send_messagepaths and durable child identity in Agent Teams or custom child-Agent systems. - Check plugins built around
reportfor changed tools and completion conditions. - Move code that reads
Session.eventsto the on-demand APIs. - Inspect the effective PTC tool roster instead of assuming
workflowremains visible. - When upgrading from alpha.2 or earlier, read alpha.3's SQLite-backend removal warning first.
Related reading
- DeepSeek Harness v0.1.2-alpha.3: Long Conversations and SQLite Removal
- DeepSeek Harness v0.1.2-alpha.5: npm Release Status
- DeepSeek Harness Agent Teams guide
- DeepSeek Harness Python SDK guide
Frequently asked questions
Is alpha.4 stable?
No. It is an official GitHub pre-release. Pin the full version and test it in isolation.
Does send_message replace every kind of Agent report?
The release notes specifically say it replaces the one-way report tool between parent and continuable child Agents. Do not generalize that claim to one-shot tasks, custom plugin protocols, or non-continuable children without testing them.
Can plugins keep using Session.events?
The alpha.4 notes say it has been replaced by seq, eventAt(), and snapshotEvents(). Plugin authors should migrate rather than depend on the old property remaining available.