开放deep research
AI驱动的研究助理,通过结合搜索引擎,网络刮擦和大型语言模型对任何主题进行迭代, deep research 。
该仓库的目的是提供deep research代理的最简单实施 – 例如,可以随着时间的推移来完善其研究方向并深入研究主题的代理。目标是将回购尺寸保持在<500 LOC,以便易于理解和建立在上面。
如果您喜欢这个项目,请考虑主演它,并在X/Twitter上给我关注。该项目由AOMNI赞助。
它如何工作
流程图结核
子图输入
问[用户查询]
b [广度参数]
D [深度参数]
结尾
[ deep research ]博士 - >
SQ [SERP查询] - >
PR [过程结果]
子图结果[结果]
方向tb
NL((学习))
ND((方向))
结尾
pr-> nl
pr-> nd
dp {depth> 0?}
rd [“下一个方向:
- 先前的目标
- 新问题
- 学习”]]
MR [MARKDOWN报告]
%%主流
问答B&D-> DR
决策结果
NL&nd-> DP
%%圆流
DP-> |是|路
RD - > |新上下文|博士
%%最终输出
DP-> | no |先生
%%样式
classDef输入填充:#7bed9f,中风:#2ED573,颜色:黑色
ClassDef过程填充:#70A1FF,中风:#1E90FF,颜色:黑色
ClassDef递归填充:#FFA502,中风:#FF7F50,颜色:黑色
ClassDef输出填充:#FF4757,中风:#FF6B81,颜色:黑色
ClassDef结果填充:#A8E6CF,中风:#3B7A57,颜色:黑色
Q类,B,D输入
Class DR,SQ,PR过程
DP类,RD递归
班级先生输出
NL类,结果
加载中
特征
- 迭代研究:通过迭代产生搜索查询,处理结果和深入研究,根据发现进行深入deep research
- 智能查询生成:使用LLM根据研究目标和以前的发现来生成目标搜索查询
- 深度和广度控制:可配置参数以控制研究的宽度(广度)和深度(深度)
- 明智的后续行动:生成后续问题以更好地了解研究需求
- 综合报告:生成带有发现和来源的详细的Markdown报告
- 并发处理:处理多个搜索和结果处理,并并行处理以提高效率
要求
- Node.js环境
- API键:
- FireCrawl API(用于网络搜索和内容提取)
- OpenAI API(用于O3 Mini型号)
设置
node.js
- 克隆存储库
- 安装依赖项:
npm install
- 在.env.Local文件中设置环境变量:
FIRECRAWL_KEY= \" your_firecrawl_key \" # If you want to use your self-hosted Firecrawl, add the following below: # FIRECRAWL_BASE_URL=\"http://lo*c*alho*st:3002\" OPENAI_KEY= \" your_openai_key \"
要使用本地LLM,请发表OpenAi_key,而不是openai_endpoint和OpenAi_model:
- 将OpenAI_ENDPOINT设置为本地服务器的地址(例如。“ http:// localhost:1234/v1”)
- 将OpenAi_model设置为加载在本地服务器中的模型的名称。
Docker
-
克隆存储库
-
重命名.env.example为.env.local并设置您的API键
-
运行Docker Build -f Dockerfile
-
运行Docker图像:
docker compose up -d
- 在Docker服务中执行NPM运行Docker:
docker exec -it deep-research npm run docker
用法
运行研究助理:
npm start
您会被提示:
- 输入您的研究查询
- 指定研究广度(建议:3-10,默认值:4)
- 指定研究深度(建议:1-5,默认:2)
- 回答后续问题以完善研究方向
然后,系统将:
- 生成和执行搜索查询
- 处理和分析搜索结果
- 根据发现递归探索更深入的探索
- 生成全面的降价报告
最终报告将根据您选择的模式保存为report.md或anders.md。
并发
如果您有付费版本的Firecrawl或本地版本,请通过设置Conturrency_limit环境变量来随意增加并发限度,以使其运行速度更快。
如果您有免费版本,则有时可能会遇到速率限制错误,可以将限制降低到1(但它的运行速度较慢)。
DeepSeek R1
deep research在R1上表现出色!我们使用烟花作为R1型号的主要提供商。要使用R1,只需设置烟花蛋白API密钥:
FIREWORKS_KEY= \" api_key \"
当检测到键时,系统将自动切换为使用R1而不是O3-Mini。
自定义端点和模型
还有另外2个可选的Env vars,可让您调整端点(对于其他兼容兼容API,例如OpenRouter或Gemini)以及模型字符串。
OPENAI_ENDPOINT= \" custom_endpoint \" CUSTOM_MODEL= \" custom_model \"
它如何工作
-
初始设置
- 获取用户查询和研究参数(广度和深度)
- 产生后续问题以更好地了解研究需求
-
deep research过程
- 根据研究目标生成多个SERP查询
- 处理搜索结果以提取关键学习
- 生成后续研究指示
-
递归探索
- 如果深度> 0,请采取新的研究方向并继续探索
- 每次迭代都基于以前的学习
- 保持研究目标和发现的背景
-
报告生成
- 将所有调查结果汇编成全面的Markdown报告
- 包括所有来源和参考
- 以清晰,可读的格式组织信息
执照
麻省理工学院许可证 – 随时使用并根据需要进行修改。
