guy-hartstein/company-research-agent
An agentic company research tool powered by LangGraph and Tavily that conducts deep diligence on companies using a multi-agent framework. It leverages OpenRouter on the backend for rapid inference with any leading model.
Company Research Agent – 简介
一个小型 Web 应用,输入公司名称即可获得结构化的、有来源支持的简报(业务概览、行业背景、近期新闻等)。核心工作由 FastAPI 后端完成,它编排了一个由 LLM 驱动的研究图和 Tavily 网络搜索/相关性服务。React + Vite 前端将进度流式传输到浏览器,并可将最终 Markdown 报告导出为 PDF。
核心功能
| 功能 | 工作原理 |
|---|---|
| 自动研究 | 向 Tavily 发送查询,对相关性进行评分,并收集 URL。 |
| LLM 驱动的综合 | 使用通过 OpenRouter 可访问的任何模型(或直接使用 OpenAI/Gemini 密钥)生成搜索提示、总结来源并撰写最终简报。 |
| 实时流式传输 | 界面通过 GET /research/{job_id}/stream 接收服务器发送的事件,以便实时查看任务进度。 |
| PDF 导出 | 后端通过 POST /generate-pdf 将 Markdown 报告转换为 PDF。 |
| 可选持久化 | 如果提供了 MongoDB URI,任务和报告将存储以供后续检索。 |
| 模型灵活性 | 在设置界面中选择模型;同一模型将用于流程的每个步骤。 |
架构概览
React + Vite (前端) ←→ FastAPI (后端)
│ │
└─ POST /research ──► 研究图
├─ 分析器
├─ 收集器 (Tavily)
├─ 策展器 (相关性评分)
├─ 简报 (LLM 综合)
└─ 编辑器 (最终 Markdown)
后端与以下服务通信:
- Tavily – 网络搜索和相关性排名。
- LLM – OpenRouter 上的任何模型,或直接使用 OpenAI/Gemini,用于提示生成、总结和编辑。
- MongoDB(可选)– 任务/报告存储。
快速开始(本地开发)
- 后端 – Python 3.11+,创建虚拟环境,安装
requirements.txt,复制.env.example→.env并填写你的 OpenRouter/Tavily 密钥(MongoDB 可选)。 - 前端 – 复制
ui/.env.development.example→ui/.env.development.local,设置VITE_API_URL为http://localhost:8000,安装 npm 依赖。 - 运行 –
uvicorn application:app --reload --port 8000(API)- 在
ui目录下运行npm run dev(UI)→ 打开http://localhost:5174。
- Docker – 在存在相同的
.env文件后,docker compose up --build将启动两个服务。
典型工作流程
curl -X POST http://localhost:8000/research \
-H 'Content-Type: application/json' \
-d '{"company":"Tavily","company_url":"https://tavily.com","industry":"AI search","hq_location":"New York, USA","model":"anthropic/claude-sonnet-5.5"}'
- 响应会给出一个
job_id。 - UI(或
GET …/stream请求)会流式传输进度事件。 - 完成后,
GET /research/{job_id}/report返回 Markdown;POST /generate-pdf创建可下载的 PDF。
谁可能使用它?
- 投资者或分析师,需要快速、有来源支持的目标公司概览。
- 业务开发团队,寻找合作伙伴或竞争对手。
- 学生或记者,希望无需手动网络搜索即可获得可复现的简报。
- 开发者,寻找构建其他 LLM 编排研究代理的模板。
限制与注意事项
- 依赖 API 密钥 – 你必须提供有效的 OpenRouter(或 OpenAI/Gemini)密钥和 Tavily 密钥;没有它们服务无法运行。
- 来源质量 – 相关性评分是启发式的;最终报告反映 LLM 从检索页面中综合的内容。
- 持久化可选 – 没有 MongoDB,每个任务仅存在于当前服务器运行的内存中。
- 模型成本 – 通过 OpenRouter 使用大型模型可能很昂贵;选择在价格和质量之间平衡的模型。
许可证
Apache License 2.0 – 可自由使用、修改和分发。
相关
- 项目
- 项目
- 项目
- 项目
- 项目