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 中最能解决当前一个问题的能力加入第二次运行,并比较产物差异。