> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirobody.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Skills

> Agent Skills (SKILL.md) are not part of the Mirobody C++ engine. Extend the agent with MCP tools instead.

<Note>
  **There is no skills registry in the Mirobody C++ engine.** The `SKILL.md` + `metadata.json` "Agent Skills" mechanism — a `skills/` directory auto-discovered at startup — was part of an earlier design and is **not implemented in the current C++ engine (Mirobody)**. The single agent in `res/agents/base.cpp` builds a fixed inline system prompt, picks an LLM client by provider, and streams the turn back, calling built-in **MCP tools**. It does not load `SKILL.md` files, and there is no skill loader.
</Note>

## What to use instead

The way to extend what the agent can do is to add an **MCP tool** — a small C++ file in `res/mcp_tools/` that self-registers at compile time. Tools are "code the agent calls": the model invokes one like a function and reads the return value. There is no separate "prose the agent loads into context" layer.

<CardGroup cols={2}>
  <Card title="Adding Custom Tools" icon="wrench" href="/en/tools/adding-tools">
    Add a C++ tool in `res/mcp_tools/` with the `MIROBODY_REGISTER_TOOL` macro, then rebuild.
  </Card>

  <Card title="Built-in Tools" icon="list" href="/en/tools/built-in">
    The 9 MCP tools that ship with the engine.
  </Card>
</CardGroup>

## Guiding the agent's behavior

If you want to change *how* the agent behaves — its tone, the domains it knows about, or when it reaches for a tool — the levers in the C++ engine are:

* **The system prompt.** The agent's instructions are a fixed inline string built in [`res/agents/base.cpp`](https://github.com/thetahealth/mirobody/blob/main/res/agents/base.cpp) (`build_system_prompt`). It already tells the model to fetch uploads via `list_files` / `read_file` and health records via `family_health`. Editing that string and rebuilding changes the agent's standing instructions.
* **Tool descriptions.** Each tool's `description` and per-`Param` text (declared in its `res/mcp_tools/*.cpp`) is what the model sees when deciding whether and how to call it — so a clear description is the main way to steer usage. See [Built-in Tools](/en/tools/built-in) for examples.

<Warning>
  Changing the prompt or adding a tool is a **compile-time** change: edit the `.cpp`, then rebuild with `./build.sh`. There is no runtime drop-in for either.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="Tools & Agent Overview" icon="brain" href="/en/tools/overview">
    How the single agent, MCP tools, and providers fit together.
  </Card>

  <Card title="MCP Integration" icon="bolt" href="/en/tools/mcp-integration">
    Expose the tools to Claude, Cursor, and ChatGPT over `/mcp`.
  </Card>
</CardGroup>
