OpenScientist:用于新颖发现的科学假设智能体
一个从科学数据中生成并测试假设的自主 AI 科学家。
实时实例:openscientist.io
概述
OpenScientist 是一个领域无关的自主发现智能体,它能够:
- 接收数据文件和研究问题
- 自主运行 N 次迭代
- 生成假设、测试它们、检索文献
- 生成包含发现结果和机制见解的最终报告
功能
核心能力
- 自主发现:使用智能体编码助手运行迭代式假设测试循环
- 领域无关:适用于基因组学、转录组学、蛋白质组学、代谢组学及其他科学数据
- 基于文献:在 PubMed 中检索机制见解
- 多提供商支持:支持通过 Google Vertex AI、CBORG、AWS Bedrock 或 Azure AI Foundry 访问模型
- 成本跟踪:具有提供商特定成本 API 的项目级预算监控
- 沙箱执行:用于数据分析的安全 Python 代码执行
技能系统
- 工作流技能:假设生成、结果解释、优先级排序、停止标准
- 领域技能:代谢组学、基因组学/转录组学、结构生物学、数据科学/统计学
架构
- MCP Tools: 通过 Model Context Protocol 提供工具
execute_code: 运行 Python 分析search_pubmed: 搜索文献update_knowledge_state: 记录发现run_phenix_tool,compare_structures,parse_alphafold_confidence(可选,需要 Phenix)
- Knowledge State: 基于 JSON 的状态跟踪,用于发现结果和文献
- Job Manager: 支持多任务,具备队列和生命周期管理功能
- Web Interface: 基于 NiceGUI 的界面,用于任务提交和监控
Structural Biology Support (Optional)
OpenScientist 支持 Phenix integration 用于蛋白质结构分析:
- 结构比较和叠加
- 验证指标(clash score、backbone geometry)
- AlphaFold 置信度分析
- 请参阅
docs/PHENIX_SETUP.md获取安装说明
Quick Start
Prerequisites
- Python 3.12+
- Docker (用于容器化部署)
uv包管理器- 以下任一方式用于模型访问:
- CBORG: 来自 CBORG 的 API 令牌
- Vertex AI: 已启用 Vertex AI 的 GCP 项目 (请参阅
docs/VERTEX_SETUP.md) - AWS Bedrock: 具有 Bedrock 访问权限的 AWS 账户 (见下文)
- Azure AI Foundry: 具有 Foundry 资源的 Azure 订阅 (见下文)
Installation
# Clone the repository
git clone <repository-url>
cd openscientist
# Create .env file (copy from example and configure)
cp .env.example .env
# Edit .env with your provider credentials
# Build and start
make build
make start
访问 UI
在浏览器中打开 http://localhost:8080
用法
- 上传您的数据文件(可选 - 支持 CSV、TSV、Excel、Parquet、JSON、PDB、mmCIF、FASTA、图像以及许多其他文件类型)
- 输入您的研究问题
- 设置最大迭代次数(例如,10)
- 点击“开始发现”
- 监控进度并查看结果
项目结构
openscientist/
├── src/openscientist/ # Core Python package
│ ├── agent/ # AgentExecutor protocol and ClaudeCodeAgent
│ ├── job/ # Job lifecycle, scheduling, and types
│ ├── orchestrator/ # Discovery orchestration (setup, iteration, report)
│ ├── providers/ # Model provider integrations
│ │ ├── base.py # Base provider interface
│ │ ├── messaging.py # Consolidated send_message / client factory
│ │ ├── cborg.py # CBORG provider
│ │ ├── vertex.py # Google Vertex AI provider
│ │ ├── bedrock.py # AWS Bedrock provider
│ │ └── foundry.py # Azure AI Foundry provider
│ ├── tools/ # @tool-decorated callables for agent
│ ├── mcp_server/ # MCP tools server
│ ├── web_app.py # NiceGUI web interface
│ ├── knowledge_state.py # JSON-based state storage
│ ├── code_executor.py # Sandboxed Python execution
│ └── literature.py # PubMed search
├── CLAUDE.md # Development guide and system prompt
├── jobs/ # Job results (created at runtime)
├── Dockerfile # Docker image definition
├── docker-compose.yml # Container orchestration
└── Makefile # Build and deployment commands
配置
模型提供商
OpenScientist 支持多个模型提供商。请选择一个并在您的 .env 文件中进行配置:
选项 1:CBORG(劳伦斯伯克利国家实验室)
# Provider selection
OPENSCIENTIST_PROVIDER=cborg
# CBORG credentials
ANTHROPIC_AUTH_TOKEN=your-cborg-token
ANTHROPIC_BASE_URL=https://api.cborg.lbl.gov
成本跟踪:通过 CBORG API 实时进行(/key/info, /user/daily/activity)
选项 2:Google Vertex AI
# Provider selection
OPENSCIENTIST_PROVIDER=vertex
# Vertex AI configuration
ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
CLOUD_ML_REGION=us-east5
VERTEX_REGION_CLAUDE_4_5_SONNET=us-east5
VERTEX_REGION_CLAUDE_4_5_HAIKU=us-east5
# BigQuery billing export (for cost tracking)
GCP_BILLING_ACCOUNT_ID=XXXXXX-YYYYYY-ZZZZZZ
成本跟踪:通过 GCP BigQuery 账单导出(延迟 1-6 小时)
设置指南:请参阅 docs/VERTEX_SETUP.md 获取详细说明
选项 3:AWS Bedrock
# Provider selection
OPENSCIENTIST_PROVIDER=bedrock
# AWS configuration
AWS_REGION=us-east-1
# Authentication (choose one):
# Option A: Access keys
AWS_ACCESS_KEY_ID=your-access-key-id
AWS_SECRET_ACCESS_KEY=your-secret-access-key
# Option B: AWS profile
# AWS_PROFILE=your-profile-name
# Option C: Bedrock API key
# AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key
成本跟踪:通过 AWS Cost Explorer(24-48 小时延迟)
注意:需要 bedrock:InvokeModel 和 ce:GetCostAndUsage 的 IAM 权限
选项 4:Azure AI Foundry(Microsoft Foundry)
# Provider selection
OPENSCIENTIST_PROVIDER=foundry
# Azure resource configuration
ANTHROPIC_FOUNDRY_RESOURCE=your-resource-name
# Or use full URL:
# ANTHROPIC_FOUNDRY_BASE_URL=https://your-resource.services.ai.azure.com/anthropic
# Authentication (choose one):
# Option A: API key (recommended for testing)
ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key
# Option B: Azure Entra ID (automatic - no API key needed)
# Run: az login
# Or configure managed identity for production
# Model deployment names (optional - defaults shown)
ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-5
ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6
# For cost tracking (optional):
AZURE_SUBSCRIPTION_ID=your-subscription-id
成本跟踪:通过 Azure Cost Management API(实现中)
设置指南:参见 Claude Code Foundry 文档
注意:需要 Azure RBAC 权限(Azure AI User 或 Cognitive Services User 角色)
预算控制
设置应用级预算限制(可选):
# Maximum total spend across all jobs
MAX_PROJECT_SPEND_TOTAL_USD=1000
# Maximum spend in last 24 hours
MAX_PROJECT_SPEND_24H_USD=50
预算限制在作业创建前进行检查。Web UI 显示:
- 项目总花费
- 近期花费(最近 24 小时)
- 剩余预算(如果提供商支持)
其他设置
# Dev mode - enables mock OAuth login for development
OPENSCIENTIST_DEV_MODE=true
作业管理器设置
在 src/openscientist/web_app.py 中:
max_concurrent:最大并发作业数(默认:1)jobs_dir:作业数据目录(默认:jobs/)
旧版引导(文件系统 -> 数据库)
如果磁盘上存在数据库之前的作业,请运行:
docker compose exec openscientist python -m openscientist.job_manager bootstrap --jobs-dir /app/jobs --dry-run
docker compose exec openscientist python -m openscientist.job_manager bootstrap --jobs-dir /app/jobs
所有权未解决的作业将以孤儿状态迁移(owner_id=NULL),
并可在之后从管理界面进行分配。
开发
请参阅 CONTRIBUTING.md 了解开发环境搭建、测试和部署。
文档
作者
Justin Reese justinreese@lbl.gov