-
Notifications
You must be signed in to change notification settings - Fork 194
Description
Problem
ACP clients that want to display a human-readable name for a conversation have no way to get one from the protocol. The SessionUpdate message has no name, title, or summary field.
This forces clients to implement their own naming outside ACP — typically by making a separate LLM call with the conversation content and a "generate a title" prompt. Zed does exactly this (client-side summarize() call to a dedicated model). This means every ACP client needs its own LLM access and its own title-generation logic, which is redundant work.
Proposal
Add an optional title (or name / summary) field to SessionUpdate so that the agent can provide a human-readable conversation title as part of the normal session stream.
The agent already has full context of the conversation and LLM access — it's the natural place to generate a title. Clients would simply read the field and display it.
Suggested shape
interface SessionUpdate {
// ... existing fields ...
/** Optional human-readable title for the conversation, generated by the agent. */
title?: string;
}Behavior
- The field is optional. Agents that don't support naming omit it.
- The agent may send the title at any point during the session (e.g., after the first response).
- Clients should treat the latest
titlevalue as the current name, replacing any previous value. - If the agent never sends a title, the client can fall back to its own naming strategy or show a default.
Motivation
- Clients shouldn't need independent LLM access just to name conversations.
- The agent has the conversation context already — duplicating it for a title call is wasteful.
- A protocol-level field makes naming consistent across all ACP clients instead of each reimplementing it differently.