본문으로 건너뛰기
피드

AI 세션, 이제 진짜 내 데이터가 아닐 수도 있다

ai-ml 약 13분
vote
0
댓글
북마크

추론 API가 단순한 입력-출력 기록에서 벗어나, 제공자 서버에 묶인 상태값과 암호화된 블롭에 의존하는 방향으로 가고 있다는 비판이다. reasoning token, 호스팅 검색, 서버 측 압축, 멀티 에이전트 메시지, 응답 아이디 같은 기능이 편리함을 주는 대신 세션 이식성과 감사 가능성을 깎아먹는다는 게 핵심이다. 글은 로컬 이벤트 로그를 표준으로 삼고, 검색·압축·에이전트 통신을 사람이 읽고 내보낼 수 있어야 한다고 주장한다.

  • 1

    추론 API의 세션 기록이 점점 제공자 전용 상태값에 의존하고 있다

  • 2

    암호화된 추론, 서버 측 압축, 호스팅 검색은 사용자에게 편하지만 이식성과 감사 가능성을 떨어뜨린다

  • 3

    응답 아이디나 암호문은 다른 모델이 이어받을 수 있는 완전한 transcript가 아니다

  • 4

    멀티 에이전트 시스템에서는 하위 에이전트에게 전달된 실제 지시까지 숨겨질 수 있다

  • 5

    저자는 상태 저장 API 자체가 아니라 사용자 통제권을 잃는 설계를 문제 삼는다

  • 원래 추론 API의 약속은 되게 단순했음. 입력을 보내고, 출력을 받고, 그 둘을 저장하면 대화 기록이 내 손에 남는 구조였음

    • 프롬프트 캐시가 제공자 GPU에 있고, 모델마다 토크나이저가 다르고, 샘플링이 재현 불가능하다는 한계는 원래 있었음
    • 그래도 instructions, messages, tool calls, tool results가 들어간 transcript만 있으면 다른 충분히 똑똑한 모델이 “무슨 일이 있었는지” 이해하고 이어받을 수 있었음
  • 그런데 최근 추론 API는 점점 “텍스트 기록”이 아니라 “제공자 서버에 묶인 상태값”을 섞어 반환하는 쪽으로 가고 있다는 게 글의 문제의식임

    • 사용자가 돈을 내고 생성한 reasoning token이 암호화된 블롭으로만 돌아오거나, 검색 결과의 실제 본문은 모델만 보고 사용자는 못 보는 식임
    • 서버 측 compaction 결과, 하위 에이전트 메시지, 파일·벡터스토어·컨테이너·캐시 참조, response id 같은 것들도 다른 제공자에서는 해석할 수 없는 상태가 되기 쉬움
    • 결과적으로 내 컴퓨터에 있는 transcript는 “세션 전체”가 아니라, 제공자 서버에 있는 진짜 세션을 일부만 비춘 그림자에 가까워짐

중요

