POST /agents/{agentId}/chat accepts an optional UUID requestId.
Reuse the same requestId only for an exact retry of the same chat input. Reusing it with different input returns 409 request_id_conflict.
Generate the UUID before the first request and persist it until the request succeeds or fails permanently.
This chat retry contract does not imply idempotency for management mutations. For a source edit, supply its current revision. For other writes, read the current server state before retrying after a transport failure.