Skip to content

docs(rfd): propose session steering - #2255

Open
uzayer wants to merge 2 commits into
agentclientprotocol:mainfrom
uzayer:rfd/session-steering
Open

uzayer wants to merge 2 commits into
agentclientprotocol:mainfrom
uzayer:rfd/session-steering

Conversation

@uzayer

@uzayer uzayer commented Sep 29, 2026

Copy link
Copy Markdown

Proposes an RFD for steering: sending a message to an Agent while it is still working, so the current turn takes it into account instead of the user having to cancel and resend.

The v2 prompt RFD leaves "queueing, steering, or whether agents insert new prompts while busy" out of scope. This picks that up.

Summary of the proposal (v2 only):

  • New agentCapabilities.session.steering: {} capability.
  • With it, a Client may send an ordinary session/prompt while the session is running or requires_action. The Agent inserts the message at its next safe point (for example between tool calls), responds with the messageId once inserted, reports a user_message update, and keeps the same foreground work going.
  • No new method or request field. Queueing stays in the Client (hold the message until idle).

Open question called out in the FAQ: whether steering should be implicit (any prompt while not idle) or explicit (for example "delivery": "steer").

Prior art: Cursor, Claude Code and Codex "send now" / steer UX, and the OpenAI Responses API response.steer.

Looking for a champion, and happy to prototype this in an adapter and a Client.

@uzayer
uzayer requested a review from a team as a code owner September 29, 2026 19:11
@kennethsinder

Copy link
Copy Markdown

Hi @uzayer, I've just revised #1261 to build on session/prompt the way this RFD does, since the v2 prompt lifecycle makes a separate method redundant. The main difference left is your open question: #1261 adds an explicit delivery: "steer" | "queue" field, because the Agent can't tell "stop, wrong file" from "when you're done, also run the tests."

The two RFDs now mostly overlap, so I'd be glad to merge them into one with both of us as authors, whichever PR the maintainers prefer to keep. Let me know what you think.

kennethsinder added a commit to kennethsinder/agent-client-protocol that referenced this pull request Oct 24, 2026
Replace session/inject, session/revoke_inject and session/replace_inject
with an optional delivery field (steer | queue) on session/prompt.
Withdrawing reuses $/cancel_request; response/user_message ordering
follows the existing v2 rule. Adopts the session/prompt approach from
agentclientprotocol#2255 and renames the RFD to prompt-delivery.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants