This prompt is designed for products that support long-running, interruptible AI sessions where a user may pause a conversation and return hours or days later. The core job-to-be-done is to generate a concise restart brief that reorients both the assistant and the user without replaying the full conversation history, which is expensive, slow, and often unnecessary. The ideal user is an AI engineer or platform developer building a persistent chat product—such as a customer support copilot, a research assistant, or a task-oriented agent—where session state must be serialized for storage, handoff, or later resumption. The prompt produces two distinct artifacts: a user-facing natural language summary that welcomes the user back and recaps the current state, and a machine-facing structured state payload that the application can use to restore dialogue state, active slots, pending actions, and unresolved questions.
Prompt
Session Restart Summary Prompt for Pause-and-Resume

When to Use This Prompt
Defines the exact job-to-be-done for the Session Restart Summary Prompt and clarifies when it is the right tool versus when a different summarization strategy is required.
This prompt is specifically scoped for the pause-and-resume lifecycle event. It assumes that the full conversation history is available at the time of summarization but will not be replayed when the session resumes. The prompt should be triggered at the point of session archival or user disconnection, not mid-session. It is not designed for real-time turn-by-turn summarization, where a sliding window of recent turns must be continuously compressed into a running summary. It is also not suitable for compressing history that will be immediately reused within the same context window, as those workflows require different salience-scoring and budget-enforcement prompts that optimize for token allocation rather than human readability and state restoration. Using this prompt for continuous in-session compression will produce summaries that are too verbose for tight context budgets and too focused on user-facing readability rather than dense information preservation.
Before implementing this prompt, confirm that your product architecture supports storing and retrieving the machine-facing state payload alongside the user-facing summary. The prompt's value depends on the application's ability to rehydrate dialogue state from the structured payload—restoring active slots, pending tool calls, and unresolved questions—so the assistant can continue coherently without re-processing the original transcript. If your system cannot consume a structured state object at session restart, you should either extend your session management layer to do so or use a simpler summary-only prompt. Do not use this prompt for agent-to-agent handoff scenarios, which require a different context-packing strategy focused on active goals and constraints rather than user-facing reorientation.
Use Case Fit
Where the Session Restart Summary Prompt works well and where it introduces risk. Use these cards to decide if this prompt fits your product architecture before integrating it into a pause-and-resume workflow.
Good Fit: Long-Running, Interruptible Sessions
Use when: Users start a complex task, pause for hours or days, and expect to resume without repeating themselves. Why it works: The prompt compresses the full history into a dense restart brief, saving context budget and user patience. Guardrail: Always store the full transcript alongside the summary for audit and fallback.
Bad Fit: Real-Time, Low-Latency Chat
Avoid when: Every message must be processed in under 200ms with no persistence layer. Risk: Summarization adds latency and requires a storage round-trip. The overhead outweighs the benefit for ephemeral, single-session chats. Guardrail: Use this prompt only when a session persistence layer already exists and latency budget allows an extra inference call.
Required Inputs: Structured State and Raw Transcript
What you need: A raw conversation transcript, the last known machine-facing state payload, and a defined output schema for the restart brief. Risk: Without the prior state payload, the model cannot detect stale facts or unresolved questions. Guardrail: Validate that both inputs are non-empty and schema-conformant before calling the prompt. Fail closed if inputs are missing.
Operational Risk: Summary Drift Over Multiple Restarts
What to watch: If a session restarts many times, each summarization step can introduce small errors that compound. Risk: After 5+ restarts, the summary may omit critical decisions or misattribute actions. Guardrail: Implement a restart counter. After a threshold, force a full-history replay or escalate for human review instead of generating another compressed summary.
Operational Risk: Dropped Pending Actions
What to watch: The model may omit action items that were implied but not explicitly stated as unresolved. Risk: The user resumes the session and the assistant forgets a promised follow-up. Guardrail: Add an eval check that compares the generated summary's pending actions against a structured extraction of all action items from the raw transcript. Flag any omissions.
Bad Fit: Unstructured or Single-Turn Sessions
Avoid when: The session has no meaningful state to preserve—such as a single Q&A turn or a stateless search interaction. Risk: The prompt produces a verbose summary with no useful content, wasting tokens and storage. Guardrail: Gate the summarization call behind a minimum turn count or a statefulness heuristic before invoking this prompt.
Copy-Ready Prompt Template
A ready-to-use prompt template that generates a user-facing restart brief and a machine-readable state payload from a paused conversation transcript.
This template is the core engine for a pause-and-resume workflow. It instructs the model to process a raw session transcript and associated metadata, producing two distinct outputs: a friendly, human-readable summary paragraph to greet the returning user, and a strict JSON payload that your application can parse to restore dialogue state, active slots, and pending work. The prompt is designed to be dropped directly into your orchestration layer, with all dynamic values injected via your application code before the API call.
textYou are a session summarization engine for an AI assistant platform. Your task is to generate a restart brief for a paused conversation session. The user will return later and the assistant must resume seamlessly without replaying the full history. Generate two outputs: 1. A user-facing summary paragraph that greets the returning user, recaps what was discussed, states any decisions made, and lists any open questions or pending actions. 2. A machine-facing state payload in strict JSON format that the application will use to restore dialogue state. --- SESSION TRANSCRIPT --- [SESSION_TRANSCRIPT] --- END TRANSCRIPT --- Session metadata: - Session ID: [SESSION_ID] - Last activity timestamp: [LAST_ACTIVITY_TIMESTAMP] - Session duration: [SESSION_DURATION] - Active goals or intents from prior state: [ACTIVE_GOALS] - Pending actions from prior state: [PENDING_ACTIONS] - Unresolved questions from prior state: [UNRESOLVED_QUESTIONS] --- OUTPUT SCHEMA --- { "user_summary": "string (friendly, concise, 2-4 sentences)", "machine_state": { "session_id": "string", "last_activity": "ISO 8601 timestamp", "summary_brief": "string (dense factual summary for the assistant, 3-5 sentences)", "decisions_made": [{"decision": "string", "made_by": "user | assistant | mutual", "timestamp": "string"}], "pending_actions": [{"action": "string", "owner": "user | assistant | unassigned", "priority": "high | medium | low"}], "unresolved_questions": [{"question": "string", "context": "string (the turn or topic where it arose)"}], "active_slots": {"key": "value"}, "current_topic": "string | null", "sentiment_trajectory": "positive | neutral | negative | mixed", "restart_instructions": "string (guidance for the assistant on how to begin the resumed session)" } } --- CONSTRAINTS --- [CONSTRAINTS] Generate the output now.
To adapt this template, replace the bracketed placeholders with live data from your session store. The [SESSION_TRANSCRIPT] should be the full, formatted conversation history. The metadata fields ([ACTIVE_GOALS], [PENDING_ACTIONS], [UNRESOLVED_QUESTIONS]) are optional but highly recommended; they act as hints from your existing state tracker to improve summary accuracy. The [CONSTRAINTS] block is where you inject any additional rules, such as a maximum token length for the summary_brief field, domain-specific terminology requirements, or instructions to exclude PII. For high-stakes domains like healthcare or finance, add a constraint requiring the summary_brief to cite specific line numbers or turn IDs from the transcript for every factual claim.
Before deploying, you must implement a post-generation validation step. Parse the model's output and validate the machine_state against the defined JSON schema. Check that sentiment_trajectory is one of the allowed enum values and that all timestamps are valid ISO 8601 strings. If validation fails, retry the prompt once with the validation error message appended to the [CONSTRAINTS] block. For production systems, log the generated user_summary and machine_state alongside the [SESSION_ID] to build an audit trail of state transitions. The next step is to wire this prompt into your session lifecycle handler, ensuring it fires on session timeout or explicit user pause, and that the resulting restart_instructions field is injected as the first system message when the session resumes.
Prompt Variables
Required inputs for the Session Restart Summary Prompt. Each placeholder must be populated before the prompt is assembled and sent. Missing or malformed inputs are the most common cause of incomplete restart briefs.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[SESSION_TRANSCRIPT] | Full or compressed conversation history from the prior session, including user messages, assistant responses, and any tool outputs | User: I need to reset my MFA device. Assistant: I can help with that. First, can you confirm the last 4 digits of the recovery code you received? | Must contain at least one user-assistant exchange pair. Null or empty transcript should trigger a fallback prompt asking the user what they remember. Validate with length check > 0 characters. |
[SESSION_METADATA] | Structured object with session ID, start time, end time, duration, and any user identifiers needed for continuity | {"session_id": "sess_9a2b", "started_at": "2025-03-14T08:12:00Z", "ended_at": "2025-03-14T08:47:00Z", "user_id": "usr_551"} | Validate that session_id is present and non-empty. started_at must parse as ISO 8601. If user_id is null, the restart brief must not assume identity continuity beyond the session token. |
[UNRESOLVED_ITEMS] | Structured list of open questions, pending actions, and unconfirmed decisions extracted from the prior session | [{"type": "open_question", "text": "User asked about enterprise pricing", "priority": "high"}, {"type": "pending_action", "text": "Scheduled callback for March 15", "owner": "assistant"}] | Each item must have a type field from the allowed enum: open_question, pending_action, unconfirmed_decision. Null is allowed if no unresolved items exist. Validate array is present even if empty. |
[DECISIONS_LOG] | Chronological list of decisions made during the session, including what was decided and any constraints or commitments | [{"decision": "Approved refund for order ORD-8821", "timestamp": "2025-03-14T08:22:00Z", "binding": true}] | Each decision entry must include a decision field and a binding boolean. If binding is true, the restart brief must flag that the decision cannot be reversed without explicit user confirmation. Validate array structure with schema check. |
[USER_PREFERENCES_CAPTURED] | Any user-stated preferences, constraints, or requirements noted during the session that should persist across restart | [{"preference": "User prefers email over phone for follow-ups", "source_turn": 4}] | Each preference must include a source_turn reference for auditability. Null is allowed for sessions where no preferences were captured. Validate that source_turn is an integer referencing a turn in [SESSION_TRANSCRIPT]. |
[RESTART_REASON] | Enum indicating why the session is restarting: timeout, user_initiated, error_recovery, or scheduled_resume | timeout | Must match one of: timeout, user_initiated, error_recovery, scheduled_resume. If error_recovery, the restart brief must include an acknowledgment of the prior failure. Validate with enum check before prompt assembly. |
[OUTPUT_SCHEMA] | JSON schema defining the expected structure of the restart brief, including user-facing summary and machine-facing state payload | {"user_summary": "string", "machine_state": {"active_intent": "string", "pending_actions": "array", "decisions": "array"}} | Schema must be valid JSON Schema draft. Validate with schema parser before prompt assembly. Missing schema should default to the playbook's standard output contract. Machine state fields must map to downstream state machine expectations. |
[TOKEN_BUDGET] | Maximum token count allowed for the combined restart brief output, used to enforce compression if the summary would exceed limits | 500 | Must be a positive integer. If the generated brief exceeds this budget, a compression retry should be triggered. Validate with token counter post-generation. Null means no budget enforcement, but this is discouraged for production use. |
Implementation Harness Notes
Wire the session restart summary prompt into your application's session lifecycle manager with validation, storage, and resume logic.
Integrate this prompt into your application's session lifecycle management layer. The trigger points are explicit user pause commands, session timeouts, or periodic auto-save checkpoints during long-running conversations. When triggered, construct the prompt call with the full conversation transcript and any known state variables such as active task IDs, user preferences, or pending approvals. The prompt returns a structured machine_state JSON payload containing restart_instructions, summary_brief, and user_summary. Store this payload in your session database keyed by session ID, alongside a timestamp and the model version used. When the user resumes, load the machine_state and inject restart_instructions and summary_brief into the assistant's system prompt or as the first user turn. Render the user_summary field directly to the user as a greeting message that reorients them without replaying the full history.
Implement a validation step that checks the output against the expected schema before storage. Define a strict schema with required fields: restart_instructions (string), summary_brief (string), user_summary (string), pending_actions (array of objects with action, owner, status), and open_questions (array of strings). If validation fails, retry once with a repair prompt that includes the original transcript, the malformed output, and the specific validation errors. If the session transcript is very short—fewer than three substantive turns with actual task content—skip this prompt entirely and store the raw transcript instead. This prevents unnecessary summarization overhead for trivial interactions. Log every generated summary with the session ID, timestamp, model version, and token counts for debugging and evaluation. For regulated domains such as healthcare or finance, flag the machine_state for human review before it is used to resume the session. The reviewer should confirm that no critical decisions, commitments, or clinical facts were dropped or hallucinated in the compression step.
Choose a model with strong instruction-following and structured output capabilities for this prompt. The task requires precise schema adherence and factual faithfulness to the source transcript, making it a poor fit for smaller or less reliable models. If your application already uses a validation and retry harness for other structured outputs, reuse that infrastructure here. Avoid storing the machine_state without validation—an invalid or hallucinated summary will corrupt the user's session on resume and erode trust. Test this prompt with transcripts of varying lengths, including edge cases with rapid topic shifts, user corrections, and multi-step task dependencies. The most common production failure mode is a summary that drops a pending action item the user explicitly asked about, so focus your evaluation on action item completeness and factual consistency with the original transcript.
Expected Output Contract
Fields, types, and validation rules for the Session Restart Summary output. Use this contract to build a parser, validator, or eval harness before deploying the prompt.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
user_facing_summary | string (1-3 sentences) | Must be plain text, no markdown. Length between 50 and 300 characters. Must not contain any PII placeholders or unresolved template tokens. | |
machine_state_payload | JSON object | Must parse as valid JSON. Must contain the keys 'active_goal', 'completed_steps', 'pending_actions', 'open_questions', and 'last_context_snapshot'. No additional top-level keys allowed. | |
active_goal | string or null | If null, 'completed_steps' must be empty and 'pending_actions' must be empty. If non-null, must be a single sentence describing the current objective. | |
completed_steps | array of strings | Each element must be a non-empty string. Array must not contain duplicate entries. Order must reflect chronological completion sequence. | |
pending_actions | array of objects | Each object must have 'action' (string), 'owner' (string, one of 'user', 'assistant', 'system'), and 'priority' (string, one of 'high', 'medium', 'low'). Array length must not exceed 10. | |
open_questions | array of strings | Each element must be a non-empty string ending with a question mark. Array must not contain questions already answered in 'completed_steps' or 'last_context_snapshot'. | |
last_context_snapshot | string | Must be a verbatim excerpt from the last 2 turns of the conversation, enclosed in quotes. Length between 20 and 500 characters. Must not be a paraphrase or summary. | |
restart_instruction | string | Must be a single imperative sentence directed at the assistant, beginning with 'You are resuming a session where...'. Must reference at least one field from 'machine_state_payload'. |
Common Failure Modes
What breaks first when generating restart summaries and how to guard against it.
Hallucinated State or Decisions
What to watch: The model invents a decision, action item, or user preference that never occurred in the original session. This is the highest-risk failure because it corrupts the continuation state. Guardrail: Require a faithfulness verification step that compares each summary claim against the original transcript. Flag any unsupported assertion for human review before the state payload is committed.
Dropped Critical Context
What to watch: The summary omits a binding commitment, an unresolved question, or a key constraint that the assistant must remember to continue correctly. The restart feels seamless but the assistant has amnesia about a crucial detail. Guardrail: Implement a completeness checklist in the prompt that explicitly requires sections for 'Open Questions', 'Pending Actions', and 'Active Constraints'. Run a secondary extraction prompt to verify all action items from the transcript appear in the summary.
Stale Context Propagation
What to watch: The summary preserves a fact the user later corrected or a temporary assumption that is no longer valid. The assistant resumes with outdated information and confidently acts on it. Guardrail: Add a 'Corrections and Superseded Facts' section to the summary schema. Instruct the model to prioritize later corrections over earlier statements and explicitly mark invalidated context rather than silently dropping it.
Ambiguous Reference Drift
What to watch: Pronouns, implicit references, or shorthand from the original conversation lose their referents when compressed into a summary. 'That approach' or 'the second option' becomes meaningless without the full turn context. Guardrail: Require the summary to resolve all anaphora and implicit references into explicit, self-contained descriptions. Add a validation rule that no summary sentence may contain unresolved pronouns or deictic references.
User-Facing vs. Machine State Mismatch
What to watch: The human-readable restart message and the machine-facing state payload diverge. The user sees one summary while the assistant's internal state contains different or additional information, causing confusion when the assistant acts on hidden context. Guardrail: Generate both outputs from a single structured schema where the user-facing text is derived directly from the machine state fields. Validate that every claim in the user message has a corresponding field in the state payload.
Token Budget Overrun on Restart
What to watch: The generated summary plus the new system prompt and initial user message exceeds the context window, forcing silent truncation that drops the most recent instructions. Guardrail: Enforce a strict token budget for the restart payload. Include a budget compliance check that counts tokens before injection and triggers compression or pruning if the combined restart context exceeds the limit.
Evaluation Rubric
Use this rubric to evaluate the quality of a Session Restart Summary before shipping. Each criterion targets a specific failure mode common in pause-and-resume workflows. Run these checks programmatically or via human review before exposing the summary to users.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
User-Facing Summary Completeness | Summary includes the last resolved topic, any pending action items, and open questions from the prior session. | Summary omits a pending action item that was explicitly assigned in the transcript. | Diff the extracted action items from the full transcript against the summary's action item list. Flag any missing items. |
Machine State Payload Schema Validity | The [MACHINE_STATE] JSON block conforms to the defined schema with all required fields present and correctly typed. | Schema validation fails due to missing | Validate the output against the JSON Schema using a programmatic validator. Reject on any schema error. |
Factual Consistency with Transcript | All claims in the summary (decisions, user facts, constraints) are directly supported by the original session transcript. | The summary states a decision was made when the transcript shows it was only discussed, or invents a user preference not stated. | Use an LLM-as-judge faithfulness check: for each claim in the summary, require a verbatim quote from the transcript as evidence. |
Stale Context Exclusion | The summary excludes facts or decisions that the user explicitly corrected or superseded later in the prior session. | A corrected user requirement (e.g., old budget) appears in the restart summary instead of the updated value. | Check the summary against a |
Conciseness and Token Budget Adherence | The combined user summary and machine state payload fit within the specified [TOKEN_BUDGET] without truncating critical information. | The output exceeds the token budget, or critical action items are truncated mid-sentence to fit. | Count output tokens programmatically. If over budget, check if low-salience turns were pruned before critical facts. |
Restart Orientation Clarity | The user-facing summary begins with a brief reorientation statement that allows the user to resume without re-reading the full history. | The summary dives into details without a framing sentence, or the framing sentence is a generic 'Continuing where we left off' with no specifics. | Human review: can a new reader understand the session's last known state from the first two sentences alone? |
Pending Action Re-surfacing | All unresolved action items from the prior session are explicitly listed with their original context and any noted dependencies. | An action item is mentioned in the narrative summary but missing from the structured [PENDING_ACTIONS] list in the machine state. | Cross-reference the |
Unresolved Question Inventory | Open questions from the prior session are listed with a priority marker, and stale questions are deprioritized or removed. | A question the user asked twice and then moved on from is listed as high priority, or a critical blocking question is missing entirely. | Check the |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a single example restart summary. Remove strict schema enforcement and allow the model to output a combined user-facing message and machine-readable block in one response. Use a simple delimiter like ---STATE--- to separate the two sections instead of requiring valid JSON.
codeGenerate a restart brief for this session. First write a short message to the user reorienting them. Then, after ---STATE---, write a key-value summary of pending actions, open questions, and active constraints. Session transcript: [TRANSCRIPT]
Watch for
- The model may blend the user message and state payload, making parsing fragile.
- Without schema constraints, field names will drift across runs.
- No validation means missing pending actions won't be caught until users complain.

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us