# OpenLab **Repository Path**: sculab/open-lab ## Basic Information - **Project Name**: OpenLab - **Description**: 它是 Claude Science 及同类 AI-for-science 工作台的开源桌面替代:基于 Tauri、MCP、 agent skills 和可复现工件构建,把智能体、笔记本、文件、图表、报告、运行记录和审查 连接成一条可审计的桌面工作流。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-04 - **Last Updated**: 2026-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
[![Open Lab — 本地优先的演化生物学研究站](./docs/assets/banner.webp)](https://gitee.com/sculab/open-lab) # Open Lab **面向演化生物学、系统发育基因组学、群体遗传学与计算生态学的本地优先、模型无关研究站。** 由且仅由一个实验室维护——**本仓库不是面向公众的产品。** 它是本组每天都在用的 实验台工具:一个把每份样本、每次比对、每棵进化树、每次运行、每份草稿都留在 **我们自己机器上**的野外研究站;除非我们主动指向外界,它不打扰外面的世界。

English · 简体中文

--- ## 野外记录:这座研究站是做什么的 一座研究站的价值在于它留下的路线图。Open Lab 把现代比较生物学项目的完整循环—— 提出问题、取样、比对、推断、验证、成文——作为一次连续且可审计的会话跑完,并边走边记录: - **从一个粗略问题到一份成稿,全程一条可追溯的线索。** 探索环节筛出可操作的假说, 文献综述把你要研究的支系摸清,实验套件构建可运行的代码,论文写作把数字和图变成文字—— 每个阶段都在工作区产出真实、可检验的工件。 - **谱系,而非散落的叶片。** 图表、表格、笔记本与运行输出都被钉在产生它们的代码、 输入、环境、模型输出和对话上——就像标本记录把样本钉到它的采集地和凭证号上一样。 任何东西都不会无凭据地漂浮。 - **每一棵树在被相信之前都要被检查。** `domain-check` 审查门会运行确定性的领域专属 检查(单位与量纲是否匹配、经纬度上是否误用欧氏距离、坐标是 0 基还是 1 基、多重比较 是否未校正、分类编码是否被平均等),然后才把结果呈现给你。`phylo-inference` 从序列 构建、定根并注释进化树,每一条枝长、每个支持值、每个标签都可追溯到输入。 - **样地就留在我们的土地上。** 会话、数据、溯源、笔记本与运行记录都存放在本机 `~/Documents/OpenLab`。默认什么都不外传;应用自身**不发起任何后台网络请求**。 需要时,一个基于令牌认证的网关可以把真正的 UI 提供给局域网里的浏览器或手机—— 开启前仅限回环地址,且 API key 永不离开本机。 - **可复现,靠构造而非承诺。** 本地、SSH/Slurm、Modal 与笔记本批处理运行都记录为 结构化、可复现的运行记录——是实验方案,而不是轶事。记过一次的运行,日后还能以 「复现」提示重新询问。 - **模型无关,provider 可插拔。** UI 通过 `packages/sdk` 与内置、固定版本的 OpenCode 边车通信。自带模型即可;provider、技能与 MCP 服务器保持可换。读图可指向独立的 GPU 视觉服务(例如实验室服务器上的 Qwen-VL 模型),并自动按 token 预算缩放图片。 ## 设备清单(当前能力) 第一方技能位于 `runtime/skills/core/`,随安装包内置,无需下载: | 技能 | 作用 | 主要产出 | | --- | --- | --- | | `ai4s-agent` | 依次调用流水线技能 | 完整科研包 | | `research-explorer` | 把宽泛方向变成具体课题 | `research_exploration.md`、`topic_matrix.md`、`literature_pre_survey.md` | | `literature-survey` | 撰写文献综述 | 6–20 页 PDF、60+ 真实引用、LaTeX 源码、分类图 | | `experiment-suite` | 构建实验包 | 设计文档、可运行代码、带溯源的结果、图表、报告 | | `paper-writer` | 撰写研究论文 | 8–14 页 PDF、200+ 引用、4–8 张图、表格 | | `mindmap-render` | 渲染思维导图 | 由 `topic_matrix.md` 生成的图片 | | `integrity-auditor` | 审查论文完整性 | 图像/数值/逻辑发现、`audit_report.md` | | `phylo-inference` | 构建、解读并可视化系统发育树 | 从序列得到进化树与图件,全程可追溯 | `domain-check` 覆盖 **8 个领域**——物理、地球科学、生物学、化学、社会科学、 系统发育、生态学与进化——每个领域都有确定性、可关闭的发现。其他第一方技能还包括 `traceability-review`、`stats-integrity`、`large-file`、`publication-figures`、 `remote-compute`、`modal-run` 与 `image-tools`。 ### 平台 | 领域 | 现状 | | --- | --- | | 桌面外壳 | Tauri 2 + React + TypeScript + Vite,提供 macOS、Windows、Linux 桌面构建。 | | 运行时 | 内置 OpenCode 边车,应用自动启动,与用户自己的 OpenCode 配置/数据隔离。 | | 项目 | 钉住的项目始终显示在侧边栏,每个可设强调色、拥有独立工作区文件夹;外部仓库导入显示「已导入」徽标。 | | 会话 | 多会话聊天/历史、按日期命名的工作区文件夹、全局历史、`/` 命令、`!` shell 模式、持久化的每会话提示队列、纯净对话模式、可搜索历史(归档/恢复/导出)。 | | 布局 | N 元分屏平铺、拖拽停靠、多个独立「屏幕」、每分栏各自的模型与推理强度。 | | 智能体模式 | `/plan` 先规划后执行、`/goal` 设定目标与验收标准、子代理状态实时显示、「停止」反映真实服务端状态。 | | 记忆 | 全局与项目两层记忆,可开关;长对话接近模型窗口时自动压缩。 | | 远程计算 | 从 `~/.ssh/config` 登记计算机、探测可用性、提交/跟踪/取消作业;支持 2FA 集群的交互式登录。 | | 外观 | Light / Warm / Dark / E-ink 四套主题,界面缩放。 | | 文件 | 全局与每会话文件浏览、右键菜单操作、工件检查器(把每个工件连到生成它的脚本与输入)。 | | 远程访问 | 基于令牌认证的网关把真正的 UI 提供给命令行 / 局域网浏览器 / 手机(默认仅回环,局域网手动开启);只读与完全访问两种模式。 | | 浏览器控制 | 智能体驱动你自己的 Chrome(保留配置与登录态),通过无障碍树读取页面,或按需使用隔离的隐私浏览器。 | | 笔记本 | 真正的 `.ipynb`,支持 Python 与 R、本地内核、用内置 `uv` 管理的 Jupyter 环境。 | | 运行 | 只追加的运行日志、全局 SQLite 索引、搜索/筛选/分页、复现提示。 | | 溯源 | `.openlab/provenance.jsonl` 记录文件版本,并把工件连接到创建它们的运行或编辑。 | | 查看器 | PDF、图片、视频、HTML、Markdown、代码、带图表的 CSV/TSV、DOCX、XLSX、PPTX、分子、3D 网格、基因组轨道、FITS、DOS/DOSCAR、EIGENVAL 能带、qcode、异常图与相图。 | | 界面语言 | 英语、简体中文。 | ## 技能与连接器 第一方科研技能位于 `runtime/skills/core/`,随安装包内置。仅有少量第三方技能包在 构建时获取、不进 git 历史: - Apache-2.0 的 `anthropics/skills` 仓库办公/文档技能:`docx`、`pdf`、`pptx`、`xlsx`。 - 与其 sidecar 一起部署的 `agent-browser` 官方技能。 当前一键科学 MCP 连接器包括: - 文献检索:arXiv、PubMed、Crossref、Semantic Scholar、bioRxiv/medRxiv。 - 生物医学数据库:PubMed、ClinicalTrials.gov、MyVariant/ClinVar。 - Materials Project。 - FRED 经济数据。 - 空间天气。 - Open-Meteo 天气与气候。 - USGS 水文数据。 你也可以从设置中添加任意本地或远程 MCP 服务器。参见 [`docs/CONNECT_YOUR_TOOLS.md`](./docs/CONNECT_YOUR_TOOLS.md)。 ## 安装与首次启动 — 未签名构建 安装包**未进行代码签名或公证**,因此操作系统会在首次启动时提示。这属正常现象,清除一次即可: **macOS** — Apple Silicon:`Open Lab_<版本号>_aarch64.dmg`(需要 macOS 13+) 打开 DMG,把 **Open Lab** 拖入「应用程序」。 如果出现 *"Open Lab is damaged and can't be opened"*(应用已损坏)或 *"unidentified developer"* (来自身份不明的开发者),请在终端中清除隔离属性后再正常打开: ```bash xattr -cr "/Applications/Open Lab.app" ``` **Windows** — `Open Lab_<版本号>_x64-setup.exe` 或 `Open Lab_<版本号>_x64_en-US.msi` 如果 SmartScreen 显示 *"Windows protected your PC"*(已保护你的电脑),选择 **更多信息 -> 仍要运行**。 **Linux**: ```bash sudo apt install ./OpenLab_*.deb # 或 sudo rpm -i OpenLab_*.rpm ``` 安装包发布在 [Releases](https://gitee.com/sculab/open-lab/releases) 页面。 ## 从源码构建 前置条件: - Node.js >= 20 - pnpm 9 - Rust 工具链 - Tauri 所需的 macOS、Windows 或 Linux 系统依赖 ```bash git clone git@gitee.com:sculab/open-lab.git open-lab cd open-lab pnpm install # 获取固定的 sidecar 与第三方技能包(已 git-ignore;第一方技能已在仓库内) bash scripts/dev/fetch-opencode.sh bash scripts/dev/fetch-uv.sh bash scripts/dev/fetch-skills.sh bash scripts/dev/fetch-goal-plugin.sh bash scripts/dev/fetch-dsh-acp.sh # 开发运行或构建安装包 pnpm --filter @ai4s/desktop tauri dev pnpm --filter @ai4s/desktop tauri build ``` 常用检查: ```bash pnpm test pnpm typecheck pnpm lint python3 scripts/dev/test_domain_check.py ``` ## 安全与隐私 - 工作区文件、原始数据、会话历史、溯源、笔记本与运行记录默认保存在本地。应用自身 **不发起任何对外网络请求**(更新检查已移除;只有你配置的模型 provider 的调用会离机)。 - 命令执行、文件删除、依赖安装与远程连接都是桌面应用里的人工审批流程(审批模式绝不内置为关闭)。 - 凭据写入应用私有的运行时配置,绝不进入工作区、溯源、git、导出或全局 OpenCode 配置。 - 设置中包含用通俗语言描述的数据流视图,说明哪些内容会发送给所选模型 provider。 ## 仓库结构 | 路径 | 用途 | | --- | --- | | `apps/desktop/` | Tauri + React 桌面应用。 | | `packages/sdk/` | `OpenCodeClient`;UI 不直接调用 OpenCode。 | | `packages/shared/` | 共享领域类型与图表调色板。 | | `packages/ui/` | 共享 UI 包。 | | `runtime/skills/core/` | 第一方科学技能。 | | `runtime/skills/external/` | 构建时获取的外部技能。 | | `runtime/harness/` | 运行时 harness 知识与操作者上下文。 | | `runtime/mcp/` | MCP 运行时说明/配置。 | | `examples/` | 内置示例工作区。 | | `scripts/dev/` | sidecar、`uv`、技能获取脚本与聚焦回归探针。 | | `docs/` | 产品、技术、操作、连接器与科研笔记。 | ## 状态 一个团队内部、日常活跃使用的仪器。最可靠的当前实现日志是 [`PROGRESS.md`](./PROGRESS.md)。产品与架构说明见 [`docs/PRD.md`](./docs/PRD.md) 与 [`docs/TECHNICAL_DESIGN.md`](./docs/TECHNICAL_DESIGN.md),但这些文档同时包含目标设计和历史状态说明。 ## 参与贡献 这是**实验室内部**项目:贡献者是维护它的科研小组。欢迎外部 Issue 与 PR,但可能不作处理 ——我们优先服务自己的流程。请保持改动最小且可验证,遵循 [`AGENTS.md`](./AGENTS.md), 并在提交 PR 前运行检查。 ## 许可证 [MIT](./LICENSE)。内置的第三方技能与连接器保留各自许可证。 > ## ⚠️ 免责声明 > > **Open Lab 由且仅由一个研究团队构建和维护,它不是公开产品。** 源码以开源方式发布 > 仅出于透明。它**不提供任何形式的担保**,作者对团队以外任何人使用本软件所产生的 > **任何后果不承担任何责任**。 > > - 如果你不属于本实验室而选择运行它,**一切后果完全自负。** > - **请把每一份 AI 产出都当作草稿。** 在发表或做出任何依赖它们的决定之前, > 核对数字、引用、代码与结论。 > - 用 Open Lab 产出的报告、论文或图表由**你**负责——请勿归因于本项目。 > - `domain-check`、`stats-integrity` 与 `integrity-auditor` 审查门帮你发现错误, > 但它们**不能证明任何分析是正确的**。 > > 这是为我们自己的远征准备的野外研究站。若要在此落脚,风险自负。