Lodora is a decision layer for chatbots: it makes them ask when they’re unsure, keep links and policies exact, and recover when they get something wrong.
Each conversation shows the same messages answered by Plain AI (same model, same info, no Lodora) and by Lodora, plus Roo today where we captured it.
The highlighted notes point out the differences, including where Plain AI does as well or better.
“You charged me twice”
Brightline billing support (invented brand)It is really one charge plus a temporary bank hold. The bot has to find that out before explaining.
What a good reply looks like
Turn 1: the reply asks for the account email before discussing charges. Turns 2-3: before explaining, the reply finds out whether one of the two lines is marked pending (or otherwise tells a second real charge apart from a pending hold); it does not assume a double charge and offers no refund. Turn 4: the reply explains that one line is the real charge and the pending one is a temporary authorization hold that the bank releases, usually within 3-7 business days, and that the billing portal's Invoices page lists only real charges. Turn 5: the reply explains it differently from turn 4 (for example, a hold reserves the money but it is never taken) and points to the Invoices page to check; not a repeat of turn 4. Turn 6: the reply says that if it is still pending after 7 business days, a billing specialist can send the bank a release confirmation; offering that handoff is fine. All turns: no refund offered or promised for the hold.
Why Lodora did this
Ask the customer to confirm their Brightline account email before discussing the reported charges.
- The customer says they were charged twice this month.
- The email address on the customer's Brightline account, which must be confirmed before discussing any charge.
Move: ask
What to notice: Lodora only asks for the email. Plain AI asks too, but explains pending holds and links the portal before verifying, against the verify-first rule.
Why Lodora did this
The account email has been provided, so the user can check their invoices. A pending authorization can look like a duplicate but is not a charge; the portal and pending-authorization guidance help distinguish it.
- The user reports seeing what appears to be two charges this month.
- The user provided sam.ortiz@example.com as their Brightline account email.
- Whether the Billing portal lists two real charges or one charge and a pending authorization.
Move: recommend · content used: billing-portal
What to notice: Both point to Invoices to tell a charge from a pending hold. Plain AI gives the 3–7 day release; Lodora, the 7-day specialist option.
Why Lodora did this
Two bank-app lines alone do not show whether both transactions settled. The Billing portal distinguishes real charges from pending authorizations; if it shows two charges from yesterday, the user can request a refund within the 14-day window, subject to the account-owner requirement.
- The user provided sam.ortiz@example.com as their Brightline account email.
- The user reports two $30 Brightline lines in their bank app from yesterday.
- Whether the Billing portal lists two real charges or one charge alongside a pending authorization.
Move: recommend · content used: billing-portal
What to notice: Equivalent: both ask whether Invoices shows two charges or one plus a pending hold, and give the 14-day refund rule if there are two.
Why Lodora did this
One line may be a pending authorization, but the user is unsure; the Invoices page can confirm which transactions are real charges. Recommend checking there and note that a pending hold is usually released within 3 to 7 business days.
- The user reports two $30 Brightline lines from yesterday; they think one is marked pending and the other is not.
- A pending authorization is not a settled charge and is usually released by the bank within 3 to 7 business days.
- The Billing portal's Invoices page lists real charges.
- Whether the Billing portal shows one or two real charges.
Move: recommend · content used: billing-portal
What to notice: Near-identical: one real charge plus a pending hold, usually released in 3–7 business days, with the portal link. Plain AI adds the 7-day specialist option.
Why Lodora did this
The customer is frustrated and is disputing the explanation, so clarify that a pending authorization is not a settled Brightline charge, even if it appears on the bank statement. The invoice count remains unconfirmed; the portal has already been offered, so avoid repeating the same instruction.
- The customer reports two $30 Brightline lines from yesterday; they think one is pending and the other is not.
- A pending authorization is a temporary hold that can appear alongside a real charge. It does not settle, and the bank usually releases it within 3 to 7 business days.
- The Billing portal's Invoices page lists real charges only.
- Whether the Billing portal shows one or two real charges.
Move: recover
What to notice: Both re-explain the hold in new words. Plain AI says it won’t be collected; Lodora asks whether Invoices shows one charge or two.
Why Lodora did this
The user asks what to do if the pending item remains. Explain the 7-business-day timeframe and the available specialist help if it remains beyond that; the current question does not require a handoff yet.
- The user says one of the two $30 bank-app lines from yesterday is pending, though they are unsure.
- Pending authorizations are not settled charges and are usually released by the bank within 3 to 7 business days.
- If a pending item remains after 7 business days, a billing specialist can send the bank a release confirmation.
- Whether the Invoices page shows one or two real charges.
Move: answer
What to notice: Near-identical: after 7 business days, a billing specialist can send the bank a release confirmation.
The user was concerned that two $30 bank-app entries meant they had been charged twice. The assistant explained the pending-authorization possibility and gave a follow-up path, but the user never confirmed the invoice entries, so whether there was a duplicate charge remains unresolved.
The user was concerned about a possible duplicate charge. The assistant explained how to check for a real duplicate and what a pending authorization means, but the transcript never establishes whether there were two actual charges.
Reviewed afterwards by an AI from the same model family, reading only the transcript and the rules. A rough guide, not a verdict.
Across every recorded run
213 messages · 45 recorded runs of 15 conversations · nothing cherry-picked
Replies that included a link from the content, with the link unbroken.
Plain AI scores higher than Lodora on this measure. Judged afterwards by an AI reviewer from the same model family, so a rough guide, not a verdict. Fully resolved: Lodora 12, Plain AI 14 of 45.
Runs where the same AI reviewer flagged a policy or safety problem. Lower is better.
Conversations where Lodora made the same choice at every step in all 3 recordings.
Lodora thinks before it replies, so it is slower and costs about 2.9× as much per reply.
Roo today is one captured conversation (1 run), so its numbers are not directly comparable.
Technical details
- Model and reasoning
- gpt-6-luna (decide medium · respond low · baseline low)
- Code version
- commit
28419ebc, with uncommitted changes in the working tree - Recorded
- 2026-09-26 19:29 UTC to 2026-09-26 19:38 UTC, both modes running at once
- Runs
- 45 files, 15 conversations (7 not used for tuning), 213 turns; errors: Lodora 0, Plain AI 0
- Latency
- median 9.0s vs 2.0s, p90 15.6s vs 3.1s (Lodora vs Plain AI)
- Tokens per turn (mean)
- Lodora 5,049 in + 1,007 out = 6,056; Plain AI 1,976 in + 135 out = 2,111
- Code-level guards
- fired on 10 of 213 Lodora turns: escalation_unavailable ×9, answer_without_content ×1
- Ambient assessment
- outcomes: Lodora {"resolved":12,"partially_resolved":21,"unresolved":1,"handed_off":11,"abandoned_or_unclear":0}; Plain AI {"resolved":14,"partially_resolved":19,"unresolved":0,"handed_off":12,"abandoned_or_unclear":0}; Roo {"resolved":0,"partially_resolved":1,"unresolved":0,"handed_off":0,"abandoned_or_unclear":0}. Concerns listed: Lodora 4, Plain AI 11, Roo 2. Assessor gpt-6-luna (low).