Agent Engineering 课程阅读
首页/作品项目/Deep Research Agent v2 架构文档(Frontier L11 毕

在 GitHub 查看原文

本页目录

Deep Research Agent v2 架构文档(Frontier L11 毕业整合)

从「搜索→写报告」的一次性系统,进化为有记忆、能反思、会写代码、跨会话进化的深度研究智能体

本文档是 frontier-lessons 13 课的毕业产出,记录五机制协同的架构、数据流、开关与降级路径。


1. 五机制全景

┌─────────────────── Deep Research Agent v2 ───────────────────┐
│                                                               │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐  │
│  │  记忆     │   │ Skills   │   │  反思     │   │ 代码解释器│  │
│  │ (L01-02) │   │ (L03)    │   │ (L04-05) │   │ (L06-07) │  │
│  │          │   │          │   │          │   │          │  │
│  │ 经验调回  │   │ 能力调回  │   │ 错误修正  │   │ 可复算计算│  │
│  │ recall   │   │ load     │   │ reflect  │   │ execute  │  │
│  └─────┬────┘   └────┬─────┘   └────┬─────┘   └────┬─────┘  │
│        │             │              │              │         │
│        └──────┬──────┴──────┬───────┴──────┬───────┘         │
│               │             │              │                 │
│               ▼             ▼              ▼                 │
│         researcher      writer        reviewer               │
│               │             │              │                 │
│               └──────┬──────┴──────────────┘                 │
│                      │                                       │
│              ┌───────▼────────┐                               │
│              │  TaskLedger    │   跨会话计划推进(L10)         │
│              │  (进度管理)     │   断点续跑 + 增量简报          │
│              └────────────────┘                               │
│                                                               │
│              ┌────────────────┐                               │
│              │ TrajectoryEval │   轨迹评估(L08-09)           │
│              │  (质量度量)     │   机制收益量化                 │
│              └────────────────┘                               │
│                                                               │
└───────────────────────────────────────────────────────────────┘

2. 一次运行中的数据流

以"第 2 次研究 MCP 生态"为例(全机制开启):

用户输入: "继续追踪 MCP 生态演进"
    │
    ▼
① TaskLedger.next_actions("MCP 生态演进")
    → 返回未完成 TODO: [查 MCP 2025 路线图]
    → "接着上次做,而非从头"
    │
    ▼
② research_team 子图
    ├─ split: 拆子题(基于 next_actions 的 TODO)
    ├─ researcher (并行):
    │    ├─ MemoryStore.recall("MCP 2025 路线图")
    │    │    → 命中旧记忆: "上次查到 MCP 聚焦互操作"
    │    │    → 注入 prompt: "在旧记忆基础上深化"
    │    ├─ web_search: 联网补充新信息
    │    └─ kb_search: 内部知识库(可选)
    └─ summarize: 汇总发现
    │
    ▼
③ writer
    ├─ SkillLoader.load_matched_skills(摘要)
    │    → 匹配 "research-brief-format" skill → 加载格式规范
    ├─ 写报告(遵循 skill 格式 + 增量标注 🆕✏️➡️)
    ├─ if should_use_code(摘要):
    │    ├─ LLM 生成分析代码
    │    ├─ CodeInterpreter.execute_code (沙箱)
    │    └─ 结果 + 代码附录附报告(可复算)
    └─ 产出报告
    │
    ▼
④ reviewer (双通道)
    ├─ 事实通道: check_conflicts(新findings, 记忆旧结论)
    │    → 发现冲突? → re_research → 回 ② 补研
    └─ 文字通道: 评估报告质量
         → 不合格? → rework → 回 ③ 重写
         → 合格? → pass
    │
    ▼
⑤ 研究结束(后处理)
    ├─ reflect_and_store(findings → 记忆库)
    │    → LLM 提炼"学到了什么" → 存入 MemoryStore
    ├─ MemoryStore.consolidate → 多条情景归纳成语义结论
    ├─ MemoryStore.forget → 淘汰旧且不用的记忆
    ├─ TaskLedger.update_status → 标记 TODO 完成
    └─ TrajectoryEval → 轨迹落盘 + 指标卡
    │
    ▼
产出: 增量简报(含 🆕新增/✏️修正/➡️不变)+ 可复算附录

3. 开关与降级路径

每个机制默认关闭,可独立开关。关掉任一机制系统仍能跑(降级路径完好)。

机制 config 开关 默认 关闭时降级
记忆 recall enable_memory False researcher 不注入旧记忆(从零研究)
反思式写入 enable_memory False 研究后不提炼记忆(无跨会话学习)
Skills enable_skills False writer 不加载格式规范(默认格式)
代码解释器 enable_code_interpreter False 数值走 LLM 直出(不可复算)
双通道 reviewer enable_memory False 只走文字通道(不检测事实冲突)
任务账本 enable_ledger False 每次从头研究(无断点续跑)
轨迹落盘 总是开启 每次运行产出 traces/

降级保证

# 全关:等同原始 research-assistant(25 测试全绿)
# 部分开:只开需要的机制,其余降级
# 全开:Deep Research v2 完整能力

关键约束:全部 104 个测试在所有开关组合下都应通过(默认全关测)。


4. 机制收益表(对照 L00 裸基线)

指标 L00 裸基线 v2 全开 差异
记忆召回 0% 100% 从失忆到记得
反思 失败可修正
冲突修正 错误结论可纠正
代码执行 数值可复算
跨会话增量 不从头重写
步数效率 9 步/次 更少(第2次起) 记忆避免重复查

⚠️ 诚实标注:具体数字来自 L09 的 mock 演示(非真实 API)。真实数字需 run_harness.py --real 跑。mock 演示验证的是机制成立(从无到有),不是具体数值


5. 技术栈

  • LLM: 智谱 GLM-4 / glm-4-flash(多模型路由,绝不引入 OpenAI/Anthropic)
  • 框架: LangGraph(图编排 + checkpoint)
  • 记忆: Chroma 向量库(情景)+ 内存 list(语义)
  • 账本: sqlite(TODO 树持久化)
  • 沙箱: subprocess + import 白名单 + 超时(进程级)
  • 评估: 自研 TrajectoryEvaluator(规则 + judge 混合)
  • 所有核心机制手写:记忆/反思/沙箱/评估器/skill_loader/task_ledger