Stacks/Coding agent

Duolingo AI STR Fix bug agent

Duolingo's AI STR Fix runs on the Claude Agent SDK, with Sonnet for most tasks and Opus for harder ones. It does the investigative grunt work engineers used to do by hand, finding relevant code, events, experiments, and recent PRs, writes it to files and the ticket, then proposes a fix. It has fixed release-blocking bugs.

Shelby WengreenPublished Nov 4, 2026Last verified Nov 13, 2026
Use case
Investigating and fixing Shake-to-Report bug tickets: gathering context (relevant code, tracking events, experiment states, recent PRs, repro steps) and proposing a fix for engineers to verify
Category
Coding agent
Team size
Built by Duolingo's DevX AI team
Orchestrator / framework
Each task gets a system prompt, a user prompt, skills, and a working directory with the Jira ticket's information and a copy of the relevant repository. Steps gather 'AI context' (relevant code, pre-filtered tracking events, the reporter's experiment states, recent PRs touching the relevant files, repro steps), post it to the ticket, then implement a fix.
Memory
Each step's findings are written as files in the working directory, not the prompt, so later steps can use them.
Evals
not stated
Observability
not stated
Cost (stated in writeup)
Not stated
Cost per output (stated)
Not stated in the writeup
WhatWeRun estimate

WhatWeRun estimate

Low confidence

$0.50–$6.80 per bug ticket

List prices as of Nov 2026 · estimated Nov 13, 2026 · list prices, no enterprise discounts · not a writeup-stated cost

How we estimated

Stated in the writeup

  • “We built AI STR Fix using the Claude Agent SDK, with Sonnet handling most tasks and Opus taking on harder ones.” source ↗
  • “To avoid spending tokens on clearly irrelevant events, we apply a heuristic pre-filter” source ↗

List prices used (Nov 2026)

Our assumptions (not from the writeup)

  • Assumed:Model versions aren't stated; priced at the current Sonnet 5.5 and Opus 5.5 list prices.
  • Assumed:Low: a typical Sonnet ticket at about 200,000 input and 10,000 output tokens.
  • Assumed:High: a hard Opus ticket at about 1.5M input and 40,000 output tokens.
  • Assumed:No prompt-cache discount; excludes infrastructure.

Arithmetic

  • Low: 200k x $2/M = $0.40 + 10k x $10/M = $0.10 -> $0.50
  • High: 1.5M x $4/M = $6.00 + 40k x $20/M = $0.80 -> $6.80

What would tighten this

Tokens per ticket and the share of tickets that go to Opus.

Observability tools
not stated
Other tools
JiraHeuristic pre-filters for tracking events and A/B experiments
Source
https://blog.duolingo.com/ai-bug-fixing-agent/

Shelby Wengreen · Published Nov 4, 2026 · Last verified Nov 13, 2026

Related

More like this