ai4s-research/open-science
GitHub: ai4s-research/open-science
面向科学家的开源、本地优先、可复现的 AI 研究桌面工作台,将文献检索、代码执行、图表生成、报告撰写和可追溯性审查整合为完整工作流。
Stars: 193 | Forks: 27
## 目录
- [✨ 独特之处](#-why-it-is-different)
- [🎬 实际演示](#-see-it-in-action)
- [🧭 工作原理](#-how-it-works)
- [🧪 核心功能](#-whats-inside)
- [🔌 技能与连接器](#-skills--connectors)
- [🚀 快速开始](#-getting-started)
- [💬 使用指南](#-using-it)
- [🔒 安全与隐私](#-safety--privacy)
- [🗂️ 仓库结构](#️-repository-layout)
- [📌 状态与路线图](#-status--roadmap)
- [🤝 贡献指南](#-contributing)
- [⚖️ 许可证](#-license)
- [🙏 致谢](#-acknowledgments)
## ✨ 独特之处
- **是工作台,不是聊天框** —— 规划 → 批准 → 执行 → 产物 → 审查。
- **产物可追溯,而非仅仅是文本** —— 每张图表和报告都能
回溯到生成它的代码、数据、环境以及对话记录。
- **本地优先** —— 你的数据和计算过程保留在你的机器上;应用会
明确说明有哪些数据(如果有)离开了你的设备。
- **模型无关** —— 通过 OpenRouter、OpenAI 兼容接口、Anthropic 或本地
模型支持自带密钥 (BYOK);内置免费模型开箱即用,无需任何设置。
- **可复现** —— 保留代码、数据、图表、报告、日志和 `provenance.jsonl`,
每个产物版本均可恢复。
- **多领域支持** —— 从 AI4S 起步,逐渐扩展到材料、化学、生物、
医学和工程领域。
## 🎬 实际演示
**一个 prompt → 完整且可追溯的分析。** 模拟数据,拟合模型,保存
达到出版级别的图表,并撰写一份每个数字都能追溯到代码的报告。

**每个产物都能回溯到其代码、输入和对话** —— 只需点击
图表,即可查看生成它的脚本及其背后的各个版本。

**文献 → 可验证的报告。** 检索论文,起草一份渲染为
PDF 的手稿,并对其引用、无来源的数字以及图表与代码的一致性进行审查。

更多截图 —— notebooks、实验扫描和技能库
**对话优先的 notebooks。** agent 驱动真实的 Jupyter kernel;单元格和
图表会实时显示在聊天界面旁边。

**运行并跟踪实验。** 扫描参数,保持持久化 kernel,并以
可追溯产物的形式展示结果。

**可插拔的科学技能。** 内置用于文献、实验、图表
和完整性的技能 —— 还有一键开源连接器以及自带工具支持。

## 🧭 工作原理
```
your prompt
│
▼
[ plan ] ──▶ [ approve ] ──▶ [ execute ] local Python / Jupyter kernel,
▲ ▲ │ shell, MCP tools — on your machine
│ │ ▼
│ you answer [ artifacts ] ──▶ figures · tables · notebooks · reports
│ questions / │ each linked to code + data + env
│ permissions ▼
└────────────────────── [ review ] citation audit · untraceable-number
flags · figure ↔ code consistency
```
一切都通过内置的 [OpenCode](https://opencode.ai) agent 运行时
处理(这是一个单文件 sidecar,由应用锁定版本并管理)。UI 绝不直接与
模型通信 —— 它通过一个轻量级 SDK 进行交互,从而保持技能、MCP server 和模型
提供商的可插拔性。
## 🧪 核心功能
| 功能 | 作用 |
|---|---|
| **完整工作流** | 一个 prompt 驱动数据 → 代码 → 图表 → 报告 → 可复现的记录。一键启动模板助你快速上手。 |
| **本地计算** | 一个持久的本地 Python kernel 和可选的隔离 Jupyter 环境(通过内置的 `uv` 配置 —— 完全不触碰你的系统 Python)。 |
| **产物溯源** | 每次 agent 写入都会向 `.openscience/provenance.jsonl` 追加一条版本记录;历史记录面板会显示每个版本的代码、模型和来源对话。 |
| **可追溯性审查** | 解析引文(Crossref / arXiv / PubMed),标记没有可追溯来源的数字,并根据生成图表的代码对其进行检查。 |
| **原生查看器** | 内联支持 PDF、表格、图像、HTML 和 Office 文档;matplotlib/plotly 图表默认渲染为出版级画质。 |
| **统一设计系统** | 原生 UI 和 agent 生成的 matplotlib 图表共享同一套经过验证的图表调色板 —— 在浅色和深色模式下均显示正常。 |
| **键盘优先** | 命令面板 (⌘K) 可触达所有主要操作。 |
| **模型选择** | 通过 OpenCode 支持约 150 家提供商;支持 BYOK、OpenAI/Anthropic 兼容端点、本地 Ollama 或免费的内置模型。 |
## 🔌 技能与连接器
**内置科学技能**(应用自带并保持同步的 agent 行动指南):
- `research-explorer`、`literature-survey`、`experiment-suite`、`paper-writer`、
`mindmap-render`、`integrity-auditor`、`ai4s-agent` —
[ai4s-skills](https://github.com/ai4s-research/ai4s-skills) 技能包。
- `traceability-review` 和 `publication-figures` — 用于可验证
审查和系统内生成图表的第一方技能。
**一键开源连接器**(通过内置的 `uv` 配置到隔离环境中):
- **文献** — arXiv、PubMed、Crossref、Semantic Scholar、bioRxiv/medRxiv
([paper-search-mcp](https://github.com/openags/paper-search-mcp))。
- **生物医学** — PubMed、ClinicalTrials.gov、基因组变异
([biomcp](https://github.com/genomoncology/biomcp))。
**自带工具** — 任何 MCP server(本地命令或远程 URL)或技能;详见
[`docs/CONNECT_YOUR_TOOLS.md`](./docs/CONNECT_YOUR_TOOLS.md)。
## 🚀 快速开始
从源码构建桌面应用:
```
git clone https://github.com/ai4s-research/open-science
cd open-science
pnpm install
# 获取固定的 sidecars 和打包的 skills(已排除在 git 之外):
bash scripts/dev/fetch-opencode.sh # the OpenCode agent runtime
bash scripts/dev/fetch-uv.sh # uv, for isolated Python/Jupyter envs
bash scripts/dev/fetch-skills.sh # the ai4s-skills pack
# 开发,或构建安装程序(.dmg / .app / NSIS / .msi):
pnpm --filter @ai4s/desktop tauri dev
pnpm --filter @ai4s/desktop tauri build
```
首次启动时,应用会自动运行内置运行时,并开箱即用地配合
免费模型工作 —— 你可以随时在 **设置** 中选择你自己的提供商。
常见检查:
```
pnpm test # unit tests (Vitest)
pnpm typecheck # TypeScript
pnpm lint # ESLint
```
## 💬 使用指南
- **从工作流开始** —— 空会话提供一键启动模板(运行演示
分析、分析你的数据、审查报告),或者直接输入你想要的内容。
- **在需要时回答** —— 当 agent 需要做出决定时,它会通过内联选项询问;
当它想要运行命令或写入文件时,它会请求许可(允许一次 /
始终允许 / 拒绝)。默认需要人工批准。
- **检查任何产物** —— 点击图表、报告或 notebook 在
右侧窗格中打开它;打开其 **历史记录** 查看每一个版本,并跳转回
生成它的对话。
- **用 ⌘K 触达一切** —— 命令面板可运行所有主要操作。
- **添加数据** —— 将文件放入工作区 (`~/Documents/OpenScience`) 或在
输入框中附加它们;agent 会在那里进行读取和写入。
## 🔒 安全与隐私
- **默认本地化** —— 你的工作区文件、原始数据、代码执行、会话
历史记录和出处都保留在你的机器上。设置中会以通俗易懂的语言
准确说明哪些内容被发送到你选择的模型提供商(即你的消息以及 agent 为完成任务而读取的文件 /
命令输出),以及哪些内容永远不会离开本地。
- **人在回路** —— 命令执行、文件删除、依赖安装和
远程连接都需要批准;该应用以手动批准模式发布。
- **凭证** —— 提供商密钥存放在应用私有的文件中,绝不会出现在工作区、
出处、日志或导出数据中。
## 🗂️ 仓库结构
| 路径 | 用途 |
| --- | --- |
| `apps/desktop/` | Tauri 2 + React + TypeScript + Vite 桌面外壳 (`src/` 前端,`src-tauri/` Rust) |
| `packages/shared/` | 共享的领域类型和图表设计系统 |
| `packages/sdk/` | `OpenCodeClient` SDK 封装(将 UI 与运行时隔离) |
| `packages/ui/` | 共享的 UI 组件库 |
| `runtime/skills/core/` | 第一方科学技能 (`traceability-review`、`publication-figures`) |
| `runtime/skills/external/` | 内置的 `ai4s-skills` 技能包(由脚本获取) |
| `runtime/` | `manager`、`opencode-profile`、`mcp` 配置 |
| `docs/` | `PRD.md`、`TECHNICAL_DESIGN.md`、`REQUIREMENTS.md`、`CONNECT_YOUR_TOOLS.md` |
| `examples/bci-trends/` | 内置的端到端演示项目工作区 |
| `scripts/` | `release/` 和 `dev/` 脚本(sidecar 和技能获取器) |
## 📌 状态与路线图
`v0.1`,正在积极开发中 —— 一个在 macOS 上运行的桌面 MVP。日志请见
[`PROGRESS.md`](./PROGRESS.md),完整规范请查看
[`docs/REQUIREMENTS.md`](./docs/REQUIREMENTS.md) / [`docs/PRD.md`](./docs/PRD.md)。
- ✅ 端到端工作流、产物溯源、可追溯性审查器、本地 Python
kernel + Jupyter、一键科学连接器、通俗语言的数据流、图表
设计系统、命令面板。
- 🚧 下一步:领域渲染器(蛋白质 / 化学结构)、R kernel、Windows
安装程序、更大型的多文件项目,以及 HPC / Slurm 计算。
## ⚖️ 许可证
[MIT](./LICENSE)。内置的第三方科学技能和连接器受其各自的
许可证约束。
## 🙏 致谢
基于 [Tauri](https://tauri.app)、[OpenCode](https://opencode.ai) 和
[ai4s-skills](https://github.com/ai4s-research/ai4s-skills) 技能包构建。感谢
[linux.do](https://linux.do) —— 这是一个充满活力的技术社区,本项目在此分享
和讨论。
标签:AI科研工作台, MCP, Tauri, 可复现研究, 可视化界面, 桌面应用, 科研辅助, 自动化攻击, 逆向工具