dimos-robotics-skill
/install dimos-robotics-skill
DimOS Robotics Development Skill
Use this skill when a user asks to build, modify, explain, debug, or package work for the DimensionalOS/DimOS robotics repo, including robot @skill methods, Module classes, Blueprints, MCP tools, CLI workflows, Unitree Go2/G1, drones, xArm, replay data, or simulation.
Core mental model
DimOS is an agentic operating system for robotics. Treat a DimOS application as a graph of Modules connected by typed streams and RPC. A Blueprint composes modules into a runnable stack. A DimOS @skill is a method on a Module that is exposed to agents and MCP clients as a callable tool.
When writing code, prefer the DimOS-native style:
- Put imports at the top of the file.
- Use
Modulesubclasses for robot subsystems and skill containers. - Use
In[T]andOut[T]streams for dataflow. - Use
@rpcfor non-agent RPC methods. - Use
@skillfor agent-exposed actions; do not stack@rpcon the same method because@skillalready wraps the method for RPC. - Add a clear docstring to every
@skill; DimOS exposes the docstring as the tool description. - Type-annotate every public skill parameter.
- Return a descriptive
strfrom skills unless the current DimOS code path explicitly supports another return type. - Keep skill parameters simple and JSON-serializable:
str,int,float,bool, and simple lists are safest. - Do not assume a skill exists. Tell the user to verify with
dimos mcp list-toolsor inspect the relevant skill container.
Safety-first robotics behavior
For any physical robot behavior:
- Prefer replay or simulation before real hardware.
- Add conservative limits around movement, speed, turn angle, distance, and duration.
- Make unsafe requests fail closed with a clear string response rather than executing partially.
- Do not generate code that disables emergency stops, bypasses collision checks, hides robot state, or removes safety limits.
- For real hardware, require local supervision, a clear area, charged battery, network stability, and an accessible emergency stop.
- Do not claim a robot action happened unless the code receives a success signal or the underlying method returns success.
Common DimOS commands
Use these commands as the default workflow when helping a user test a DimOS skill:
# List runnable blueprints
dimos list
# Start a replay or simulation stack first
dimos --replay run unitree-go2-agentic --daemon
dimos --simulation run unitree-go2-agentic --daemon
# Inspect runtime state
dimos status
dimos log -f
# Discover and call MCP skills
dimos mcp list-tools
dimos mcp modules
dimos mcp call \x3Ctool_name> --arg key=value
# Send natural-language input to the running agent
dimos agent-send "describe what you can do"
# Stop the stack
dimos stop
For real robot examples, keep IPs as placeholders unless the user supplies a real one:
dimos run unitree-go2-agentic --robot-ip \x3CROBOT_IP>
Writing a DimOS skill container
Generate skill containers in this shape:
from __future__ import annotations
from dimos.agents.annotation import skill
from dimos.core.core import rpc
from dimos.core.module import Module
class ExampleSkillContainer(Module):
@rpc
def start(self) -> None:
super().start()
@rpc
def stop(self) -> None:
super().stop()
@skill
def say_status(self) -> str:
"""Report that this skill container is running."""
return "ExampleSkillContainer is running."
example_skill_container = ExampleSkillContainer.blueprint()
If the skill needs another module, use the DimOS Spec pattern instead of stringly typed lookups:
from typing import Protocol
from dimos.spec.utils import Spec
class NavigatorSpec(Spec, Protocol):
def set_goal(self, x: float, y: float) -> bool: ...
class NavigationSkillContainer(Module):
_navigator: NavigatorSpec
@skill
def go_to_xy(self, x: float, y: float) -> str:
"""Navigate to a map coordinate.
Args:
x: Target x coordinate in meters.
y: Target y coordinate in meters.
"""
ok = self._navigator.set_goal(x, y)
return "Navigation goal accepted." if ok else "Navigation goal failed."
Wiring a skill into an agentic blueprint
For MCP tools, include both McpServer and McpClient in the blueprint along with the robot stack and skill containers:
from dimos.agents.mcp.mcp_client import McpClient
from dimos.agents.mcp.mcp_server import McpServer
from dimos.core.coordination.blueprints import autoconnect
from my_project.example_skill_container import ExampleSkillContainer
my_agentic_blueprint = autoconnect(
# robot_stack(),
McpServer.blueprint(),
McpClient.blueprint(),
ExampleSkillContainer.blueprint(),
)
Expose a module-level blueprint variable so dimos run \x3Cblueprint> can find it. If adding or renaming blueprints inside the DimOS repo, run the registry-generation test that updates dimos/robot/all_blueprints.py.
Review checklist for generated code
Before giving final code, check:
- Each
@skillhas a docstring and typed parameters. - Skill methods return a useful string.
- Real robot motion is limited and easy to stop.
- No hardcoded MCP ports, host addresses, robot IPs, API keys, or secret tokens.
- New code does not assume ROS is required; DimOS can use multiple transports.
- MCP instructions say to start an MCP-enabled blueprint before calling
dimos mcp .... - If the target robot is G1, use a G1-specific system prompt instead of a Go2-specific prompt.
- Tests start with replay/simulation where possible.
When to use the included package files
resources/dimos_reference.md: quick reference for DimOS concepts, CLI, MCP, skills, and testing.resources/safety_and_testing.md: safety gate and smoke-test sequence for replay, simulation, then real hardware.templates/safe_motion_skill.py: a safe wrapper pattern around a relative-move skill.templates/skill_container_template.py: minimal DimOS skill container.templates/mcp_blueprint_template.py: MCP-enabled blueprint skeleton.templates/spec_protocol_template.py: Spec/RPC injection pattern.templates/system_prompt_patch.md: example text to add to a robot system prompt.scripts/scaffold_dimos_skill.py: local helper for creating a new skill-container file.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install dimos-robotics-skill - 安装完成后,直接呼叫该 Skill 的名称或使用
/dimos-robotics-skill触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
dimos-robotics-skill 是什么?
Build, review, and troubleshoot DimOS robotics applications, especially DimOS @skill methods, Module classes, Blueprints, MCP wiring, CLI runs, replay/simula... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 38 次。
如何安装 dimos-robotics-skill?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install dimos-robotics-skill」即可一键安装,无需额外配置。
dimos-robotics-skill 是免费的吗?
是的,dimos-robotics-skill 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
dimos-robotics-skill 支持哪些平台?
dimos-robotics-skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 dimos-robotics-skill?
由 Yi Chu Lau(@yichulau)开发并维护,当前版本 v1.0.0。