Agent skill

Virtual Workbench

by deepmodeling in deepmodeling/Uni-Lab-OS

Operate Virtual Workbench via REST API — prepare materials, move to heating stations, start heating, move to output, transfer resources.

GPL-3.0Auto-check passedBackend & APIs

Install Virtual Workbench

skills CLI
$ npx skills add deepmodeling/Uni-Lab-OS --skill virtual-workbench -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install deepmodeling/Uni-Lab-OS virtual-workbench --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/deepmodeling/Uni-Lab-OS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/virtual-workbench .claude/skills/virtual-workbench && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
virtual-workbench
GitHub stars
178
Token cost
~2.4k tokens
SKILL.md length
371 words
Files
8
Skills in repo
10
Repo updated
First seen
Licence
GPL-3.0

At a glance

Operate Virtual Workbench via REST API — prepare materials, move to heating stations, start heating, move to output, transfer resources.

  • Works in 12 steps: ak / sk → AUTH → addr → BASE URL → 获取实验室信息(自动获取 lab_uuid) → …
  • The user mentions virtual workbench
  • SKILL.md covers 设备信息, 前置条件(缺一不可), Session State and 请求约定, plus 4 more sections
  • Calls curl; reaches leap-lab.test.bohrium.com and leap-lab.uat.bohrium.com

What it does

Virtual Workbench is an agent skill from deepmodeling/Uni-Lab-OS. Operate Virtual Workbench via REST API — prepare materials, move to heating stations, start heating, move to output, transfer resources. Use when the user mentions virtual workbench, virtualworkbench, 虚拟工作台, heating stations, material processing, or workbench operations.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files (for example `action-index.md`, `actions/manual_confirm.json` and `actions/move_to_heating_station.json`).

It sits in Backend & APIs, covering REST APIs. The repository describes itself as: A Platform for Laboratory Automation. The licence is GPL-3.0.

When your agent uses it

  • The user mentions virtual workbench
  • Virtualworkbench
  • Heating stations
  • Material processing

Example prompts

  • “/virtual-workbench”

Requirements

  • Python 3

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. ak / sk → AUTH
  2. addr → BASE URL
  3. 获取实验室信息(自动获取 lab_uuid)
  4. 创建工作流
  5. 创建节点
  6. 删除节点
  7. 更新节点参数
  8. 查询节点 handles
  9. 批量创建边
  10. 启动工作流
  11. 运行设备单动作
  12. 查询任务状态

What it can do on your machine

Read from SKILL.md and the folder at commit 43923ec. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • leap-lab.test.bohrium.com
    • leap-lab.uat.bohrium.com
    • leap-lab.bohrium.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Virtual Workbench loads about 2.4k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 371 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~73
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from deepmodeling/Uni-Lab-OS at commit 43923ec, republished under its GPL-3.0 licence (© deepmodeling). 371 words, ~2,402 tokens.

Download SKILL.mdSave it as .claude/skills/virtual-workbench/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
virtual-workbench
description
Operate Virtual Workbench via REST API — prepare materials, move to heating stations, start heating, move to output, transfer resources. Use when the user mentions virtual workbench, virtual_workbench, 虚拟工作台, heating stations, material processing, or workbench operations.

Virtual Workbench API Skill

设备信息

  • device_id: virtual_workbench
  • Python 源码: unilabos/devices/virtual/workbench.py
  • 设备类: VirtualWorkbench
  • 当前纳入动作: 5 个(auto-prepare_materials, auto-move_to_heating_station, auto-start_heating, auto-move_to_output, transfer)
  • 暂跳过动作: manual_confirm、扣电测试 test(需要启用时先从最新注册表重新提取 schema)
  • 设备描述: 模拟工作台,包含 1 个机械臂(每次操作 2s,独占锁)和 3 个加热台(每次加热 60s,可并行)
典型工作流程
  1. prepare_materials — 生成 A1-A5 物料(5 个 output handle)
  2. move_to_heating_station — 物料并发竞争机械臂,移动到空闲加热台
  3. start_heating — 启动加热(3 个加热台可并行)
  4. move_to_output — 加热完成后移到输出位置 Cn

