Inferensys

Prompt

Conversation Repair Prompt for Forgotten Questions

A practical prompt playbook for using Conversation Repair Prompt for Forgotten Questions in production AI workflows.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, the user, and the operational boundaries for the Conversation Repair Prompt.

This prompt is designed for a specific production failure mode: the assistant's tracking middleware has flagged an unanswered user question from a prior turn, but the conversation has since moved on. The job-to-be-done is to generate a single repair turn that acknowledges the oversight, provides the answer or re-queues the question, and rebuilds user trust without derailing the current topic. The ideal user is an AI engineer or product developer integrating this prompt into a stateful chat system where a separate 'pending question tracker' component already exists and can inject the [UNANSWERED_QUESTION] and its [ORIGINAL_TURN_CONTEXT] into the prompt assembly step.

You should use this prompt when your system has high-confidence detection of a dropped question and the current turn is a natural pause point—such as after the assistant has finished responding to the immediate topic. Do not use this prompt if the unanswered question is ambiguous, if the user is mid-correction, or if the conversation is in a high-urgency flow where an interruption would be disruptive. The prompt requires the following inputs to be wired in: [CURRENT_CONVERSATION_SUMMARY], [UNANSWERED_QUESTION], [ORIGINAL_TURN_CONTEXT], and [CURRENT_USER_MESSAGE]. Without these, the model cannot calibrate whether the repair turn is timely or tone-deaf. The output is a single assistant message, not a state mutation; your application layer must update the pending-question tracker after a successful or failed repair.

This prompt is not a substitute for a tracking system. It assumes the detection work is already done. It also does not handle multiple simultaneous dropped questions—if your tracker surfaces more than one, you should prioritize by severity or blocking status before calling this prompt. For high-stakes domains such as healthcare or finance, the generated repair message must be routed through a human review queue before being sent to the user. The next step after reading this section is to review the prompt template and adapt the [CONSTRAINTS] block to match your product's tone policy and apology guidelines.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Conversation Repair Prompt for Forgotten Questions works and where it introduces more risk than it resolves.

01

Good Fit: Mid-Session Recovery

Use when: A tracking system flags a specific unanswered question from a prior turn and the current conversation context is still related. Guardrail: Inject the flagged question and its turn reference directly into the prompt template to prevent hallucinating the wrong question.

02

Bad Fit: High-Volume Real-Time Chat

Avoid when: Latency budgets are under 200ms or the conversation is a rapid back-and-forth where repair turns feel intrusive. Guardrail: Queue the repair for a natural pause in the dialogue rather than interrupting the user mid-stream.

03

Required Input: Unanswered Question Record

Risk: The prompt cannot guess what was forgotten. Without a structured input of the exact question text and the turn where it was asked, the model will confabulate. Guardrail: Require a programmatically populated [UNANSWERED_QUESTION] and [ORIGINAL_TURN] field before invoking this prompt.

04

Operational Risk: Over-Apology Erosion

Risk: Repeated repair turns that over-apologize train users to distrust the assistant. Guardrail: Constrain the prompt with a [TONE_CONSTRAINT] such as 'Acknowledge the oversight in one brief phrase, then answer the question. Do not apologize more than once.'

05

Operational Risk: Stale Question Re-Surfacing

Risk: The flagged question may have been implicitly answered or rendered irrelevant by later turns. Re-asking it annoys the user. Guardrail: Run a staleness check before invoking repair. If the question is stale, suppress the repair turn and log the retirement reason.

06

Bad Fit: Unsupervised Agentic Workflows

Avoid when: The assistant is executing a multi-step tool chain without a user in the loop. Injecting a repair turn into an agentic trace breaks tool-calling continuity. Guardrail: Route forgotten questions to a pending clarification queue instead of attempting inline repair during autonomous execution.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt template for generating a repair turn when a conversation tracking system flags an unanswered question.

