추론 API의 상태 저장 방식과 공급자 봉인

최근의 추론 API는 단순한 입출력 전달을 넘어 공급자 서버에 상태를 저장하는 방식으로 변화했다. OpenAI의 Responses API는 기본적으로 응답을 저장하며, 문서상 응답 객체를 최소 30일간 보존한다. Gemini Interactions API 역시 `store: true`가 기본값이며, 유료 등급은 상호작용을 55일, 무료 등급은 1일 동안 보존한다. 이러한 서버 저장은 애플리케이션이 전송하는 데이터량을 줄이고 캐시 라우팅을 용이하게 하지만, 로컬 기록이 `previousResponseId`와 같은 외부 데이터베이스의 외래 키에 의존하게 만든다.

사용자 통제권을 제한하는 핵심 장치는 '공급자 봉인 상태(provider-sealed state)'다. OpenAI는 `store: false` 설정 시 암호화된 추론 내용을 `encrypted_content` 필드로 반환한다. 이는 Zero Data Retention 고객에게 서버 측 저장을 요구하지 않으면서도 다음 요청 때 메모리에서 복호화해 연속성을 유지하기 위한 장치다. 하지만 이 암호문은 공급자만이 복호화할 수 있어, 사용자는 비용을 지불하면서도 실제 추론 과정이 담긴 원문을 소유하지 못하는 구조가 된다.

불투명한 추론과 에이전트 통신 메커니즘

모델의 사고 과정(Chain of Thought)을 처리하는 방식은 공급자마다 다르지만 공통적으로 불투명성을 유지한다. OpenAI는 저장형 응답의 이전 추론을 `previous_response_id`로 복구하거나, `store: false` 환경에서 클라이언트가 `encrypted_content`를 보관했다가 다시 전달하는 방식을 쓴다. Anthropic은 암호화된 전체 thinking 내용을 `signature` 필드로 반환하며, 사용자에게 제공되는 읽기 가능한 thinking 텍스트는 원시 사고 과정이 아니라 다른 모델이 생성한 요약본이다. 특히 도구 사용 턴에서는 `thinking` 블록을 변경 없이 그대로 돌려줘야 하므로, 모델 변경 시 해당 블록을 제거해야 하는 제약이 있다.

호스팅 검색과 문맥 압축에서도 유사한 봉인 현상이 나타난다. OpenAI, Google, Anthropic의 호스팅 검색은 인용 URL과 선택적 출처는 제공하지만, 답변 생성에 사용된 전체 텍스트 문맥은 제공하지 않는다. 문맥 압축의 경우 OpenAI의 `/responses/compact`는 사람이 해석할 수 없는 암호화된 compaction 항목을 반환해 클라이언트가 그대로 다시 전달하게 한다. 반면 Anthropic의 서버 측 압축은 읽을 수 있는 `content` 필드가 포함된 compaction 블록을 반환해 클라이언트가 요약 지시를 제공하거나 결과를 검사할 수 있도록 지원한다.

다중 에이전트 시스템에서는 이 문제가 더 복잡해진다. OpenAI Responses Multi-agent 베타는 `multi_agent_call`, `multi_agent_call_output`, `agent_message` 항목을 추가했다. 여기서 `spawn_agent` 예제의 `message` 인자는 암호화되어 있으며, 에이전트 간 메시지는 `encrypted_content`만 포함한다. 오픈소스 Codex 클라이언트의 사례를 보면, API가 부모 모델의 도구 인자를 암호화해 전달하기 때문에 `InterAgentCommunication.content`가 비어 있게 된다. 이로 인해 자식 에이전트가 잘못된 파일을 수정하거나 비밀을 유출해도, 사용자는 어떤 지시가 내려졌는지 사후에 감사할 수 없다.

세션 이식성 기준과 실무적 영향

세션 이식성은 단순히 다른 모델에서 같은 출력을 재현하는 것이 아니라, 이전 공급자의 ID 조회나 복호화 없이 기록을 검사, 내보내기, 재생, 감사, 삭제할 수 있는 상태를 의미한다. 이를 위해 로컬 이벤트 로그가 기준 기록이 되어야 하며, 서버 저장은 명시적 선택 사항이어야 한다. 특히 호스팅 도구는 입력과 출력, 증거, 필터링, 콘텐츠 해시를 포함한 전체 충실도 로그를 남겨야 하며, 서브에이전트 간 통신은 읽을 수 있는 형태로 보존되어야 한다.

모델 간 역량을 전이하는 증류(distillation)를 둘러싼 갈등도 이식성 논의의 연장선에 있다. Anthropic은 외부 모델이 자사 출력을 학습에 사용하는 것을 '증류 공격(distillation attacks)'으로 규정하며 금지하고 있다. 그러나 정작 선도 연구소들은 내부적으로 작은 모델을 만들 때 증류를 일반적인 훈련 방법으로 사용하며, OpenAI는 자사 API를 통한 증류 워크플로를 제공하기도 한다. 이는 기계가 학습 가능한 공개 데이터는 허용하면서, 연구소가 생성한 출력물에 대해서는 폐쇄적인 태도를 취하는 비대칭적 구조를 보여준다.

개발자는 API 도입 시 성능 최적화를 위해 제공되는 '봉인된 상태' 기능이 장기적으로 세션 소유권을 어떻게 제한하는지 판단해야 한다. 특히 에이전트 기반 워크플로우를 설계할 때, `encrypted_content`나 서버 측 자동 압축에 의존하면 서비스 장애나 정책 변경 시 수일에서 수년에 걸쳐 축적된 사용자 문맥을 타 모델로 이전할 수 없게 되므로, 읽을 수 있는 인계 요약(handover summary)과 로컬 로그 보존 전략을 병행해야 한다.