OpenLens Research Agent

Turn a dataset and one research idea into an autonomous multimodal research workflow.

Stars
★ 282
Last updated
15d ago
License
MIT
Primary language
Python

At a glance

Works with
Universal · cross-platformOpenAI API
You'll need
Python 3.9+DockerCondaNode.jsPoetryLLM API keyTavily API keyShell / CLINetwork accessLocal filesystem
Typical use
A clinical or medical-AI researcher with an eICU-style dataset who wants to investigate vital-sign deterioration before cardiac arrest and receive a research report.
Main limitation
Local setup has a substantial dependency chain: Docker, Conda, Node.js, Poetry, the OpenHands submodule, and Python packages.

What does this agent do, and when should you use it?

OpenLens AI is a fully autonomous multimodal research agent for medical, machine-learning, statistical, and other data-driven projects, with an emphasis on medical-plus-AI research. Given a dataset and a one-line research idea, it uses a LangGraph-powered workflow for literature review, experiment design, data analysis, and report generation. Its stated modules are Literature Reviewer, Data Analyzer, Supervisor, Coder, and LaTeX Writer, which coordinate through shared state. It can be run from a CLI or a Streamlit web interface, while generated code is executed through an OpenHands Docker runtime. Its outputs include analysis and experiment code, LaTeX papers or reports, and optionally GitHub-published code artifacts.

OpenLens accepts a research question through --question and a dataset through --dataset-path, then has the Supervisor coordinate the Literature Reviewer, Data Analyzer, Coder, and LaTeX Writer. The Literature Reviewer can search and read work through arXiv, medRxiv, Google Scholar, and Tavily; the Data Analyzer processes datasets; and the Coder generates and executes analysis or experiment code with OpenHands. The LaTeX Writer creates research papers and reports. The workflow also supports vector-search context management, file operations, VLM-based visualization feedback, and optional GitHub artifact publishing through the [git] configuration.

  1. A clinical or medical-AI researcher with an eICU-style dataset who wants to investigate vital-sign deterioration before cardiac arrest and receive a research report.
  2. A machine-learning researcher who needs literature review, experiment planning, code execution, and LaTeX writing coordinated in one LangGraph workflow.
  3. A statistician who wants to search related papers before analyzing a local dataset and packaging the result as a report.
  4. A team writing in Chinese that needs language = "chs" and a Docker environment with suitable fonts for Chinese paper writing.
  5. An individual or team that wants generated research code artifacts optionally pushed to GitHub for versioned sharing.

How do you install or deploy this agent?

Prerequisites are Python 3.9+, Docker, an LLM service API key, and a Tavily API key. Clone with submodules:

git clone https://github.com/jarrycyx/openlens-ai.git --recurse-submodules
cd openlens-ai

Pull and tag the documented runtime image:

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

Create an environment and install file1.agent:

conda create -n openlens python=3.12
conda activate openlens
cd modules/file1agent

pip install -e .

cd ../../

Install OpenHands in modules/OpenHands according to its Development.md, then run:

conda install conda-forge::nodejs
conda install conda-forge::poetry
pip install chardet
make build
cd ../../
pip install --upgrade pip

pip install -e .
Then run cp config.minimal.toml config.toml and enter model, reranker, and Tavily settings and keys in config.toml.

How do you use this agent?

Configure [llm.chat], [llm.vision], [rerank], [tools], and [docker] in config.toml. The [tools] section needs tavily_api_key, and the documented Docker image name is openlens-ai:runtime-latest. A first CLI invocation is:

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"

For the web interface, run streamlit run start_app.py and open http://localhost:8501. For HTTPS, configure .streamlit/config.toml or comment out sslKeyFile and sslCertFile.

What are this agent's strengths and limitations?

Pros
  • Combines literature review, data analysis, code generation and execution, experiment design, and LaTeX writing in one LangGraph multi-module workflow.
  • Its documented literature sources include arXiv, medRxiv, Google Scholar, and Tavily, with vector-search context management.
  • Generated code can be executed through an OpenHands Docker runtime instead of being produced only as a suggestion.
  • Offers both a CLI and Streamlit interface, with Chinese language configuration and Chinese paper-writing support.
  • Optional GitHub publishing can target a fixed repository or create a repository when a token is configured.
Limitations
  • Local setup has a substantial dependency chain: Docker, Conda, Node.js, Poetry, the OpenHands submodule, and Python packages.
  • Operation requires configured LLM, vision-model, reranker, and Tavily services and credentials; the documentation does not state service costs.
  • Building the Docker image for Chinese paper writing requires obtaining Windows fonts.
  • IACR ePrint, Semantic Scholar, and PubMed search are listed as unfinished literature capabilities.
  • GitHub artifact publishing requires a personal access token, with repository and administration permissions documented for automatic repository creation.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Stars Updated Language Full support on
