Inferensys

Prompt

Conversation State Reconciliation Prompt for Open Items

A practical prompt playbook for using Conversation State Reconciliation Prompt for Open Items in production AI workflows.
Wide-angle shot of a modern WeWork open floor plan with creative walls covered in AI system architecture diagrams, product team collaborating in standing desk area with industrial lighting.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the specific job, ideal user, and critical constraints for the Conversation State Reconciliation Prompt.

This prompt is for AI engineering teams whose production assistants maintain an explicit, structured state model of open items—questions, tasks, and commitments—alongside the raw conversation transcript. The core job-to-be-done is detecting and diagnosing state drift: the condition where the assistant's internal state model has fallen out of sync with what actually happened in the conversation. For example, the state model might still list a question as 'unanswered' when the user provided an answer three turns ago, or it might mark a task as 'resolved' when the assistant only acknowledged it but never completed it. This reconciliation step is a critical control plane operation, not a user-facing response.

The ideal user is a backend AI engineer or technical lead building a stateful copilot, support agent, or task-oriented assistant. You should use this prompt when your system explicitly tracks open items in a structured format (JSON, a database, or a state machine) and you need a scheduled or triggered audit to compare that state against the raw transcript. This is not a prompt for generating a user-facing summary. It is an internal diagnostic that produces a machine-readable reconciliation report. Required context includes the full conversation transcript and the assistant's current internal state object for open items. The prompt is designed to be run by an orchestration layer, not directly by an end-user.

Do not use this prompt as a replacement for a deterministic state machine. If your open-item tracking can be handled with explicit code—such as a finite state machine that transitions on specific user intents or API calls—that is always more reliable. This prompt is for the inevitable gaps where natural language complexity defeats deterministic rules: implicit resolutions, sarcasm, topic shifts that obsolete a question without answering it, or user corrections that ripple through multiple pending items. The output is a reconciliation report that your system should use to patch its state, not a final answer to show the user. Always log the reconciliation diff before applying it, and in high-stakes domains like healthcare or finance, require human review of any state mutation that would close or alter a critical item.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Conversation State Reconciliation Prompt delivers value and where it introduces risk. This prompt compares an internal state model against the raw transcript, so its utility depends entirely on the quality of both inputs.

01

Good Fit: Stateful Agent Systems

Use when: you maintain an explicit open-item state object alongside a multi-turn conversation transcript. The prompt excels at detecting drift between the model's tracked state and what actually happened in the dialogue. Guardrail: ensure the state model schema is stable and versioned before running reconciliation.

02

Bad Fit: Stateless or Single-Turn Flows

Avoid when: the system has no structured state to reconcile against, or conversations are single-turn request-response. Without a state model to compare, the prompt becomes a generic transcript analysis task and loses its specific drift-detection value. Guardrail: use a dedicated extraction prompt instead of forcing reconciliation on stateless data.

03

Required Input: Structured State Snapshot

Risk: reconciliation quality collapses if the state model is incomplete, stale, or in a different schema than the prompt expects. Guardrail: validate the state object against its expected schema before passing it to the prompt. Reject reconciliation runs when required fields are missing or the state version doesn't match.

04

Required Input: Complete Transcript

Risk: truncated or summarized transcripts hide resolution signals, causing false drift detections where the assistant resolved an item but the evidence was pruned. Guardrail: pass the full turn history for the session segment being reconciled. If context budget forces summarization, flag the reconciliation output as lower confidence.

05

Operational Risk: False Positive Drift

Risk: the prompt flags items as drifted when the resolution happened implicitly or through a side channel not visible in the transcript. This triggers unnecessary corrections and erodes operator trust. Guardrail: require the prompt to output a confidence score per reconciliation finding and route low-confidence items to human review instead of auto-applying corrections.

06

Operational Risk: Correction Cascades

