TL;DR
에이전트 도구 호출은 성공 응답과 실제 효과가 어긋날 수 있어, 무조건 재시도하면 중복 결제나 이메일 같은 부작용을 낳는다. 논문 실험에서 독립적인 사후 조건 검증은 높은 장애 조건의 `activate_customer` 성공률을 64%에서 100%로 높이고 중복 부작용을 72%에서 20%로 줄였으며, 개선의 핵심은 재시도보다 검증이었다. 다만 이메일이나 Slack처럼 동일 신뢰 경계 안에서만 결과를 확인할 수 있는 작업은 독립적인 검증 근거를 마련하기 어렵다.
실용적 조언
- 성공 응답과 실제 효과 발생을 하나의 로그로 합치지 말고, 각각에 필요한 근거와 검증 경로를 분리해야 한다.
- 독립적인 읽기 경로가 있는 작업은 데이터베이스 상태나 레코드 ID를 다시 조회해 사후 조건을 확인하고, 확인할 수 없는 외부 효과는 재시도 전에 중복 실행 위험을 별도로 관리해야 한다.
섹션별 상세
용어 해설
- 비원자적 실패(Non-Atomic Failures)
- — 하나의 도구 호출이 성공 또는 실패로 깔끔하게 끝나지 않고, 실행 결과와 응답 전달이 서로 어긋나는 장애 유형이다. 작업이 완료됐지만 응답이 사라지거나, 일부만 실행되거나, 동시 변경으로 결과가 무효화되는 상황을 포함한다. 에이전트가 실패로 오인해 재시도할 때 중복 결제가 발생하는 등 부작용을 만든다.
- 사후 조건 검증(Postcondition Verification)
- — 도구가 성공 응답을 반환했는지와 실제 의도한 효과가 발생했는지를 분리해 확인하는 절차다. 호출 결과에 의존하지 않는 별도의 조회 경로에서 데이터나 상태를 다시 읽어 기대한 조건을 검사한다. 재시도가 필요한지 판단하는 근거를 도구 응답보다 실제 시스템 상태에 두는 방식이다.
- 디스패치 후 타임아웃(Timeout-After-Dispatch)
- — 도구 호출이 원격 시스템에 전달되어 작업까지 완료됐지만, 그 뒤 응답이 에이전트에 도착하지 않는 실패 유형이다. 에이전트는 호출이 실패했다고 판단하기 쉽고 같은 작업을 다시 전송할 수 있다. 그 결과 결제·티켓·이메일처럼 중복 실행이 비용이나 운영 문제로 이어지는 작업에서 중복 부작용이 생긴다.
- 지연된 가시성(Delayed Visibility)
- — 작업은 성공했지만 직후의 읽기 요청이 최신 상태가 아닌 오래된 데이터를 반환하는 상황이다. 에이전트가 이 낡은 결과를 실패 신호로 해석하면 이미 처리된 작업을 재시도할 수 있다. 호출 성공 여부가 아니라 독립적인 경로에서 상태가 갱신됐는지를 확인해야 하는 이유가 된다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.