OpenLens Research Agent This agent 33 · Major gaps ★ 282 15d ago Python OpenAI API
DATAGEN Research Assistant 44 · Major gaps ★ 1.8k 7d ago Python OpenAI API · Claude API
TradingAgents for A-Shares 52 · Major gaps ★ 3.5k 3d ago Python OpenAI API · Claude API
Agentic Company Researcher 0 · Major gaps ★ 2.3k 7d ago Python OpenAI API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
33/ 100 5-point scale 1.7 / 5
Trust 6/29
Reliability 3/14
Adaptability 8/18
Convention 8/18
Effectiveness 7/13
Verifiability 1/8
Why each dimension lost points
Trust6 / 29 · 1.0/5

Evidence shows: README recommends using least-privilege GitHub tokens and advises not committing tokens to Git, reflecting least privilege (least_privilege=1). However, no user confirmation mechanism is provided, e.g., requiring user approval before executing code or publishing to GitHub (user_confirmation=0). Data flow transparency: README describes data flow (e.g., literature search, code execution, GitHub publishing) but does not detail how data is processed or stored (data_flow_transparency=1). Sensitive data handling: API keys and GitHub tokens are involved, but no specific encryption or secure storage measures are provided (sensitive_data_handling=1). Dependency security: No mention of vulnerability scanning or security audits (dependency_security=0). External effects: Code execution and GitHub publishing may have external effects, but no rollback or revocation mechanism is provided (external_effects=1). Rollback: No rollback mechanism provided (rollback=0). Source attribution: README cites OpenHands, LangGraph, etc., but does not clearly indicate code provenance or contributors (source_attribution=1).

Reliability3 / 14 · 1.1/5

Evidence shows: README and pyproject.toml descriptions are largely consistent, but version numbers differ (README does not mention version, pyproject is 0.0.1), and there are unimplemented features (e.g., PowerPoint figures), indicating moderate self-consistency (self_consistency=1). Dependency availability: Dependency list is complete, but no version pinning or compatibility notes are provided (dependency_availability=1). Failure messages: No documentation of error handling or user prompts (failure_messages=0).

Adaptability8 / 18 · 2.2/5

Evidence shows: README explicitly targets medical/ML/stats researchers and provides multiple usage scenarios (audience_and_scenarios=2). Capability boundaries: Lists implemented and unimplemented features but does not clearly state limitations (capability_boundaries=1). Trigger precision: Provides CLI and web interface but does not explain how to precisely control trigger conditions (trigger_precision=1). Environment fit: Requires Python 3.9+, Docker, and API keys, but no cross-platform compatibility notes (environment_fit=1).

Convention8 / 18 · 2.2/5

Evidence shows: README provides clear project structure and installation guide (information_architecture=2, install_notes=2). Naming stability: Project name and module naming are consistent, but version number is not reflected in README (naming_stability=1). Examples and FAQ: Provides CLI example and configuration example, but no FAQ (examples_and_faq=2). Known limitations: No explicit list of known limitations (known_limitations=1). License: MIT license file exists (license=2). Versioning and changelog: No CHANGELOG or version history provided (versioning_changelog=0). Maintenance responsibility: No clear maintainer or contribution guidelines (maintenance_responsibility=1).

Effectiveness7 / 13 · 2.7/5

Evidence shows: Output is research reports and LaTeX papers, which are practical (output_usability=2). Marginal value: Automated research process has high value but relies on external services (marginal_value=2). Cost-benefit: Requires multiple API keys and Docker, which is costly, but no cost estimation is provided (cost_benefit=1).

Verifiability1 / 8 · 0.6/5

Evidence shows: Claims in README are not supported by tests or verification evidence (claim_traceability=1). Cross-source verification: No external verification or citations (cross_source_corroboration=0). Fact-inference separation: No distinction between facts and inferences (fact_inference_separation=0).

Risks and how to mitigate them
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • The repository lacks user confirmation mechanisms; automatic code execution and GitHub publishing may pose risks.
  • Dependencies are not version-pinned, posing potential supply chain security risks.
  • No rollback mechanism is provided, making recovery from erroneous operations difficult.
  • No testing or verification evidence is provided; functional claims lack support.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 01accec06078 New commits since this review; the score may not cover them
See the full review method →

FAQ

Is OpenLens limited to medical research?
No. It is optimized for medical and AI research, but the project states that general domains such as software and machine learning are supported. The CLI documents --domain "medical" and --domain "general".
What credentials are required to run it?
At minimum, the prerequisites list an LLM service API key and a Tavily API key. The example configuration also includes endpoints and keys for a vision model and reranking model.
Does it execute generated code locally?
Generated code is executed with OpenHands, which requires the Docker runtime environment and the configured openlens-ai:runtime-latest image.
Can it publish outputs to GitHub?
Yes, optionally. Setting [git].repo_url pushes artifacts to that repository; when repo_url is empty and a token is configured, OpenLens may create a repository under the user's GitHub account and push there.
View on GitHub ↗ Install ↓

Related agents