<!-- SPDX-License-Identifier: Apache-2.0 -->

# Agents

An agent is a named, persistent persona with its own instructions, memory blocks, skills, tasks, and channel configuration.

`init --agent <NAME>` scaffolds an agent directory below `agents/<slug>/`.

## Core instructions

`core.md` holds the agent's base instructions and is always part of the system prompt.

## Memory blocks

Required blocks live in `blocks/` and are always engaged in the system prompt.

- `soul.md` — the agent's core personality, boundaries, and truths.
- `identity.md` — the agent's outward identity.
- `person.md` — what the agent knows about its operator.
- `long-term.md` — the agent's curated long-term memory.
- `style-notes.md` — the agent's communication style.

Each block starts with TOML frontmatter between `+++` delimiters and requires a `description`.

Conditional blocks live in `blocks/conditional/` and are loaded only when [conditions](conditions.md) match.

## Skills

Reusable skills live in `skills/<slug>/SKILL.md`.

A skill file has YAML frontmatter with `name` and `description`; the description is shown to the model and the `read-skill` tool loads the full document.

## Memories, tasks, and workspace

- `memories/` — files the agent may open, close, and maintain at will.
- `tasks/` — scheduled task checklists and related data; `HEARTBEAT.md` drives heartbeats.
- `workspace/` — the agent's primary working area and the default working directory for sandboxed commands.

The sandbox exposes `/workspace`, `/memories`, `/blocks`, `/skills`, and `/tasks` to command execution.
