数据截至 (上游 commit 1f8f3e285bbc)
Open Deep Research (dzhng) — 架构与原理
30 秒导读: 你给它一句话题目(外加广度、深度两个旋钮),它就会自己不停地"想搜索词 → 搜网页 → 读结果 → 提炼要点 → 顺着要点再想下一批搜索词",像一棵树一样把问题层层展开,最后把攒下来的所有要点交给 LLM 写成一篇带来源链接的 Markdown 报告。全项目刻意压在 500 行以内,是理解「deep research agent」最干净的样本。
1. 这是什么(零基础也能懂)
一句话定义: 一个"会自己深挖"的 AI 研究助手——你只出一个题目,它自动做多轮网络搜索、层层深入,最后产出一份报告。
解决什么问题 / 给谁用:
假设你想研究"2025 年固态电池的商业化进展"。普通做法是你自己去搜索引擎敲十几个关键词 、点开几十个网页、边读边记笔记,读到新名词又回头再搜。这个项目就是把"敲词 → 读 → 记 → 再敲词"这个人肉循环自动化:LLM 负责想搜索词和提炼要点,搜索引擎(Firecrawl)负责真的去搜真的去抓网页正文。
给谁用:想要一份"比一次性问 ChatGPT 更深、有真实网页来源"的调研报告的人;以及想学"deep research agent 到底怎么写"的工程师。
它能做什么:
- 迭代式深挖:一轮的发现会喂给下一轮,越挖越具体。
- 广度/深度两个旋钮:控制"每层铺多宽"和"往下钻多少层"。
- 先问清楚再动手:报告模式下先反问你几个澄清问题。
- 两种产出:长报告(
report.md)或一句话精确答案(answer.md)。 - 并发搜索:同一层的多个搜索词并行跑。
用起来什么样:
一段真实的命令行交互(来自 src/run.ts:32-115):
$ npm start
Using model: o3-mini
What would you like to research? 固态电池 2025 商业化进展
Enter research breadth (recommended 2-10, default 4): 4
Enter research depth (recommended 1-5, default 2): 2
Do you want to generate a long report or a specific answer? (report/answer, default report): report
Creating research plan...
To better understand your research needs, please answer these follow-up questions:
你更关心哪个地区的量产进度(中国/日本/欧美)?
Your answer: 中国和日本
...
Starting research...
之后它就自己跑起来,最后把报告存到 report.md。
一句话直觉/类比: 把它想成"一棵会自己长的搜索树"——树根是你的题目,每个节点先让 LLM 想出几个搜索词(这是分叉,宽度由 breadth 决定),搜到结果提炼出要点后,再顺着要点往下长一层(这是加深,层数由 depth 决定),到达底层就停。所有节点攒下的要点汇到一起,就是报告的原料。