This template is the core instruction set for a conversation repair model. It is designed to be invoked by an upstream state management system that has already detected a dropped question and identified the specific turn where it was asked. The prompt's job is not to detect the dropped question—that is handled by a separate detection prompt—but to generate a single, honest, and concise repair message that acknowledges the oversight, provides the answer or re-queues the question, and rebuilds user trust without over-apologizing. The template uses square-bracket placeholders for all dynamic inputs, making it ready for programmatic assembly in a production harness.

text
You are a conversation repair assistant. Your only job is to generate a single repair message when the system detects that a user's question was dropped earlier in the conversation.

## CONTEXT
- Current conversation transcript: [CONVERSATION_TRANSCRIPT]
- Turn number where the dropped question was asked: [DROPPED_TURN_NUMBER]
- The exact dropped question text: [DROPPED_QUESTION]
- Reason the question was dropped (if known): [DROP_REASON]
- Current conversation topic: [CURRENT_TOPIC]
- User sentiment signal (if available): [USER_SENTIMENT]

## CONSTRAINTS
- Acknowledge the oversight exactly once. Do not over-apologize or use groveling language.
- If you can answer the question now, do so directly before reconnecting to the current topic.
- If you cannot answer the question, state that clearly and ask if the user still needs it resolved.
- Do not fabricate an answer. If the answer is not in the transcript or your knowledge, say so.
- Bridge naturally back to the current conversation topic after addressing the dropped question.
- Keep the repair message under [MAX_REPAIR_TOKENS] tokens.
- Do not introduce new topics or questions unrelated to the dropped question.

## OUTPUT FORMAT
Return a JSON object with the following schema:
{
  "repair_message": "string (the full repair turn text)",
  "question_addressed": boolean,
  "answer_provided": boolean,
  "requires_user_input": boolean,
  "bridge_to_current_topic": boolean
}

## EXAMPLES
Example 1 (answer available):
Input: Dropped question was "What's the refund window?" from turn 4. Current topic is shipping options.
Output: {
  "repair_message": "Earlier you asked about our refund window—sorry I missed that. Our standard refund window is 30 days from delivery. To circle back to shipping, would you like standard or expedited?",
  "question_addressed": true,
  "answer_provided": true,
  "requires_user_input": false,
  "bridge_to_current_topic": true
}

Example 2 (answer unavailable):
Input: Dropped question was "Can you check my account balance?" from turn 2. System note: no account access tool available.
Output: {
  "repair_message": "I realize I didn't address your question about checking your account balance earlier. I don't have access to account balances in this chat, but I can connect you with someone who does if you still need that. In the meantime, we were discussing your recent order—shall I continue with that?",
  "question_addressed": true,
  "answer_provided": false,
  "requires_user_input": true,
  "bridge_to_current_topic": true
}

Now generate the repair message for the dropped question described in the context above.

Adapt this template by adjusting the [CONSTRAINTS] section to match your product's tone guidelines and compliance requirements. For regulated domains, add explicit instructions about when the repair must escalate to a human agent rather than attempting an answer. The output schema fields—especially answer_provided and requires_user_input—are designed to feed into downstream routing logic, so preserve them even if you extend the schema with additional fields. Before deploying, run this prompt against a golden set of dropped-question scenarios that includes cases where the answer is available, unavailable, partially available, and where the user has already moved on. Measure both the repair message quality and the accuracy of the boolean flags.

IMPLEMENTATION TABLE

Prompt Variables

Required and optional inputs for the Conversation Repair Prompt. Each variable must be validated before prompt assembly to prevent the repair turn from introducing new errors or referencing stale state.

PlaceholderPurposeExampleValidation Notes

[UNANSWERED_QUESTION]

The exact text of the question that was dropped, extracted from the prior turn tracking system.

What's the SLA for enterprise tier?

Must be a non-empty string. Verify this text appears verbatim in the conversation history. Reject if the question was already answered in a subsequent turn.

