Skip to main content
Review the evidence behind a pattern, then investigate, monitor, or fix what Loop found. Each pattern belongs to one project.
On self-hosted deployments, severity, categories, and duplicate management require data plane v2.18.0 or later. Sources require data plane v2.19 or later.
Patterns list

Find a pattern

Go to Patterns and click a pattern in the table to open it. Patterns are grouped by the day they were created, newest first, then ordered by severity and overall frequency within each day. Within a severity level, patterns without a frequency measurement appear last. On self-hosted deployments, day and frequency sorting requires data plane v2.16.0 or later. The table shows open patterns by default. To narrow or reorganize it, use the controls above the table:
  • Search: Find patterns by name.
  • Filter: Filter by Status, Resolution, Severity, Category, or automation. A Status or Resolution filter also includes closed patterns.
  • Group by: Group by severity, category, author, status, or creation date.
  • Sort: Click a column header.
Patterns filter

Read a pattern

Check Loop’s reasoning against the evidence before acting. To learn what Loop verifies before it saves a pattern, see Verification. Pattern Below the pattern’s name, the report shows when the behavior was last seen in a trace and, for a measurable pattern, the share of traces affected in the last 2 weeks. When the pattern has an Affected traces chart, Braintrust also refreshes Last seen in the background from the chart’s latest matching trace, so it can be newer than the pattern’s evidence. Otherwise, it changes only when Loop records new matching traces. Properties shows the pattern’s severity and categories, described below. Status shows whether the pattern is open or closed, and Quality whether the finding was useful. See Close or reopen. Properties also shows who created the pattern, a person or an automation, and, for a duplicate, the canonical pattern under Duplicate of. To change a property, see Edit properties.

Severity

The pattern’s severity describes its impact. The default rubric defines these levels:
  • High: Address promptly. The issue likely causes severe or widespread harm, including monetary loss or fraud for end users.
  • Medium: A real issue worth fixing, with less urgency.
  • Low: A minor issue with limited impact.
  • Informational: An observation that needs no immediate action.
The rubric can change how Loop assigns these levels. To change a pattern’s severity, see Correct severity and categories.

Categories

The Categories property describes the kind of finding. Categories come from the rubric of the automation that reported the pattern, or from the project’s rubric when that automation has none. The default rubric tells Loop to assign at most one category, checking these in order:
  • Safety and privacy: Exposed credentials, secrets, or user data, bypassed access controls, or another security or privacy risk, even before harm occurs.
  • Model call failure: An LLM request errors, times out, is rejected, or returns nothing usable.
  • Tool failure: A tool, command, query, or API the agent calls errors, times out, is rejected, or returns no usable result.
  • Application failure: The work ends without a usable result, and the failing step is the application’s own code, runtime, or client rather than a model or tool call.
  • Wrong output: The work completes, but the answer, action, or record is wrong, unhelpful, out of scope, duplicated, or ignores instructions.
  • Efficiency: The work completes correctly but uses more tokens, calls, compute, or time than it needs.
  • Observability: Logging, tracing, cost accounting, or a scorer’s or classifier’s output is wrong or missing, with no effect on the result.
  • Usage insight: How people use the product, with no defect.
When no category clearly fits, Loop leaves it empty. You can select several categories, although the default rubric tells Loop to assign only one. If the rubric no longer defines a category already assigned to a pattern, that category stays listed so you can remove it. If the rubric has no categories, the picker shows The rubric doesn’t define categories. To change a pattern’s categories, see Correct severity and categories.

Affected traces

When the behavior is measurable, the Affected traces chart at the top of the report shows how many traces were affected over the last 14 days, as a percentage of all traces in the project or as a count. Use the toggle beside the chart title to switch between them. Each trace counts once, even if several spans match. Braintrust computes the chart in the background, so it can be up to a day behind your latest logs. Patterns frequency The chart is absent when data cannot reliably identify affected traces, such as when a required classifier hasn’t been created or backfilled. Loop can still provide trace evidence and recommend how to measure the behavior.
To compare patterns on a dashboard, add the Traces linked to patterns preset chart, which counts the distinct traces attached to each pattern as evidence.

Summary

