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

# YAML Configuration

Agents are defined as YAML files committed to your repo under `.dinoai/agents/`. Each file defines one agent.

### Full Example

```yaml theme={"system"}
name: pr-reviewer        # must match file name
version: 1               # schema version (currently 1)

role: >
  PR Review Orchestrator responsible for assessing all aspects of a pull
  request across dbt™ models.

goal: >
  Review incoming PRs for quality, coverage, and correctness.
  Delegate specialist work where needed.

backstory: >
  You coordinate reviews across multiple quality dimensions and know when
  to call in specialists.

tools:
  mode: allowlist         # "allowlist" or "denylist"
  list:
    - read_file
    - search_files_and_directories
    - ripgrep_search
    - post_slack_message
    - invoke_agent        # required to delegate to sub-agents

agents_squad:             # sub-agents this agent may invoke
  - test-maintainer

slack:
  channel: "#pr-reviews"
```

### Field Reference

| Field           | Required           | Description                                                                                                                                                                                                                               |
| --------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`          | Yes                | Unique identifier. Must match the YAML file name (without `.yml`).                                                                                                                                                                        |
| `version`       | Yes                | Schema version for forward compatibility. Currently `1`.                                                                                                                                                                                  |
| `role`          | Yes                | What the agent is — injected into the system prompt each turn.                                                                                                                                                                            |
| `goal`          | Yes                | What the agent is trying to achieve.                                                                                                                                                                                                      |
| `backstory`     | Yes                | How the agent approaches problems.                                                                                                                                                                                                        |
| `tools.mode`    | If `tools` present | `allowlist` (only listed tools available) or `denylist` (all tools except listed).                                                                                                                                                        |
| `tools.list`    | If `tools` present | Tool names to allow or deny.                                                                                                                                                                                                              |
| `slack.channel` | No                 | <p>If present, a Slack thread is created at run start and all agent messages post there. <br /></p><p><a href="../../../integrations/slack.md">Requires Slack integration configured and Pardime bot invited to the slack channel</a></p> |
| `agents_squad`  | No                 | Names of sub-agents this agent is permitted to invoke via `invoke_agent`.                                                                                                                                                                 |

> **Important:** If the `tools` block is omitted entirely, the agent has access to **all** available tools. Use an allowlist for production agents to limit blast radius.

### Tool Modes

**allowlist** — only the tools listed are available to the agent. Recommended for production agents.

```yaml theme={"system"}
tools:
  mode: allowlist
  list:
    - read_file
    - run_sql_query
```

**denylist** — all tools are available except the ones listed.

```yaml theme={"system"}
tools:
  mode: denylist
  list:
    - write_file
    - run_terminal_command
```

### Related

* [Tools Reference](/products/dino-ai/programmable-agents/tools-reference) — Full list of tool names for `tools.list`
* [Agent-to-Agent Delegation](/products/dino-ai/programmable-agents/agent-to-agent-delegation) — Using `agents_squad` and `invoke_agent`


## Related topics

- [Autocompletion](/products/code-ide/user-interface/autocompletion.md)
- [Schedule Configurations](/products/bolt/managing-schedules/schedule-configurations.md)
- [Configuration Reference](/products/bolt/creating-schedules/schedules-as-code/configuration-reference.md)
- [Schedules as Code](/products/bolt/creating-schedules/schedules-as-code/index.md)
- [Triggering from Bolt](/products/dino-ai/programmable-agents/triggering-from-bolt.md)
