前言
收集到的 Deep Research 项目。
Mermaid语法在线调试:https://mermaid.live
介绍
2025年2月2日OpenAI发布了Deep Research
src: https://openai.com/index/introducing-deep-research/
深度研究是OpenAI的下一个代理,可以独立为你工作——你给它一个提示,ChatGPT将找到、分析和综合数百个在线资源,以创建一个研究分析师级别的综合报告。由即将推出的针对网络浏览和数据分析进行优化的OpenAI o3模型的一个版本提供支持,它利用推理来搜索、解释和分析互联网上大量的文本、图像和PDF,根据需要对遇到的信息做出反应。
深度研究通过端到端强化学习在一系列领域的艰难浏览和推理任务中进行训练。通过这种训练,它学会了计划和执行多步骤轨迹来找到所需的数据,回溯并在必要时对实时信息做出反应。该模型还能够浏览用户上传的文件,使用python工具绘制和迭代图表,在其响应中嵌入生成的图表和来自网站的图像,并引用其来源中的特定句子或段落。作为这种培训的结果,它在许多专注于现实世界问题的公共评估中达到了新高。
DeepResearch Bench: A Comprehensive Benchmark for Deep Research Agents
src: https://huggingface.co/spaces/Ayanami0730/DeepResearch-Leaderboard
github: https://github.com/Ayanami0730/deep_research_bench
star: 258
Deep Research Agent From Scratch
star: 505
langchain-ai/open_deep_research
github: https://github.com/langchain-ai/open_deep_research
star: 7328
langchain-ai/local-deep-researcher
github: https://github.com/langchain-ai/local-deep-researcher
star: 7.9k
assafelovic/gpt-researcher
github: https://github.com/assafelovic/gpt-researcher
star: 22.9k
zilliztech/deep-searcher
github: https://github.com/zilliztech/deep-searcher
star: 6.8k
mshumer/OpenDeepResearcher
github: https://github.com/mshumer/OpenDeepResearcher
star: 2.7k
dzhng/deep-research
github: https://github.com/dzhng/deep-research
star: 17.4k
flowchart TB
subgraph Input
Q[User Query]
B[Breadth Parameter]
D[Depth Parameter]
end
DR[Deep Research] -->
SQ[SERP Queries] -->
PR[Process Results]
subgraph Results[Results]
direction TB
NL((Learnings))
ND((Directions))
end
PR --> NL
PR --> ND
DP{depth > 0?}
RD["Next Direction:
- Prior Goals
- New Questions
- Learnings"]
MR[Markdown Report]
%% Main Flow
Q & B & D --> DR
%% Results to Decision
NL & ND --> DP
%% Circular Flow
DP -->|Yes| RD
RD -->|New Context| DR
%% Final Output
DP -->|No| MR
%% Styling
classDef input fill:#7bed9f,stroke:#2ed573,color:black
classDef process fill:#70a1ff,stroke:#1e90ff,color:black
classDef recursive fill:#ffa502,stroke:#ff7f50,color:black
classDef output fill:#ff4757,stroke:#ff6b81,color:black
classDef results fill:#a8e6cf,stroke:#3b7a57,color:black
class Q,B,D input
class DR,SQ,PR process
class DP,RD recursive
class MR output
class NL,ND results
jina-ai/node-DeepResearch
github: https://github.com/jina-ai/node-DeepResearch
star: 4.7k
---
config:
theme: mc
look: handDrawn
---
flowchart LR
subgraph Loop["until budget exceed"]
direction LR
Search["Search"]
Read["Read"]
Reason["Reason"]
end
Query(["Query"]) --> Loop
Search --> Read
Read --> Reason
Reason --> Search
Loop --> Answer(["Answer"])
flowchart TD
Start([Start]) --> Init[Initialize context & variables]
Init --> CheckBudget{Token budget<br/>exceeded?}
CheckBudget -->|No| GetQuestion[Get current question<br/>from gaps]
CheckBudget -->|Yes| BeastMode[Enter Beast Mode]
GetQuestion --> GenPrompt[Generate prompt]
GenPrompt --> ModelGen[Generate response<br/>using Gemini]
ModelGen --> ActionCheck{Check action<br/>type}
ActionCheck -->|answer| AnswerCheck{Is original<br/>question?}
AnswerCheck -->|Yes| EvalAnswer[Evaluate answer]
EvalAnswer --> IsGoodAnswer{Is answer<br/>definitive?}
IsGoodAnswer -->|Yes| HasRefs{Has<br/>references?}
HasRefs -->|Yes| End([End])
HasRefs -->|No| GetQuestion
IsGoodAnswer -->|No| StoreBad[Store bad attempt<br/>Reset context]
StoreBad --> GetQuestion
AnswerCheck -->|No| StoreKnowledge[Store as intermediate<br/>knowledge]
StoreKnowledge --> GetQuestion
ActionCheck -->|reflect| ProcessQuestions[Process new<br/>sub-questions]
ProcessQuestions --> DedupQuestions{New unique<br/>questions?}
DedupQuestions -->|Yes| AddGaps[Add to gaps queue]
DedupQuestions -->|No| DisableReflect[Disable reflect<br/>for next step]
AddGaps --> GetQuestion
DisableReflect --> GetQuestion
ActionCheck -->|search| SearchQuery[Execute search]
SearchQuery --> NewURLs{New URLs<br/>found?}
NewURLs -->|Yes| StoreURLs[Store URLs for<br/>future visits]
NewURLs -->|No| DisableSearch[Disable search<br/>for next step]
StoreURLs --> GetQuestion
DisableSearch --> GetQuestion
ActionCheck -->|visit| VisitURLs[Visit URLs]
VisitURLs --> NewContent{New content<br/>found?}
NewContent -->|Yes| StoreContent[Store content as<br/>knowledge]
NewContent -->|No| DisableVisit[Disable visit<br/>for next step]
StoreContent --> GetQuestion
DisableVisit --> GetQuestion
BeastMode --> FinalAnswer[Generate final answer] --> End
u14app/deep-research
github: https://github.com/u14app/deep-research
star: 3.8k
flowchart TB
A[Research Topic]:::start
subgraph Propose[Propose your ideas]
B1[System asks questions]:::process
B2[System outputs the research plan]:::process
B3[System generates SERP queries]:::process
B1 --> B2
B2 --> B3
end
subgraph Collect[Information collection]
C1[Initial research]:::collection
C1a[Retrieve local research resources based on SERP queries]:::collection
C1b[Collect information from the Internet based on SERP queries]:::collection
C2[In-depth research]:::recursive
Refine{More in-depth research needed?}:::decision
C1 --> C1a
C1 --> C1b
C1a --> C2
C1b --> C2
C2 --> Refine
Refine -->|Yes| C2
end
Report[Generate Final Report]:::output
A --> Propose
B3 --> C1
%% Connect the exit from the loop/subgraph to the final report
Refine -->|No| Report
%% Styling
classDef start fill:#7bed9f,stroke:#2ed573,color:black
classDef process fill:#70a1ff,stroke:#1e90ff,color:black
classDef recursive fill:#ffa502,stroke:#ff7f50,color:black
classDef output fill:#ff4757,stroke:#ff6b81,color:black
classDef collection fill:#a8e6cf,stroke:#3b7a57,color:black
classDef decision fill:#c8d6e5,stroke:#8395a7,color:black
class A start
class B1,B2,B3 process
class C1,C1a,C1b collection
class C2 recursive
class Refine decision
class Report output
nickscamara/open-deep-research
github: https://github.com/nickscamara/open-deep-research
star: 5.9k
LearningCircuit/local-deep-research
github: https://github.com/LearningCircuit/local-deep-research
star: 3.3k
btahir/open-deep-research
github: https://github.com/btahir/open-deep-research
star: 2k
qx-labs/agents-deep-research
github: https://github.com/qx-labs/agents-deep-research
star: 573
IterativeResearcher Flow
flowchart LR
A["User Input<br>- query<br>- max_iterations<br>- max_time<br>- output_instructions"] --> B
subgraph "Deep Research Loop"
B["Knowledge<br>Gap Agent"] -->|"Current gaps<br>& objective"| C["Tool Selector<br>Agent"]
C -->|"Tool queries<br>(run in parallel)"| D["Tool Agents<br>- Web Search<br>- Crawler<br>- Custom tools"]
D -->|"New findings"| E["Observations<br>Agent"]
E --> |"Thoughts on findings<br>and research strategy"| B
end
E --> F["Writer Agent<br>(final output<br>with references)"]
DeepResearcher Flow
flowchart LR
A["User Input<br>- query<br>- max_iterations<br>- max_time"] --> B["Planner Agent"]
B -->|"Report plan<br>(sections & background context)"| D2
subgraph Parallel["Parallel Section Research"]
D1["IterativeResearcher<br>(Section 1)"]
D2["IterativeResearcher<br>(Section 2)"]
D3["IterativeResearcher<br>(Section 3)"]
end
D1 -->|"Section 1<br>Draft"| E["Proofreader<br>Agent"]
D2 -->|"Section 2<br>Draft"| E
D3 -->|"Section 3<br>Draft"| E
E --> F["Final<br>Research<br>Report"]
结语
第三百五十八篇博文写完,开心!!!!
今天,也是充满希望的一天。