This prompt is designed for long-running autonomous agents whose execution spans minutes, hours, or days. During that window, the external world—database schemas, file systems, API endpoints, user permissions, or dependent service states—can change. When an agent continues executing a plan that assumes a now-invalid state, the result is wasted resources, incorrect outputs, or cascading tool failures that require expensive manual intervention. The staleness detection prompt compares the original plan's assumptions against current state observations and produces a structured assessment of which plan steps remain valid, which are stale, and what a refreshed plan segment should look like. The primary job-to-be-done is preventing silent plan decay before the agent takes another action.
Prompt
Agent Plan Staleness Detection and Refresh Prompt

When to Use This Prompt
Identify the operational conditions where plan staleness detection prevents wasted compute and cascading failures in long-running agents.
Use this prompt inside an agent harness that can inject two critical inputs: (1) the original plan with its explicit assumptions about external state, and (2) current state observations gathered from the environment (e.g., schema introspection, file existence checks, API health probes, permission audits). The harness should also supply a history of completed steps so the refresh preserves finished work rather than restarting. Do not use this prompt for short-lived, single-turn tasks where the plan cannot go stale before completion—adding staleness checks to a sub-second API call adds latency without benefit. Similarly, avoid this prompt when the agent operates in a fully static environment where external state changes are impossible by design.
Before wiring this into production, define staleness severity thresholds that determine whether the agent should auto-refresh and continue, pause for human review, or abort entirely. A schema column rename might be auto-recoverable; a revoked production credential should trigger immediate escalation. Pair this prompt with eval checks that verify the refreshed plan preserves completed work, correctly identifies stale assumptions, and does not introduce new steps that conflict with the current state. If your agent operates in regulated or high-risk domains, require human approval on the refreshed plan segment before execution resumes.
Use Case Fit
Where this prompt works and where it does not. Understand the operational boundaries before wiring it into an agent harness.
Good Fit: Long-Running Autonomous Agents
Use when: agents execute multi-step plans over minutes or hours where external state (APIs, databases, queues) can change independently. Guardrail: Trigger staleness checks before each major action boundary, not just on a timer.
Bad Fit: Stateless Single-Turn Calls
Avoid when: the agent completes its entire task in one model call with no external state dependencies. Guardrail: Adding staleness detection here adds latency and token cost with no benefit. Use a simple pre-execution context check instead.
Required Inputs: Plan Snapshot and External State
Risk: The prompt cannot detect staleness without a reference plan and current state evidence. Guardrail: Always pass the original plan steps, assumptions, and a fresh observation of external state. Never rely on the agent's memory alone.
Operational Risk: False-Positive Staleness Flags
Risk: Overly sensitive detection can cause the agent to discard valid progress and re-plan unnecessarily. Guardrail: Require the prompt to cite specific changed assumptions before marking a plan stale. Log staleness reasons for observability.
Operational Risk: Preserving Completed Progress
Risk: A refresh that discards completed steps wastes compute and can create side-effect duplication. Guardrail: The prompt must output a completed_steps_preserved list alongside the refreshed plan segment. Validate this in evals.
Bad Fit: Hard Real-Time Control Loops
Avoid when: the agent operates in sub-second control loops where plan refresh latency is unacceptable. Guardrail: For real-time systems, use deterministic state checks in code. Reserve this prompt for asynchronous, decision-speed workflows.
Copy-Ready Prompt Template
A copy-ready prompt for detecting stale agent plans and generating a refreshed plan segment that preserves completed progress.
This template is designed to be pasted directly into your agent harness when a long-running agent's plan may have become invalid due to external state changes. It instructs the model to assess staleness, identify which assumptions are obsolete, and produce a refreshed plan segment without discarding work that has already been completed. Replace every square-bracket placeholder with runtime values before sending the prompt to the model.
textYou are an agent plan auditor. Your task is to detect staleness in an agent's execution plan and produce a refreshed plan segment when the original plan is no longer valid. [ORIGINAL_PLAN] [COMPLETED_STEPS] [CURRENT_STATE] [EXTERNAL_CHANGES] # Instructions 1. Compare the [ORIGINAL_PLAN] against [CURRENT_STATE] and [EXTERNAL_CHANGES]. 2. Identify every assumption in the original plan that is now obsolete, invalid, or contradicted by new evidence. List each obsolete assumption with a one-sentence explanation of why it is stale. 3. Determine which steps in [COMPLETED_STEPS] remain valid and do not need to be repeated. List them explicitly as preserved progress. 4. Generate a refreshed plan segment that replaces only the stale portions of the original plan. The refreshed segment must: - Preserve the original goal stated in [ORIGINAL_PLAN]. - Reuse any valid completed steps without re-executing them. - Propose new steps only for the portions of the plan affected by staleness. - Respect all constraints from [CONSTRAINTS]. 5. If no staleness is detected, respond with {"staleness_detected": false, "reasoning": "<brief explanation>"} and do not generate a refreshed plan. [CONSTRAINTS] [OUTPUT_SCHEMA]
Adaptation notes: Replace [ORIGINAL_PLAN] with the full plan the agent was following, including goals, steps, and assumptions. [COMPLETED_STEPS] should contain a structured log of actions already taken and their outcomes. [CURRENT_STATE] is the latest observed state of the system or environment. [EXTERNAL_CHANGES] captures any events, data updates, or signals that may have invalidated the plan since it was created. [CONSTRAINTS] should include resource limits, safety rules, and domain-specific boundaries. [OUTPUT_SCHEMA] must define the exact JSON structure you expect, including fields for staleness_detected, obsolete_assumptions, preserved_progress, and refreshed_plan_segment. If your harness uses structured output APIs, remove the schema instruction and enforce the schema at the API level instead.
Before deploying this prompt in production, validate its behavior against a golden set of stale-plan scenarios. Common failure modes include the model failing to recognize subtle staleness (false negatives), flagging assumptions as stale when they are still valid (false positives), or generating a refreshed plan that inadvertently repeats completed work. For high-stakes agent workflows, route outputs where staleness_detected is true to a human reviewer before the agent resumes execution. Log every staleness assessment with the original plan, completed steps, and refreshed segment for auditability.
Prompt Variables
Each placeholder required by the Agent Plan Staleness Detection and Refresh Prompt. Use these to construct the prompt payload before sending it to the model harness.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ORIGINAL_GOAL] | The agent's top-level objective as stated at the start of the run | Deploy the payment-service hotfix to staging, run the integration suite, and report results | Required. Must be a non-empty string. Compare against the current plan to detect goal drift. |
[CURRENT_PLAN] | The full multi-step plan the agent is currently executing, including completed, in-progress, and pending steps | Step 1: Checkout release branch (done). Step 2: Build container (done). Step 3: Push to staging registry (in-progress). Step 4: Run integration tests (pending). | Required. Must be a structured list or JSON array of steps with status markers. Null or empty triggers immediate re-plan. |
[EXECUTION_LOG] | A chronological log of actions taken, tool calls made, and results received since the plan began | Turn 3: tool=git_checkout args={branch:release/v2.1} result=success. Turn 4: tool=container_build args={dockerfile:./Dockerfile} result=success. | Required. Must contain at least one entry. Used to detect staleness by comparing logged state against external ground truth. |
[EXTERNAL_STATE_SNAPSHOT] | The current ground-truth state of the external environment, fetched just before staleness detection runs | Staging registry now requires image-signing. Integration test suite has been updated to v3.0. Deployment window closes in 15 minutes. | Required. Must be a non-empty string or structured object. This is the source of truth against which plan assumptions are checked. |
[STALENESS_THRESHOLD] | The minimum number of stale assumptions or severity level required to trigger a plan refresh | 2 stale assumptions OR 1 critical staleness finding | Required. Accepts an integer count or a structured severity rule. If null, default to 1 stale assumption. |
[COMPLETED_MILESTONES] | A list of milestones or sub-goals already achieved that must be preserved during any plan refresh | Hotfix branch checked out. Container built successfully. | Required. Must be a list of strings. Prevents the refresh from discarding completed work. If empty, pass an empty array. |
[CONSTRAINTS] | Immutable rules the agent must obey, such as approval requirements, tool allowlists, or compliance policies | Do not push to production without explicit approval. Do not modify the integration test suite. Keep all actions within the staging environment. | Required. Must be a non-empty string or list. Re-validated against any refreshed plan to prevent constraint violation. |
Implementation Harness Notes
How to wire the staleness detection prompt into an agent orchestration loop with validation, retries, and state management.
The staleness detection prompt is not a standalone utility—it is a decision node inside an agent orchestration loop. The harness invokes this prompt at predefined checkpoints: before executing a high-cost action, after a tool timeout, when external state change signals arrive, or on a fixed-interval heartbeat for long-running agents. The prompt receives the original plan, completed steps, current world state, and any new observations. It returns a structured staleness assessment and, if the plan is stale, a refreshed plan segment. The harness must treat this output as a control signal, not just text: parse the staleness flag, branch execution accordingly, and log the decision for observability.
Wire the prompt into your agent runtime with a strict contract. Define a typed output schema requiring is_stale (boolean), stale_assumptions (array of strings), preserved_progress (array of completed step IDs), and refreshed_plan_segment (array of new steps, nullable). Validate the response against this schema before acting on it. If validation fails, retry once with a repair prompt that includes the schema violation details. If is_stale is true but refreshed_plan_segment is empty or malformed, escalate to a human reviewer or fall back to a full re-planning prompt. Log every staleness check with the plan version, trigger reason, assessment result, and action taken—this trace is essential for debugging agent drift in production. For high-stakes domains, require human approval before executing the refreshed plan segment if the number of stale assumptions exceeds a configurable threshold or if the refreshed steps modify safety-critical actions.
Model choice matters here. Use a model with strong instruction-following and structured output support (GPT-4o, Claude 3.5 Sonnet, or equivalent). Avoid smaller models that may conflate staleness with uncertainty or produce inconsistent JSON under complex plan structures. Set temperature=0 or very low to maximize deterministic assessments. Implement a retry budget: two attempts for validation failures, one attempt for staleness detection, then escalate. Never loop the staleness check itself—if the refresh produces a plan that is immediately flagged as stale again, break the cycle, log the contradiction, and escalate. The harness should also track plan versioning: each refresh increments a version number, and the agent must not execute steps from mixed plan versions. Finally, instrument the harness to emit metrics on staleness check frequency, refresh rate, validation failure rate, and escalation rate—these become your leading indicators for plan quality degradation in long-running agent workflows.
Expected Output Contract
Fields, types, and validation rules for the staleness assessment and refreshed plan segment returned by the model. Use this contract to parse, validate, and route the response in your agent harness before applying the refreshed plan.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
staleness_assessment | object | Must contain staleness_score, stale_assumptions, and fresh_context fields. Schema check required before accessing nested fields. | |
staleness_assessment.staleness_score | number (0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Values outside range trigger a retry or fallback to conservative staleness=true. | |
staleness_assessment.stale_assumptions | string[] | Array of strings, each naming one assumption that may be invalid. Empty array allowed if staleness_score < 0.3. Each string must be non-empty. | |
staleness_assessment.fresh_context | string[] | Array of strings describing new information that contradicts or updates prior assumptions. Must be non-empty if staleness_score >= 0.5. Null not allowed. | |
refreshed_plan_segment | object | Must contain goal_restatement, preserved_progress, and revised_steps fields. Absence triggers a retry with explicit schema reminder. | |
refreshed_plan_segment.goal_restatement | string | Non-empty string restating the original goal with any updated constraints. Must not contradict the original goal passed in [ORIGINAL_GOAL]. Semantic drift check recommended. | |
refreshed_plan_segment.preserved_progress | object[] | Array of completed step summaries. Each object must have step_id and outcome fields. step_id must match an id from [COMPLETED_STEPS]. Empty array allowed if no progress preserved. | |
refreshed_plan_segment.revised_steps | object[] | Array of remaining steps. Each object must have step_id, action, and rationale fields. step_id must not duplicate any preserved_progress step_id. Array must be non-empty if staleness_score >= 0.3. |
Common Failure Modes
What breaks first when detecting and refreshing stale agent plans in production, and how to guard against it.
False-Positive Staleness Flags
What to watch: The staleness detector flags a plan as stale when only minor, irrelevant external state has changed, causing unnecessary and costly re-planning. Guardrail: Require the staleness prompt to output a severity score and a specific list of violated assumptions. Only trigger a refresh when core goal assumptions are broken, not cosmetic state changes.
Progress Amnesia After Refresh
What to watch: The refresh prompt generates a new plan that discards already-completed steps, causing the agent to repeat work or, worse, reverse side effects. Guardrail: The prompt must take a [COMPLETED_STEPS] input and be explicitly instructed to preserve and carry forward any completed, validated work into the new plan segment.
Infinite Re-Planning Loops
What to watch: A refreshed plan immediately fails its own staleness check due to a transient state, creating a tight loop of detection and refresh that burns tokens and time. Guardrail: Implement a cooldown counter in the harness. After N refreshes within a short window, bypass the staleness prompt and force an escalation to a human operator or a static fallback plan.
Goal Drift in Refreshed Plan
What to watch: The refresh prompt optimizes for the new state but subtly changes the original objective, causing the agent to solve a different problem than the user intended. Guardrail: Include the original, immutable [ROOT_GOAL] in the refresh prompt with a strict instruction: 'The new plan must satisfy the Root Goal above. If it does not, respond with UNSATISFIABLE instead of a plan.'
Staleness Blindness to Silent Failures
What to watch: The staleness prompt only checks explicit state changes but misses that a previous tool call returned a success code with a logically invalid payload, making the plan stale based on bad data. Guardrail: The staleness prompt must receive not just the plan but the last [TOOL_OUTPUT_SUMMARY]. Instruct it to cross-check the plan's next steps against the actual content of prior results, not just their status codes.
Overly Generic Refresh Output
What to watch: The refresh prompt returns a vague, high-level plan like 'Re-evaluate and proceed' instead of a concrete, executable next step with a tool call, leaving the agent stranded. Guardrail: Constrain the output schema to require a specific next_action with a tool_name and arguments object. Validate the schema in the harness and retry with a stricter prompt if the action is not executable.
Evaluation Rubric
Use this rubric to test the staleness detection and plan refresh prompt before deploying it into a production agent harness. Each criterion targets a specific failure mode observed in long-running agent workflows.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Staleness Detection Accuracy | Prompt correctly identifies at least one stale assumption from [CURRENT_STATE] that contradicts [ORIGINAL_PLAN] when a contradiction exists | Prompt returns 'no staleness detected' when a known contradiction is present in the input | Inject a test case where [CURRENT_STATE] contains a timestamp or resource status that conflicts with [ORIGINAL_PLAN]; verify the staleness flag is true |
False Positive Rate on Fresh Plans | Prompt returns 'no staleness detected' for a plan where [CURRENT_STATE] is consistent with [ORIGINAL_PLAN] and no external changes have occurred | Prompt flags a step as stale when all assumptions still hold; over-correction risk materializes | Feed a control case with identical plan and state; confirm staleness assessment is negative and no refresh is proposed |
Preservation of Completed Progress | Refreshed plan segment retains all steps marked as 'completed' in [COMPLETED_STEPS] and does not propose re-execution | Refreshed plan includes a step that was already completed, indicating progress loss | Provide a plan with 3 completed steps and 1 stale pending step; verify the output plan segment excludes the completed steps from the refresh |
Goal Re-Anchoring Integrity | Refreshed plan segment explicitly references [ORIGINAL_GOAL] and all new steps demonstrably serve that goal | Refreshed plan introduces steps that serve a different or expanded goal not present in [ORIGINAL_GOAL] | Compare the goal statement in the refreshed plan against [ORIGINAL_GOAL] using semantic similarity; flag if divergence exceeds threshold |
Stale Assumption Justification | Every flagged stale assumption includes a specific reason citing the conflicting field from [CURRENT_STATE] | Staleness flag is raised without explanation, or explanation references fields not present in [CURRENT_STATE] | Parse the staleness assessment output; verify each stale assumption has a non-empty justification that matches a field path in [CURRENT_STATE] |
Refresh Scope Containment | Refreshed plan segment only modifies steps downstream of the stale assumption; upstream and parallel branches are untouched | Refreshed plan rewrites steps that are not dependent on the stale assumption, causing unnecessary re-planning | Inject a plan with a stale assumption in step 4 of 8; verify steps 1-3 and any independent branches remain unchanged in the output |
Output Schema Compliance | Output strictly matches [OUTPUT_SCHEMA] with all required fields present and no extra top-level keys | Output is missing required fields such as 'staleness_detected' or 'refreshed_plan_segment', or includes hallucinated fields | Validate the JSON output against [OUTPUT_SCHEMA] using a schema validator; fail on any missing required field or unknown key |
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
Use the base prompt with a single frontier model. Replace the structured output schema with a looser markdown checklist. Skip the retry budget and staleness threshold parameters—hardcode a 5-minute staleness window. Run the prompt inline in a notebook or script without a validation harness.
Watch for
- The model may produce a narrative instead of a structured staleness assessment
- No guard against false-positive staleness flags when external state is actually unchanged
- Completed progress markers may be dropped if the prompt doesn't enforce preservation

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