Skip to main content
The Bolt pipeline healer is a DinoAI agent that self-healing triggers when a Bolt run fails: it diagnoses the failure and opens a fix pull request. What makes it safe to leave running is a deduplication check, so it opens a PR only when one is genuinely needed and stays quiet when an earlier attempt is already waiting for review.
PrerequisitesEstimated time: 20 minutes.

Steps

1

Create the agent

In the Agent app, open Agents, select New agent, and start from the bolt-pipeline-healer template (or Start from scratch). Fill in the builder fields with the content below, then select Deploy and choose Open a pull request: self-healing selects agents from .dinoai/agents/*.yml on the schedule’s git branch, so the agent definition must be merged there. See Build an agent in the UI for a tour of the builder. (Prefer YAML? The PR the builder opens contains the file, .dinoai/agents/bolt-pipeline-healer.yml, which you can edit by hand from then on.)Name: bolt-pipeline-healerRole:
Goal:
Backstory:
Model: leave Auto selected.Allowed tools (everything else is refused, see the Tools Reference):
  • read_file, search_files_and_directories, ripgrep_search
  • run_sql_query
  • list_bolt_schedules, get_bolt_run_logs
  • list_pull_requests
  • run_terminal_command
The tool allowlist is deliberately narrow: read access, Bolt observability (list_bolt_schedules, get_bolt_run_logs), PR awareness (list_pull_requests), and a terminal to commit and open the PR. No Slack tool is needed, because self-healing already threads the agent’s output into the channel.
2

Enable self-healing on the schedule

Point a Bolt schedule’s self-healing at this agent, from the UI or as YAML. See Set up self-healing for the walkthrough. The agent_name must match a .dinoai/agents/*.yml merged on the schedule’s git branch:
paradime_schedules.yml
self_healing.slack_channel must also appear in this schedule’s notifications.slack_channels, or the deployer rejects it. The agent threads into the existing failure notification, so that notification has to exist.
3

Watch the first heal

The next time the schedule fails, open the failure thread in your self-healing channel. You’ll see the healing session start, the dedup check run (current logs, then prior sessions, then open PRs), and either a pointer to an existing PR or a link to a freshly opened fix.
On a fresh failure, the agent opens a fix PR and posts the link in the thread. On a repeat of a failure that already has an open PR, it posts a pointer to that PR instead of opening a duplicate. Review the PR, merge it, then retry the Bolt run.

How the dedup check works

The dedup check is what makes the agent safe to leave running unattended. It reasons over three inputs: The agent stops with a Slack pointer instead of opening a duplicate PR only when both hold: the current error matches a prior self-healing attempt, and an open PR already references that error or model. If either fails (the error is new, or the prior PR was merged or closed), it proceeds with the fix.
Paradime injects a “prior self-healing attempts” block into the agent’s prompt automatically when earlier sessions exist for the same schedule. That is what gives the agent recall across runs without a memory tool.

Next steps

Set up self-healing

Enable self-healing on a Bolt schedule.

Build an agent in the UI

Create this agent visually instead of by hand.

Bolt CI healer

The same pattern for failed CI runs.

Programmable Agents reference

The agent YAML schema and tools.