Hotdry.
ai-systems

使用 DeerFlow 沙箱、内存、工具和子代理构建 SuperAgent 框架

基于 ByteDance DeerFlow 开源框架,工程化 superagent harness 以沙箱隔离、子代理协作、工具技能扩展,实现长时无监督研究编码创作的关键参数与监控要点。

在 AI agent 领域,构建能够独立处理复杂长时任务的 superagent 是关键挑战。ByteDance 开源的 DeerFlow 框架提供了一个完整的 harness,支持通过沙箱(sandboxes)、内存(memories)、工具(tools)、技能(skills)和子代理(subagents)来编排这样的系统。它专为研究、编码和创作等任务设计,能够无监督运行数分钟至数小时。本文聚焦于如何工程化 DeerFlow 的这些组件,实现可靠的 superagent 部署,包括具体参数配置、监控阈值和落地清单。

DeerFlow SuperAgent 架构核心组件

DeerFlow 2.0 是从头重写的 super agent harness,基于 LangGraph 和 LangChain,内置一切 agent 所需基础设施:文件系统、内存、沙箱执行和子代理规划。“DeerFlow 通过隔离的 Docker 容器为每个任务提供完整的文件系统,支持读写编辑文件和 bash 执行。” 这确保了任务的隔离性和可审计性,避免会话间污染。

沙箱(Sandbox) 是安全执行的基础,支持本地执行、Docker 容器或 Kubernetes pods。沙箱路径包括 /mnt/user-data/uploads(用户上传)、/mnt/user-data/workspace(工作目录)和 /mnt/user-data/outputs(输出)。工程化时,选择 Docker 模式以隔离资源:配置 config.yaml 中的 sandbox.use 为 src.community.aio_sandbox:AioSandboxProvider,并设置 provisioner_url 用于 K8s。参数建议:

  • CPU 限额:1-2 cores,避免单任务垄断。
  • 内存限额:4-8GB,根据模型上下文大小。
  • 超时阈值:单沙箱任务 300s,超过自动终止并回滚。

内存(Memory) 分上下文工程和长时记忆。上下文工程通过子任务总结和文件卸载管理窗口,避免 token 爆炸;长时记忆跨会话存储用户偏好、技术栈和工作流。落地参数:

  • 总结阈值:子任务输出 > 2000 tokens 时强制总结。
  • 记忆保留:仅保留 top-5 相关事实,周期性清理(每周)。
  • 存储:本地文件系统,加密可选。

工具与技能(Tools & Skills) 是扩展能力的核心。技能是 Markdown 定义的工作流,内置 research、report-generation、slide-creation 等,按需加载保持上下文精简。工具包括 web search、file ops、bash,支持 MCP 服务器自定义。配置示例:

models:
  - name: gpt-4o
    model: gpt-4o
    max_tokens: 128000  # 长上下文优先
    temperature: 0.3    # 确定性任务低采样

推荐模型:支持 100k+ 上下文、多模态的如 GPT-4o、Claude-3.5,支持工具调用。

子代理(Sub-Agents) 处理复杂分解:主代理动态生成子代理,每个有独立上下文、工具和终止条件,支持并行。“复杂任务通过扇出多个子代理探索不同角度,然后收敛合成输出。” 参数:

  • 最大子代理数:5-10,避免爆炸。
  • 并行度:2-4,根据沙箱资源。
  • 终止条件:输出结构化 JSON 或达到迭代限(20)。

工程化部署清单

  1. 环境准备

    • 克隆 repo:git clone https://github.com/bytedance/deer-flow.git
    • 生成配置:运行初始化命令创建 config.yaml 和 .env。
    • 设置 API 密钥:TAVILY_API_KEY、OPENAI_API_KEY 等(优先 .env)。
  2. Docker 启动(推荐生产)

    • make docker-init 拉取沙箱镜像。
    • make docker-start 启动服务,访问 http://localhost:2026。
    • K8s 模式:配置 kubeconfig 并启用 provisioner。
  3. 任务参数模板(config.yaml 片段):

    sandbox:
      mode: docker  # 或 k8s
      timeout: 1800  # 任务总时长秒
    context:
      max_subtasks: 10
      summarization_threshold: 1500  # tokens
    memory:
      retention_days: 30
      max_facts: 100
    
  4. 监控与告警

    • 指标:沙箱 CPU / 内存使用、token 消耗、子代理成功率。
    • 阈值:token / 任务 > 500k 告警;失败率 > 20% 暂停。
    • 日志:启用 backend/logs,监控 bash 执行权限。
    • 回滚:失败任务自动重试 3 次,降级到单代理。

风险控制与优化

沙箱隔离虽强,但需防范 bash 命令滥用:白名单工具,禁用 rm/* 等危险命令。长任务成本高:预估 token = 模型 avg * 迭代 * 子代理数,预算限 1M/task。测试场景:研究 “AI agent 最新进展”—— 主代理解析,子代理搜索 / 总结,沙箱生成报告。

实际落地示例:编码任务 “构建简单 web app”。主代理规划:子代理 1 设计架构、子代理 2 写代码(沙箱 bash 测试)、子代理 3 生成部署脚本。输出:/outputs/app.zip,无监督完成 30min。

通过以上参数与清单,DeerFlow 化身为可靠 superagent harness,适用于生产级研究管道、自动化创作等。

资料来源

查看归档