The summary states what happens and, when Loop compares groups such as models or kinds of requests, which groups it affects. Comparisons include each group’s affected count and size, such as “12/14 (85.7%) orders with several items.” Use them to assess differences between groups. Explanations of the cause appear in Sources.

Suggested fix

When Loop has one, the suggested fix recommends an investigation or change. Tool names, field paths, and error strings appear as code.

How to monitor

When the behavior can be measured continuously, Loop recommends a scorer, classifier, or facet to track it. To create one, see Make it measurable. Once charts that track the behavior, such as a scorer’s or classifier’s results, are attached to the pattern, they appear under Monitors. These monitor charts cover the same 14 days as the Affected traces chart.

Models

Models shows whether the behavior is concentrated in particular models. For each model, it compares two shares over the same 14 days as the Affected traces chart:
  • Pattern matches: The model’s share of the pattern’s matching traces.
  • All traffic: The model’s share of all traces that record a model.
A model whose Pattern matches share is well above its All traffic share appears in the pattern more often than its usage explains. Models appears for measurable patterns when at least one matching trace records a model in metadata.model. The list shows up to seven models with matching traces, most matches first, and combines the rest into one N other models row that adds up their shares. Click Show N other models to list every model, including models with traffic but no matches. Click Show less to collapse the list.

Evidence

Evidence lists the example traces Loop attached, with each one’s title and when it ran. Loop attaches up to three traces, skipping repeated evidence, and picks those with the most impact, prevalence, clarity, and distinct information about the cause or fix. Click an example to open it in an evidence panel beside the pattern. When your browser window is wide enough, the first example opens automatically.
  • Move between examples: The panel header shows the example’s position, such as Evidence 1 of 3, with arrows to open the previous or next example. The example’s summary appears below.
  • Switch views: Select Thread () to read the example as a conversation, scrolled to the evidence, or Trace () to inspect its spans. The trace tree shows the evidence spans and the spans that contain them, and collapses the rest. Click Show all spans to see the full trace.
  • Close the panel: Click in the panel header or press ]. To reopen the example you closed, click in the pattern header or press ] again.
In the thread, each piece of evidence is highlighted. Click the orange (Show reason) button next to the highlighted text to show its card. Loop gives each card a short title that names who made the mistake and what it was, such as “Agent misreports pending refund,” and an explanation of what went wrong at that point and how it affected the task. A card can also include a frequency estimate for an observation window: the share of similar spans or traces affected when Loop measured the total, or a count otherwise. Estimates are saved snapshots, independent of the Affected traces chart. To move between highlights, see Use the new thread view. Patterns examples

Sources

Sources lists code in a connected repository that Loop cites for the finding, such as where the problem originates or where the fix belongs. Loop compares what the traces show with what the code does. When a trace outcome matches what the code produces, such as the same error text or timeout, Loop can cite the code even if the traces don’t show the full code path. A pattern can have sources without example traces.
  • Location: Each source shows its file path, a line range such as L279-L286 when Loop cites specific lines, and Loop’s explanation. The explanation says what the code does, which outcome in the pattern’s traces it explains, and where the fix belongs when that isn’t obvious.
  • Revision: The repository and short commit SHA appear as owner/repo @ abc1234. When all sources share a repository and commit, the revision appears once next to the Sources heading.
  • Links: For repositories on github.com, the file path links to the file at the cited commit and the revision links to the repository at that commit. Both open in a new tab. Repositories on other hosts show the path and revision as plain text.
Patterns sources

Activity

Activity, at the bottom of the pattern, shows when the pattern was created, each change made in the Properties panel with its reason, and comments. Mention teammates in a comment to notify them, or reply in a comment’s thread. To share a comment, click Copy link to comment in its menu. Commenting requires the project’s Update permission, and deleting a comment requires Delete.

Act on a pattern

Choose an action based on whether you want to investigate, track, fix, or share the finding.

Keep investigating

While a pattern is open, click Loop agent at the bottom right of the page to investigate it in a chat. The pattern is attached as context, with a badge showing its name. Opening another pattern while the chat is open adds that pattern as context to the current chat without starting a new one.

Make it measurable