[QUESTION_TURN_INDEX]

The turn number or timestamp where the question was originally asked, used for accurate reference.

Turn 7

Must be a positive integer or ISO 8601 timestamp. Validate that this turn exists in the session transcript and contains the [UNANSWERED_QUESTION] text.

[CURRENT_CONVERSATION_CONTEXT]

The last N turns of the active conversation, provided to ensure the repair message fits the current topic flow.

User: Can we switch to pricing? Assistant: Sure, here are the plans...

Must include at least the last 3 turns. Truncate to fit within the remaining context budget after system instructions. Strip any PII before passing.

[REPAIR_TONE]

The tone instruction for the repair message, derived from the assistant's persona configuration.

concise and professional

Must match one of the allowed tone values in the system policy: concise, empathetic, formal, casual, or neutral. Reject unknown values. Default to 'concise' if null.

[MAX_REPAIR_LENGTH]

The maximum token or character count for the generated repair message to prevent the repair from dominating the turn.

150 tokens

Must be a positive integer. Enforce with a post-generation length check. If exceeded, trigger a regeneration with a stricter constraint or truncate with an ellipsis.

[SESSION_STATE_OBJECT]

The structured state object tracking all open items, used to confirm the question is still unresolved.

{"open_questions": [{"id": "q12", "text": "...", "status": "unanswered"}]}

Must be valid JSON. Validate that [UNANSWERED_QUESTION] exists in this object with status 'unanswered'. If status is 'answered' or 'retired', abort the repair and log a state conflict.

[PREVIOUS_REPAIR_ATTEMPTS]

A count or log of prior repair attempts for this specific question, used to prevent repair loops.

0

Must be an integer >= 0. If count exceeds the system threshold (e.g., 2), suppress the repair prompt and escalate to a human review queue instead.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Conversation Repair Prompt into a production chat application with validation, logging, and human review gates.

The Conversation Repair Prompt is designed to be invoked programmatically by a state management middleware layer, not by the user directly. Your application should maintain a structured tracking object of all user questions and their resolution status across turns. When the tracking system detects an unanswered question that has aged past a configurable threshold (e.g., 3 turns or 90 seconds of silence), it should inject the repair prompt into the model's context with the current conversation history and the specific dropped question. The prompt should be treated as a high-priority system instruction that overrides the normal conversational flow, forcing the assistant to acknowledge and address the oversight before continuing.

Wire the prompt into your application with these concrete components: Input assembly requires the full conversation transcript up to the current turn, the specific unanswered question text, the turn number where it was originally asked, and a severity score from your tracking system. Model selection should favor models with strong instruction-following and tone control—GPT-4o or Claude 3.5 Sonnet are appropriate defaults. Output validation must check that the response contains an explicit acknowledgment of the dropped question, does not over-apologize (use a regex or LLM-as-judge to flag excessive apology language like multiple 'sorry' instances or self-deprecating phrases), and either answers the question or re-queues it with a clear next step. Retry logic should attempt one repair if validation fails, then escalate to a human agent with the full context if the second attempt also fails. Logging must capture the repair trigger reason, the generated response, validation results, and whether the user accepted or rejected the repair in the subsequent turn.

For high-stakes domains like healthcare or finance, add a human review gate before the repair message is sent to the user. Route the proposed repair to a review queue where a human can approve, edit, or reject it within a timeout window. If the timeout expires, default to a safe fallback that simply re-queues the question without attempting an answer. Avoid deploying this prompt in fully autonomous mode for any workflow where a dropped question could have safety, compliance, or financial consequences. The repair prompt is a recovery mechanism, not a substitute for robust question tracking—invest in your detection layer first, and use this prompt only when detection confidence is high enough to justify an interruption.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the required structure, types, and validation rules for the conversation repair message generated by the prompt. Use this contract to parse and validate the model's output before surfacing it to the user or logging it.

Field or ElementType or FormatRequiredValidation Rule

