wisp-science
本地优先的 Rust+Tauri AI 科研工作台,内置 41 个生物信息学技能 + 80+ 数据库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
本地优先的 Rust+Tauri AI 科研工作台,内置 41 个生物信息学技能 + 80+ 数据库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景: 深夜,你是一位生物信息学博士,需要分析一批 RNA-seq 数据来找出差异表达基因。往常的流程是:打开终端、回忆 Python 脚本语法、翻找之前保存的代码片段、在 PubMed 上手动搜索相关文献、最后再把结果整理成 PPT。而现在,你只需要在一个桌面应用里描述你的目标——"我有一批人类肝脏组织的 RNA-seq 数据,帮我找出 top 50 差异表达基因,并生成可视化图表和文献摘要"——AI 助手会自动启动 Python 环境、写代码执行、向生物信息学数据库发起查询、把文献摘要整合进来,全程在你的本地电脑上完成,数据不上传到任何云端。
这就是 Wisp Science 正在做的事。
科学计算领域长期存在一个痛点:工具极度碎片化。Python 写分析脚本、R 做统计建模、命令行跑生物信息学工具、浏览器查文献、本地文件管理系统管理数据……每个环节之间几乎没有统一的工作流。研究者们花费大量时间在"如何做"(工具切换和脚本调试)而非"做什么"(科学问题本身)上。
2023 年大语言模型浪潮带来了新的可能性:AI Agent 具备规划、工具调用、记忆和迭代执行能力,理论上可以将科研工作流串联起来。但当时的 AI 编程助手(如 Copilot)更多解决的是"帮我写这段代码"的碎片需求,而无法handle 一个完整的多步骤科研任务闭环。
Wisp Science 正是诞生于这个时间节点。作者 xuzhougeng(徐卓庚)是一名生物信息学背景的开发者,他在日常科研中深感上述痛点,最终决定自己动手,用现代 AI Agent 架构打造一个真正为科研场景设计的本地工作台。项目采用 Rust + Tauri v2 构建,融合了 AI 编程工具的 Agent 范式与科学计算的具体场景,是目前开源生态中为数不多的垂直领域 AI Agent 桌面应用。
图1:Wisp Science 作者 xuzhougeng(徐卓庚)头像
Wisp Science 的架构设计非常清晰:采用 Rust workspace 组织的微内核 + 多层扩展体系,总共包含 11 个内部 Rust crate,各司其职:
| Crate 名称 | 职责 |
|---|---|
| wisp-core | Agent 运行时:上下文压缩、系统提示词组装、agent_loop、Markdown 记忆管理 |
| wisp-llm | LLM 客户端:支持 OpenAI 兼容接口(DeepSeek/Qwen/MiniMax/Ollava 等)和 Anthropic Messages API,统一封装 SSE 流式输出和推理过程 |
| wisp-tools | Agent 工具集:read/write/edit/search/grep/shell/attempt_completion,内置 Windows 安全沙箱机制 |
| wisp-skills | Skill 系统:发现和执行 SKILL.md 格式的 Agent 技能,支持内置目录和用户自定义目录 |
| wisp-runtime | Python/R 运行时管理器:项目级 REPL 工具,可在本地、SSH、WSL、GPU 环境中持久化运行 |
| wisp-mcp | MCP 客户端:基于 stdio JSON-RPC 协议,通过 uv 启动内置 bio-tools MCP 服务 |
| wisp-acp | 外部编码智能体协议(Agent Communication Protocol)实现 |
| wisp-store | 数据持久化:sqlx + SQLite,存储 projects/frames/messages/artifacts/settings,使用 OS keyring 管理密钥 |
| wisp-cli | 无界面 CLI 入口 |
| wisp-paths | 路径解析和项目文件定位 |
| wisp-sync | 项目同步引擎 |
桌面 Shell 层使用 Tauri v2 构建,集成了 Leptos 前端框架(响应式、类型安全的 WebAssembly 前端),提供跨平台窗口管理、系统托盘、通知等原生能力。Rust 微内核的引入使得 Agent 运行时具有极高的执行效率和内存安全性,相比纯 Python/Node.js 的 Agent 实现,在长会话和复杂任务中的性能表现更为稳定。
如果说 Rust 内核是 Wisp Science 的"发动机",那 Skill 系统就是它的"方向盘"——定义了 AI Agent 在不同场景下应该如何工作。
项目内置了 41 个 Agent 技能(SKILL.md 格式),覆盖以下主要场景:
文献调研类:
bear-onboard:给定一个陌生领域,同时产出"概念版图"(当前领域现状)和"演化脉络"(历史发展),快速建立认知框架bear-trace:溯源某个观点或结论的原始文献,绝不编造引用bear-support / bear-counter:为特定观点寻找支持或反驳的文献证据literature-review:系统综述一个主题的研究现状生物信息学专项(这是 Wisp Science 最具特色的部分):
alphafold2:bear-propose(提出假设)+ AlphaFold2 预测蛋白质结构boltz:Boltz-1 蛋白质结构预测esmfold2 / fair-esm2:ESM 系列蛋白质语言模型推理diffdock:分子对接chai1:冷冻电镜结构解析辅助evo2:Evolutionary-scale predictionscvi-tools:单细胞 RNA-seq 分析scgpt:单细胞表达谱嵌入proteinmpnn / ligandmpnn / solublempnn:蛋白质设计数据探索与可视化:figure-composer、figure-style、pdf-explore、indication-dossier
环境与计算资源:compute-env-setup、local-env-setup、remote-compute-ssh、remote-compute-modal
工具构建:skill-creator、self-awareness、product-self-knowledge
每个技能都是一个符合 SKILL.md 规范的文件夹,包含技能描述、触发条件、执行步骤和输出格式定义。这种"声明式技能"的设计让用户可以轻松扩展自己的专属工作流——只要按照规范写一个 SKILL.md 文件,放在 skills 目录下,Agent 就能自动发现并使用它。
MCP(Model Context Protocol)是 Anthropic 主导的 AI-Agent 工具调用协议标准,Wisp Science 内置了 MCP 客户端,可以连接任何兼容 MCP Server 的工具服务。项目目前捆绑了两个内置 MCP Server:
bio-tools:最核心的内置服务,集成了约 80 个生物信息学和计算生物学数据库的访问能力,包括 Ensembl、UniProt、PDB、BioMart 等常见数据源。这意味着 Agent 在执行生物信息学任务时,可以直接查询真实数据库,而非凭空生成数据——这是科研场景与通用 AI 编程助手最大的区别之一。
ketcher-chemistry:基于 EPAM Ketcher 的化学结构编辑器 MCP 服务,支持分子结构绘制、编辑和化学信息查询,用于化学信息学场景。
MCP 客户端的实现采用 stdio JSON-RPC 协议,通过 uv(现代 Python 包管理器)动态启动 Python 实现的 MCP Server,无需独立部署,直接打包在应用内。
wisp-llm crate 实现了 Provider trait 抽象,同时支持两种 LLM 调用模式:
OpenAI 兼容模式:覆盖 OpenAI API、DeepSeek、Qwen(通义千问)、MiniMax、Ollava、LM Studio,以及任何实现了 /chat/completions 接口的本地/云端模型。这意味着用户完全可以利用 Ollama 或 LM Studio 在本地运行开源模型(如 Llama 3、Qwen 2.5),实现完全离线的 AI 科研辅助。
Anthropic Messages API:支持 /v1/messages 接口,兼容 Claude 系列模型,并统一处理 reasoning_content / reasoning / thinking_delta 等不同模型特有的推理输出格式。
两种 Provider 均实现了非阻塞的 complete() 方法和 SSE stream() 方法,支持流式输出和推理过程展示。此外还实现了 RoutedProvider,可以根据任务类型自动选择最合适的模型。
科研任务通常涉及大量上下文信息(文献、代码、数据文件、Agent 执行历史),在长会话中很容易触发 LLM 的上下文窗口限制。Wisp Science 的 wisp-core 中实现了三层上下文压缩机制:
这套机制使得 Wisp Science 能够支撑起完整的多日科研工作流,而非只能在单次会话内完成任务。
相比起 ChatGPT、Claude 等云端 AI 服务,Wisp Science 最大的差异化卖点是"本地优先"(Local-first):
在生物信息学场景下,这一特性尤为重要——患者基因组数据、临床研究数据往往受 GDPR 或 HIPAA 约束,不能上传到第三方服务器。本地优先设计让 Wisp Science 在合规敏感场景下有了独特优势。
项目当前版本为 v0.17.0(MIT 协议,Apache-2.0 许可证),以 Tauri v2 桌面应用形式分发,Windows 和 macOS 用户可直接下载安装包。Linux 用户需要通过源码构建(需要 Rust 1.88+ 和 Node.js 18+)。
项目不提供 Dockerfile,也不支持 docker-compose 方式一键部署。这是因为 Tauri 桌面应用本身就需要针对各平台做原生打包,容器化并不能简化部署流程,反而会增加复杂度。对于普通用户,建议直接使用官方发布的安装包;对于开发者,参考 README 中的源码构建指南(Windows PowerShell / macOS)。
CLI 模式适合服务器场景:连接远程 GPU 节点作为计算后端,通过命令行操作执行科研工作流。
作为一个 MVP 阶段的项目,Wisp Science 也存在明显的局限性:
功能完成度:v0.17.0 明确标注为"MVP 垂直切片",核心 Agent 循环、流式输出、工具集、Python/R REPL、MCP 客户端和 UI 均可运行,但路线图上仍有许多功能尚未实现(如完整的项目控制平面、调度器、数据资产版本管理等)。
技能质量依赖:内置的 41 个科研技能需要与对应的数据库/模型服务配合使用,若后端服务不可用,相关技能会降级或失败。例如 AlphaFold2 预测需要 AlphaFold Server 或本地部署的 AlphaFold 服务。
前端构建依赖 Windows/macOS 脚本:项目使用 PowerShell 脚本(.ps1)作为前端构建命令,Linux 开发者需要在 WSL 环境中操作。
AI 模型需自备:项目本身不捆绑任何 AI 模型,用户需要自行准备 OpenAI API Key、Anthropic API Key,或部署本地 Ollama/LM Studio 服务。
Wisp Science 的出现填补了国内开源社区在"科研垂直领域 AI Agent 桌面应用"方向的空白。相较于通用 AI 编程助手(如 Copilot、Claude Code),它有几个鲜明特点:
目前项目在 GitHub 上获得了 187 颗星,对于一个纯个人项目(作者是主要维护者)而言,已经展现了清晰的受众需求。后续若能吸引更多社区贡献技能和 MCP Server,或与高校实验室合作定制工作流,有望成为生物信息学/计算生物学领域的"标准科研 Agent 平台"。
一句话总结:Wisp Science 是一个用 Rust+Tauri 构建的本地优先 AI 科研助手,通过 11 个 Rust crate 组成的微内核、41 个可扩展技能、80+ 生物信息学数据库 MCP 支持,让科研工作者在本地设备上拥有完整的 AI 辅助研究工作流——数据不出本机,模型可自选,是科研隐私敏感场景下的理想选择。