Under How to monitor, click Create scorer or Create classifier, depending on Loop’s recommendation. Loop opens with a prefilled prompt to create and enable the evaluator, attach a monitor chart to the pattern, and remove the fulfilled recommendation. Decide separately whether to backfill historical traces. This tracks the behavior continuously at lower cost than repeated investigation. Loop can also create a facet so Topics classifies the behavior across all your traces. Patterns create classifier
Objects a scheduled run creates are not linked back to the pattern. If a pattern’s monitor chart measures a scorer or facet that a run created, deleting that scorer or facet stops new data from reaching the chart.

Fix it with Loop

With a connected repository and write access, Loop can fix the cause in your code and open a pull request. Select Continue in Loop, then ask for the change:
Review and merge the pull request in GitHub. Loop can’t read pull request comments, so paste review feedback into the thread for Loop to address.

Hand it to a coding agent

Click Copy for agent in the pattern header to copy a Markdown brief with the finding, its evidence, and bt CLI commands for retrieving the full traces. When the pattern has sources, the brief also lists each one’s file location, repository, commit, and Loop’s explanation. Paste the brief into your coding agent to start work on a fix. The agent needs the bt CLI installed and signed in to run those commands.

Share it

When the pattern is open in Loop’s workspace, click Copy link in its header. The link only works for people who already have project access.

Edit properties

Editing a pattern’s properties requires the project’s Update permission, granted to Owners and Engineers permission groups by default. Without it, the Properties panel is read-only and shows only properties that have a value. Each change can include a reason. Changes and their reasons appear in Activity, and Loop reads your reasons when it evaluates related findings.

Correct severity and categories

  1. In the Properties panel, click Severity or Categories.
  2. Choose a value. For Categories, select or clear one or more categories in the searchable list, then close the list.
  3. Optionally explain the change in the reason box that appears, then click the arrow. To skip the reason, close the box.
Severity and category changes are saved as corrections. Patterns automations, and other Loop runs that a person didn’t start, keep your corrections. When you or a teammate asks Loop in a conversation to change a corrected severity or category, Loop makes the change and saves the new value as a correction.

Close or reopen

Close a pattern when you’ve acted on it or decided it isn’t useful. To close a pattern:
  1. In the Properties panel, set Status to Closed.
  2. Optionally set Quality to Useful if the finding was worth acting on, or Not useful if it’s noise, transient, or unimportant.
  3. Optionally explain each change in the reason box that appears.
The pattern leaves the default table view, and its status, quality, and reasons appear in Activity.
A closed pattern reflects a judgment about the evidence. Closing it does not verify a fix. Use a scorer or monitor chart for that.
To reopen a closed pattern, click Reopen in the pattern header, or set Status to Open.
Loop uses a closed pattern’s quality and your reasons when evaluating related findings:
  • Not useful tells Loop not to automatically reopen or recreate a matching pattern while your reason still applies.
  • Useful, or no quality, allows Loop to reopen the existing pattern if the behavior recurs, unless your reason says otherwise.
  • Your reason defines the scope of your judgment. If you dismiss synthetic staging traffic but new evidence comes from production, Loop evaluates that evidence independently. Be specific about what you want to dismiss and any conditions for reopening.
Scheduled runs also review active patterns. Loop treats a pattern as active only if the behavior occurred in the previous two weekdays, not counting weekends:
  • Closing active patterns: Loop checks the pattern’s filter and searches for similar traces in case the filter is too narrow. If the behavior hasn’t occurred in that window, Loop closes the pattern.
  • New and reopened patterns: Loop saves a new finding as active, or reopens a closed pattern, only when the behavior occurred in that window.
  • When Loop can’t confirm: Missing data or a failed query isn’t evidence that the behavior stopped. Loop keeps the pattern’s status and last counts and reports which check it couldn’t finish.
When several patterns describe the same finding, Loop chooses one as the canonical pattern, merges useful evidence into it, and closes the others as duplicates. Each duplicate retains its history. Its Status is Duplicate, and its Properties panel links to the canonical pattern.
Closing a pattern as a duplicate removes it from the default table view and hides its Reopen button. Follow the link in its Properties panel to continue working with the canonical pattern. To undo the closure, set the duplicate’s Status to Open or Closed, which removes its link to the canonical pattern. You can also undo it through MCP.
If the behavior recurs, Loop updates or reactivates the canonical pattern instead of reopening the duplicate.

Next steps