iBetter Books
수정

컨텍스트와 신뢰성 모의 시나리오

컨텍스트 관리와 신뢰성 도메인은 15퍼센트로 비중은 작지만, 장시간 실행되는 에이전트의 성패를 좌우하는 영역이라 시나리오 난도가 높다. 긴 작업에서 컨텍스트가 차오를 때의 대처, 세션을 넘어 정보를 유지하는 방법, 일시적 실패를 견디는 재시도와 멱등성, 안전성 검사가 단골 출제 포인트다. 이 절은 세 문항으로 그 판단을 다룬다.

모의 문항 1 — 긴 대화에서 컨텍스트가 차오를 때

상황. 고객 지원 에이전트가 한 세션에서 수십 차례 도구를 호출하며 길게 일한다. 대화가 길어지면서 컨텍스트 창이 한계에 다가가고, 오래된 도구 결과들이 자리를 많이 차지한다. 그러나 대화의 목표와 사용자가 합의한 핵심 결정은 끝까지 유지되어야 한다. 어떻게 해야 하는가.

후보. 첫째, 한계에 닿으면 대화를 강제로 종료하고 새로 시작한다. 둘째, 오래되어 더는 필요 없는 도구 결과를 자동으로 비우는 컨텍스트 편집을 적용하되 핵심 합의는 보존한다. 셋째, 모든 메시지를 무조건 그대로 둔다. 넷째, 가장 오래된 메시지부터 기계적으로 삭제한다.

정답은 둘째다. 컨텍스트 편집은 더는 쓸모없는 과거 도구 결과처럼 회수 가능한 자리를 비워 창을 확보하면서, 목표와 합의 같은 살려야 할 정보는 남긴다. "차오르는 잡음은 비우되 핵심은 보존"이라는 제약이 정답을 가리킨다.

오답을 보자. 첫째는 세션을 끊으면 진행 맥락이 통째로 날아가 사용자 경험을 망친다. 셋째는 아무것도 안 하다 한계에서 그대로 실패하는 무대책이다. 넷째는 오래된 순서로만 지우면 초반에 합의한 핵심 결정이 먼저 사라질 수 있어, 보존 제약을 위반한다. 무엇을 지우느냐의 기준이 시간이 아니라 회수 가능성과 중요도임을 묻는 것이 함정의 핵심이다.

모의 문항 2 — 세션을 넘어 기억해야 할 때

상황. 코딩 에이전트가 여러 날에 걸쳐 한 프로젝트를 돕는다. 매번 새 세션을 열 때마다 프로젝트의 코딩 규칙과 그동안 내린 설계 결정을 사용자가 다시 설명해야 한다. 세션이 끝나도 이 정보가 살아남아 다음 세션에서 활용되게 하려면 어떤 접근이 옳은가.

후보. 첫째, 매 세션 시작 시 사용자가 규칙을 다시 입력한다. 둘째, 컨텍스트 창을 최대로 키워 한 세션에 다 담는다. 셋째, 세션 밖 영속 저장소에 정보를 기록하고 읽는 메모리 메커니즘을 쓴다. 넷째, 시스템 프롬프트에 모든 결정을 하드코딩한다.

정답은 셋째다. 컨텍스트 창은 한 세션 안의 단기 작업 공간일 뿐, 세션을 넘어 지속되지 않는다. 세션 경계를 넘어 정보를 보존하려면 외부에 쓰고 다시 불러오는 메모리가 필요하다. 시험은 단기 컨텍스트와 장기 메모리를 혼동하게 만드는 보기를 즐겨 낸다.

오답을 보자. 첫째는 사용자에게 반복 부담을 떠넘기는 비자동화다. 둘째는 창을 키워도 세션이 끝나면 내용이 사라지므로 지속성 문제를 전혀 풀지 못한다. 컨텍스트 창 확장을 영속성의 답으로 내미는 보기가 대표적 함정이다. 넷째는 매번 사람이 손으로 시스템 프롬프트를 고쳐야 해 동적으로 누적되는 결정에는 맞지 않는다.

모의 문항 3 — 일시적 실패를 견디기

상황. 에이전트가 외부 결제 API를 호출하는데, 가끔 네트워크 순간 단절로 호출이 실패한다. 실패하면 재시도해야 하지만, 같은 결제가 두 번 청구되면 절대 안 된다. 어떻게 설계하는가.

후보. 첫째, 실패하면 무조건 즉시 재시도한다. 둘째, 멱등성 키를 붙여 재시도해도 같은 결제가 한 번만 처리되게 하고, 점증적 대기를 둔 재시도를 적용한다. 셋째, 한 번 실패하면 작업 전체를 포기한다. 넷째, 재시도 횟수를 무제한으로 둔다.

정답은 둘째다. 멱등성 키는 같은 요청이 여러 번 도달해도 결과가 한 번만 반영되게 보장하므로 중복 청구를 막고, 점증적 대기를 둔 재시도는 일시 장애를 견디면서 외부 시스템에 부담을 덜 준다. "재시도는 하되 중복은 금지"라는 두 제약을 동시에 만족하는 유일한 후보다.

오답을 보자. 첫째는 멱등성 보장 없이 재시도하면 중복 청구가 발생해 핵심 제약을 위반한다. 재시도만 말하고 멱등성을 빠뜨린 보기가 가장 흔한 함정이다. 셋째는 일시적 실패에 과민하게 작업을 통째로 버려 신뢰성을 떨어뜨리고, 넷째는 무제한 재시도로 외부 시스템을 과부하시키고 비용을 폭증시킨다.

정리

  • 컨텍스트가 차오를 때는 회수 가능한 과거 도구 결과를 비우는 컨텍스트 편집을 쓰되 목표와 합의 같은 핵심은 보존하며, 시간순 기계 삭제는 핵심을 먼저 날릴 수 있어 함정이다.
  • 컨텍스트 창은 단기 작업 공간이고 세션을 넘기지 못하므로, 세션 경계를 넘는 지속성은 외부 메모리로 풀어야 한다.
  • 컨텍스트 창 확장을 영속성의 답으로 내미는 보기, 사용자에게 반복 입력을 떠넘기는 보기는 오답이다.
  • 일시적 실패에는 멱등성 키와 점증적 대기를 둔 재시도를 함께 써야 하며, 멱등성을 빠뜨린 재시도 보기는 중복 부작용을 일으키는 함정이다.
  • 신뢰성 문항은 재시도·보존·지속이라는 요구를 분해해 각 제약을 동시에 만족하는 후보만 남기면 정리된다.