项目简介
本项目是 Jordan Lab 构建的智能实验室管理系统后端,旨在通过与大型语言模型(LLM)客户端(如 Cursor 或 Copilot Chat)集成,实现基于自然语言聊天的实验室工作流程管理。它将实验方案、实验记录、数据等关键信息存储在 GitHub 仓库中,并通过自动化脚本处理用户的自然语言指令,实现文件的创建、更新、版本控制和任务追踪。
主要功能点
- 方案与实验管理: 以结构化的 YAML 或 Markdown 文件形式,在代码仓库中集中管理实验室的标准操作方案(Protocols)和详细的实验记录(Experiments)。
- 自动化任务执行: 接收 LLM 客户端解析后的指令(通常为函数调用),自动执行文件操作(创建、编辑)、Git 提交、以及与 GitHub Issues/Pull Requests 的交互。
- 智能元数据填充: 利用向量嵌入(Embedding)和外部知识库(如 PubMed),根据用户输入和仓库已有内容,智能推荐和自动填充实验记录中的元数据(如试剂、参数等)。
- 版本控制与追踪: 利用 Git 对所有文档进行版本控制,确保每一次修改都有记录可查,同时通过自动创建 GitHub Issues 和更新任务列表文件(TASKS.md)实现任务追踪。
- 环境一致性: 基于 Dev Containers / GitHub Codespaces 构建,提供预配置的开发环境,确保所有用户拥有一致的工具和依赖。
安装步骤
本项目主要设计为在 GitHub Codespaces 或本地 Dev Containers 环境中运行,无需复杂的本地安装。
- 打开仓库: 在 GitHub 上打开 'the-jordan-lab/docs' 仓库。
- 创建 Codespace: 点击 “Code” 按钮,选择 “Codespaces”,然后点击 “Create codespace on main”(或指定分支)。Codespaces 会自动根据仓库中的 '.devcontainer' 配置构建环境,安装所有必要的依赖(Python库、GitHub CLI等)并可能自动启动后台任务。
- 设置 Secrets: 在 Codespaces 的 Secrets 配置中,确保设置了 'OPENAI_API_KEY'(用于访问 OpenAI API,如果需要智能填充或某些功能)和 'GITHUB_TOKEN'(Codespaces 通常会自动提供一个)。
- 初始化环境: Codespace 构建完成后,可能需要运行一次初始化脚本,例如通过终端执行 'lab init-extensions'(具体命令请参考仓库文档)。这将检查并设置环境、创建必要的文件等。
至此,后端系统已在 Codespace 环境中准备就绪,等待 LLM 客户端连接。
服务器配置 (供 MCP 客户端使用)
本项目实现了 MCP 服务器的后端逻辑,旨在通过标准接口(如 JSON-RPC over Stdio)与 MCP 客户端(如 Cursor 编辑器插件)通信。LLM 客户端需要配置如何启动和连接到此服务器进程。
典型的 MCP 客户端配置(例如在 Cursor 的设置中)会包含类似以下的 JSON 结构,指示客户端如何找到并运行服务器:
// 这是一个示例JSON结构,实际配置可能因客户端而异 { "name": "Jordan Lab Agent", // 服务器显示名称 "description": "Backend for Jordan Lab chat-driven lab management.", // 服务器描述 "command": ["python", "-m", "Agent.agent_runner"], // 启动服务器进程的命令 "args": [], // 传递给命令的参数列表 "protocol": "stdio" // 使用的标准输入输出协议进行通信 }
说明:
- 'name' 和 'description' 字段用于在客户端界面中标识服务器。
- 'command' 字段指定了在环境中启动服务器进程的命令和可执行文件路径。例如,'["python", "-m", "Agent.agent_runner"]' 表示使用 Codespace 环境中的 'python' 解释器执行 'Agent' 包内的 'agent_runner' 模块。
- 'args' 字段用于向 'command' 传递任何额外的命令行参数。
- 'protocol' 字段指定通信协议,'stdio' 是 MCP 常用的一种,表示通过标准输入和输出来交换 JSON-RPC 消息。
用户无需手动创建或修改此 JSON,此信息是供 MCP 客户端开发者或高级用户了解如何配置客户端以连接到本后端服务时参考。在 Codespaces 环境中,MCP 客户端(如 Cursor)通常能够自动发现或通过简单的配置指定要运行的后端命令 ('python -m Agent.agent_runner') 来建立连接。
基本使用方法
一旦 Codespace 环境就绪且 LLM 客户端(如 Cursor 或 Copilot Chat)连接成功,即可开始通过聊天界面与实验室管理系统互动:
- 打开聊天界面: 在 VS Code 中打开 Cursor 或 Copilot Chat 标签页。
- 输入指令: 使用自然语言描述您希望执行的实验室任务。例如:
- "Create a new protocol for cell staining" (创建一个新的细胞染色方案)
- "I'm starting an experiment tomorrow using RNA Extraction v2 on sample 123" (我明天要用 RNA Extraction v2 方案在样品 123 上做一个实验)
- "Mark experiment EXP-0005 completed and add results 'Yield was 250 ng/µL'" (将实验 EXP-0005 标记为完成,并添加结果 '产量为 250 ng/µL')
- "Record qPCR data file for experiment EXP-0225: ./Data/temp/qpcr_results.csv" (为实验 EXP-0225 记录 qPCR 数据文件:./Data/temp/qpcr_results.csv)
- 系统响应: 后端系统会解析您的指令,执行相应的自动化任务(创建/修改文件、提交 Git 更改、创建 GitHub Issue 等),并在聊天界面或通过文件更新向您反馈结果。
- 查看记录: 所有操作都会体现在 GitHub 仓库的文件变化中(Protocols/, Experiments/, Data/, TASKS.md, CHANGELOG.md),您可以随时通过标准的 Git 工具或 GitHub 网页界面查看、追踪和管理您的实验室记录。
系统会尽量自动化填充信息并减少打断,仅在必要时(如信息不确定或缺失关键项)向您提问。详细的使用指南和示例请参考仓库中的 'LAB_AGENT_GUIDE.md' 文件。
信息
分类
AI与计算