---
type: "post"
id: "deep-agents-js-1-16-0-lets-async-bcc793"
slug: "deep-agents-js-1-16-0-lets-async-bcc793"
title: "Deep Agents JS 1.16.0 lets async subagents wake the agent that launched them"
description: "Deep Agents JS 1.16.0 adds experimental notifications from asynchronous subagents to the agent that launched them."
retrieval_nugget: "Deep Agents JS 1.16.0 adds experimental notifications from asynchronous subagents to the agent that launched them. Rather than repeatedly polling for a child task’s state, a parent can receive an event when that task finishes, fails, is cancelled, or pauses for human input. For builders, this makes a multi-agent workflow’s control flow more explicit."
published_at: "2026-10-28"
updated_at: "2026-10-28"
record_date: "2026-10-28"
date_kind: "published_at"
topics: ["agent-loops","automation"]
entities: ["LangChain","Deep Agents JS","AsyncSubAgent","createCompletionCallbackMiddleware"]
related_patterns: ["goal-scoped-loops-replace-manual-continuation","harness-architecture-outlives-model-choice"]
novelty_label: "new_fact"
what_changed: "Deep Agents JS 1.16.0 adds async subagent notifications that wake the launching agent, a capability not covered by the prior Managed Deep Agents releases."
prior_refs: ["memory:ca0793ad-d456-8559-afed-6b024977bb12","memory:33d07d5a-58e9-8cf5-a9c5-3fbf3454d2a3","memory:54ffe11b-6793-8fab-a8de-c89d0614571a"]
source_url: "https://github.com/langchain-ai/deepagentsjs/releases/tag/deepagents%401.16.0"
source_urls: ["https://github.com/langchain-ai/deepagentsjs/releases/tag/deepagents%401.16.0"]
schema_version: "newruntime-agent-readable-v0.2"
stable_id: "post:deep-agents-js-1-16-0-lets-async-bcc793"
status: "published"
visuals: []
editor: {"role":"editor","name":"Andrey Reshetnikov","profile":"https://newruntime.com/owner-profile.md","profile_json":"https://newruntime.com/owner-profile.json","same_as":["https://www.linkedin.com/in/reshetnikov1/","https://t.me/lapetuse"]}
routes: {"html":"https://newruntime.com/posts/deep-agents-js-1-16-0-lets-async-bcc793/","markdown":"https://newruntime.com/posts/deep-agents-js-1-16-0-lets-async-bcc793.md","json":"https://newruntime.com/posts/deep-agents-js-1-16-0-lets-async-bcc793.json"}
---

# Deep Agents JS 1.16.0 lets async subagents wake the agent that launched them

## Retrieval answer

Deep Agents JS 1.16.0 adds experimental notifications from asynchronous subagents to the agent that launched them. Rather than repeatedly polling for a child task’s state, a parent can receive an event when that task finishes, fails, is cancelled, or pauses for human input. For builders, this makes a multi-agent workflow’s control flow more explicit.

## Summary

Deep Agents JS 1.16.0 adds experimental notifications from asynchronous subagents to the agent that launched them. Rather than repeatedly polling for a child task’s state, a parent can receive an event when that task finishes, fails, is cancelled, or pauses for human input. For builders, this makes a multi-agent workflow’s control flow more explicit.

## What happened

LangChain released `deepagents@1.16.0` for JavaScript on October 26. The release’s minor change is an experimental feature described as async subagents notifying the agent that launched them. An asynchronous child agent can now send a notification message to its parent when it reaches one of four outcomes: it finishes, fails, is cancelled, or pauses because it needs a human.

The practical change is to the coordination loop around `check_async_task`. Before this capability, a parent agent had to poll that check to learn whether an asynchronous task had made progress or reached a terminal state. With notifications enabled, the release says the launching agent is woken by a message instead. That does not turn a child task into a synchronous call; it changes how the parent learns that an event requiring attention has occurred.

The release adds several fields to `AsyncSubAgent`. `notifyParent` controls the notification behavior and can be set to `false` to turn notifications off. `webhook` can also POST each outcome to a supplied URL. `updateStrategy: "enqueue"` queues follow-up work behind the parent’s current run rather than interrupting that run. `mode: "fork"` starts the subagent with a copy of the parent’s conversation.

Human intervention is part of the stated lifecycle. A subagent that pauses for approval or additional input appears as `waiting`; the user provides that response on the subagent’s own thread. The release also changes the output shape of `check_async_task` in one case: when an answer includes media, it returns content blocks. Finally, `createCompletionCallbackMiddleware` is deprecated. The release warns that using it together with notifications produces two notifications, which matters for teams migrating existing completion handling.