Risk: applying reconciliation corrections automatically can overwrite valid state with incorrect transcript interpretations, especially when the user's language was ambiguous. Guardrail: never auto-apply reconciliation diffs. Output corrections as proposed changes that require explicit approval or a separate verification step before mutating production state.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt template for reconciling an assistant's internal open-item state against the actual conversation transcript to detect drift.

This prompt template is designed to be injected into a reconciliation step within your state management middleware. It compares a structured representation of what the system believes is pending against the ground truth of the conversation transcript. The core job is to detect two failure modes: a resolved item still marked as open, or an open item that was silently dropped from the state model. Use this before generating any user-facing summary or handoff to ensure the system's memory is accurate.

code
You are a state reconciliation auditor. Your task is to compare the assistant's internal open-item state against the actual conversation transcript and produce a structured reconciliation report.

## INTERNAL OPEN-ITEM STATE
This is the list of open questions, tasks, and commitments the system currently believes are unresolved.
[OPEN_ITEM_STATE]

## CONVERSATION TRANSCRIPT
This is the full conversation transcript, including all user and assistant turns.
[TRANSCRIPT]

## INSTRUCTIONS
1. For each item in the INTERNAL OPEN-ITEM STATE, determine if it has been resolved in the CONVERSATION TRANSCRIPT. An item is resolved if the user confirmed satisfaction, the assistant provided a complete answer that the user acknowledged, or the task was explicitly completed.
2. Scan the CONVERSATION TRANSCRIPT for any questions, tasks, or commitments that are unresolved but are NOT present in the INTERNAL OPEN-ITEM STATE. These are "missed items."
3. For each missed item, identify the turn number where the item originated and the reason it should be considered open.
4. Do not flag rhetorical questions, social pleasantries, or statements where the user explicitly withdrew the request.

## OUTPUT SCHEMA
Return a valid JSON object with the following structure:
{
  "reconciliation_report": {
    "state_items_reviewed": [
      {
        "item_id": "string",
        "original_description": "string",
        "status_in_transcript": "resolved | still_open | cannot_determine",
        "resolution_evidence": "string or null",
        "correction_required": "mark_resolved | keep_open | flag_for_review"
      }
    ],
    "missed_items": [
      {
        "description": "string",
        "originating_turn": integer,
        "reason_open": "string",
        "severity": "blocking | high | medium | low"
      }
    ],
    "drift_detected": boolean,
    "summary": "string"
  }
}

## CONSTRAINTS
- Only mark an item as resolved if there is clear, explicit evidence in the transcript.
- If evidence is ambiguous, set status to "cannot_determine" and correction_required to "flag_for_review."
- Do not invent items. Only report missed items that have a clear basis in the transcript.
- If no drift is detected, drift_detected must be false and missed_items must be an empty array.

To adapt this template, replace [OPEN_ITEM_STATE] with a JSON-serialized array of your system's pending items, each with a unique item_id and original_description. Replace [TRANSCRIPT] with the full conversation text, ideally with turn numbers prefixed (e.g., [T1] User: ...). The output schema is designed for direct consumption by your state repair logic: iterate state_items_reviewed to apply corrections, and insert missed_items into your tracking system. For high-stakes domains like healthcare or finance, route any report with drift_detected: true or severity: blocking to a human review queue before mutating state.

IMPLEMENTATION TABLE

Prompt Variables

Required inputs for the Conversation State Reconciliation Prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to verify the input is well-formed before execution.

PlaceholderPurposeExampleValidation Notes

[CONVERSATION_TRANSCRIPT]

Full conversation transcript to reconcile against

User: What's the status of PR #42?\nAssistant: It's still in review.\nUser: And the login bug?\nAssistant: Fixed yesterday.

Must be non-empty string. Validate line count > 0. Each turn must have a speaker label. Timestamps optional but recommended for ordering.

[CURRENT_OPEN_ITEMS_STATE]

Serialized state object of items the system believes are open