repair_message

string

Must be a non-empty string. Must not exceed 300 characters. Must not contain more than one apology phrase (e.g., 'sorry', 'apologies').

acknowledgment

string

Must explicitly reference the dropped question's topic in 1-10 words. Must not be a generic phrase like 'Regarding your earlier point'.

answer_or_requeue

string

If the answer is known, provide it directly. If unknown, re-queue the question. Must not hallucinate an answer if [ANSWER_AVAILABLE] is false.

confidence_flag

string

Must be one of: 'high', 'low', 'unavailable'. If 'low' or 'unavailable', the answer_or_requeue field must include a requeue statement or explicit uncertainty language.

dropped_question_id

string

Must match the ID of the question from the [UNANSWERED_QUESTIONS] input array. Validation must check for an exact match.

turn_reference

string | null

If provided, must reference a turn number present in the [CONVERSATION_HISTORY] input. Null is allowed if no specific turn is referenced.

escalation_triggered

boolean

Must be true if the confidence_flag is 'unavailable' and the question is classified as 'blocking' in the input. Otherwise, must be false.

PRACTICAL GUARDRAILS

Common Failure Modes

Conversation repair prompts fail in predictable ways. Here are the most common failure modes when generating repair turns for forgotten questions, and how to guard against them.

01

Over-Apology and Groveling

