---
title: "Building agents"
url: https://wajo.ai/docs/building-agents.md
summary: "An agent on Wajo is a persisted specification:"
related: [getting-started, connectors, mcp-server, mcp-tools, sessions, webhooks]
---

# Building agents

An agent on Wajo is a persisted specification:

- a **name** and a one-line **description**,
- an **instruction** body (what the agent does and how),
- a typed **soul** (its persona / voice),
- attached **capabilities** — system tools, connectors, MCP servers, skills,
  and sub-agents.

## Create with the Agent Builder

The Agent Builder is itself an agent, reached through the `build_agent` tool:

1. Call `generate_session_id` with the Agent Builder's id
   (`b4409947-a46d-497e-94bb-fbba525185b7`). You get back a `sessionId`.
2. Call `build_agent` with that `sessionId` and a one-paragraph brief of the
   agent you want — e.g. "A support-triage agent that reads inbound email, tags
   urgency, and drafts replies." The Builder designs, persists, and returns the
   new agent's name and id in a single turn.
3. Keep chatting on the same `sessionId` to refine it.

## Refine

Use `get_agent` to read the full record, then `update_agent` to patch its
instructions or attached capabilities. Or keep refining
conversationally through `build_agent`.

## Attach capabilities

- **System tools** — platform capabilities the agent can use (web search,
  calendar, email, and more).
- **Connectors** — external HTTP APIs. See "Connectors".
- **MCP servers** — third-party MCP tool servers, registered with
  `build_mcp_server`.
- **Skills** — reusable instruction fragments curated by the platform.
