Deep Agents v0.5 发布:异步子代理与Agent架构新范式

0 阅读3分钟

LangChain 推出 Deep Agents v0.5,引入异步子代理(Async Subagents)能力,让 Agent 可以将耗时任务委托给远程代理后台执行,主线程不再阻塞。这一更新改变了 Agent 的架构模式,值得 Java 开发者关注。

核心更新:异步子代理

问题背景

之前的子代理(SubAgent)是同步阻塞的——当主代理调用子代理时,必须等待子代理完成后才能继续。对于短任务这没问题,但对于需要几分钟的深度研究、大规模代码分析、多步骤数据处理,阻塞就成了瓶颈。

主代理在等待期间无法响应用户,也无法推进其他工作。

解决方案

v0.5 引入了 AsyncSubAgent,核心变化:

  1. 非阻塞执行:主代理启动任务后立即返回任务 ID,继续其他工作
  2. 状态保持:子代理维护自己的会话状态,主代理可以中途发送指令或纠偏
  3. 并行执行:可以同时启动多个异步子代理
from deepagents import AsyncSubAgent, create_deep_agent

agent = create_deep_agent(
    model="anthropic:claude-sonnet-4-6",
    subagents=[
        AsyncSubAgent(
            name="researcher",
            description="Performs deep research on a topic.",
            url="https://my-agent-server.dev",
            graph_id="research_agent",
        ),
    ],
)

新增工具

配置异步子代理后,主代理自动获得 5 个工具:

工具功能
start_async_task启动远程任务,立即返回任务 ID
check_async_task轮询任务状态,完成后获取结果
update_async_task向运行中的任务发送后续指令
cancel_async_task取消运行中的任务
list_async_tasks列出所有任务及其状态

架构意义:异构部署成为可能

这个更新不只是"加了异步",而是改变了 Agent 的部署模式:

之前:所有代理在一个进程中运行,资源竞争,无法扩展

现在

  • 轻量级编排器负责调度
  • 专用远程代理运行在不同硬件上
  • 不同代理可以使用不同模型
  • 每个代理维护自己的工具集

这正是企业级 Agent 架构的演进方向——关注点分离,按需扩展

Agent Protocol:开放协议

任何实现 Agent Protocol 的服务都可以作为异步子代理的目标:

  • LangSmith 部署的 Agent
  • 自定义 FastAPI 服务
  • 任何符合协议的实现

这意味着你可以用 Java、Go 或其他语言实现子代理服务,只要遵循 Agent Protocol。

对 Java 开发者的启示

1. 架构模式可以借鉴

异步子代理的思路可以应用到 Spring AI 项目中:

  • 主服务负责编排和用户交互
  • 耗时任务委托给独立微服务
  • 通过消息队列或 HTTP 实现异步通信

2. Agent Protocol 值得关注

如果你在构建企业级 Agent 系统,Agent Protocol 提供了一种标准化的通信协议,可以作为微服务间 Agent 交互的基础。

3. Memory 与 Harness 紧密耦合

这次更新也印证了一个趋势:Memory 不是独立服务,而是 Harness 的核心能力。异步子代理维护自己的状态,正是 Harness 管理 Context 的体现。

总结

Deep Agents v0.5 的异步子代理能力,本质上是将 Agent 从"单体应用"拆分为"微服务架构"。这对于构建企业级 Agent 系统有重要参考价值:

  • 解耦:编排与执行分离
  • 扩展:按需部署专用代理
  • 灵活:不同模型、不同工具集
  • 开放:基于 Agent Protocol,实现语言无关

参考链接