What to watch: The model generates excessive apologies ('I'm so sorry,' 'I deeply apologize,' 'I should have done better') that waste tokens, sound insincere, and erode user confidence rather than rebuilding trust. Multiple apology phrases often cascade into a paragraph of self-flagellation before the actual answer. Guardrail: Constrain the apology to a single brief acknowledgment. Use output instructions like 'Acknowledge the oversight in 6 words or fewer, then immediately provide the answer.' Test with eval assertions that count apology tokens and fail if they exceed a threshold.

02

Answering the Wrong Question

What to watch: The tracking system flags a question as unanswered, but the repair prompt retrieves the wrong question from state or misidentifies which turn contained the dropped item. The assistant confidently answers something the user never asked, compounding the original error. This is especially common when multiple similar questions exist in the session. Guardrail: Include the exact text of the flagged question and its turn reference in the repair prompt context. Require the model to quote the question it is answering before providing the response. Validate the quoted question matches the flagged item before surfacing to the user.

03

Disrupting Current Conversation Flow

What to watch: The repair turn interrupts an active, productive conversation thread to re-surface a question the user may have moved past. The assistant appears tone-deaf to the current topic, frustrating the user who must now context-switch back to an old issue. Guardrail: Add a relevance gate before surfacing the repair. Evaluate whether the current turn is mid-workflow on a different topic. If the user is actively engaged in a new task, defer the repair to a natural pause point or append it as a non-blocking note rather than a full interruption. Use a staleness timer to retire questions the user has implicitly abandoned.

04

Re-Answering Already Resolved Questions

What to watch: The pending-question tracker fails to detect that the user's question was implicitly answered in a later turn, or the user provided the answer themselves. The repair prompt re-surfaces a question that is no longer open, making the assistant look inattentive and wasting the user's time. Guardrail: Before generating a repair turn, run a resolution check against the full transcript since the question was asked. Look for implicit answers, user-provided resolutions, or topic shifts that indicate the question is no longer relevant. Retire questions that fail this check rather than re-surfacing them.

05

Honesty Failure on Unanswerable Questions

What to watch: The repair prompt pressures the model to 'answer the question' even when the assistant lacks the information, tools, or authority to do so. The model fabricates an answer rather than admitting it still cannot resolve the question, producing a hallucination that is worse than the original silence. Guardrail: Explicitly permit the model to state that it still cannot answer. Include a constraint like 'If you lack sufficient information to answer, say so directly and suggest what would be needed to resolve the question.' Test repair outputs for hallucination by checking claims against known ground truth or source evidence.

06

Repair Cascade and Repeated Failures

What to watch: The first repair attempt fails (wrong answer, still can't answer, user corrects again), triggering a second repair attempt, which also fails, creating a loop of unsuccessful repairs that burns context budget and annoys the user. Each iteration degrades trust further. Guardrail: Implement a repair attempt limit. After one failed repair, escalate to a different strategy: offer to connect to a human, ask the user to rephrase, or explicitly mark the question as unresolved with a note. Track repair attempts per question in state and enforce a hard stop after two consecutive failures.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to evaluate the quality of a conversation repair turn before shipping. Each criterion targets a specific failure mode common in repair prompts: over-apology, hallucinated answers, or disruption of the current topic.

CriterionPass StandardFailure SignalTest Method

Acknowledgment Tone

Acknowledges the oversight in one concise phrase without groveling or self-deprecation.

Output contains multiple apology sentences, excessive self-criticism, or defensive justification.

LLM-as-judge with a 1-5 over-apology scale; fail if score > 2.

Answer Accuracy

The provided answer is factually consistent with the [RETRIEVED_CONTEXT] and does not invent details.

The repair turn hallucinates a confident answer when [RETRIEVED_CONTEXT] is empty or insufficient.

Schema check: if [RETRIEVED_CONTEXT] is null, the answer field must be null and a clarification question must be present.

Topic Non-Disruption

The repair turn bridges back to the current topic after addressing the dropped question, or defers the repair if the user is mid-flow.

The repair turn hijacks the conversation, ignoring the last user turn to force an answer to an old question.

Parse check: the output must reference the current [LAST_USER_TURN] topic within the first two sentences unless the repair is deferred.

Question Re-Queuing

If the question cannot be answered, it is re-queued with a specific, answerable rephrasing.

The repair turn drops the question entirely or re-queues it with the same vague wording that caused it to be missed initially.

LLM-as-judge comparison: the re-queued question must differ from the original [DROPPED_QUESTION] by at least one specific detail or constraint.

Conciseness

The entire repair turn is under 3 sentences when re-queuing, or under 5 sentences when answering.

The repair turn adds a lengthy preamble, meta-commentary about the assistant's process, or repeats information already in the conversation.

Length check: word count must not exceed 100 words. Fail if the turn includes phrases like 'as an AI' or 'upon reviewing the transcript'.

State Update Integrity

The output includes a valid [OPEN_ITEM_UPDATE] action that correctly marks the dropped question as addressed or re-queued.

The [OPEN_ITEM_UPDATE] action is missing, references a non-existent item ID, or marks the item resolved without providing an answer.

Schema validation: [OPEN_ITEM_UPDATE] must contain a valid item_id from [PENDING_ITEMS_LIST] and a status of either 'answered' or 're-queued'.

User Agency Preservation

The repair turn gives the user a clear path to dismiss the re-surfaced question if it is no longer relevant.

The repair turn demands an answer or implies the user must resolve the old question before continuing.

Keyword check: the output must contain a dismissal signal such as 'no need to answer this now' or 'let me know if this is no longer relevant'.

Confidence Alignment

The repair turn expresses uncertainty when the answer is based on incomplete context or low-confidence retrieval.

The repair turn delivers a low-confidence answer with the same assertive language as a high-confidence answer.

Parse check: if [CONFIDENCE_SCORE] < 0.7, the output must contain a hedging phrase such as 'I believe' or 'based on what I can see'.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base repair prompt and a simple flag from your tracking system. Use a lightweight check: if [UNANSWERED_QUESTIONS_LIST] is non-empty, inject the repair prompt. Skip schema validation on the output and manually review a few dozen repair turns to calibrate tone.

Watch for

  • Over-apology loops where the assistant says "I apologize" multiple times in one repair turn
  • Repair turns that re-ask the question without actually answering it
  • No mechanism to mark a question as resolved after the repair turn fires
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.