基于 Langgraph4j 框架的深度研究助手,具备迭代式深度研究能力。
Langgraph4j Deep Researcher 是一个智能研究助手,能够:
- 🔍 智能搜索查询生成:根据研究主题自动生成优化的搜索查询
- 🌐 多轮迭代搜索:执行多轮Web搜索,逐步深入研究主题
- 📝 智能内容总结:将搜索结果整合成连贯的研究总结
- 🤔 知识缺口反思:分析现有总结,识别知识缺口并生成新查询
- 📋 最终报告整理:生成结构化的Markdown研究报告
- Java 17 - 现代Java开发
- Spring Boot 3.1.0 - 企业级Web框架
- Langgraph4j - 图执行引擎和工作流编排
- Langchain4j - AI模型集成和工具调用
- Tavily Search API - 高质量Web搜索
langgraph4j-deep-researcher/
├── langgraph4j-deep-researcher-api/ # API 接口定义和数据传输对象
├── langgraph4j-deep-researcher-config/ # 配置管理和提示词模板
├── langgraph4j-deep-researcher-tools/ # 搜索工具集成(支持多搜索引擎)
├── langgraph4j-deep-researcher-core/ # 核心业务逻辑和服务
└── langgraph4j-deep-researcher-starter/ # 启动模块和配置文件
- Java 17+
- Maven 3.6+
- Tavily API Key(可选,用于Web搜索)
编辑 langgraph4j-deep-researcher-starter/src/main/resources/application.yml:
deep-research:
model:
api-key: ${CHAT_MODEL_API_KEY:your-api-key}
api-url: ${CHAT_MODEL_API_URL:https://api.openai.com/v1}
model-name: ${CHAT_MODEL_MODEL_NAME:gpt-4o-mini}
search:
tavily:
api-key: ${TAVILY_API_KEY:your-tavily-api-key}或设置环境变量:
export CHAT_MODEL_API_KEY=your-api-key
export CHAT_MODEL_API_URL=https://api.openai.com/v1
export TAVILY_API_KEY=your-tavily-api-key# 构建项目
mvn clean package -DskipTests
# 运行应用
mvn spring-boot:run -pl langgraph4j-deep-researcher-starter
# 或直接运行jar包
java -jar langgraph4j-deep-researcher-starter/target/langgraph4j-deep-researcher-starter-1.0.0-SNAPSHOT.jar应用将在 http://localhost:8080 启动。
curl -X POST http://localhost:8080/api/v1/research/execute \
-H "Content-Type: application/json" \
-d '{
"research_topic": "人工智能在医疗领域的最新应用",
"max_research_loops": 3,
"search_engine": "tavily",
"max_search_results": 3,
"fetch_full_page": true,
"user_id": "tom"
}'curl http://localhost:8080/api/v1/research/search-enginescurl http://localhost:8080/api/v1/research/healthLanggraph4j Deep Researcher 使用以下工作流程:
graph TD
A[用户输入研究主题] --> B[QueryGeneratorNode<br/>🎯 生成搜索查询]
B --> C[WebSearchNode<br/>🔍 执行Web搜索]
C --> D[SummarizerNode<br/>📝 总结搜索结果]
D --> E[ReflectionNode<br/>🤔 反思知识缺口]
E --> F{RouteResearch<br/>🚦 路由决策}
F -->|continue<br/>未达到最大循环| G[生成新查询]
G --> C
F -->|finalize<br/>达到最大循环| H[FinalizerNode<br/>✅ 最终整理]
H --> I[输出最终研究报告]
deep-research:
model:
api-key: your-api-key # API KEY
api-url: https://api.openai.com/v1 # API 地址
model-name: gpt-4o-mini # 模型名称
temperature: 0.1 # 温度参数
max-tokens: 4096 # 最大token数deep-research:
search:
default-engine: tavily # 默认搜索引擎
tavily:
api-key: your-tavily-api-key # Tavily API Key
search-depth: advanced # 搜索深度
include-raw-content: true # 是否包含原始内容deep-research:
flow:
default-max-loops: 3 # 默认最大循环次数
default-max-search-results: 3 # 默认搜索结果数
default-fetch-full-page: true # 是否获取完整页面
max-tokens-per-source: 1000 # 每个源的最大token数Langgraph4j Deep Researcher 支持可扩展的搜索引擎架构。要添加新的搜索引擎:
- 实现
SearchEngine接口 - 注册为 Spring 组件
- 配置相应的参数
示例:
@Component("customSearchEngine")
public class CustomSearchEngine implements SearchEngine {
@Override
public List<SearchResult> search(String query, int maxResults, boolean fetchFullPage) {
// 实现搜索逻辑
}
@Override
public String getEngineName() {
return "custom";
}
@Override
public boolean isAvailable() {
// 检查可用性
}
}- 端点:
/api/v1/research/health - Actuator:
/actuator/health
logging:
level:
io.github.imfangs.ai.deepresearch: DEBUG
dev.langchain4j: INFO
org.bsc.langgraph4j: INFO应用集成了 Spring Boot Actuator,提供以下监控端点:
/actuator/health- 健康状态/actuator/metrics- 应用指标/actuator/prometheus- Prometheus 格式指标
# 克隆项目
git clone <repository-url>
cd langgraph4j-deep-researcher
# 安装依赖
mvn clean install
# 运行测试
mvn test
# 启动开发服务器
mvn spring-boot:run -pl langgraph4j-deep-researcher-starter- API层:定义接口规范和数据传输对象
- Config层:管理配置和提示词模板
- Tools层:集成外部搜索工具
- Core层:核心业务逻辑和服务
- Graph层:LangGraph4j 工作流定义
- Starter层:应用启动和配置
启用详细日志:
logging:
level:
io.github.imfangs.ai.deepresearch: DEBUG
org.bsc.langgraph4j: DEBUG- Fork 项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送分支 (
git push origin feature/amazing-feature) - 开启 Pull Request
本项目采用 MIT License 许可证。