{"items": [{"id": "item-1", "description": "PR #42 review", "status": "open", "last_updated_turn": 2}]}

Must be valid JSON. Validate against expected schema: items array with id, description, status, last_updated_turn fields. Status must be one of open, in_progress, blocked, pending_clarification. Null allowed if no items tracked.

[STATE_SCHEMA]

JSON schema defining the structure of the open items state object

{"type": "object", "properties": {"items": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "string"}, "description": {"type": "string"}, "status": {"type": "string", "enum": ["open", "in_progress", "blocked", "pending_clarification", "resolved", "abandoned"]}, "last_updated_turn": {"type": "integer"}}, "required": ["id", "description", "status"]}}}, "required": ["items"]}

Must be valid JSON Schema. Validate with a schema validator before use. Required fields must match what the state manager produces. Enum values must align with the state machine definition.

[RECONCILIATION_RULES]

Business rules for determining when an item should be marked resolved, abandoned, or kept open

Mark resolved when user confirms completion or assistant states completion without user objection within 2 turns. Mark abandoned when user explicitly declines or topic shifts permanently. Keep open when clarification is pending.

Must be non-empty string. Should be sourced from a tested rules document. Avoid contradictory rules. Test with edge cases: implicit resolution, user silence, topic shifts, corrections.

[OUTPUT_SCHEMA]

JSON schema for the reconciliation report output

{"type": "object", "properties": {"reconciled_items": {"type": "array"}, "drift_detected": {"type": "boolean"}, "corrections": {"type": "array", "items": {"type": "object", "properties": {"item_id": {"type": "string"}, "current_status": {"type": "string"}, "corrected_status": {"type": "string"}, "evidence_turn": {"type": "integer"}, "rationale": {"type": "string"}}}}, "new_items_detected": {"type": "array"}, "stale_items": {"type": "array"}}, "required": ["reconciled_items", "drift_detected", "corrections"]}

Must be valid JSON Schema. Validate with a schema validator. Required fields must be present in every output. Enum values for status must match [STATE_SCHEMA]. evidence_turn must reference a turn present in [CONVERSATION_TRANSCRIPT].

[MAX_TURNS_TO_ANALYZE]

Upper bound on transcript turns to process for cost and latency control

50

Must be a positive integer. Validate range 1-200. If transcript exceeds this, pre-truncate before passing to prompt. Log a warning if truncation occurs. Null allowed to process full transcript.

[CONFIDENCE_THRESHOLD]

Minimum confidence score for automated state corrections without human review

0.85

Must be a float between 0.0 and 1.0. Validate range. Corrections below this threshold should route to human review queue. Set to 1.0 to require human review on all corrections. Set to 0.0 only for non-production testing.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Conversation State Reconciliation Prompt into a production application with validation, retries, and human review.

