智能公司研究助手
用多智能体管线把公司资料整理为研究报告。
- Star 数
- ★ 2.3k
- 最近更新
- 10 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 证据不足
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 投资研究人员在评估一家候选公司时,需要将业务、行业、财务和近期新闻汇集为一份初步研究报告。
- 不适合
- 不愿注册 Tavily、Gemini、OpenAI 与 Google Maps 多个付费 API 的用户
- 希望开箱即用、无需自行部署前后端的非技术用户
这个 Agent 能做什么,适合哪些场景?
这是一个面向公司尽调与市场研究的自托管应用,使用 LangGraph 组织多个专用研究与处理节点。CompanyAnalyzer、IndustryAnalyzer、FinancialAnalyst 和 NewsScanner 分别覆盖公司基础信息、行业、财务与近期新闻,随后由 Collector、Curator、Briefing 和 Editor 汇总成报告。Tavily 用于检索与相关性评分,Gemini 2.5 Flash 生成分类简报,GPT-5.1 负责最终报告编排、去重与 Markdown 格式化。后端是支持异步后台任务和轮询的 FastAPI 服务,前端为带进度跟踪与下载选项的 React 应用。它可通过本地开发环境或 Docker Compose 部署,但运行依赖 Tavily、Google Gemini、OpenAI 和 Google Maps 的配置凭证。
用户从 React 前端提交研究请求,后端通过 POST /research 创建任务并返回 job_id。CompanyAnalyzer、IndustryAnalyzer、FinancialAnalyst 和 NewsScanner 收集公司、行业、财务和新闻相关资料;Collector 聚合结果,Curator 在 curator.py 中清洗、标准化 URL、去重并按 Tavily 相关性分数排序,默认最低阈值为 0.4。Briefing 在 briefing.py 中使用 Gemini 2.5 Flash 为各类别生成简报,Editor 在 editor.py 中使用 GPT-5.1 合并内容、消除重复并生成 Markdown 报告。前端轮询 GET /research/{job_id}/report 获取完成结果,POST /generate-pdf 可将报告内容生成 PDF。
- 投资研究人员在评估一家候选公司时,需要将业务、行业、财务和近期新闻汇集为一份初步研究报告。
- 企业战略团队在开展供应商、合作伙伴或竞争对手的案头调研时,需要按统一流程生成公司简报。
- 咨询团队在项目早期需要快速形成多来源的公司背景材料,并在后续人工核验前获得结构化起点。
- 具备 Python 和 React 运维能力的内部研究团队,希望部署一个带任务进度轮询的公司研究 Web 应用。
- 需要把研究结果导出为 PDF 的团队,可在报告生成后调用项目提供的 PDF 生成接口。
如何安装或部署这个 Agent?
准备 Python、Node.js、Tavily API Key、Google Gemini API Key、OpenAI API Key 和 Google Maps API Key。克隆仓库后可执行 chmod +x setup.sh && ./setup.sh;脚本会检测 uv、安装前后端依赖并引导配置。也可手动使用 uv venv .venv && source .venv/bin/activate && uv pip install -r requirements.txt,然后进入 ui 执行 npm install。项目根目录的 .env 需设置 TAVILY_API_KEY、GEMINI_API_KEY、OPENAI_API_KEY;ui/.env 需设置 VITE_API_URL=http://localhost:8000 和 VITE_GOOGLE_MAPS_API_KEY。Docker 部署可在完成两份 .env 配置后执行 docker compose up --build。
如何使用这个 Agent?
启动后端:python -m application.py,或执行 uvicorn application:app --reload --port 8000。另开终端进入 ui 并执行 npm run dev,然后访问 http://localhost:5173;前端提交公司研究请求后会取得 job_id 并轮询 /research/{job_id}/report。Docker Compose 模式下,README 说明后端位于 http://localhost:8000,前端位于 http://localhost:5174。若通过 API 使用,提交入口是 POST /research,完成报告查询入口是 GET /research/{job_id}/report;文档未提供这些接口的请求体示例。
这个 Agent 有哪些优点和局限?
- 研究职责被拆分为 CompanyAnalyzer、IndustryAnalyzer、FinancialAnalyst 和 NewsScanner,覆盖公司研究中不同的信息类别。
- Curator 使用 Tavily 相关性评分、内容清洗和 URL 去重,默认 0.4 阈值使低相关资料可被过滤。
- Gemini 2.5 Flash 与 GPT-5.1 分别承担高上下文简报和最终格式编排,职责划分明确。
- FastAPI 后端、React 前端、任务轮询与 PDF 生成接口构成了可直接部署的完整应用边界。
- 运行时明确依赖 Tavily、Google Gemini、OpenAI 和 Google Maps 的 API 凭证,不能作为离线研究工具使用。
- 文档要求同时配置 Gemini 与 OpenAI 密钥,未说明任一模型或 Tavily 服务不可用时的降级策略。
- POST /research 和 POST /generate-pdf 的请求参数与响应格式未在提供材料中说明,API 集成需要额外查看实现。
- 许可证信息存在冲突:仓库元数据标注 Apache-2.0,而 README 的 License 段落称为 MIT,采用前应核验 LICENSE 文件。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| 智能公司研究助手 当前 | 证据不足 | 自托管服务免费 + 模型费 | ★ 2.3k | 10 天前 | Python | OpenAI API |
| AI 银行账单自动化 | 48 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 631 | 3 个月前 | Jupyter Notebook | OpenAI API |
| FinnewsHunter 金融情报平台 | 29 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 1.5k | 1 天前 | Python | OpenAI API |
| Vibe-Research · 个人 AI 投研系统 | 59 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 3.5k | 8 天前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据仅包含README和LICENSE,未提供代码或配置细节。无法评估权限最小化、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚或来源归属。所有标准得分为0,因为缺乏证据。
证据不足。README描述了架构,但未提供代码或测试来验证自洽性、依赖可用性或失败消息。所有标准得分为0。
证据不足。README描述了目标用户和场景,但未提供代码或配置来评估能力边界、触发精度或环境适配。所有标准得分为0。
证据不足。README提供了安装说明和架构信息,但未提供代码、示例、FAQ、已知限制、版本控制或维护责任。许可证存在但未验证。所有标准得分为0。
证据不足。README描述了输出和功能,但未提供代码或测试来评估输出可用性、边际价值或成本效益。所有标准得分为0。
证据不足。README描述了功能,但未提供代码或测试来验证声明可追溯性、跨源佐证或事实与推断分离。所有标准得分为0。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 仅基于README和LICENSE进行静态审查,未检查代码,无法验证安全性和可靠性声明。
- 发布者身份未验证,不应基于品牌或声誉推断质量。
- README中提到的API密钥和外部服务(Tavily、Gemini、OpenAI、Google Maps、MongoDB)需要用户自行配置,存在数据泄露风险。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's New in v2.3.0 Pick any model you want! Company Research Agent now runs on [OpenRouter](https://openrouter.ai), so one API key gives you access to hundreds of models (Claude, GPT, Gemini, Grok, DeepSeek, Qwen, and more). You no longer need a Google Gemini key. 🔀 OpenRouter model selection - New Settings panel. Click the model button in the top-right corner to paste your OpenRouter key and choose a model. You can search the full live OpenRouter catalog, filter by provider, and see each model's logo, context window and price per 1M tokens. …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed Company research UI gets a big refresh! Thanks, @RobertTylman, for your help. * Refresh company research UI and streamline research by @RobertTylman in https://github.com/guy-hartstein/company-research-agent/pull/73 * Fix setup repository links by @HUAN2022A in https://github.com/guy-hartstein/company-research-agent/pull/59 * Bump js-yaml from 4.2.0 to 4.3.1 in /ui by @dependabot[bot] in https://github.com/guy-hartstein/company-research-agent/pull/67 * Bump brace-expansion in /ui by @dependabot[bot] in https://github.com/guy-hartstein/company-research-agent/pull/66 …在 GitHub 查看 ↗ -
发布说明摘录
Highlights All Tavily calls now run at advanced depth: the four researcher web searches (search_depth) and the enricher's URL extraction (extract_depth). The grounding crawl was already advanced. This deepens source coverage for every research run, at roughly 2x the Tavily credit cost per run. Also on LangChain 1.3.9 (up from 1.2.17), plus the usual UI dependency updates. What's Changed * Search + extract now use advanced depth by @guy-hartstein in https://github.com/guy-hartstein/company-research-agent/commit/400c6bde210e81572340e484f756dd89dd3eae2a …在 GitHub 查看 ↗