> 글에서 제안하는 세션 소유권 테스트는 간단함. 기존 제공자의 자격 증명을 폐기한 뒤에도 export한 transcript만으로 새 제공자 모델이 의미 있게 이어받을 수 있어야 한다는 것임.

  • 저자가 말하는 portable session은 “다른 모델이 같은 다음 토큰을 내야 한다”는 뜻이 아님

    • 모델마다 성격, 능력, 컨텍스트 창, 도구 사용 방식이 다르니 완전한 재현은 애초에 불가능함
    • 대신 다른 구현체가 세션의 의미론적 맥락을 재구성할 수 있어야 함
    • 이를 위해 inspection, export, replay, audit, deletion이라는 5가지 테스트를 제시함
  • 특히 “암호화”라는 말이 꽤 교묘하다고 지적함

    • encrypted_content라는 이름은 사용자 프라이버시 기능처럼 들리지만, 실제로는 사용자가 못 읽고 제공자만 열 수 있는 캡슐인 경우가 많음
    • OpenAI처럼 store: false 상태에서 암호화된 reasoning을 클라이언트에 돌려주고 다음 요청 때 메모리에서 복호화하는 방식은 서버 저장보다 나은 면이 있음
    • 하지만 이 암호화는 제공자로부터 데이터를 숨기는 게 아니라 사용자로부터 숨기는 구조라는 게 핵심 비판임
  • 서버에 저장되는 대화는 transcript를 포인터로 바꿔버림

    • OpenAI Responses API는 기본적으로 response object를 저장하고, 문서상 기본 보존 기간이 최소 30일이라고 설명함
    • Gemini Interactions API도 기본값이 store: true이고, 유료 티어는 55일, 무료 티어는 1일 보존으로 소개됨
    • previousResponseId로 이어붙이는 구조는 앱이 보내는 데이터량을 줄이고 캐시 라우팅도 쉬워지지만, 로컬 앱이 저장한 first.id는 결국 남의 데이터베이스 외래키가 됨
  • reasoning token은 더 노골적인 잠금 지점임

    • 주요 폐쇄형 모델 연구소들은 raw chain of thought를 노출하지 않는 이유가 있다고 주장하고, API에서는 보통 이 토큰을 볼 수 없음
    • OpenAI는 저장된 응답에서는 previous_response_id로 이전 reasoning을 다시 활용할 수 있고, store: false에서는 encrypted_content를 보존했다가 되돌려줘야 함
    • Anthropic은 전체 thinking을 signature 필드에 암호화해 넣고, 읽을 수 있는 thinking text는 raw chain of thought가 아니라 다른 모델이 만든 요약이라고 설명됨
    • 게다가 Anthropic 문서상 thinking block은 만든 모델에 묶여 있고, 모델을 바꿀 때 제거하라고 되어 있어 같은 생태계 안에서도 이식성을 목표로 한 흔적이 약함
  • 서버 측 웹 검색은 transcript에 생기는 구멍을 가장 잘 보여주는 사례임

    • 클라이언트 측 검색 도구라면 query, 검색 시각, URL, 제목, passage, ranking을 전부 기록할 수 있음
    • 반대로 호스팅 검색에서는 OpenAI, Google, Anthropic이 검색 action, citation, URL 목록 정도는 노출해도 모델이 실제로 본 전체 텍스트 맥락은 주지 않는 경우가 많음
    • URL은 안정적인 replay가 아님. 페이지 내용이 바뀔 수도 있고, 모델이 본 것은 이미 짧게 잘린 snippet일 수도 있음
sequenceDiagram
    participant 사용자앱 as 사용자 앱
    participant 제공자검색 as 제공자 검색
    participant 모델 as 모델
    participant 새모델 as 새 모델
    사용자앱->>제공자검색: 검색 요청 위임
    제공자검색->>모델: 선별된 본문과 passage 전달
    모델->>사용자앱: 답변과 일부 출처 URL 반환
    사용자앱->>새모델: 답변과 URL만 전달
    새모델->>사용자앱: 원래 근거를 재현할 수 없음
  • compaction도 마찬가지로, 성능 최적화가 이식성을 잡아먹을 수 있음

    • 긴 에이전트 세션에서는 20만 토큰짜리 히스토리를 계속 들고 갈 수 없으니 압축이 필요함
    • 사람이 읽을 수 있는 요약은 손실이 있어도 검토·수정·이전이 가능함
    • 그런데 OpenAI의 서버 측 compaction은 “사람이 해석하려는 용도가 아닌” 암호화된 compaction item을 만들고, 클라이언트는 canonical next context window를 그대로 넘기도록 안내받음
    • 저자는 이런 제공자 전용 압축이 선택적 최적화일 수는 있지만, 읽을 수 있는 handoff summary를 대체하면 안 된다고 봄
  • 멀티 에이전트로 가면 문제는 더 커짐. 이제 transcript가 하나가 아니라 세션 트리와 에이전트 간 메시지 흐름이 되기 때문임

    • OpenAI Responses Multi-agent beta에는 multi_agent_call, multi_agent_call_output, agent_message 같은 항목이 있고, 예시에서 spawn_agent의 message argument가 암호화되어 있음
    • 에이전트 간 메시지는 encrypted_content만 담고, 멀티 에이전트가 켜지면 각 에이전트에 자동 서버 측 compaction도 암묵적으로 활성화된다고 설명됨
    • reasoning summary도 지원하지 않고, root 및 subagent instruction이 API에서 주입되며 개발자가 수정하거나 제거할 수 없다는 지점도 비판함

