Agrupa las tareas relacionadas bajo un mismo ID de contexto
Group related tasks under one context ID
Cuando varias tareas forman parte del mismo trabajo, dales un ID de contexto compartido que el agente pueda devolver, para que un seguimiento empiece con el historial del caso y no desde cero.
Por qué
Un caso de soporte casi nunca es una sola llamada. La clienta pide un reembolso, luego el costo de envío y después pregunta por qué su estado de cuenta todavía muestra el cargo. Si cada petición inicia una tarea nueva y sin relación, el agente tiene que repetirlo todo, el servidor no distingue un seguimiento de una petición nueva y un segundo agente que retoma el caso solo ve fragmentos. A2A incorpora la agrupación al protocolo. Un contextId agrupa de forma lógica tareas y mensajes relacionados para dar continuidad a una serie de interacciones. Un cliente puede enviarlo sin taskId para iniciar una tarea nueva dentro de un contexto existente, y un agente que no puede aceptar un contextId enviado por el cliente debe rechazar la petición en lugar de crear otro en silencio. La API de OpenAI traza la misma línea entre una llamada y el hilo que la rodea: un objeto de conversación se puede reutilizar entre sesiones, dispositivos o trabajos, y aunque los objetos de respuesta se guardan 30 días por defecto, los elementos de una conversación no están sujetos a ese TTL. El contexto no es una llave para los datos. A2A exige limitar los resultados a lo que quien llama está autorizado a ver incluso cuando no envía contextId, así que el ID agrupa el trabajo sin dar acceso a él. AX-SYS-16 hace que una tarea se pueda reanudar; este principio enlaza las distintas tareas de un mismo caso.
Haz
Devuelve un ID de contexto con la primera tarea, acéptalo en las peticiones siguientes, permite listar tareas por contexto y rechaza un ID de contexto que no puedas respetar.
No hagas
Tratar cada seguimiento como una conversación nueva, ni reemplazar en silencio el ID de contexto que envió el agente por otro.
Artefacto
{
"message": {
"role": "ROLE_USER",
"messageId": "msg_552",
"contextId": "ctx_refund_ord123",
"referenceTaskIds": ["task_refund_01"],
"parts": [{ "text": "Also refund the $6.90 shipping fee on the same order." }]
}
}
GET /tasks?contextId=ctx_refund_ord123 devuelve entonces las dos tareas, así que cualquier agente que retome el caso ve el historial completo, dentro de sus propios permisos.
Fuentes
- [01]A2A Protocol Specification (Context Identifier Semantics) ↗
A contextId logically groups multiple related Task and Message objects, providing continuity across a series of interactions; clients MAY use contextId without taskId to start a new task within an existing conversation context; an agent that cannot accept a client-provided contextId MUST reject the request with an error and MUST NOT generate a new contextId; even when no contextId is given, results MUST be scoped to the caller's authorized access boundaries
- [02]OpenAI API Docs: Conversation state ↗
After creating a conversation object, you can keep using it across sessions, devices, or jobs; response objects are saved for 30 days by default, while conversation objects and the items in them are not subject to the 30 day TTL