session/update notifications, providing real-time visibility into their thinking and progress.
plan_update carries a plan object with a type discriminator, and every plan format includes a required planId so Clients can track multiple plans independently.
The stable plan content type is items. The draft unstable schema also includes additional plan operations while the Plan Operations RFD is in progress.
Creating Plans
When the language model creates an execution plan, the Agent SHOULD report it to the Client withplan_update.
Item-Based Plans
The plan content type.
A unique identifier for this plan within the session.
An array of plan entries representing the tasks to be
accomplished.
Unstable Plan Operations
The draft unstable schema includes markdown plans, file-backed plans, and explicit plan removal. These operations are not part of the stable schema yet. Clients using the draft unstable schema MUST tolerate these variants. Tolerating a variant means the Client can deserialize and validate it, then render it, preserve it for replay or proxying, or ignore it.Markdown Plans
File Plans
Removing Plans
Agents can remove a plan by sendingplan_removed with the plan ID:
Extensibility
plan.type values can be custom or future variants when Clients can preserve or display them generically. Custom plan content types MUST begin with _; unknown non-underscore plan content types are reserved for future ACP variants.
Every plan content variant, including custom or future variants, MUST carry a planId.
Plan Entries
Each plan entry represents a specific task or goal within the overall execution strategy:A human-readable description of what this task aims to accomplish
The relative importance of this task.
highmediumlow
_; unknown non-underscore priorities are reserved for future ACP variants.The current execution status of this task
pendingin_progresscompletedcancelled
_; unknown non-underscore statuses are reserved for future ACP variants.Updating Plans
As the Agent progresses through the plan, it SHOULD report updates by sending moresession/update notifications with the same sessionUpdate: "plan_update" structure and planId.
For item-based plans, the Agent MUST send a complete list of all plan entries in each update and their current status. The Client MUST replace the current contents of that plan completely.