⚠️주의

> 하위 에이전트가 잘못된 파일을 수정하거나 잘못된 가정을 따라갔을 때, “그 에이전트가 정확히 뭘 지시받았나?”를 사용자가 답할 수 없다면 감사 가능한 에이전트 시스템이라고 보기 어렵다는 지적임.

  • 저자는 “사람들이 세션 중간에 모델을 잘 안 바꾸잖아”라는 반론도 별로 중요하지 않다고 봄

    • 운영체제나 통신사를 매주 바꾸지 않아도 바꿀 자유가 중요한 것과 같은 논리임
    • 모델 폐기, 서비스 장애, 가격 변경, 정책 차단, 기밀 작업의 로컬 실행, 감사 요구 같은 이유로 세션 이동이 필요할 수 있음
    • 특히 에이전트 작업은 며칠치 결정과 근거를 쌓을 수 있고, 개인 비서는 몇 년치 transcript를 축적할 수도 있음
  • 글이 요구하는 portable inference API의 원칙은 꽤 구체적임

    • 로컬 이벤트 로그가 canonical이어야 하고, 서버 저장은 미러나 가속용이어야 함
    • store: false는 쉽고 문서화되어야 하며, 가능하면 기본값이어야 함
    • 암호화된 reasoning, compaction, tool signature가 같은 제공자 품질 개선용으로 들어갈 수는 있어도, 의미의 유일한 carrier가 되면 안 됨
    • 호스팅 도구는 입력, 출력, 근거, 필터링, provenance, timestamp, content hash까지 남기는 full-fidelity log를 제공해야 함
    • 하위 에이전트의 task, message, result, lineage, model, tool permission도 읽을 수 있게 보존돼야 함
  • 마지막에는 distillation까지 얘기가 이어짐. 폐쇄형 연구소들이 바깥쪽 distillation에는 적대적이면서 자기들 내부 distillation은 합법적이고 유용한 방법이라고 말하는 비대칭을 꼬집음

    • Anthropic은 2026년 2월 DeepSeek, Moonshot, MiniMax 관련 의혹을 “distillation attack”이라고 불렀고, 상업 약관에서 경쟁 모델 학습에 출력을 쓰는 걸 금지함
    • 동시에 frontier lab 내부에서는 distillation이 널리 쓰이는 정당한 학습 방법이라고 인정함
    • OpenAI도 더 강한 OpenAI 모델 출력을 써서 작은 OpenAI 모델을 fine-tune하는 1st-party distillation workflow를 제공한 적이 있음
    • 저자는 distillation이 비싼 frontier capability를 더 작고 싸고 빠른 로컬 모델로 옮겨 경쟁과 사용자 통제권을 늘릴 수 있다고 봄
  • 결론은 단순함. 사용자는 계정을 닫아도 세션을 가져갈 수 있어야 함

    • 새 모델이 더 못하거나, 질문을 다시 하거나, 다른 판단을 내리는 건 괜찮음
    • 하지만 예전 모델이 사용자의 히스토리, 근거, 계획, 위임 작업을 봤던 자리에 새 모델이 암호문만 보고 멍하니 있어야 한다면 그건 자유가 아님
    • 저자는 상태 저장 API 자체에 반대하는 게 아니라, 더 좋은 성능이 더 적은 사용자 통제와 묶이는 설계에 반대하는 것임

