Reinforcement Loop
Reinforcement Loop turns production agent traces into evidence-backed findings, diagnosed causes, and fixes you can act on.
Reinforcement Loop finds what's quietly breaking your agents, then closes the loop. From the traces they emit in production, it surfaces recurring problems, diagnoses what's causing them, and carries each one through to a fix β so improving an agent doesn't start with reading traces one at a time.
Monitors alert on conditions you define. Reinforcement Loop operates on patterns nobody has defined a monitor for: it derives the problem set from the traces themselves, so it requires no thresholds, rules, or configuration.
Findings appear on the Reinforcement loop tab of any agent on the Agents page, filterable by time range, type, and workflow, and searchable across issues.
How Reinforcement Loop works
Every finding moves through the same cycle: surfaced from your traces, verified against evidence, explained, turned into a fix, and followed as new matching traces arrive.
| Stage | What Reinforcement Loop does |
|---|---|
| Detect | Identifies a recurring problem across your agent's traces and groups it into a single finding |
| Verify | Checks it against runtime evidence β and, where a repository is connected, against your agent's source and recently merged pull requests |
| Diagnose | Establishes the cause where the evidence supports one, with the contributing traces attached |
| Fix | Produces a fix you can open as a draft pull request, send to your issue tracker, or hand to your coding agent |
| Track | Adds new matching traces to the finding as they arrive, so it reflects current behavior rather than a point-in-time snapshot |
flowchart LR
surface["Surfaces a recurring problem"] --> verify["Verifies it against evidence"]
verify --> explain["Explains the cause"]
explain --> fix["Produces a fix"]
fix --> follow["Follows new matching traces"]
follow -->|"recurs"| surface
Findings are categorized by failure type and prioritized by severity.
How it runs
Reinforcement Loop scans each connected agent on a recurring schedule, clustering and prioritizing what it finds. There is nothing to enable per agent β analysis begins once traces are flowing.
Every finding is grounded in what real users experienced in production β not scores against a curated dataset, which is what surfaces the failure modes no one could have written an eval for. Models interpret and explain that evidence; they don't originate a finding or manufacture the evidence behind it.
Analysis runs against trace content under your existing Agent Observability settings β see Agent Observability Overview for where trace content is stored and what Monte Carlo receives.
Reinforcement Loop never changes a running agent. It analyzes traces and proposes changes β as a draft pull request, a ticket, or a prompt you can take into your AI tool of choice β and nothing lands without your team reviewing and merging it.
Connecting a code repository
Reinforcement Loop will run on traces alone, but for agents you build yourself, connecting the repository β GitHub, GitLab, or Azure DevOps β adds three things:
- Detection can corroborate a suspected cause against the code that produced it, rather than inferring it from behavior alone β which raises precision on custom agents.
- Findings are cross-referenced against merged pull requests, so problems you've already fixed stop being raised.
- A finding's suggested change can be opened as a draft pull request against your repository, for your team to review and merge.
Reviewing a finding
Open a finding and it tells you what happened, what it led to, and what caused it. Where the evidence doesn't establish a cause, the finding says so rather than asserting one.
Each finding links to the specific spans, traces and conversations it was built from, so you can check any claim against the content underneath it.
Acting on a finding
Each finding carries a suggested change. Route it wherever your team already works:
- Draft a pull request β with a repository connected, open the suggested change as a draft PR against your own codebase, for your team to review and merge.
- Issue tracker β send a finding to Jira, Linear, or ServiceNow, where the integration is configured.
- Coding agent β pass the finding straight to the AI tool your team already uses. It arrives as a prompt carrying the summary, evidence, trace links, and suggested actions β everything needed to start the change in your own codebase. Connect the Monte Carlo MCP server once and your tool can query Monte Carlo directly as it works.
Scheduled digests
Findings can be delivered to a team on a schedule. From Scheduled digests on the Reinforcement loop tab, add a digest with:
| Field | What it sets |
|---|---|
| Cadence | How often the digest is delivered |
| Audience | An existing audience with at least one email or Slack recipient |
| Name | Shown in the digest list, and used as the title of the delivered message |
Digests are configured per agent, so agents owned by different teams can route to different audiences.
Supported agent frameworks
Reinforcement Loop runs on agents connected to Agent Observability.
| Your agent | Setup guide |
|---|---|
| Built on any framework, against any model, instrumented with the Monte Carlo SDK or Google ADK | Instrumenting your agent |
| Snowflake Cortex Agents | Snowflake Cortex |
| Databricks AI/BI Genie agents | AI/BI Genie |
| Databricks Agent Bricks or custom Mosaic AI agents | Agent Bricks and custom agents |
FAQ
Why is the Reinforcement loop tab empty?
Reinforcement Loop needs enough trace volume to establish a pattern. Confirm traces are arriving on the Agents Summary or Traces tab first.
How often does it run?
On a recurring schedule, per agent. Each finding shows when the pattern was last seen.
Can I be notified of findings?
Yes β set up a scheduled digest to an email or Slack audience. See Scheduled digests.
Do I need to connect a code repository?
Itβs optional. Connect a repository raises precision on custom agents, enables the merged-PR cross-check, and is what lets a finding open a draft pull request. See Connecting a code repository.
Updated about 15 hours ago
