RFD: Client-Provided System Prompt#1237
Conversation
b93753b to
68a1067
Compare
| ### Agent behavior | ||
|
|
||
| When an agent receives a `systemPrompt`: | ||
| - It SHOULD use the content as the LLM's system prompt (or incorporate it into its system prompt construction) |
There was a problem hiding this comment.
Should this be clear that its always additional to existing system prompt so its a clear set of additional instructions vs replacing the System Prompt.
There was a problem hiding this comment.
great catch, I think you're right this needs to be cleaner. I just pushed a change to the RFD to clarify that systemPrompt uses additive semantics - the client system prompt is incorporated alongside the agent's own built-in instructions, it doesn't replace them. Agents always retain their own identity, safety guardrails, and internal configuration.
the updated Design Choices and Agent Behavior sections should make this explicit now. thanks for flagging it!
68a1067 to
3cf1268
Compare
|
I think it's good One bit of feedback that comes to mind: if it is to remain a "SHOULD" for agents to thread it to the llm's system prompt slot, it may be good for the client to know if the agent is ignoring it. Two solutions:
Number 2 may also be needed for error cases where the system prompt couldn't be inserted into a facility for this on the llm side. |
3cf1268 to
4e4a566
Compare
|
@alexhancock thanks for the feedback! I agree with both and just pushed an update with these changes:
|
4e4a566 to
2331a57
Compare
Proposes adding an optional
systemPromptstring field tosession/new, giving clients a standard way to provide system-level instructions that agents can deliver to the LLM's system prompt slot.ACP is currently the only major agent protocol without a dedicated system prompt field — MCP, OpenAI, and Anthropic's Messages API all have one. Every ACP implementation has independently implemented non-standard workarounds:
_metaextensions, user-message injection, filesystem indirection. This RFD proposes a single interoperable solution.systemPrompt?: stringtoSessionNewParams— additive, fully backward compatiblesession/update_system_promptmethod if neededMotivated by Discussion #414.