Technical Guide

23. 终局实战:自己写一个研究型 Agent

把前面能力串起来,设计一个能接收主题、搜索资料、调用工具、生成 Markdown 报告的研究型 Agent。

终局实战做什么

这一组不是再讲概念。

我们要做一个研究型 Agent。

它接收一个研究主题,然后完成:

理解问题
搜索资料
抓取正文
整理证据
调用必要工具
生成 Markdown 报告
保存文件产物
返回验收结果

为什么选研究型 Agent

研究任务很适合检验 Agent 框架。

因为它会用到前面几乎所有能力:

Tools:搜索、抓取、文件操作
Skills:约束报告质量
Sub-agents:拆分资料收集和源码定位
Sandbox:生成和保存文件
MCP:接外部资料源
Memory:记住偏好和报告格式
Tracing:排查失败

第一版不要太复杂

第一版目标:

输入一个主题
输出一份 Markdown 报告
报告包含来源和不确定性说明
文件能保存下来

不要一开始追求全自动、全联网、全工具。

验收标准

完成后至少要能回答:

资料从哪里来?
哪些结论有证据?
哪些地方不确定?
报告文件在哪里?
失败时从哪里排查?

这一篇你要记住

终局实战不是“写一个更长 prompt”。

它是把 DeerFlow 的工程能力串成一条可运行、可验证的任务链路。

输入和输出先定死

第一版不要做开放式 Agent。

输入固定为:

研究主题
报告长度
是否需要源码分析
是否需要外部 MCP

输出固定为:

Markdown 报告
来源列表
不确定性说明
文件路径

边界清楚,才方便验证。

最小可用版本

最小版本只需要:

模型
搜索
网页抓取
报告 Skill
文件保存

Sub-agent、MCP、Memory 可以第二版再加。

不要第一版就把所有能力塞进去。

失败也要有产物

如果资料不足,也应该生成一份失败报告,说明缺了什么,而不是返回一段泛泛道歉。

实践:练手小作业

先写出最小版本的输入输出契约,不接 Sub-agent、MCP 或 Memory。然后用一个小主题跑一次“搜索—抓取—报告—保存”链路,报告长度控制在 800 字以内。

完成标准

  • 输入包含主题和报告长度;
  • 报告包含来源与不确定性说明;
  • Markdown 文件实际存在且可读取;
  • 返回值包含文件路径;
  • 资料不足时仍生成说明缺口的产物。

多走一步(可选)

只选择 Sub-agent、MCP、Memory 中最能解决当前一个问题的能力加入第二次运行,并比较产物差异。