An LLM can produce an impressive-looking plan in seconds.
That does not mean it has solved the task.
A plan is a proposed sequence of actions intended to move a system from its current state toward a desired goal. It is an executable hypothesis about what should happen next.
That distinction matters because a plan can be:
- logically coherent but impossible to execute;
- executable but based on false assumptions;
- correct when created but invalidated by later events;
- unnecessarily detailed;
- missing dependencies;
- missing verification;
- or simply optimized for producing a convincing-looking answer rather than achieving the goal.
Planning is therefore not synonymous with thinking, reasoning, or intelligence.
It is a particular engineering artifact that sits between goal and action.
Start with the goal, not the steps
Consider this request:
βOrganize a conference for 500 people.β
A weak planning prompt immediately asks an LLM:
βGive me a 20-step plan.β
The result may contain plausible steps, but it may never establish what success means.
A stronger formulation begins with:
GOAL
Run a conference for 500 attendees.
CONSTRAINTS
- date is fixed
- budget is fixed
- venue capacity must be β₯500
SUCCESS CONDITIONS
- venue confirmed
- required services contracted
- registrations operational
- safety requirements satisfied
- event delivered within budget
Only then should the system derive actions.
This gives us a basic relationship:
GOAL
β
SUCCESS CONDITIONS
β
CURRENT STATE
β
GAP
β
PLAN
β
ACTIONS
A plan without a clearly defined goal and current state is often just a list.
Goals, plans, actions and state are different
These concepts are easy to blur together.
Goal: the desired condition.
State: what is currently true.
Plan: a proposed sequence or structure of actions for moving from the current state toward the goal.
Action: an operation intended to change the state or obtain information.
Observation: evidence about what actually happened.
For example:
GOAL:
Deploy version 4 safely.
CURRENT STATE:
Version 3 is running.
PLAN:
1. Inspect changes.
2. Run tests.
3. Build artifact.
4. Deploy to staging.
5. Verify staging.
6. Deploy production.
7. Verify production.
ACTION:
Deploy staging artifact.
OBSERVATION:
Health check fails.
NEW STATE:
Staging deployment unsuccessful.
At this point the original plan is no longer authoritative. It was a hypothesis based on the previous state.
A plan is not a script
A traditional script often assumes that the environment behaves according to known rules.
An agent operates in an environment where observations can invalidate assumptions.
Compare:
SCRIPT
A β B β C β D
with:
PLAN
A β B β C β D
β
OBSERVATION
β
Does reality match?
β β
YES NO
β β
D REPLAN
This is why good agent planning is often better represented as closed-loop control than as a static checklist.
The agent proposes a course of action, executes part of it, observes the environment, and updates the plan.
Plans contain assumptions
Every plan implicitly says:
βI believe these conditions will hold while I execute these steps.β
Make those assumptions explicit.
Suppose an AI coding agent plans:
1. Modify module A.
2. Run tests.
3. Update dependency B.
4. Run tests again.
5. Commit.
Hidden assumptions might include:
- module A exists where expected;
- the working tree is clean;
- dependency B is compatible;
- tests are available;
- the test environment works;
- no other process modifies the repository;
- the user actually wants the dependency changed.
If one assumption is false, the plan needs revision.
A useful planning system therefore records important assumptions rather than treating the generated sequence as certain.
Copy-paste prompt: make the LLM expose its assumptions
I will give you a task.
Do NOT produce a plan immediately.
First identify:
1. The desired end state.
2. The current state, including what is unknown.
3. The constraints.
4. The success criteria.
5. The important assumptions that would need to be true.
6. The information that should be obtained before acting.
7. The actions that could change the environment.
8. The observations that would indicate the plan is working.
9. The observations that would invalidate the plan.
Only then produce a plan.
For every major step, include:
- purpose;
- prerequisite;
- expected observation;
- failure condition;
- replanning trigger.
TASK:
[YOUR TASK]
This changes the LLM's role from list generator to planning analyst.
Decomposition is usefulβbut dangerous
Complex goals often need decomposition.
For example:
GOAL: Publish a research report
βββ Gather evidence
βββ Analyse evidence
βββ Draft report
βββ Review claims
βββ Format report
βββ Publish
Decomposition makes complexity manageable.
But arbitrary decomposition can create artificial complexity.
An LLM might turn a simple task into 47 subtasks because doing so makes the plan look thorough.
The right question is not:
βHow many subtasks can we create?β
It is:
βWhich subtasks represent meaningful dependencies, distinct decisions, or independently verifiable outcomes?β
A decomposition is useful when it changes how the work can be executed, verified, parallelized, delegated, or recovered.
Dependencies matter more than lists
Suppose an agent needs to:
- choose a venue;
- print badges;
- publish the registration page;
- finalize the schedule.
These are not necessarily independent.
Perhaps the venue determines the available rooms, which constrains the schedule, which determines badge information.
Representing the work as:
Venue
β
Rooms
β
Schedule
β
Badges
can be more useful than a numbered list.
A plan can therefore be represented as a dependency graph:
A
/ \
B C
\ /
D
Here D cannot begin until the relevant prerequisites from B and C are satisfied.
This also exposes opportunities for parallel execution:
A
/ \
B C
\ /
D
B and C may be parallelizable if they do not conflict and do not require each other's outputs.
That is a genuine systems property, not merely a prompting trick.
Planning under uncertainty
Real tasks contain unknowns.
A strong planner should distinguish:
KNOWN
The venue contract is signed.
UNKNOWN
The final catering cost.
ASSUMPTION
The caterer can serve 500 people within the remaining budget.
DECISION
Whether to proceed with the caterer.
If an unknown can materially change the plan, the system may need an information-gathering action before committing to downstream work.
That gives us another important planning primitive:
Sometimes the best next action is not to make progress toward the goal, but to reduce uncertainty about what action should come next.
For an agent, search, measurement, inspection, simulation, or asking a human can therefore be part of planning itself.
Plans should have checkpoints
Long plans are fragile.
Instead of:
1 β 2 β 3 β 4 β 5 β 6 β 7 β 8 β 9 β 10
consider checkpoints:
PLAN
β
CHECKPOINT A
β
EXECUTE
β
VERIFY
β
CHECKPOINT B
β
EXECUTE
β
VERIFY
At each checkpoint, ask:
- Did the expected state change occur?
- Are the assumptions still true?
- Did new information appear?
- Has the goal changed?
- Is the remaining plan still valid?
This reduces the cost of discovering at step 10 that step 3 was based on a false assumption.
Replanning is not failure
Suppose an agent plans:
Find cheapest flight
β book flight
β reserve hotel
During execution the chosen flight disappears.
A brittle system treats the plan as failed.
A better system treats the observation as information:
PLAN
β
SEARCH
β
OBSERVATION: option unavailable
β
UPDATE STATE
β
REPLAN
β
NEW PLAN
Replanning is therefore a normal part of agent operation.
But unrestricted replanning creates another problem: the agent can loop forever.
A reliable system needs termination conditions and bounded recovery.
Copy-paste prompt: design replanning rules
Design a planning-and-replanning policy for this agent:
TASK:
[DESCRIBE TASK]
The agent should create an initial plan, execute it incrementally, observe the environment, and replan when necessary.
Define:
1. What observations count as normal progress.
2. What observations invalidate the current plan.
3. What observations require only a local adjustment.
4. What observations require complete replanning.
5. When the agent should ask the user for clarification.
6. When the agent should stop rather than continue planning.
7. A maximum number of retries or replanning cycles.
8. Conditions under which the original goal is no longer achievable.
9. How to preserve useful completed work when replanning.
Give concrete examples of each category.
This prompt is especially useful for testing whether an agent has a recovery strategy or merely an optimistic happy-path plan.
Planning versus reasoning
The distinction is subtle.
An LLM may reason about a problem without producing an explicit plan.
It may also produce a plan without deeply understanding why each step is necessary.
A plan is therefore an observable artifact that can be inspected, executed, evaluated, and revised.
That makes it valuable even when the underlying reasoning remains partly opaque.
But we should avoid a common inference:
βThe model produced a detailed plan, therefore the model reasoned deeply.β
That conclusion does not follow.
The plan might be verbose, generic, internally inconsistent, or disconnected from the actual environment.
A better evaluation question is:
Did the plan improve successful execution under the actual task constraints?
Test plans rather than admiring them
Here is a simple experiment.
Give an LLM a task and ask it to produce a plan.
Then create three conditions:
A. Execute the plan exactly as written.
B. Execute the plan with verification after every major step.
C. Execute the plan with verification and permission to replan.
Introduce controlled disturbances:
- a missing dependency;
- an unavailable resource;
- contradictory information;
- a changed requirement;
- a tool timeout;
- an unexpected result.
Measure:
- task success;
- unnecessary actions;
- recovery time;
- number of replans;
- incorrect actions;
- human interventions;
- cost;
- final quality.
Now you can ask a meaningful question:
Does explicit planning improve agent performance, and under what environmental conditions?
Copy-paste prompt: run a planning ablation
Help me design a controlled experiment testing whether explicit planning improves an AI agent on this task:
TASK:
[YOUR TASK]
Compare:
A. Direct action selection without an explicit plan.
B. One-shot explicit plan followed by execution.
C. Incremental planning with verification and replanning.
Keep the model, tools, task difficulty, and information available as comparable as possible.
Define:
- hypotheses;
- independent variables;
- dependent variables;
- controls;
- failure scenarios;
- sample/test-case design;
- success criteria;
- likely confounders.
Also explain what result would falsify the claim that explicit planning improves performance.
That last request matters. If an experiment cannot produce evidence against your preferred conclusion, it is closer to a demonstration than a scientific test.
When planning is unnecessary
Not every agent needs an explicit planning phase.
For a simple task such as:
βConvert this temperature from Celsius to Fahrenheit.β
planning adds overhead.
For a deterministic lookup, a direct tool call may be better.
For a complex task involving dependencies, uncertainty, external actions, and recovery, explicit planning can become much more valuable.
The design question is therefore not:
βShould every agent plan?β
It is:
βDoes the expected value of planning exceed its computational, latency, and coordination cost for this task?β
The practical planning pattern
For real agents, a useful default is:
GOAL
β
CURRENT STATE
β
IDENTIFY UNKNOWNs
β
GATHER CRITICAL INFORMATION
β
CREATE PLAN
β
EXECUTE ONE OR MORE STEPS
β
OBSERVE
β
VERIFY
β
PLAN STILL VALID?
βββ YES β CONTINUE
βββ NO β REPLAN
β
SUCCESS CRITERIA MET?
βββ YES β STOP
βββ NO β CONTINUE / ESCALATE
This is more robust than asking an LLM to generate a long numbered list and then hoping reality cooperates.
The deepest lesson is simple:
A plan is not a prediction of the future. It is a hypothesis about what actions will move the system toward the goal.
The environment gets to test that hypothesis.
A capable agent therefore does not merely make plans. It makes plans that expose assumptions, executes them incrementally, observes reality, verifies progress, and changes the plan when the evidence says it should.
"A plan is useful only if the system can execute it, observe reality, detect when its assumptions fail, and change course."