기술 맥락

  • 여기서 핵심 선택은 “세션의 원본을 로컬 transcript로 둘 것인가, 제공자 서버의 상태값으로 둘 것인가”예요. 로컬 transcript가 원본이면 느리고 비싸질 수 있지만, 디버깅과 감사와 이전이 가능해져요.

  • 제공자 입장에서는 server-side compaction, previousResponseId, hosted search가 꽤 매력적이에요. 매번 긴 컨텍스트를 다시 보내지 않아도 되고, 모델별 reasoning이나 캐시 상태를 보존할 수 있어서 품질과 비용을 동시에 잡기 좋거든요.

  • 문제는 이 최적화가 유일한 의미 저장소가 될 때 생겨요. 사용자가 읽을 수 없는 encrypted_content만 남으면, 다른 모델은 그동안 어떤 검색 결과를 봤는지, 어떤 reasoning을 이어받아야 하는지, 하위 에이전트가 무슨 지시를 받았는지 알 방법이 없어요.

  • 실무에서는 그래서 이벤트 로그 설계가 중요해요. tool call의 입력과 출력, 검색 passage, 파일 산출물, 에이전트 lineage, compaction에 쓰인 요약 지시까지 남겨야 나중에 장애 분석이나 보안 감사가 가능해져요.

  • 제공자 전용 상태를 완전히 쓰지 말자는 얘기는 아니에요. 같은 모델에서 품질을 높이는 캐시나 암호화 블록은 쓸 수 있지만, 사람이 읽을 수 있는 handoff representation이 같이 있어야 팀이 특정 API에 갇히지 않아요.

AI 앱을 만드는 팀이면 이 글은 꽤 불편하게 읽힐 만하다. 기능을 빨리 붙이다 보면 서버 측 상태 저장과 제공자 전용 최적화가 당장은 편한데, 나중에는 디버깅·감사·마이그레이션을 죄다 막는 잠금장치가 될 수 있다는 얘기라서다.

댓글

댓글

댓글을 불러오는 중...

ai-ml

딥시크 V4 플래시 공개 베타, 에이전트 성능을 대놓고 밀고 있다

DeepSeek가 DeepSeek-V4-Flash API를 공개 베타로 올리고, 모델명만 deepseek-v4-flash로 바꾸면 쓸 수 있게 했다. 이번 업데이트는 에이전트 성능 개선이 핵심이며 Terminal Bench 2.1 82.7, DeepSWE 54.4, DSBench-FullStack 68.7 같은 수치를 내세운다. Responses API 형식과 Codex 적응도 명시되어 있어 코딩 에이전트 쪽에서 바로 비교 대상이 될 만하다.

ai-ml

LG CNS, AI·클라우드 매출은 컸지만 2분기 수익성은 흔들렸다

LG CNS가 2026년 2분기 매출 1조5208억 원을 기록하며 외형 성장은 이어갔지만, 영업이익은 전년 대비 9.2% 감소함. AI·클라우드 부문은 상반기 매출 1조6714억 원으로 전체의 약 59%를 차지했고, 1조 원 이상 AI 데이터센터 DBO 수주도 공개됨.

ai-ml

삼성SDS, 클라우드와 AI 인프라로 2분기 매출 3조7178억 찍었다

삼성SDS가 2026년 2분기 매출 3조7178억 원, 영업이익 2318억 원을 기록함. 클라우드, GPU 서비스, 기업 AI 전환 수요가 실적 개선을 끌었고, AI 인프라는 110메가와트에서 2031년 800메가와트 이상 운영 역량까지 키우겠다는 계획이 나옴.

ai-ml

GS건설, 스노우플레이크로 현장 데이터와 AI 기반 다진다

GS건설이 클라우드 데이터 플랫폼 스노우플레이크를 도입해 전사 업무 데이터를 단계적으로 통합함. 현장 플랫폼 PMX와 연결하고 온톨로지까지 구축해 공정, 품질, 안전, 원가 데이터를 한눈에 보는 구조로 가려는 움직임임.

ai-ml

LG CNS 상반기 매출 2.8조원, AI·클라우드가 절반 넘게 먹여 살렸다

LG CNS가 올해 상반기 매출 2조8358억원, 영업이익 2221억원을 기록했다. AI·클라우드 매출만 1조6714억원으로 전체의 약 59%를 차지했고, 하이퍼스케일 AI 데이터센터와 피지컬 AI가 다음 성장 카드로 올라왔다.