> For the complete documentation index, see [llms.txt](https://docs.paradime.io/app-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.paradime.io/app-help/products/dino-ai/slack-agent/customize-agent.md).

# Customize Agent

When you mention **@Paradime** in a Slack channel or send it a direct message, DinoAI answers using a programmable agent. Out of the box this is a generic assistant — but you can fully customize its personality, goal, and available tools by defining an agent named `dinoai-slack-bot` in your repo. You can also give **any** agent a Slack presence, so runs triggered from the API or a schedule post their progress and results into a channel of your choice.

### How Slack Triggering Works

There are two ways a message in Slack starts an agent run:

| Trigger             | How                                                                                                                                                                  |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Channel mention** | Mention `@Paradime` in any channel the bot has been invited to. Replying with a mention inside an existing agent thread resumes that same session with full context. |
| **Direct message**  | Send the bot a plain DM — no mention needed.                                                                                                                         |

When a run starts from Slack, DinoAI looks for `.dinoai/agents/dinoai-slack-bot.yml` in your repository:

* **File exists** → the Slack bot uses your custom role, goal, backstory, and tool restrictions.
* **File missing** → the bot falls back to the default general-purpose assistant with all tools available.

### Customizing the Default Slack Bot

Create `.dinoai/agents/dinoai-slack-bot.yml` — the name is the convention that binds it to Slack triggers:

```yaml
name: dinoai-slack-bot   # this exact name makes it the Slack default
version: 1

role: >
  Analytics support bot for the data team. You answer questions about our
  dbt™ project, data models, and pipeline runs directly in Slack.

goal: >
  Give concise, accurate answers about models, lineage, and run status.
  Always post your final answer back to the Slack thread.

backstory: >
  You are the first line of support for analytics questions. You keep
  answers short and Slack-friendly, link to relevant files, and escalate
  anything requiring code changes to a human.

tools:
  mode: allowlist
  list:
    - read_file
    - search_files_and_directories
    - ripgrep_search
    - run_sql_query
```

### What Appears in the Thread

| Content          | Behavior                                                                          |
| ---------------- | --------------------------------------------------------------------------------- |
| Setup checklist  | Animated during spin-up, removed once the agent starts working.                   |
| Tool activity    | A single status line updated in place — never a wall of messages.                 |
| Agent messages   | Posted via `post_slack_message`, rendered as Slack markdown.                      |
| Mermaid diagrams | Code blocks tagged `mermaid` are rendered to an image and uploaded to the thread. |
| GitHub PR links  | Extracted from messages and posted as a **View PR** action button.                |
| Errors           | Startup or configuration problems post as a warning block with guidance.          |

### Prerequisites

* The Paradime Slack integration must be configured for your workspace.
* The Paradime bot must be invited to any channel it posts to: `/invite @Paradime`.
* A data warehouse connection must be configured for the workspace.

#### Related

* [YAML Configuration — Full agent schema reference](/app-help/products/dino-ai/programmable-agents/yaml-configuration.md)
* [Tools Reference — All tool names for `tools.list`](/app-help/products/dino-ai/programmable-agents/tools-reference.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.paradime.io/app-help/products/dino-ai/slack-agent/customize-agent.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
