DeepAgents VS Agentscope2.0

Deep agents

基于langchain构建,使用langgraph运行时实现持久化、流式处理、human in the loop,简单使用:agent =create_deep_agent,所谓agent harness
  • 内置write_tools工具,进行规划和任务分解
  • 支持接入沙箱通过execute进行shell执行,由沙箱提供安全隔离的环境
  • 通过文件系统工具将大量上下文卸载到内存或文件系统,进行上下文管理
  • 内置的task工具让智能体可以生成子智能体进行上下文隔离
    • 子智能体是嵌套、短暂、单次交接的,父节点调用一次task,子用全新上下文跑完返回结果即结束
    • 子智能体栈中没有subAgentMiddleware,不能继续往下嵌套派生
  • 基于langgraph的记忆存储实现长期记忆
适用情况:在langchain+langgraph生态中,需要多样的云沙箱以及不需要持久化团队主要使用分派-获得结果的这种单次交接/上下文隔离的多智能体模式
关键实现
可插拔虚拟文件系统:不把文件系统直接绑定为本地磁盘,抽象为BackendProtocol
filesystem.py 顶部 import 展示了后端体系:
from deepagents.backends import (
    CompositeBackend,    //路由后端,根据路径前缀把不同的路径分发给不同后端
    FilesystemBackend,   //本地磁盘
    LocalShellBackend,   //带shell执行能力的本地沙箱
    StateBackend,        //in-memory,用langgraph的state chanel存储
)
上下文管理中的自动 Offloading
当工具返回的ToolMessage内容超过阈值时,Middleware 把原始内容写入虚拟文件系统(FilesystemBackend),消息里只保留一个引用路径和摘要(_create_content_preview),Agent 如果需要完整内容,可以通过 read_file 工具再读回来。
类似于操作系统中的内存换页机制,减少主要上下文窗口的膨胀问题。
 

Agentscope 2.0

无状态引擎,agent完全无状态,将状态分离到了agentState,可序列化可恢复,注重安全有独立的权限系统,支持分布式多租户部署
  • 多智能体编排:Agent Team
    • leader创建team,worker是独立的会话在同一服务上并发执行而不是嵌套在leader下面,leader通过读会话流观察进度;成员之间通过redis做消息总线来通信
    • 特点是:分布式,持久化,对等协作
  • 部署与可观测性:自带Agent Service,自带多租户、分布式状态、会话重访等功能,将多租户HTTP做进框架,更适合自控全栈
适用情况:从单agent到多租户分布式服务等全栈+注重工具调用安全性+需要多个智能体长期协作,想走多模态全链路
关键实现
洋葱圈Middleware + 事件驱动的Event Bus
在Agent的ReAct生命周期的7个节点进行hook,并通过next_handler构成链式调用,上一层middleware通过yield把控制权交给next_handler(),前后可插入逻辑:
on_reply          → 整个 reply 流程(最外层)
 └─ on_reasoning  → 模型推理阶段
     └─ on_model_call      → 原始 API 调用
     └─ on_check_permission → 工具权限检查
     └─ on_acting          → 工具执行阶段(纯 I/O 层)
         └─ on_compress_context → 上下文压缩
on_system_prompt  → 系统提示词变换(Pipeline 模式,非洋葱)
事件系统定义了30+个精细EventType,覆盖Agent执行全程的每一个节点:
ReplyStartEvent → ModelCallStartEvent
              → TextBlockDeltaEvent (流式文本)
              → ThinkingBlockDeltaEvent (思维链流)
              → ToolCallStartEvent → ToolCallEndEvent
              → RequireUserConfirmEvent  ← Human-in-the-loop 介入点
              → ToolResultStartEvent → ToolResultEndEvent
ReplyEndEvent
  • Human-in-the-loop实现方式:在事件流中插入一个暂停事件,外部系统捕获后处理,再通过UserConfirmResultEvent 恢复 Agent 执行
posted @ 2026-08-09 21:28  pinoky  阅读(50)  评论(0)    收藏  举报