> [!CAUTION] > Merging this PR will automatically publish to **PyPI** and create a **GitHub release**. For the full release process, see [`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md). --- _Release notes preview: keep this section in sync with the package `CHANGELOG.md`. Publish reads the merged CHANGELOG via `release.yml`, not this PR description — keep them aligned anyway so the PR stays an accurate historical record for reviewers and anyone returning later._ --- ## [0.7.9](https://github.com/langchain-ai/deepagents/compare/deepagents==0.7.8...deepagents==0.7.9) (2026-08-25) ### Features - Disabled tracing inputs on middleware. ([#5377](https://github.com/langchain-ai/deepagents/issues/5377)) ### Bug fixes - Exclude tools from execution when `excluded_tools` is set in harness profiles. ([#5809](https://github.com/langchain-ai/deepagents/issues/5809)) - Enforce full criterion coverage in `RubricMiddleware`. ([#5234](https://github.com/langchain-ai/deepagents/issues/5234)) - Clarified zero execute-timeout semantics. ([#5752](https://github.com/langchain-ai/deepagents/issues/5752)) _End release notes preview._ --- > [!NOTE] > A **community contributors** list and a **Special thanks** section (crediting the users who filed the issues this release's PRs closed) are appended to the GitHub release notes automatically at publish time (see [Release Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline), step 3). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: langchain-oss-automated-triage[bot] <248757908+langchain-oss-automated-triage[bot]@users.noreply.github.com>
Async Subagent Server
A self-hosted Agent Protocol server that exposes a Deep Agents researcher as an async subagent. Use this as a starting point for hosting your own agent on any infrastructure and connecting it to a Deep Agents supervisor.
The example includes both sides of the pattern:
server.py— the FastAPI server your subagent runs onsupervisor.py— an interactive REPL showing how to connect to it
Prerequisites
ANTHROPIC_API_KEY— requiredTAVILY_API_KEY— optional; stub search is used if not set
Quickstart
1. Install dependencies:
cd examples/async-subagent-server
uv sync
2. Set up your environment:
cp .env.example .env
# fill in ANTHROPIC_API_KEY (and optionally TAVILY_API_KEY)
3. Start the server:
uv run uvicorn server:app --port 2024
4. In another terminal, start the supervisor:
cd examples/async-subagent-server
ANTHROPIC_API_KEY=... uv run python supervisor.py
Try these prompts:
> research the latest developments in quantum computing
> check status of <task-id>
> update <task-id> to focus on commercial applications only
> cancel <task-id>
> list all tasks
Implemented endpoints
These are the Agent Protocol endpoints the Deep Agents async subagent middleware calls (via the LangGraph SDK):
| Endpoint | Purpose |
|---|---|
POST /threads |
Create a thread for a new task |
POST /threads/{thread_id}/runs |
Start or interrupt+restart a run |
GET /threads/{thread_id}/runs/{run_id} |
Poll run status |
GET /threads/{thread_id} |
Fetch thread state (values.messages) |
POST /threads/{thread_id}/runs/{run_id}/cancel |
Cancel a run |
GET /ok |
Health check |
Swap in your own agent
Replace the create_deep_agent call in server.py with your own agent. The Agent Protocol layer stays the same regardless of what the agent does.
_agent = create_deep_agent(
model=ChatAnthropic(model="claude-sonnet-4-5"),
system_prompt="You are a ...",
tools=[your_tool],
)
⚠️ For demonstration purposes only
This example is intended to illustrate the self-hosted async subagent pattern. It does not feature authentication, rate limiting, or other features required for production use.
Resources
- LangChain Academy — Comprehensive, free courses on LangChain libraries and products, made by the LangChain team.
- Code of Conduct — community guidelines and standards