These are release notes, not a general claim about autonomous reliability. Still, they define a more event-driven interface for a familiar operational problem: coordinating work that is still running elsewhere, has stopped, or has reached a state where a person must decide what happens next.

## What the archive adds

This is a new release fact on an established thread rather than a restatement. [Box’s Deep Agent architecture for Box Agent](https://newruntime.com/posts/box-s-deep-agent-architecture-for-box-agent-657eb5/) described a parent/child Deep Agents arrangement for enterprise content analysis. [Unreal Agent: Async-first agent harness](https://newruntime.com/posts/unreal-agent-async-first-agent-harness-analysis-78278b/) framed long-running agent work as a runtime and persistence problem. Deep Agents JS 1.16.0 supplies a specific event-notification mechanism inside that broader coordination problem.

## Trend signal

This supports [Goal-scoped loops replace manual continuation](https://newruntime.com/patterns/goal-scoped-loops-replace-manual-continuation/). A parent receiving an explicit completion, failure, cancellation, or human-input event has a clearer external signal for advancing a workflow than a parent repeatedly asking whether a child is done. It also aligns with the archive assumption that scheduled, resumable, and subagent-based runs will grow relative to single interactive sessions.

## Connections to other events

The Box case provides an enterprise example of parent/child Deep Agents architecture, while Unreal Agent emphasizes async execution, persistence, and recovery as runtime concerns. This release does not establish that those systems use the same implementation. It does show Deep Agents JS making one common coordination boundary—how a child reports a state change to its launcher—more explicit.

## Why it matters

Many agent designs can launch parallel work; the harder engineering question is how the rest of the system reacts when that work changes state. Polling creates repeated checks, requires state bookkeeping, and leaves teams to decide whether a completion should interrupt the parent, wait behind its current work, or be sent to another system.

The new options expose those choices in the framework. A team can disable parent notification, forward outcomes to an external endpoint, queue a follow-up instead of interrupting a run, or fork conversational context for the child. The human-input state is equally consequential: approval is treated as a visible workflow state, with the reply routed to the child thread. Builders should regard this as a control-flow primitive, not evidence that the framework will automatically choose the correct escalation or authorization policy.

## What happens next

- **Teams using asynchronous Deep Agents tasks will test notification-driven orchestration in place of some polling loops.** (3 months, 65%). Watch for: examples or follow-up releases covering notification handling.
- **Migration away from `createCompletionCallbackMiddleware` will surface where duplicate completion signals affect existing applications.** (6 months, 55%). Watch for: release notes or documentation clarifying the replacement path.

## Limits and uncertainty

The release labels notifications experimental, so the notes do not establish long-term API stability, production performance, delivery guarantees, retry behavior, ordering, or security properties of webhook delivery. They also do not say how notifications interact with every parent state, how a queued follow-up is scheduled, or how a forked conversation is isolated from later changes to the parent. No benchmark, adoption figure, pricing information, or comparative evaluation is provided. The release describes available behavior, not proof that notification-driven orchestration is superior for every workload.

## Skill to build now

Map one asynchronous child-task flow in your application as explicit states: launched, completed, failed, cancelled, waiting for a person, and resumed. Then decide which state should notify the parent, which should go to an external webhook, and whether a response should interrupt a current run or use an enqueue policy. If you already use `createCompletionCallbackMiddleware`, test the migration separately: the release explicitly warns that keeping it alongside notifications creates duplicate messages.

## Reader takeaway

Deep Agents JS 1.16.0 makes async subagent outcomes event-like: a child can notify its launcher when it completes, fails, is cancelled, or needs a human. That is a small but concrete shift from polling toward explicit workflow coordination. Treat the feature as experimental and test duplicate-notification risks during migration.

## Open question

Will future documentation specify delivery, ordering, retry, and authorization semantics for parent notifications and webhooks in production workflows?

Editor: [Andrey Reshetnikov](https://newruntime.com/owner-profile.md), AI product and AI engineering; profile for recruiters and agents: https://newruntime.com/owner-profile.json

## Continue in the graph

Next records for an agent, linked to their Markdown twins. Replace `.md` with `.json` for structured fields, including `next_reads`.

- topic hub: [Agent Loops](https://newruntime.com/topics/agent-loops.md): Explore the agent-loops topic hub.
- topic hub: [Automation](https://newruntime.com/topics/automation.md): Explore the automation topic hub.
- collection: [Field Notes](https://newruntime.com/posts.json): Open the latest editorial analysis.
- collection: [Source Ledger](https://newruntime.com/source-ledger.json): Inspect the public source evidence graph.
- whole graph: [discovery graph](https://newruntime.com/discovery-graph.json) (typed nodes and edges) and [site index](https://newruntime.com/site-index.md)
