Agent skill

Host Node

by deepmodeling in deepmodeling/Uni-Lab-OS

Operate Uni-Lab host node via REST API — create resources, test latency, test resource tree, manual confirm.

GPL-3.0Auto-check passedBackend & APIs

Install Host Node

skills CLI
$ npx skills add deepmodeling/Uni-Lab-OS --skill host-node -a claude-code

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

GitHub CLI
$ gh skill install deepmodeling/Uni-Lab-OS host-node --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/host-node .claude/skills/host-node && 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
host-node
GitHub stars
178
Token cost
~1.9k tokens
SKILL.md length
277 words
Files
6
Skills in repo
10
Repo updated
First seen
Licence
GPL-3.0

At a glance

Operate Uni-Lab host node via REST API — create resources, test latency, test resource tree, manual confirm.

  • Works in 12 steps: ak / sk → AUTH → addr → BASE URL → 获取实验室信息(自动获取 lab_uuid) → …
  • The user mentions hostnode
  • 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

Host Node is an agent skill from deepmodeling/Uni-Lab-OS. Operate Uni-Lab host node via REST API — create resources, test latency, test resource tree, manual confirm. Use when the user mentions hostnode, creating resources, resource management, testing latency, or any host node operation.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `action-index.md`, `actions/create_resource.json` and `actions/manual_confirm.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 hostnode
  • Creating resources
  • Resource management
  • Testing latency

Example prompts

  • “/host-node”

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

Host Node loads about 1.9k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 277 words of instructions outside code blocks.

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

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). 277 words, ~1,912 tokens.

Download SKILL.mdSave it as .claude/skills/host-node/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
host-node
description
Operate Uni-Lab host node via REST API — create resources, test latency, test resource tree, manual confirm. Use when the user mentions host_node, creating resources, resource management, testing latency, or any host node operation.

Host Node API Skill

设备信息

  • device_id: host_node
  • Python 源码: unilabos/ros/nodes/presets/host_node.py
  • 设备类: HostNode
  • 动作数: 4(create_resource, test_latency, auto-test_resource, manual_confirm)

前置条件(缺一不可)

使用本 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

在整个对话过程中,agent 需要记住以下状态,避免重复询问用户:

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

请求约定

所有请求使用 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":"host_node","node_template_name":"<action_name>"}'
  • resource_template_name 固定为 host_node
  • node_template_name — action 名称(如 create_resource, test_latency)
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":{...}}'

param 直接使用创建节点返回的 data.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":"host_node","action":"<action_name>","action_type":"<type>","param":{...}}'

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

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

action_type 速查表
actionaction_type
test_latencyUniLabJsonCommand
create_resourceResourceCreateFromOuterEasy
auto-test_resourceUniLabJsonCommand
manual_confirmUniLabJsonCommand
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":{...}}'

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"注册表中已注册的资源类
host_node 设备的 Slot 字段表
Action字段Slot 类型说明
create_resourceres_idResourceSlot新资源路径(可填不存在的路径)
create_resourcedevice_idDeviceSlot归属设备
create_resourceparentNodeSlot父节点路径
create_resourceclass_nameClassSlot资源类名如 "container"
auto-test_resourceresourceResourceSlot单个测试物料
auto-test_resourceresourcesResourceSlot测试物料数组
auto-test_resourcedeviceDeviceSlot测试设备
auto-test_resourcedevicesDeviceSlot测试设备

渐进加载策略

  1. SKILL.md(本文件)— API 端点 + session state 管理
  2. action-index.md — 按分类浏览 4 个动作的描述和核心参数
  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=host_node) → 记住 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) 确认完成

© 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 5 other files in .cursor/skills/host-node of deepmodeling/Uni-Lab-OS.

  • SKILL.md
  • action-index.md
  • actions/create_resource.json
  • actions/manual_confirm.json
  • actions/test_latency.json
  • actions/test_resource.json

Open the folder on GitHubat commit 43923ec

Compare with similar skills

Host Node 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.

Host Node compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Host Node this skilldeepmodeling/Uni-Lab-OS178—~1.9kAutomated safety check: PassGPL-3.0
API DesignerJeffallan/claude-skills12k2 repos~2kAutomated safety check: PassMIT
Paperclippaperclipai/paperclip99k—~9.6kAutomated safety check: PassMIT
Nodejs Backend Patternsever-works/ever-works15818 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.

    99k 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 18 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 yesterday
    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 14 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 14 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 14 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 14 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 14 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 14 days ago
    Auto-check passed

Categories

Questions about Host Node

What does Host Node do?

Operate Uni-Lab host node via REST API — create resources, test latency, test resource tree, manual confirm. Host Node is an agent skill from deepmodeling/Uni-Lab-OS. Operate Uni-Lab host node via REST API — create resources, test latency, test resource tree, manual confirm.

When should I use Host Node?

Host Node fits situations like: the user mentions hostnode; creating resources; resource management; testing latency.

How do I install Host Node in Claude Code?

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

How do I install Host Node in Codex?

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

Can I use Host Node 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 host-node -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/host-node, .gemini/skills/host-node, .github/skills/host-node and .opencode/skills/host-node in your project.

What does Host Node need to run?

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

Does Host Node 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 Host Node 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 Host Node use?

Host Node 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 Host Node use?

About 1.9k tokens (SKILL.md is roughly 7.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 Host Node?

Skills that share tags, products or a category with Host Node: API Designer (Jeffallan/claude-skills, 12k stars), Paperclip (paperclipai/paperclip, 99k 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 Host Node?

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.