logo
4
2
WeChat Login

Decision Map DeepSearch

基于证据驱动的决策支持系统,采用多智能体协作研究。

项目概述

Decision Map DeepSearch 是一个智能研究平台,帮助用户做出明智的决策:

  • 🔍 问题分解 - 将复杂问题拆解为可研究的子问题
  • 👥 多角色研究 - 部署 5 个具有不同视角的 AI 研究智能体并行工作
  • 📊 证据收集 - 从多种来源实时搜索和抓取证据
  • 🗺️ 共识地图 - 构建包含支持/反对证据的四维评分共识地图
  • 📋 决策报告 - 生成包含共识、分歧、风险、路线的全面决策包
  • 📄 导出分享 - 支持 Markdown 格式导出

技术栈

类别技术
前端框架Next.js 15.1.3 + React 19
状态管理Zustand
语言TypeScript 5.7.2
样式Tailwind CSS 3.4
大模型DeepSeek (主) / Qwen (备)
LLM SDKLangChain
搜索工具Tavily API
抓取工具Firecrawl API
数据校验Zod
API 文档Scalar (OpenAPI 3.0)

功能特性

✅ 已完成 (MVP)

  • LLM 集成层 - 统一接口,自动故障转移,重试机制,流式响应
  • 问题分析服务 - 问题分解,角色生成
  • MCP 工具系统 - Tavily 搜索,Firecrawl 抓取,日期时间工具
  • 研究 Agent - 单角色研究执行
  • 并行编排器 - 多角色并行研究,SSE 进度推送
  • 共识地图构建 - 主张提取,合并,四维评分
  • 决策包生成 - 共识发现,分歧分析,风险登记,路线建议
  • Markdown 导出 - 结构化报告导出
  • 前端 UI - 问题输入,研究进度,结果展示

🚀 后续计划

  • 用户认证与会话管理
  • 研究历史记录
  • 共识地图可视化 (D3.js)
  • PDF 导出
  • 多语言支持

快速开始

环境要求

  • Node.js >= 20.0.0
  • npm >= 10.0.0

安装

# 克隆仓库 git clone <repository-url> cd Decision-Map-DeepSearch # 安装依赖 npm install

配置

复制环境变量模板并配置:

cp .env.example .env

必需的环境变量:

# LLM API Keys (必需) DEEPSEEK_API_KEY=your_deepseek_api_key QWEN_API_KEY=your_qwen_api_key # 工具 API Keys (必需) TAVILY_API_KEY=your_tavily_api_key FIRECRAWL_API_KEY=your_firecrawl_api_key

开发

# 启动开发服务器 npm run dev # 浏览器访问 open http://localhost:3000

构建

# 构建生产版本 npm run build # 启动生产服务器 npm run start

使用指南

1. 输入问题

在首页输入你需要研究的决策问题,可以添加可选的背景信息。

示例问题:

  • "对于一个小型创业团队,现在应该选择 React 还是 Vue 作为前端框架?"
  • "2026年在上海购买新能源汽车还是燃油车更合适?"

2. 等待研究

系统会自动:

  1. 分析问题,分解为子问题
  2. 生成 5 个不同视角的研究角色
  3. 并行执行研究(搜索、抓取、提取证据)
  4. 构建共识地图
  5. 生成决策报告

整个过程约 3-5 分钟,可以实时查看进度。

3. 查看结果

研究完成后,可以查看:

  • 共识发现 - 各角色一致认同的观点
  • 分歧点 - 存在争议的领域
  • 风险项 - 需要注意的风险
  • 决策路线 - 推荐的行动方案

4. 导出报告

点击"导出 Markdown"下载完整的决策报告。

项目结构

src/ ├── app/ # Next.js App Router │ ├── api/ # API 路由 │ │ ├── question/ # 问题分析 │ │ ├── role/ # 角色管理 │ │ ├── research/ # 研究执行 │ │ ├── graph/ # 共识地图 │ │ ├── pack/ # 决策包 │ │ └── export/ # 导出 │ ├── research/ # 研究进度页 │ └── result/ # 结果页 ├── components/ # React 组件 │ ├── ui/ # 基础 UI 组件 │ └── research/ # 研究相关组件 ├── lib/ # 核心库 │ ├── llm/ # LLM 集成 │ ├── mcp/ # MCP 工具系统 │ ├── prompts/ # 提示词管理 │ └── logger/ # 日志系统 ├── services/ # 业务服务 │ ├── question/ # 问题分析 │ ├── role/ # 角色管理 │ ├── research/ # 研究执行 │ ├── graph/ # 共识地图 │ ├── pack/ # 决策包 │ └── export/ # 导出 └── stores/ # 状态管理

API 端点

端点方法说明
/api/question/analyzePOST分析问题
/api/role/generate-promptsPOST生成角色提示词
/api/research/parallelPOST并行研究 (SSE)
/api/graph/buildPOST构建共识地图
/api/pack/generate-streamPOST生成决策包 (SSE)
/api/export/markdownPOST导出 Markdown

API 文档: http://localhost:3000/api-docs

文档

可用脚本

脚本说明
npm run dev启动开发服务器
npm run build构建生产版本
npm run start启动生产服务器
npm run lint运行 ESLint 检查

常见问题

Q: 研究过程中 Agent 超时?

A: 这可能是因为搜索或抓取耗时较长。当前超时设置为 5 分钟/Agent。如果问题持续,请检查网络连接和 API 配额。

Q: 搜索结果不是最新的?

A: Agent 会自动调用 get_current_datetime 工具获取当前时间,确保搜索最新信息。如果仍有问题,可能是搜索引擎索引延迟。

Q: 如何查看详细日志?

A: 设置环境变量 LOG_LEVEL=debug,详细日志会输出到控制台。

许可证

私有项目 - 保留所有权利。

作者

Jaguar Liu


注意: 本项目仍在积极开发中,API 和功能可能会有变化。

About

No description, topics, or website provided.
Language
TypeScript80.4%
CSS1.7%
JavaScript0%
Others17.9%