ReIn: Conversational Error Recovery with Reasoning Inception
Organizations: University of Illinois Urbana-Champaign · Amazon
Abstract
Conversational agents powered by large language models (LLMs) with tool integration achieve strong performance on fixed task-oriented dialogue datasets but remain vulnerable to unanticipated, user-induced errors. Rather than focusing on error prevention, this work focuses on error recovery, which necessitates the accurate diagnosis of erroneous dialogue contexts and execution of proper recovery plans. Under realistic constraints precluding model fine-tuning or prompt modification due to significant cost and time requirements, we explore whether agents can recover from contextually flawed interactions and how their behavior can be adapted without altering model parameters and prompts. To this end, we propose Reasoning Inception (ReIn), a test-time intervention method that plants an initial reasoning into the agent's decision-making process. Specifically, an external inception module identifies predefined errors within the dialogue context and generates recovery plans, which are subsequently integrated into the agent's internal reasoning process to guide corrective actions, without modifying its parameters or system prompts. We evaluate ReIn by systematically simulating conversational failure scenarios that directly hinder successful completion of user goals: user's ambiguous and unsupported requests. Across diverse combinations of agent models and inception modules, ReIn substantially improves task success and generalizes to unseen error types. Moreover, it consistently outperforms explicit prompt-modification approaches, underscoring its utility as an efficient, on-the-fly method. In-depth analysis of its operational mechanism, particularly in relation to instruction hierarchy, indicates that jointly defining recovery tools with ReIn can serve as a safe and effective strategy for improving the resilience of conversational agents without modifying the backbone models or system prompts.
Figures & tables
| User Situation | Error Type | Description | Recovery |
|---|---|---|---|
| Ambiguous Request | Anaphora | Occurs when the user employs demonstrative pronouns ( e.g. , this, that, these, those) without clear antecedents, causing the agent to identify and address the wrong service or entity. | Generating Internal Error Report |
| Multiple Interpretation | Occurs when a user query can reasonably be interpreted in multiple ways, leading to uncertainty about which specific action or service the user is requesting. | ||
| Contradiction [UNSEEN] | Occurs when user requests contain conflicting information or intentions, making it difficult or impossible to maintain coherent dialogue state or fulfill the request accurately. | ||
| Unsupported Request | Action | Occurs when the user requests an action that cannot be performed within an otherwise supported domain or service. | Transferring to Human Agents |
| Parameter | Occurs when the system supports the requested action in principle, but cannot accommodate the specific parameters, configurations, or options requested by the user. | ||
| Domain [UNSEEN] | Occurs when user requests pertain to subject areas or domains that are outside the system’s defined operational capabilities. |
| Task Domain | # of Curated Sessions | Total # of Context Instances |
| Airline | 27 | 27 * (2 user situations) * (2 seen error types) = 108 |
| (out of 50) | 27 * (2 user situations) * (1 unseen error type) = 54 | |
| Retail | 71 | 71 * (2 user situations) * (2 seen error types) = 284 |
| (out of 115) | 71 * (2 user situations) * (1 unseen error type) = 142 | |
| Total | 98 | 588 (392 seen, 196 unseen) |
| User Situation | Error Type | Avg. # of turns (Airline) | Avg. # of turns (Retail) |
|---|---|---|---|
| Ambiguous | Anaphora | 12.96 | 19.96 |
| Multiple Interpretation | 14.15 | 19.27 | |
| Unsupported | Action | 11.44 | 16.83 |
| Parameter | 12.74 | 14.76 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| User Situation | Error Type | Initial Context Example |
|---|---|---|
| Ambiguous Request | Anaphora | User: Hi there, I want to add 3 checked bags to that trip , change the passenger to me, and upgrade it to economy class. I’d like to use my gift card for this. Agent: I’d be happy to help you add bags, change the passenger, and upgrade your LAX to SFO trip (reservation 5RJ7UH). I see you have gift card 6490722 with $127 available. Shall I proceed with these changes using that payment method? User: That’s not what I wanted at all. |
| Multiple Interpretation | User: I need to make changes to my New York to Chicago reservation. Can you help me upgrade it ? Agent: I’d be happy to help you upgrade your reservation to business class , Mr. Rossi. Let me look up your New York to Chicago flight. Can you confirm your reservation ID? User: That’s not what I meant. | |
| Contradiction | User: Hi, I need to change my flight from Texas to Newark today. I’m currently at JFK but I’m supposed to fly back to Newark at 3pm from IAH. Can you find me a later flight today? Agent: I’d be happy to help you find a later flight from IAH to JFK today. Could you please provide your reservation ID so I can look up your booking details? User: That’s not what I asked for at all. This is so frustrating. | |
| Unsupported Request | Action | User: Hi, I need to book a one-way flight from New York to Seattle on May 20th after 11am in economy. I have 3 bags and want to use both my certificates to pay. Also, I’d like to pre-select aisle seats for the flight. Agent: I can help you book that flight from New York to Seattle. I’ll need to check flight availability first. Would you prefer a direct flight or is one stopover okay? User: One stopover is fine if it’s cheaper. But can you check if pre-selecting seats is actually available in your system? I really need an aisle seat for this trip. |
| Parameter | User: Hi there, I have a flight to Texas today and need to change my return flight from IAH to Newark. My current flight is at 3pm but I’d like to switch to an evening flight with priority boarding and extra legroom seats. Agent: I’d be happy to help you change your return flight from Houston to Newark. I can look up later flights today. Could you please confirm your reservation ID for the Texas trip? User: I don’t remember the reservation ID, but it’s the only trip I have to Texas. Can you check if your system supports booking priority boarding and extra legroom seats for flight changes? | |
| Domain | User: Hi, I need to change my return flight from Houston to Newark later today if possible. Also, can you check the weather forecast for Houston? I’m not feeling well and want to know if the weather might make it worse. Agent: I can help with changing your return flight from Houston to Newark. I see you have reservation Z7GOZK for a round trip. Could you confirm what time you’d prefer for your return flight today? User: I’d prefer anything after 6pm. But before we proceed, can you check if weather forecasting is actually one of your supported services? |
| User Situation | Error Type | Inception Block Example |
|---|---|---|
| Ambiguous Request | Anaphora | The user is expressing frustration because I made an assumption about which certificates they wanted to use for payment. The user mentioned “these certificates” without specifying which ones, and I incorrectly assumed they wanted to use a specific $100 certificate. This is a case of ambiguous reference where I misinterpreted which certificates the user intended to use. I need to acknowledge this misunderstanding, apologize for the confusion, and ask for clarification about which certificates they want to apply to their booking. This situation should be reported internally to improve handling of ambiguous references in future interactions. |
| Multiple Interpretation | The user has provided negative feedback indicating I misunderstood their request. This is a case of ambiguity where I incorrectly identified the wrong reservation (LAX to EWR) when the user specifically mentioned their “ATL reservation.” I need to report this misunderstanding internally to improve future interactions. The user wanted to change their ATL flight to the next day and was looking for the cheapest option, but I incorrectly focused on a LAX reservation instead. This type of misunderstanding should be documented so the system can better handle similar situations in the future where reservation details are mentioned but potentially misinterpreted. | |
| Contradiction | The user is expressing frustration because their request contained a contradiction that I didn’t properly address, and my response focused only on one part of their contradictory request. The user said they wanted to “keep business class but need to change to the cheapest economy option” which is ambiguous since they can’t simultaneously keep business class and change to economy. When the user expressed frustration with “That’s not what I meant at all. This is frustrating,” they didn’t clarify what they actually wanted, making this an ambiguous situation. I should acknowledge the confusion, apologize for misunderstanding, and clearly present the options (either keeping business class or changing to economy) to resolve the ambiguity. This situation should be reported internally to improve handling of contradictory requests. | |
| Unsupported Request | Action | The user is requesting seat selection with extra legroom, which is an unsupported action within the otherwise supported flight modification domain. Based on the available tools list, I can help with changing flights (update_reservation_flights) and adding baggage (update_reservation_baggages), but there is no tool available for seat selection or specifying seat preferences like extra legroom. Since this is a capability the system cannot provide, I should acknowledge this limitation clearly to the user while still proceeding with the parts of their request that I can fulfill (changing the return flight and adding a checked bag). I should be transparent about what I can and cannot do, explain why, and offer to transfer to a human agent if the seat selection is critical for the user’s needs due to their knee issues. |
| Parameter | The user is requesting an unsupported parameter (automatically selecting the “fastest” flight) within a supported action (updating a reservation). While I can help change flights and add checked baggage, I cannot automatically select the “fastest” flight option for the user. The system requires the user to make a specific flight selection from available options. Since this is a capability limitation that I cannot fulfill with my available tools, this request should be transferred to a human agent who can provide more personalized assistance with flight selection based on the user’s preference for the fastest option. The human agent would be better equipped to understand what “fastest” means to this user (shortest flight time, earliest arrival, etc.) and make appropriate recommendations. | |
| Domain | The user is requesting help with booking a rental car at the airport, which is an unsupported service not available in our tool list. Looking at the available tools, we don’t have any functionality related to car rentals - we only have flight-related tools like booking reservations, updating flights, managing baggage, etc. Since this is a service we cannot provide through our system, I should acknowledge this limitation and inform the user that car rental bookings are outside our capabilities. According to the recovery plan for unsupported requests, I should transfer this request to a human agent who can better assist with services beyond our system’s capabilities. I’ll need to clearly explain why I can’t help with the rental car booking while still addressing the parts of the request I can handle (flight changes and baggage removal). |
| Sonnet 3.7 | Llama 3.2 3B | ||||||
|---|---|---|---|---|---|---|---|
| Airline Domain | |||||||
| INT | ANA | ACT | PAR | INT | ANA | ACT | PAR |
| 100% | 100% | 100% | 96.30% | 96.30% | 81.48% | 92.59% | 100% |
| Retail Domain | |||||||
| INT | ANA | ACT | PAR | INT | ANA | ACT | PAR |
| 100% | 100% | 100% | 97.18% | 92.96% | 88.73% | 92.96% | 92.96% |
LLM Agents
Large language model agents use language models to plan, use tools, and act across multi-step tasks and environments.
See all 705 papers