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

CheckStatus
GitHub Releasev0.1.2-alpha.4, marked Pre-release
GitHub tagdsh-v0.1.2-alpha.4 at 4e84901
Release timeSeptember 1, 2026 at 15:45 UTC
Exact npm version@deepseek-ai/[email protected] published
StabilityOfficial 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:

  • seq
  • eventAt()
  • 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

  1. Test send_message paths and durable child identity in Agent Teams or custom child-Agent systems.
  2. Check plugins built around report for changed tools and completion conditions.
  3. Move code that reads Session.events to the on-demand APIs.
  4. Inspect the effective PTC tool roster instead of assuming workflow remains visible.
  5. When upgrading from alpha.2 or earlier, read alpha.3's SQLite-backend removal warning first.

Related reading

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.