前置条件(缺一不可)

使用本 skill 前,必须先确认以下信息。如果缺少任何一项,立即向用户询问并终止,等补齐后再继续。

1. ak / sk → AUTH

从启动参数 --ak --sk 或 config.py 中获取,生成 token:base64(ak:sk) → Authorization: Lab <token>

2. --addr → BASE URL
--addr 值BASE
testhttps://leap-lab.test.bohrium.com
uathttps://leap-lab.uat.bohrium.com
localhttp://127.0.0.1:48197
不传(默认)https://leap-lab.bohrium.com

确认后设置:

bash
BASE="<根据 addr 确定的 URL>"
AUTH="Authorization: Lab <token>"

两项全部就绪后才可发起 API 请求。

Session State

  • lab_uuid — 实验室 UUID(首次通过 API #1 自动获取,不需要问用户)
  • device_name — virtual_workbench

请求约定

所有请求使用 curl -s,POST/PATCH/DELETE 需加 Content-Type: application/json。

Windows 平台必须使用 curl.exe(而非 PowerShell 的 curl 别名)。


API Endpoints

1. 获取实验室信息(自动获取 lab_uuid)
bash
curl -s -X GET "$BASE/api/v1/edge/lab/info" -H "$AUTH"

返回 data.uuid 为 lab_uuid,data.name 为 lab_name。

2. 创建工作流
bash
curl -s -X POST "$BASE/api/v1/lab/workflow/owner" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"name":"<名称>","lab_uuid":"<lab_uuid>","description":"<描述>"}'

返回 data.uuid 为 workflow_uuid。创建成功后告知用户链接:$BASE/laboratory/$lab_uuid/workflow/$workflow_uuid

3. 创建节点
bash
curl -s -X POST "$BASE/api/v1/edge/workflow/node" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"workflow_uuid":"<workflow_uuid>","resource_template_name":"virtual_workbench","node_template_name":"<action_name>"}'
  • resource_template_name 固定为 virtual_workbench
  • node_template_name — action 名称(如 auto-prepare_materials, auto-move_to_heating_station)
4. 删除节点
bash
curl -s -X DELETE "$BASE/api/v1/lab/workflow/nodes" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"node_uuids":["<uuid1>"],"workflow_uuid":"<workflow_uuid>"}'
5. 更新节点参数
bash
curl -s -X PATCH "$BASE/api/v1/lab/workflow/node" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"workflow_uuid":"<wf_uuid>","uuid":"<node_uuid>","param":{...}}'

参考 action-index.md 确定哪些字段是 Slot。

6. 查询节点 handles
bash
curl -s -X POST "$BASE/api/v1/lab/workflow/node-handles" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"node_uuids":["<node_uuid_1>","<node_uuid_2>"]}'
7. 批量创建边
bash
curl -s -X POST "$BASE/api/v1/lab/workflow/edges" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"edges":[{"source_node_uuid":"<uuid>","target_node_uuid":"<uuid>","source_handle_uuid":"<uuid>","target_handle_uuid":"<uuid>"}]}'
8. 启动工作流
bash
curl -s -X POST "$BASE/api/v1/lab/workflow/<workflow_uuid>/run" -H "$AUTH"
9. 运行设备单动作
bash
curl -s -X POST "$BASE/api/v1/lab/mcp/run/action" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"lab_uuid":"<lab_uuid>","device_id":"virtual_workbench","action":"<action_name>","action_type":"<type>","param":{...}}'

param 直接放 goal 里的属性,不要再包一层 {"goal": {...}}。

WARNING: action_type 必须正确,传错会导致任务永远卡住无法完成。 从下表或 actions/<name>.json 的 type 字段获取。

action_type 速查表
actionaction_type
auto-prepare_materialsUniLabJsonCommand
auto-move_to_heating_stationUniLabJsonCommand
auto-start_heatingUniLabJsonCommand
auto-move_to_outputUniLabJsonCommand
transferUniLabJsonCommandAsync

