OpenLens 科研智能体
从数据集与一句研究设想出发,自动完成多模态科研流程。
- Star 数
- ★ 282
- 最近更新
- 15 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 33/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 开始前需要
- 典型场景
- 临床或医疗 AI 研究者拥有 eICU 等数据集,需要围绕一个明确问题自动探索生命体征恶化模式并形成研究报告。
- 主要局限
- 本地部署依赖 Docker、Conda、Node.js、Poetry、OpenHands 子模块和多个 Python 包,安装链路较长。
这个 Agent 能做什么,适合哪些场景?
OpenLens AI 是面向医疗、机器学习、统计及其他数据驱动研究的全自主多模态科研智能体,并特别针对医疗与 AI 研究优化。用户提供数据集和一行研究想法后,系统通过 LangGraph 编排的多模块工作流开展文献检索、实验设计、数据分析与报告生成。核心组件包括 Literature Reviewer、Data Analyzer、Supervisor、Coder 和 LaTeX Writer,并通过共享状态协作。它提供命令行入口和基于 Streamlit 的交互式 Web 界面;代码执行依赖 OpenHands 的 Docker 运行环境。产出范围包括分析代码、LaTeX 论文或报告,以及可选发布到 GitHub 的代码工件。
系统从 --question 与 --dataset-path 接收研究问题和数据集,由 Supervisor 协调 Literature Reviewer、Data Analyzer、Coder 与 LaTeX Writer。Literature Reviewer 可使用 arXiv、medRxiv、Google Scholar 和 Tavily 搜索及阅读文献;Data Analyzer 处理和分析数据;Coder 通过 OpenHands 生成并执行数据分析或实验代码;LaTeX Writer 生成研究论文和报告。工作流还可进行向量搜索式上下文管理、文件操作、VLM 可视化反馈,以及通过 [git] 配置将生成的代码工件推送到指定或自动创建的 GitHub 仓库。
- 临床或医疗 AI 研究者拥有 eICU 等数据集,需要围绕一个明确问题自动探索生命体征恶化模式并形成研究报告。
- 机器学习研究者希望把数据分析、实验方案、代码执行和 LaTeX 写作串成一个由 LangGraph 协调的流程。
- 统计研究人员需要先检索相关论文,再对本地数据集执行分析并整理为可交付报告。
- 使用中文撰写论文的团队需要配置 language = "chs",并在具备相应字体的 Docker 环境中生成中文论文内容。
- 希望保留研究生成物版本记录的个人或团队,需要将 OpenLens 生成的代码工件可选地推送至 GitHub。
如何安装或部署这个 Agent?
前置条件:Python 3.9+、Docker、LLM 服务 API 密钥和 Tavily API 密钥。克隆并初始化子模块:
git clone https://github.com/jarrycyx/openlens-ai.git --recurse-submodules
cd openlens-ai拉取并标记运行镜像:
ALIYUN_REMOTE_DOCKER_NAME=crpi-hbt8nkulkjqjqkie.cn-hangzhou.personal.cr.aliyuncs.com/cyx-docker/openlens-ai:runtime-latest
docker pull $ALIYUN_REMOTE_DOCKER_NAME
docker tag $ALIYUN_REMOTE_DOCKER_NAME openlens-ai:runtime-latest创建环境并安装 file1.agent:
conda create -n openlens python=3.12
conda activate openlens
cd modules/file1agentpip install -e .
cd ../../在 modules/OpenHands 中按其 Development.md 安装 OpenHands,然后运行:
conda install conda-forge::nodejs
conda install conda-forge::poetry
pip install chardet
make build
cd ../../
pip install --upgrade pippip install -e .
最后执行 cp config.minimal.toml config.toml,并在 config.toml 填入模型、重排器和 Tavily 的配置及密钥。
如何使用这个 Agent?
在 config.toml 配置 [llm.chat]、[llm.vision]、[rerank]、[tools] 和 [docker],其中 [tools] 需要 tavily_api_key,Docker 镜像名默认为 openlens-ai:runtime-latest。命令行首次运行示例:
python cli.py --question "What are the temporal patterns of vital sign deterioration preceding cardiac arrest events in critical care settings?" --dataset-path "datasets/eicu-demo" --thread-id "pred_aki_trend_eicu_demo" --notify-email "[email protected]" --interrupt-after-subgraph "none" --language "chs" --domain "medical"也可运行 streamlit run start_app.py,并在浏览器访问 http://localhost:8501。若需要 HTTPS,先配置 .streamlit/config.toml,或注释其中的 sslKeyFile 与 sslCertFile。
这个 Agent 有哪些优点和局限?
- 将文献检索、数据分析、代码生成与执行、实验设计和 LaTeX 写作纳入同一套 LangGraph 多模块流程。
- 文献工具明确覆盖 arXiv、medRxiv、Google Scholar 与 Tavily,并可结合向量搜索管理上下文。
- 通过 OpenHands Docker 运行环境执行生成的代码,而非仅输出代码建议。
- 同时提供 CLI 与 Streamlit 交互界面,并支持中文语言设置和中文论文写作。
- 可选 GitHub 工件发布可推送到固定仓库,或在配置令牌后自动创建仓库。
- 本地部署依赖 Docker、Conda、Node.js、Poetry、OpenHands 子模块和多个 Python 包,安装链路较长。
- 运行需要 LLM 服务、视觉模型、重排服务和 Tavily 的 API 配置与密钥;README 未提供这些服务的成本说明。
- 中文论文写作如需自行构建 Docker 镜像,文档要求下载或收集 Windows 字体。
- 默认文献能力中 IACR ePrint、Semantic Scholar 和 PubMed 被列为未完成。
- 自动发布 GitHub 工件需要个人访问令牌;自动创建仓库时文档要求相应仓库与管理权限。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| OpenLens 科研智能体 当前 | 33 · 缺口较多 | ★ 282 | 15 天前 | Python | OpenAI API |
| DATAGEN 多智能体研究助手 | 44 · 缺口较多 | ★ 1.8k | 7 天前 | Python | OpenAI API · Claude API |
| TradingAgents-Astock | 52 · 缺口较多 | ★ 3.5k | 3 天前 | Python | OpenAI API · Claude API |
| 智能公司研究助手 | 0 · 缺口较多 | ★ 2.3k | 7 天前 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 建议使用最小权限的 GitHub token,并提示不要提交 token 到 Git,这体现了最小权限原则(least_privilege=1)。但未提供用户确认机制,例如在执行代码或发布到 GitHub 前需要用户批准(user_confirmation=0)。数据流透明度部分:README 描述了数据流向(如文献搜索、代码执行、GitHub 发布),但未详细说明数据如何被处理或存储(data_flow_transparency=1)。敏感数据处理:涉及 API 密钥和 GitHub token,但未提供加密或安全存储的具体措施(sensitive_data_handling=1)。依赖安全:未提及依赖漏洞扫描或安全审计(dependency_security=0)。外部影响:代码执行和 GitHub 发布可能产生外部影响,但未提供回滚或撤销机制(external_effects=1)。回滚:未提供任何回滚机制(rollback=0)。来源归属:README 引用了 OpenHands、LangGraph 等,但未明确说明代码来源或贡献者(source_attribution=1)。
证据显示:README 和 pyproject.toml 中的描述基本一致,但版本号不一致(README 未提及版本,pyproject 为 0.0.1),且存在未实现的特性(如 PowerPoint 图形),表明自洽性一般(self_consistency=1)。依赖可用性:依赖列表完整,但未提供版本锁定或兼容性说明(dependency_availability=1)。失败消息:未提供错误处理或用户提示的文档(failure_messages=0)。
证据显示:README 明确面向医疗/ML/统计研究人员,并提供了多种使用场景(audience_and_scenarios=2)。能力边界:列出了已实现和未实现的功能,但未明确说明限制(capability_boundaries=1)。触发精度:提供了命令行和 Web 界面,但未说明如何精确控制触发条件(trigger_precision=1)。环境适配:要求 Python 3.9+、Docker 和 API 密钥,但未提供跨平台兼容性说明(environment_fit=1)。
证据显示:README 提供了清晰的项目结构和安装指南(information_architecture=2, install_notes=2)。命名稳定性:项目名称和模块命名一致,但版本号未在 README 中体现(naming_stability=1)。示例和 FAQ:提供了命令行示例和配置示例,但无 FAQ(examples_and_faq=2)。已知限制:未明确列出已知限制(known_limitations=1)。许可证:MIT 许可证文件存在(license=2)。版本和变更日志:未提供 CHANGELOG 或版本历史(versioning_changelog=0)。维护责任:未明确说明维护者或贡献指南(maintenance_responsibility=1)。
证据显示:输出为研究报告和 LaTeX 论文,具有实用性(output_usability=2)。边际价值:自动化研究流程具有较高价值,但依赖外部服务(marginal_value=2)。成本效益:需要多个 API 密钥和 Docker,成本较高,但未提供成本估算(cost_benefit=1)。
证据显示:README 声称的功能未提供测试或验证证据(claim_traceability=1)。跨来源验证:未提供外部验证或引用(cross_source_corroboration=0)。事实与推断分离:未区分事实和推断(fact_inference_separation=0)。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 该仓库未提供用户确认机制,自动执行代码和发布到 GitHub 可能带来风险。
- 依赖未锁定版本,可能存在供应链安全风险。
- 未提供回滚机制,一旦发生错误操作难以恢复。
- 未提供测试或验证证据,功能声称缺乏支持。