You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Announcement that the session/resume method is now part of the stable ACP protocol.
5
+
---
6
+
7
+
**Published:** April 22, 2026
8
+
9
+
The Session Resume RFD has moved to Completed and the `session/resume` method is stabilized.
10
+
11
+
Unlike `session/load`, `session/resume` reconnects clients to an existing session without replaying the conversation history. This is a simpler primitive for agents that can restore context but don't implement full history replay, and it gives proxies and adapters a foundation they can build `session/load` semantics on top of.
12
+
13
+
For the shipped protocol, see [Resuming Sessions](/protocol/session-setup#resuming-sessions). For the design history, see the [Session Resume RFD](/rfds/session-resume).
Copy file name to clipboardExpand all lines: docs/protocol/session-setup.mdx
+71Lines changed: 71 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,11 @@ sequenceDiagram
30
30
Agent->>Client: session/update
31
31
Note over Agent,Client: All content streamed
32
32
Agent-->>Client: session/load response
33
+
else
34
+
Client->>Agent: session/resume (sessionId)
35
+
Note over Agent: Restore session context
36
+
Note over Agent: Connect to MCP servers
37
+
Agent-->>Client: session/resume response
33
38
end
34
39
35
40
Note over Client,Agent: Ready for prompts
@@ -178,6 +183,71 @@ When **all** the conversation entries have been streamed to the Client, the Agen
178
183
179
184
The Client can then continue sending prompts as if the session was never interrupted.
180
185
186
+
## Resuming Sessions
187
+
188
+
Agents that advertise `sessionCapabilities.resume` allow Clients to reconnect to an existing session without replaying the conversation history.
189
+
190
+
### Checking Support
191
+
192
+
Before attempting to resume a session, Clients **MUST** verify that the Agent supports this capability by checking for the `sessionCapabilities.resume` field in the `initialize` response:
193
+
194
+
```json highlight={7-9}
195
+
{
196
+
"jsonrpc": "2.0",
197
+
"id": 0,
198
+
"result": {
199
+
"protocolVersion": 1,
200
+
"agentCapabilities": {
201
+
"sessionCapabilities": {
202
+
"resume": {}
203
+
}
204
+
}
205
+
}
206
+
}
207
+
```
208
+
209
+
If `sessionCapabilities.resume` is not present, the Agent does not support resuming sessions and Clients **MUST NOT** attempt to call `session/resume`.
210
+
211
+
### Resuming a Session
212
+
213
+
To resume an existing session without replaying prior messages, Clients **MUST** call the `session/resume` method with:
214
+
215
+
- The [Session ID](#session-id) to resume
216
+
-[MCP servers](#mcp-servers) to connect to
217
+
- The [working directory](#working-directory)
218
+
219
+
```json
220
+
{
221
+
"jsonrpc": "2.0",
222
+
"id": 2,
223
+
"method": "session/resume",
224
+
"params": {
225
+
"sessionId": "sess_789xyz",
226
+
"cwd": "/home/user/project",
227
+
"mcpServers": [
228
+
{
229
+
"name": "filesystem",
230
+
"command": "/path/to/mcp-server",
231
+
"args": ["--mode", "filesystem"],
232
+
"env": []
233
+
}
234
+
]
235
+
}
236
+
}
237
+
```
238
+
239
+
Unlike `session/load`, the Agent **MUST NOT** replay the conversation history via `session/update` notifications before responding. Instead, it restores the session context, reconnects to the requested MCP servers, and returns once the session is ready to continue.
240
+
241
+
```json
242
+
{
243
+
"jsonrpc": "2.0",
244
+
"id": 2,
245
+
"result": {}
246
+
}
247
+
```
248
+
249
+
The response **MAY** also include initial mode, model, or session configuration state when those features are supported by the Agent.
250
+
181
251
## Session ID
182
252
183
253
The session ID returned by `session/new` is a unique identifier for the conversation context.
@@ -187,6 +257,7 @@ Clients use this ID to:
187
257
- Send prompt requests via `session/prompt`
188
258
- Cancel ongoing operations via `session/cancel`
189
259
- Load previous sessions via `session/load` (if the Agent supports the `loadSession` capability)
260
+
- Resume previous sessions via `session/resume` (if the Agent supports the `sessionCapabilities.resume` capability)
The RFD for the `session/resume` method has been stabilized and is now a part of the protocol. Please review the [documentation](/protocol/session-setup#resuming-sessions) for more information.
13
+
14
+
</Update>
15
+
9
16
<Updatelabel="April 22, 2026"tags={["Draft"]}>
10
17
## Streamable HTTP & WebSocket Transport RFD moves to Draft stage
Copy file name to clipboardExpand all lines: docs/updates.mdx
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,17 @@ rss: true
6
6
7
7
This page is for larger ACP announcements and project updates. For lifecycle changes to Requests for Dialog, see [RFD Updates](/rfds/updates).
8
8
9
+
<Updatelabel="April 22, 2026"tags={["Protocol"]}>
10
+
## Session Resume is Stabilized
11
+
12
+
The Session Resume RFD has moved to Completed and the `session/resume` method is stabilized.
13
+
14
+
This gives clients a way to reconnect to an existing session without replaying conversation history, and lets proxies and adapters build `session/load` semantics on top of the simpler primitive.
15
+
16
+
[Read the full announcement](/announcements/session-resume-stabilized).
0 commit comments