manual_confirm 和扣电测试 test 当前不纳入本 skill 的推荐操作范围;不要基于历史 JSON 直接调用,需先重新生成并校验 schema。

10. 查询任务状态
bash
curl -s -X GET "$BASE/api/v1/lab/mcp/task/<task_uuid>" -H "$AUTH"
11. 运行工作流单节点
bash
curl -s -X POST "$BASE/api/v1/lab/mcp/run/workflow/action" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"node_uuid":"<node_uuid>"}'
12. 获取资源树(物料信息)
bash
curl -s -X GET "$BASE/api/v1/lab/material/download/$lab_uuid" -H "$AUTH"

注意 lab_uuid 在路径中。返回 data.nodes[] 含所有节点(设备 + 物料),每个节点含 name、uuid、type、parent。

13. 获取工作流模板详情
bash
curl -s -X GET "$BASE/api/v1/lab/workflow/template/detail/$workflow_uuid" -H "$AUTH"

必须使用 /lab/workflow/template/detail/{uuid},其他路径会返回 404。

14. 按名称查询物料模板
bash
curl -s -X GET "$BASE/api/v1/lab/material/template/by-name?lab_uuid=$lab_uuid&name=<template_name>" -H "$AUTH"

返回 data.uuid 为 res_template_uuid,用于 API #15。

15. 创建物料节点
bash
curl -s -X POST "$BASE/api/v1/edge/material/node" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"res_template_uuid":"<uuid>","name":"<名称>","display_name":"<显示名>","parent_uuid":"<父节点uuid>","data":{...}}'
16. 更新物料节点
bash
curl -s -X PUT "$BASE/api/v1/edge/material/node" \
  -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"uuid":"<节点uuid>","display_name":"<新名称>","data":{...}}'

Show full SKILL.md (149 more words)Show less

Placeholder Slot 填写规则

placeholder_keys 值Slot 类型填写格式选取范围
unilabos_resourcesResourceSlot{"id": "/path/name", "name": "name", "uuid": "xxx"}仅物料节点(非设备)
unilabos_devicesDeviceSlot"/parent/device_name"仅设备节点(type=device)
unilabos_nodesNodeSlot"/parent/node_name"所有节点(设备 + 物料)
unilabos_classClassSlot"class_name"注册表中已注册的资源类
virtual_workbench 设备的 Slot 字段表
Action字段Slot 类型说明
transferresourceResourceSlot待转移物料数组
transfertarget_deviceDeviceSlot目标设备路径
transfermount_resourceResourceSlot目标孔位数组

prepare_materials、move_to_heating_station、start_heating、move_to_output 这 4 个动作无 Slot 字段,参数为纯数值/整数。 manual_confirm 先跳过,不维护其 Slot 字段表。


渐进加载策略

  1. SKILL.md(本文件)— API 端点 + session state 管理 + 设备工作流概览
  2. action-index.md — 按分类浏览 6 个动作的描述和核心参数
  3. actions/<name>.json — 仅在需要构建具体请求时,加载对应 action 的完整 JSON Schema

完整工作流 Checklist

