> ## 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

> Reference for the .dinoai/agents YAML schema that defines a DinoAI Programmable Agent — name, role, goal, backstory, tools allowlist, model, and triggers.

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

<Info>
  The agent builder in the app writes this same format: when deploying from [Creating Agents in the App](/products/dino-ai/programmable-agents/creating-agents-in-the-app) you choose whether the agent is saved to the workspace only or committed to your repo with this schema through a pull request.
</Info>

### 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 Paradime 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/write-code/autocompletion.md)
- [Configuration Reference](/products/bolt/creating-schedules/schedules-as-code/configuration-reference.md)
- [Triggering from Bolt](/products/dino-ai/programmable-agents/triggering-from-bolt.md)
- [Run DinoAI Background Agent](/products/bolt/creating-schedules/command-settings/paradime-dinoai-agent-trigger.md)
- [bolt-ci-healer](/guides/programmable-agents/bolt-ci-healer.md)
