Raw·Custom 이벤트
Raw·Custom 이벤트 (1.0) (Raw and Custom Events)
두 개의 탈출구와, 그것들이 두 번째 프로토콜이 되지 않게 하는 한계를 다루는 페이지예요. 프로토콜이 모델링하지 않는 것을 운반하는 두 이벤트 타입 — 원문 그대로 통과되는 프로바이더 네이티브 이벤트 RAW와 애플리케이션 자신의 이벤트 CUSTOM — 을 설명합니다.
출처: 문서
본문
프로토콜이 모델링하지 않는 것을 운반하는 이벤트 타입이 둘 있습니다: 원문 그대로 통과되는 프로바이더 네이티브 이벤트 RAW와 애플리케이션 자신의 이벤트 CUSTOM이죠. 둘 다 독립적(standalone)입니다 — 그것들은 스스로 항목을 열거나 닫지 않고 열린 실행 안 어디든 나타날 수 있습니다(MAY). 다만 CUSTOM은 RAW와 달리 자기 레인 안의 열린 청크 스트림을 끝냅니다. 그 한계가 핵심입니다. 이 페이지의 모든 것은 탈출구가 조용히 두 번째 프로토콜이 되지 않게 하기 위해 존재합니다.
RAW
소비자가 프로토콜이 모델링하지 않는 세부가 필요할 때, 프로바이더 네이티브 이벤트를 원문 그대로 통과시킵니다.
{
"type": "RAW",
"event": { "…the provider's own event…": true },
"source": "openai"
}
event는 REQUIRED이고 어떤 JSON 값이든 됩니다.source는 OPTIONAL이며 그것이 온 프로바이더나 프레임워크를 이름 붙입니다.- 소비자는
RAW이벤트에서 프로토콜 행동을 끌어내면 안 됩니다(MUST NOT). 그것의 어떤 것도 이 스펙이 추적하는 것을 열거나 닫거나 수정하지 않습니다. - 생산자는 표준 이벤트와 함께
RAW를 내보내야 하며(SHOULD), 결코 그 대신이 아닙니다.RAW로만 표현하는 생산자는 그것을 프로토콜에 넣지 않은 것입니다.
같은 페이로드는 평범한 이벤트의 rawEvent 필드로도 이동합니다. 그 철자는 하나의 번역된 이벤트에 출처를 붙이는 반면, RAW는 번역된 이벤트가 존재하지 않는 자료를 운반합니다.
CUSTOM
애플리케이션 자신의 이벤트를 위한 프로토콜의 확장 지점입니다.
{
"type": "CUSTOM",
"name": "com.example.cart-updated",
"value": { "items": 3 }
}
name과value는 둘 다 REQUIRED — 이름이 없으면 소비자가 값을 라우팅할 수 없고, 페이로드가 없는 이벤트는 아무것도 말하지 않습니다.name을 인식하지 못하는 소비자는 이벤트를 무시해야 합니다(MUST). 이것은 인식되지 않는 자료가 아닌 프로토콜 법적 트래픽입니다. 아무것도 떼어내지 않고 아무것도 경고하지 않습니다.- 이름은 애플리케이션 공간입니다. 생산자는 자신이 만든 이름에 벤더나 애플리케이션 식별자를 접두사로 붙여야 하며(SHOULD), 그래서 같은 스트림을 확장하는 두 당사자가 충돌하지 않습니다. 접두사 없는 이름은 프로토콜 자신의 미래 사용을 위해 예약됩니다.
- 소비자가 인식하는
CUSTOM이벤트로 하는 어떤 것이든 프로토콜 밖입니다. 생산자는 이 스펙이 표준 이벤트에 배정한 의미론을 담기 위해CUSTOM이벤트에 의존하면 안 됩니다(MUST NOT) — 적합한 소비자가 합법적으로 무시하는 커스텀 "메시지"는 메시지가 아닙니다.
데이터 타입 (Data Types)
RawEvent와 CustomEvent는 스키마 레퍼런스로 정의됩니다.
보안 고려 사항 (Security Considerations)
패스스루 콘텐츠는 정의상 검증되지 않습니다. event나 value를 제약하는 스키마가 없고, RAW 페이로드는 프로바이더가 얻은 곳 어디든에서 비롯됩니다. 소비자는 둘 다 신뢰할 수 없는 입력으로 취급해야 하며(MUST) — 마크업으로 렌더링되거나, 실행되거나, 권한을 부여받아서는 안 되고 — RAW 페이로드를 그것이 요약하는 네트워크 트래픽과 같은 의심으로 대해야 합니다(SHOULD).
더 알아보기 (Learn more)
- 이벤트 스트림 (1.0) — 여덟 가지 이벤트 패밀리
- 하위 에이전트 (1.0) — 이벤트에 귀속이 붙는 방식
- 스키마 레퍼런스 —
RawEvent·CustomEvent정의