The reconciliation prompt is not a standalone chat interaction—it is a batch comparison job that should run as part of a state management pipeline. Wire it into your application as a scheduled or event-driven check that fires after significant conversation turns, before session closeout, or when a state-change event is logged. The prompt expects two structured inputs: the current internal state object (your system's model of open items) and the raw conversation transcript. These must be formatted consistently, with turn-level timestamps or IDs that allow the model to reference specific locations in the transcript. The output is a reconciliation report with corrections—your application must parse this report and apply state mutations programmatically, not just display it to a user.

Build a validation layer around the reconciliation output before mutating state. The prompt's output schema should include a list of corrections, each with an action type (mark_resolved, mark_unresolved, add_missing, remove_stale), the affected item ID, and a citation to the transcript turn that justifies the correction. Your harness must verify that every cited turn ID exists in the input transcript, that no duplicate corrections target the same item, and that the proposed state transitions are valid (e.g., you cannot mark an item as resolved if it was never open). For high-stakes workflows—support tickets, healthcare, legal—add a human review gate: if the reconciliation report changes more than N items or flags a severity-1 discrepancy, queue the report for manual approval before applying mutations. Log every reconciliation run with input hashes, output diffs, and reviewer decisions for auditability.

Model choice matters here. This prompt requires strong instruction-following and structured output reliability. Use a model with native JSON mode or function-calling support, and set temperature=0 to minimize hallucinated corrections. If your state object is large, consider chunking: reconcile one category of open items at a time (e.g., unanswered questions separately from deferred tasks) to stay within reliable context windows. Implement a retry loop with a maximum of 2 attempts: if the output fails schema validation, feed the validation errors back into a retry prompt with the original inputs. If retries are exhausted, log the failure and escalate to a human operator—never silently apply a malformed reconciliation. Finally, instrument the pipeline with metrics: reconciliation frequency, correction count distribution, human review escalation rate, and time-to-resolution for detected drift. These metrics will tell you whether your state tracking logic needs improvement upstream, before the reconciliation prompt becomes a permanent crutch.

IMPLEMENTATION TABLE

Expected Output Contract

Schema for the reconciliation report. Every field must be validated before the report is accepted by downstream state management or human review queues.

Field or ElementType or FormatRequiredValidation Rule

reconciliation_id

string (UUID v4)

Must be a valid UUID v4 generated by the application layer, not the model.

timestamp

string (ISO 8601)

Must parse as a valid ISO 8601 datetime in UTC. Reject if missing timezone offset.

session_id

string

Must match the active session identifier. Reject on mismatch.

state_model_version

string

Must match the current state schema version. Reject if version is unrecognized or missing.

drift_detected

boolean

Must be true or false. If true, at least one entry in corrections array is required.

corrections

array of objects

Must be a valid JSON array. If empty, drift_detected must be false. Each object must conform to the correction_item schema.

correction_item.item_id

string

Must match an existing item_id in the provided state model. Reject if item_id is not found in the input state.

correction_item.field

string (enum)

Must be one of: status, assignee, priority, title, due_date, resolution_note. Reject on unknown field.

correction_item.current_state_value

string or null

Must be the exact value from the input state model for the specified field. Reject if it does not match the input state.

correction_item.corrected_value

string or null

Must not equal current_state_value. If null, must be explicitly allowed for the field. Reject if no change is proposed.

correction_item.evidence_turn_ids

array of integers

Each integer must reference a valid turn index in the provided transcript. Reject if any turn_id is out of range.

correction_item.confidence

number (0.0 to 1.0)

Must be a float between 0.0 and 1.0 inclusive. Values below [CONFIDENCE_THRESHOLD] should be routed for human review.

correction_item.rationale

string

Must be non-empty and contain a direct quote or paraphrase from the evidence turn. Reject if rationale is missing or generic.

unresolved_items_summary

array of objects

Must be a valid JSON array. Each object must contain item_id and status fields. Status must be 'unresolved' or 'in_progress'.

stale_items_for_retirement

array of strings (item_id)

If present, each item_id must exist in the input state and have no activity in the last [STALENESS_THRESHOLD] turns.

PRACTICAL GUARDRAILS

Common Failure Modes

Reconciliation between internal state and conversation transcript is brittle. These are the most common failure modes and how to prevent them.

01

Implicit Resolution Drift

What to watch: The user signals resolution through implication ('That works', 'Okay, next') but the state model requires an explicit resolved flag. The prompt marks the item as open, creating a false positive. Guardrail: Include few-shot examples of implicit vs. explicit resolution in the prompt. Add a resolution_confidence field and require high confidence for explicit state transitions.

02

Reference Ambiguity Collapse

What to watch: The user resolves 'it' or 'that issue' without naming the specific open item. The prompt maps the resolution to the wrong item or creates a new phantom item. Guardrail: Require the prompt to output a reference_candidate list ranked by likelihood before committing to a match. If no candidate exceeds the threshold, flag for human review instead of guessing.

03

Temporal Ordering Violation

What to watch: The prompt processes turns out of order or applies a resolution from turn 7 to an item opened in turn 9. State history becomes corrupted. Guardrail: Include turn timestamps or sequence IDs in the input schema. Add a validation step that checks resolution_turn > open_turn for every state change. Reject outputs that violate temporal ordering.

04

Partial Resolution Misclassification

What to watch: A multi-part question gets a partial answer. The prompt marks the entire item as resolved instead of splitting it into resolved and pending sub-items. Guardrail: Design the output schema to support sub_items with independent status fields. Include a post-processing check that flags items marked resolved when only a subset of sub-questions were addressed.

05

State Model Hallucination

What to watch: The prompt invents open items that never appeared in the transcript, often because it over-generalizes from patterns in the system prompt or few-shot examples. Guardrail: Require every open item in the output to include a source_turn citation with verbatim quote evidence. Run a post-reconciliation validator that rejects items without grounded transcript references.

06

Correction Cascade Failure

What to watch: The user corrects one fact, which invalidates three downstream open items. The prompt only updates the directly corrected item, leaving stale dependent items in the state. Guardrail: Include a dependency graph in the state model. When a correction is detected, the prompt must re-evaluate all downstream items and output a cascade_impact diff showing which items were invalidated, updated, or preserved.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to evaluate the reconciliation report before shipping. Each criterion targets a known failure mode in state-vs-transcript drift detection.

CriterionPass StandardFailure SignalTest Method

Missed Resolution Detection

All items marked resolved in state but still active in transcript are flagged as drift

Resolved items with active discussion are omitted from the drift report

Run against transcripts with known false-resolved items; check recall of drift flags

False Resolution Prevention

Items correctly resolved in both state and transcript are not flagged as drift

Correctly resolved items appear in the drift report as false positives

Run against clean transcripts with no drift; verify zero false-positive drift flags

Implicit Resolution Recognition

Items resolved through implicit signals (e.g., user says 'that works') are detected and matched to state

Implicit resolutions are missed, causing false drift flags for items the user accepted

Test with transcripts containing indirect acceptance language; verify resolution detection

Correction Suggestion Accuracy

Each drift item includes a specific correction action (mark-resolved, mark-open, re-evaluate) that matches the transcript evidence

Correction suggestions contradict the transcript or suggest no-op changes for real drift

Spot-check correction fields against transcript evidence for 20 drift items; require >90% accuracy

State Item Coverage

Every open item in the state model appears in the reconciliation report with a status determination

State items are silently omitted from the report, creating blind spots in drift detection

Count state items input vs. report items output; require 100% coverage

Transcript Evidence Citation

Each drift determination includes a direct quote or turn reference from the transcript as evidence

Drift flags lack supporting evidence or cite irrelevant transcript passages

Parse evidence fields; verify each contains a verifiable transcript reference

Stale Item Retirement Flagging

Items with no mention in the last [N] turns are flagged for staleness review with a confidence score

Stale items are treated identically to actively discussed items, or all items are incorrectly flagged as stale

Test with transcripts where 50% of open items are stale; verify staleness flags match expected distribution

Multi-Item Dependency Handling

When resolving item A implicitly resolves item B, both items are updated with cross-reference notes

Dependent items are left in conflicting states or resolved without acknowledging the dependency

Test with chained action items; verify dependency-aware resolution in the report

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a lightweight state model. Replace the full reconciliation schema with a simple list of [OPEN_ITEMS] and [RESOLVED_ITEMS] from your application state. Skip the confidence scoring and evidence citation fields. Run against a small sample of 10-20 conversations to validate the drift detection logic before adding complexity.

Watch for

  • False positives where the model flags items as unresolved that the user implicitly accepted
  • Overly strict matching between state labels and transcript language (e.g., 'completed' vs 'done')
  • Missing edge cases where the state model uses different terminology than the conversation
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.