PyLabRobot 是一个硬件无关的实验室自动化框架,本技能用于开发与审查 PyLabRobot 的实验室自动化资源、液体处理方案、离线仿真以及受支持设备的集成。
用途 本技能面向使用 PyLabRobot 进行实验室自动化开发的场景,默认采用本地清单校验、记账和纯软件的 chatterbox 后端,强调离线优先,不自动命令物理设备。
版本与要求 PyPI 稳定版为 PyLabRobot==0.2.1,发布于 2026-03-23。上游要求 Python >=3.9,本技能使用 Python 3.11 进行可复现的冒烟测试。/stable/ 文档标识为 0.2.1;/dev/ 与仓库 main 描述的是未发布工作,不能假定在 0.2.1 中可用。PyLabRobot 的 GitHub Releases 页面没有 0.2.x 软件发布条目,应以 PyPI 历史、v0.2.1 标签和 changelog 作为发布证据。
主要能力 稳定版液体处理后端包括 STARBackend、VantageBackend、EVOBackend、OpentronsOT2Backend,以及离线的 LiquidHandlerChatterboxBackend。技能提供多个本地 CLI 工具:validate_manifest.py 用于校验协议清单;check_deck_geometry.py 使用保守的静态轴对齐盒进行几何检查(非运动规划器);plan_transfers.py 进行移液规划,要求每行使用一个新吸头,并检查源/死体积/目标体积、吸头容量、孔位、通道、高度、速率、单位和允许列表;generate_simulation_plan.py 生成仿真计划;inspect_backends.py 检查后端。
使用方式 离线安装示例: uv venv --python 3.11 .venv-pylabrobot uv pip install --python .venv-pylabrobot/bin/python "PyLabRobot==0.2.1" Windows 使用 .venv-pylabrobot\Scripts\python.exe。在用户指明设备并明确批准其传输依赖前,不要安装硬件 extras。
离线工作流从仓库根目录运行,所有 CLI 使用严格、有界的 UTF-8 JSON/CSV、本地非符号链接路径、固定允许列表和 JSON 输出,均不能选择实时后端。示例命令: python3 skills/pylabrobot/scripts/validate_manifest.py --input tests/pylabrobot/fixtures/protocol_manifest.json python3 skills/pylabrobot/scripts/check_deck_geometry.py --input tests/pylabrobot/fixtures/protocol_manifest.json python3 skills/pylabrobot/scripts/plan_transfers.py --manifest tests/pylabrobot/fixtures/protocol_manifest.json --transfers tests/pylabrobot/fixtures/transfers.csv python3 skills/pylabrobot/scripts/generate_simulation_plan.py --manifest tests/pylabrobot/fixtures/protocol_manifest.json --transfers tests/pylabrobot/fixtures/transfers.csv python3 skills/pylabrobot/scripts/inspect_backends.py --expected-version 0.2.1 --strict
API 规则 当前后端名称为 STARBackend、VantageBackend、EVOBackend、OpentronsOT2Backend;不要使用过时的 STAR、TecanBackend、OpentronsBackend 或 ChatterboxBackend 导入。通用离线液体处理测试应使用 LiquidHandlerChatterboxBackend;ChatterBoxBackend 是另一个遗留命名的导出,不要混淆。Visualizer(resource=...) 有效,随后调用 await vis.setup() 和 await vis.stop();它会启动 localhost HTTP/WebSocket 服务器并可能打开浏览器。0.2.1 中没有通用的 from pylabrobot.liquid_handling import LiquidClass;稳定版液体类别是厂商特定的,例如 pylabrobot.liquid_handling.liquid_classes.hamilton.HamiltonLiquidClass。大多数前端方法是异步的。
适用场景 适用于实验室自动化协议开发、离线仿真、台面几何校验、移液规划、后端检查等。
限制与安全边界 绝不自动连接、初始化、归位、移动、加热、摇动、旋转、泵送、开/关或以其他方式命令物理设备。不得仅通过更改环境变量、配置值或导入就将仿真计划变为实时后端。任何单独授权的实时运行前,必须由受训人员明确确认后端、设备身份、固件、传输、台面和协议修订;核对物理台面与资源树;验证校准、运动包络、碰撞风险、通道间隙和所有吸/分液坐标;审查源身份与实际填充体积、死体积、目标容量、吸头类型/容量/过滤兼容性、通道映射、单位、高度、速率、液体类别、吹出/混合和污染边界;确认防护、门、废物容量、应急停止、PPE、生物安全/化学控制及安全中止/恢复程序;对任何新增或变更批准慢速干运行或非危险调试运行。Tracker 状态是记账而非传感,不能证明液体或吸头物理存在;Visualizer 渲染资源/跟踪事件,不建模物理;Chatterbox 打印计划操作,不证明校准、可达性、无碰撞、液体行为或设备状态。
必需输入 不要猜测以下任何内容:确切设备型号、已安装选项、固件、计算机/操作系统和传输;稳定版 PyLabRobot 版本和所需 extras;台面/台面原点、载架、适配器、资源定义、尺寸、坐标、方向和运动间隙;板/管/储液器容量和死体积、初始物理体积;吸头型号、过滤器、接头、容量、架状态、通道数和通道映射;传输单位(uL、mm、uL/s、s)、高度、速率、混合、气隙、吹出、液体属性和经验证的厂商液体类别;污染策略、控制、废物处理、操作员干预、验收标准及恢复程序。若信息缺失,生成假设/阻碍列表并仅提供离线草稿。
代理操作流程 检查环境,确认仪器或平台型号、API 版本、凭据及是否有模拟器;确定输入,从数据或用户确认格式、标识符和参数,对影响结果的任何值应询问而非猜测;先运行小版本,在真实样品前用仿真或水/假台面运行协议;使用上述说明和参考执行完整任务;验证结果,核对体积、台面布局和台面定义,执行前由人工批准协议;报告运行内容(版本、命令、参数)、已检查内容和仍不确定的内容。
若仿真中协议失败,应在仿真中修复,绝不在硬件上运行未验证协议;若安装版本缺少说明中的函数、标志或端点,应查阅已安装版本自身文档(help()、--help、官方文档)并告知用户,绝不虚构 API;若必需输入、标识符或参数不明确,应询问用户或在运行前明确说明假设。
完整性规则 绝不捏造结果、参数、标识符、引用或统计;若无法运行或验证,应明确说明;未经用户明确确认,绝不触发物理动作、订单或费用;将此处版本特定细节视为可能过时,应针对已安装版本的官方文档确认;对涉及费用、消耗共享 GPU 或云配额、触及个人或患者数据或不可撤销的操作,应先询问。
相关技能 opentrons-integration:为 Flex 和 OT-2 机器人编写、审查、迁移、仿真和排查官方 Opentrons Python Protocol API v2 协议。fluidsim:规划、配置、检查、重启和分析有界 FluidSim 计算流体动力学仿真,并明确数值有效性。