Skip to main content
Programmable Agents let you define named DinoAI agents, built in the app or as YAML files in your git repo, and trigger them from either the Paradime API or a Bolt schedule. Each agent has a fixed role, goal, and set of tools — making it composable, version-controlled, and automatable.

How It Works

  1. Define your agents: build them in the app from the Agents page, choosing whether each lives only in the workspace or is deployed to your repo as YAML, or commit files under .dinoai/agents/ by hand (see Creating Agents in the App).
  2. Trigger a run from one of:
    • The Paradime APItriggerDinoaiAgentRun GraphQL mutation. See API Reference.
    • A Bolt schedule — using the Run Paradime DinoAI Agent command type. Runs natively, no API keys needed. See Running from Bolt.
  3. The agent pod uses its configured tools to complete the task and posts results (e.g. to Slack).
  4. Inspect messages live in the Bolt run logs, or poll the API for status and messages.

Attended and unattended runs

Every run starts knowing how it was triggered, and behaves accordingly.
  • Attended runs are ones a person is present for: Slack, Microsoft Teams, the app, and MCP clients. The agent may ask a clarifying question or use plan mode and wait for your approval.
  • Unattended runs are ones nobody is waiting on: the API, a Bolt schedule, self-healing runs, and child agents spawned by another agent. Here the agent never enters plan mode to wait for an approval that cannot come, and never asks a clarifying question. It makes the most faithful assumption it can, says which assumption it made, and carries on.
This is why an API- or Bolt-triggered agent no longer stalls waiting for input. Runs are also told which warehouse dialect to write SQL for, and where the dbt™ project sits in the repository, so they do not spend their first turns rediscovering either.

Pages in This Section