가장 비용이 많이 드는 AI 버그는 작업이 두 번 실행되는 것이다
요약
AI 시스템에서 네트워크 오류나 타임아웃으로 인한 재시도가 중복 작업을 발생시키는 문제를 다룹니다. 이를 방지하기 위해 각 비즈니스 액션에 멱등성 키(Idempotency Key)를 부여하여 작업의 중복 실행을 막아야 합니다.
핵심 포인트
- AI 요청 실패가 반드시 작업 실패를 의미하지는 않음
- 재시도가 새로운 작업을 생성하지 않도록 설계해야 함
- 멱등성(Idempotency)을 통해 중복 호출 및 비용 발생 방지
- 각 비즈니스 액션에 고유한 멱등성 키를 부여할 것
AI 요청이 실패했다고 해서 항상 작업이 실패한 것을 의미하지는 않습니다.
때로는 모델이 이미 완료한 후 클라이언트가 응답을 놓치기도 합니다. 때로는 도구 호출 (tool call)이 여전히 실행 중인 동안 워커 (worker)가 재시작되기도 합니다. 때로는 타임아웃 (timeout)이 발생하여 원래 요청이 여전히 살아있는 동안 재시도 (retry)를 트리거하기도 합니다.
그러면 한 번의 사용자 작업이 다음과 같이 변합니다:
- 두 번의 모델 호출 (model calls)
- 두 번의 추출 작업 (extraction jobs)
- 두 번의 고객 지원 티켓 (support tickets)
- 두 번의 이메일 (emails)
- 두 번의 데이터베이스 쓰기 (database writes)
- 두 번의 청구서 (bills)
이것은 모델 품질의 문제가 아닙니다.
이것은 멱등성 (idempotency) 문제입니다.
재시도가 새로운 작업을 생성해서는 안 됩니다
프로덕션 (production) AI 시스템에서 재시도는 정상적인 현상입니다.
네트워크는 실패합니다. 제공업체 (providers)는 느려집니다. 도구 호출 (tool calls)은 타임아웃이 발생합니다. 큐 (queues)는 작업을 재전송합니다. 기본 경로 (primary route)가 불확실해지면 폴백 경로 (fallback route)가 시작될 수 있습니다.
실수는 모든 재시도를 새로운 작업으로 취급하는 것입니다.
대신, 각 비즈니스 액션 (business action)에 대해 하나의 내구성이 있는 작업 (durable job)을 정의하십시오:
- 하나의 업로드된 문서 (uploaded document)
- 하나의 인보이스 추출 (invoice extraction)
- 하나의 고객 지원 대화 요약 (support conversation summary)
- 하나의 예약된 보고서 (scheduled report)
- 하나의 중재 이벤트 (moderation event)
- 하나의 에이전트 작업 (agent task)
모든 시도는 동일한 해당 작업에 속해야 합니다.
멱등성 키 (idempotency key)를 사용하세요
각 비즈니스 액션에 안정적인 멱등성 키 (idempotency key)를 부여하십시오.
예를 들어:
json
{
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기