Task Progress:
- [ ] Step 1: GET /edge/lab/info 获取 lab_uuid
- [ ] Step 2: 获取资源树 (GET #12) → 记住可用物料
- [ ] Step 3: 读 action-index.md 确定要用的 action 名
- [ ] Step 4: 创建工作流 (POST #2) → 记住 workflow_uuid,告知用户链接
- [ ] Step 5: 创建节点 (POST #3, resource_template_name=virtual_workbench) → 记住 node_uuid + data.param
- [ ] Step 6: 根据 _unilabos_placeholder_info 和资源树,填写 data.param 中的 Slot 字段
- [ ] Step 7: 更新节点参数 (PATCH #5)
- [ ] Step 8: 查询节点 handles (POST #6) → 获取各节点的 handle_uuid
- [ ] Step 9: 批量创建边 (POST #7) → 用 handle_uuid 连接节点
- [ ] Step 10: 启动工作流 (POST #8) 或运行单节点 (POST #11)
- [ ] Step 11: 查询任务状态 (GET #10) 确认完成
典型 5 物料并发加热工作流示例
prepare_materials (count=5)
  ├─ channel_1 → move_to_heating_station (material_number=1) → start_heating → move_to_output
  ├─ channel_2 → move_to_heating_station (material_number=2) → start_heating → move_to_output
  ├─ channel_3 → move_to_heating_station (material_number=3) → start_heating → move_to_output
  ├─ channel_4 → move_to_heating_station (material_number=4) → start_heating → move_to_output
  └─ channel_5 → move_to_heating_station (material_number=5) → start_heating → move_to_output

创建节点时,prepare_materials 的 5 个 output handle(channel_1 ~ channel_5)分别连接到 5 个 move_to_heating_station 节点的 material_input handle。每个 move_to_heating_station 的 heating_station_output 和 material_number_output 连接到对应 start_heating 的 station_id_input 和 material_number_input。

start_heating 完成后还需要继续连接到 move_to_output,否则加热完成的物料不会移出加热台:

source actionsource handletarget actiontarget handle传递参数
auto-prepare_materialschannel_Nauto-move_to_heating_stationmaterial_inputmaterial_number
auto-move_to_heating_stationheating_station_outputauto-start_heatingstation_id_inputstation_id
auto-move_to_heating_stationmaterial_number_outputauto-start_heatingmaterial_number_inputmaterial_number
auto-start_heatingheating_done_stationauto-move_to_outputoutput_station_inputstation_id
auto-start_heatingheating_done_materialauto-move_to_outputoutput_material_inputmaterial_number

© deepmodeling, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files in .cursor/skills/virtual-workbench of deepmodeling/Uni-Lab-OS.

  • SKILL.md
  • action-index.md
  • actions/manual_confirm.json
  • actions/move_to_heating_station.json
  • actions/move_to_output.json
  • actions/prepare_materials.json
  • actions/start_heating.json
  • actions/transfer.json

Open the folder on GitHubat commit 43923ec

Compare with similar skills

Virtual Workbench next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Virtual Workbench compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Virtual Workbench this skilldeepmodeling/Uni-Lab-OS178—~2.4kAutomated safety check: PassGPL-3.0
API DesignerJeffallan/claude-skills12k2 repos~2kAutomated safety check: PassMIT
Paperclippaperclipai/paperclip98k—~9.6kAutomated safety check: PassMIT
Nodejs Backend Patternsever-works/ever-works15817 repos~4kAutomated safety check: PassAGPL-3.0
OpenAPI to MCP Servermcp-use/mcp-use11k—~5.2kAutomated safety check: PassApache-2.0
Use Yaakmountain-loop/yaak19k—~1.9kAutomated safety check: PassMIT

Similar skills

  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 2 repos~2k tokens
    Backend & APIsAuto-check passed
  • Paperclip

    paperclipai/paperclip

    Interact with the Paperclip control plane API for task coordination and governance.

    98k GitHub stars~9.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Nodejs Backend Patterns

    ever-works/ever-works

    Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.

    158 GitHub starsUsed in 17 repos~4k tokens
    Backend & APIsAuto-check passed
  • OpenAPI to MCP Server

    mcp-use/mcp-use

    Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.

    11k GitHub stars~5.2k tokensUpdated today
    Backend & APIsAuto-check passed
  • Use Yaak

    mountain-loop/yaak

    A skill your agent uses when the user mentions Yaak, a Yaak workspace, or the yaak command, or asks to call, hit, or smoke test HTTP/REST endpoints, save or organize API requests for reuse or manual…

    19k GitHub stars~1.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • Covers the RuView `wifi-densepose` command line binary, its Axum REST API and the WebAssembly builds for browsers and ESP32, for embedding or scripting RuView.

    97k GitHub stars~1.2k tokensUpdated today
    Backend & APIsAuto-check: notes

More from deepmodeling/Uni-Lab-OS

All 10 skills in this repo
  • Batch Submit Experiment

    deepmodeling/Uni-Lab-OS

    Batch submit experiments (notebooks) to the Uni-Lab cloud platform (leap-lab) — list workflows, generate nodeparams from registry schemas, submit multiple rounds, check notebook status.

    178 GitHub stars~2.3k tokensUpdated 13 days ago
    Auto-check passed
  • Create Device Skill

    deepmodeling/Uni-Lab-OS

    Create a skill for any Uni-Lab device by extracting action schemas from the device registry.

    178 GitHub stars~4.2k tokensUpdated 13 days ago
    Auto-check passed
  • Filter Workflow By Tags

    deepmodeling/Uni-Lab-OS

    Query backend workflow list, aggregate all tags, and filter workflows by domain/scenario requirements using tags.

    178 GitHub stars~2.9k tokensUpdated 13 days ago
    Auto-check passed
  • Submit Agent Result

    deepmodeling/Uni-Lab-OS

    Submit historical experiment results (agentresult) to Uni-Lab cloud platform (leap-lab) notebook — read data files, assemble JSON payload, PUT to cloud API.

    178 GitHub stars~1.7k tokensUpdated 13 days ago
    Auto-check passed
  • Add Device

    deepmodeling/Uni-Lab-OS

    Guide for adding new devices to Uni-Lab-OS (接入新设备). An agent skill from deepmodeling/Uni-Lab-OS.

    178 GitHub stars~3.1k tokensUpdated 13 days ago
    Auto-check passed
  • Add Resource

    deepmodeling/Uni-Lab-OS

    Guide for adding new resources (materials, bottles, carriers, decks, warehouses) to Uni-Lab-OS (添加新物料/资源).

    178 GitHub stars~2.9k tokensUpdated 13 days ago
    Auto-check passed

Categories

Questions about Virtual Workbench

What does Virtual Workbench do?

Operate Virtual Workbench via REST API — prepare materials, move to heating stations, start heating, move to output, transfer resources. Virtual Workbench is an agent skill from deepmodeling/Uni-Lab-OS. Operate Virtual Workbench via REST API — prepare materials, move to heating stations, start heating, move to output, transfer resources.

When should I use Virtual Workbench?

Virtual Workbench fits situations like: the user mentions virtual workbench; virtualworkbench; heating stations; material processing.

How do I install Virtual Workbench in Claude Code?

Run `npx skills add deepmodeling/Uni-Lab-OS --skill virtual-workbench -a claude-code`. Or copy the skill folder (.cursor/skills/virtual-workbench in deepmodeling/Uni-Lab-OS) into .claude/skills/virtual-workbench in your project. Claude Code loads it when a task matches its description.

How do I install Virtual Workbench in Codex?

Run `npx skills add deepmodeling/Uni-Lab-OS --skill virtual-workbench -a codex`. Or copy the skill folder (.cursor/skills/virtual-workbench in deepmodeling/Uni-Lab-OS) into .agents/skills/virtual-workbench in your project. Codex loads it when a task matches its description.

Can I use Virtual Workbench in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add deepmodeling/Uni-Lab-OS --skill virtual-workbench -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/virtual-workbench, .gemini/skills/virtual-workbench, .github/skills/virtual-workbench and .opencode/skills/virtual-workbench in your project.

What does Virtual Workbench need to run?

Going by SKILL.md and its folder, Virtual Workbench needs the command-line tools its instructions call (curl). Our summary lists: Python 3.

Does Virtual Workbench access the network?

SKILL.md names 3 domains. In commands or code: leap-lab.test.bohrium.com, leap-lab.uat.bohrium.com and leap-lab.bohrium.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Virtual Workbench safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Virtual Workbench use?

Virtual Workbench is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Virtual Workbench use?

About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Virtual Workbench?

Skills that share tags, products or a category with Virtual Workbench: API Designer (Jeffallan/claude-skills, 12k stars), Paperclip (paperclipai/paperclip, 98k stars), Nodejs Backend Patterns (ever-works/ever-works, 158 stars) and OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Virtual Workbench?

deepmodeling (a GitHub organization) maintains it in deepmodeling/Uni-Lab-OS, which has 178 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 24, 2026.

Source: deepmodeling/Uni-Lab-OS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.