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

# Programmable Agents quick start

> Run a DinoAI Programmable Agent in three steps: commit an agent YAML to your repo, trigger a run, and view its output in the Paradime dashboard.

Get a Programmable Agent running in three steps.

<Info>
  There are two ways to create an agent:

  * **In the app**: build it on the Agents page and choose at deploy time whether it lives only in your workspace (live straight away, no repo file) or is committed to your repo as YAML through a pull request. See [Creating Agents in the App](/products/dino-ai/programmable-agents/creating-agents-in-the-app).
  * **As YAML in your repo**: commit a file under `.dinoai/agents/`, which is what this quick start walks through.

  Both kinds of agent are triggered the same way and appear in the same agent list.
</Info>

<Steps>
  <Step title="Create an Agent YAML">
    Commit this file at `.dinoai/agents/data-quality-checker.yml` in your repo:

    ```yaml theme={"system"}
    name: data-quality-checker
    version: 1

    role: >
      dbt™ Data Quality Specialist focused on test coverage and documentation
      completeness across analytics models.

    goal: >
      Ensure all dbt™ models have appropriate tests and are fully documented
      before promotion to production.

    backstory: >
      You have deep knowledge of dbt™ best practices and data quality patterns.
      You are methodical and prefer to verify before acting.

    tools:
      mode: allowlist
      list:
        - read_file
        - search_files_and_directories
        - ripgrep_search
        - run_sql_query
        - list_all_snowflake_databases
        - list_all_columns_in_snowflake_table
        - post_slack_message

    slack:
      channel: "#data-quality-alerts"
    ```
  </Step>

  <Step title="Trigger the Agent from Bolt">
    The simplest way to run an agent is on a Bolt schedule. In the Bolt schedule editor, click **Add command**, pick **Run Paradime DinoAI Agent**, and choose your agent plus a task:

    1. **Agent Name** — pick `data-quality-checker` from the dropdown (populated from `.dinoai/agents/*.yml` on the schedule's git branch).
    2. **Task** — describe what to do, for example `Audit all staging models for missing tests`. This becomes the agent's opening message.
    3. **Save Command**, set the trigger (cron, on-merge, on-completion), and deploy.

    If you manage schedules as code, add the equivalent CLI command directly:

    ```yaml theme={"system"}
    schedules:
      - name: nightly data quality
        slug: nightly-data-quality-f6g7h8
        environment: production
        git_branch: main
        commands:
          - paradime dinoai --agent=data-quality-checker --message="Audit all staging models for missing tests and post a summary to the data-quality-alerts Slack channel"
        schedule: "0 2 * * *"
        timezone: UTC
    ```

    See [Triggering from Bolt](/products/dino-ai/programmable-agents/triggering-from-bolt) for the full walkthrough.
  </Step>

  <Step title="Watch the Run">
    The agent's messages stream into the Bolt command's stdout, so you can follow progress live in the Bolt run logs. The Bolt run inherits the agent's outcome: it exits `0` when the agent reaches `COMPLETED` and `1` on `FAILED` or `EXPIRED`. If a Slack channel is configured in the YAML, the same messages post to that thread.
  </Step>
</Steps>

***

### Prefer to trigger from your own code?

You can also trigger agents programmatically over the Paradime API or Python SDK, instead of from Bolt:

```python theme={"system"}
from paradime import Paradime

paradime = Paradime(
    api_endpoint="API_ENDPOINT",
    api_secret="prdm_cmp_...",   # your account API key
    workspace_uid="WORKSPACE_UID",
)

run = paradime.dinoai_agents.trigger_run_and_wait(
    agent="data-quality-checker",
    message="Focus on stg_orders",
)

for msg in run.messages:
    print(f"[{msg.role}] {msg.content}")
```

See [API Reference](/products/dino-ai/programmable-agents/api-reference) for the GraphQL and SDK details, including polling and multi-turn messaging.

***

### Next Steps

* [YAML Configuration](/products/dino-ai/programmable-agents/yaml-configuration) — Learn all available fields and options
* [API Reference](/products/dino-ai/programmable-agents/api-reference) — Full GraphQL mutation and query reference
* [Tools Reference](/products/dino-ai/programmable-agents/tools-reference) — See all tools available to your agents
* [Examples](/products/dino-ai/programmable-agents/index) — See tutorials on how to get started deploying agents


## Related topics

- [jira-backlog-agent](/guides/programmable-agents/jira-backlog-agent.md)
- [Linear Backlog Agent](/guides/programmable-agents/linear-backlog-agent.md)
- [GitHub Issues Backlog Agent](/guides/programmable-agents/github-issues-backlog-agent.md)
- [bolt-ci-healer](/guides/programmable-agents/bolt-ci-healer.md)
- [Bolt Pipeline Healer](/guides/programmable-agents/bolt-pipeline-healer.md)
