Skip to main content
LLM agents run as native DimOS modules. They subscribe to camera, LiDAR, odometry, and spatial memory streams and they control the robot through skills.

Architecture

McpClient (dimos/agents/mcp/mcp_client.py) is a Module with:
  • human_input: In[str]: receives text from humancli, WebInput, or agent-send
  • agent: Out[BaseMessage]: publishes agent responses (text, tool calls, images)
  • agent_idle: Out[bool]: signals when the agent is waiting for input
The agent uses LangGraph with a configurable LLM. The default is gpt-4o and you need to provide an OPENAI_API_KEY environment variable. On startup, it discovers all @skill-annotated methods across deployed modules via RPC and exposes them as LangChain tools.

Skills

Skills are methods decorated with @skill on any Module. The agent discovers them automatically at startup.
Rules:
  • Parameters must be JSON-serializable primitives (str, int, float, bool, list, dict).
  • Docstrings become the tool description the LLM sees. Write them clearly so the agent has sufficient context.
  • The function must return a string or image which will be used by the agent to decide what to do next.

Built-in Skills

MCP

All agentic blueprints use two modules: McpServer and McpClient.
  • McpServer exposes the methods annotated with @skill as MCP tools. Any external client can connect to the server to use the MCP tools.
  • McpClient has a LangGraph LLM which calls MCP tools from McpServer.
CLI access:

Input Methods

Models