URL: https://www.youtube.com/watch?v=8aVbXXvJUY4
원문 제목: An Interaction Is All You Need — Ivan Leo, Google DeepMind
날짜: 2026-10-04
채널: aiDotEngineer
발표자: Ivan Leo, Developer Experience Engineer, Google DeepMind
행사: AI Engineer World's Fair 2026, San Francisco
📌 핵심 질문 / 핵심 주장과 근거
==모델과 에이전트를 하나의 상호작용(Interaction) 추상화로 묶고, 대화 상태는 Interaction ID로, 실행 환경은 Environment ID로 분리하면 멀티모달·장기 실행·원격 에이전트를 같은 API 흐름에서 조합할 수 있다.==
- 단일 요청을 넘어서 함수 호출, 사고와 반성, 도구 실행, 환경 상호작용을 반복하는 에이전트 워크로드는 기존 모델별·기능별 엔드포인트만으로 다루기 어렵다.
- 서버 측 상태가 Gemini의 thought signature를 보존하므로 클라이언트가 불투명한 캐시 서명을 수동으로 운반하지 않아도 대화 맥락과 성능을 유지한다.
- 강한 타입의 출력과 Steps 데이터 모델은 텍스트·이미지·오디오·비디오·함수 호출을 한 흐름의 명시적 단계로 표현한다.
- Managed Agents는 Antigravity harness, 영속 샌드박스, 소스 로딩, 자격 증명 프록시, Named Agent를 기본 제공해 에이전트 인프라와 상태 보존 부담을 줄인다.
모델이 단순한 텍스트 완성기에서 지시를 따르고 함수를 호출하는 시스템으로, 다시 여러 도구와 환경을 오가며 장시간 추론하는 에이전트로 발전하면서 API의 중심도 메시지 교환에서 상호작용의 전체 수명주기로 이동한다. Interactions API와 Managed Agents는 이 이동을 하나의 인터페이스와 두 종류의 식별자에 담는다.
1. 완성(Completion)에서 환경 속 에이전트로
1.1. 단일 요청과 함수 호출의 출발점
-
단일 상호작용의 모델
- 처음에는 “농담을 해줘”라는 메시지를 보내고 “과학자를 원자를 믿지 못하는 이유는 원자가 모든 것을 꾸며내기 때문이다”라는 답을 받는 정도의 단일 왕복으로 충분했다.
- 모델이 세상을 더 잘 이해하고 애플리케이션에 들어가자, 그럴듯한 문장보다 안정적으로 파싱하고 실행할 수 있는 구조가 필요해졌다.
-
함수 호출(Function Calling)의 등장
- 함수 호출은 예측 가능한 구조를 가진 JSON 객체를 모델이 만들게 한다.
- 웹사이트 회원가입 폼이 사용자 이름과 비밀번호를 JSON payload로 백엔드에 보내면 서버가 새 계정을 만드는 것처럼, 애플리케이션은 모델의 구조화된 출력을 읽고 다음 동작을 수행할 수 있다.
- 사용자 정보 추출, 데이터 파싱, 애플리케이션의 여러 부분으로 모델 출력을 전달하는 작업이 가능해졌다.
1.2. 추론·도구·환경을 반복하는 에이전트
-
모델 능력의 변화
- 최신 모델은 사람에게 답을 반환하기 전에 오랜 시간 추론할 수 있다.
- “뉴욕의 날씨는?”이라는 요청에 날씨 도구를 한 번 호출하던 방식에서, 여러 도구를 선택하고 호출한 뒤 결과를 해석하고 반성하며 환경과 상호작용하는 방식으로 확장됐다.
- 최종 응답은 단일 생성 결과가 아니라 도구 호출·사고·관찰·행동이 누적된 뒤 만들어진다.
-
에이전트의 구성
- 에이전트의 큰 부분은 여전히 언어 모델(Language Model)이 담당하며, 많은 경우 에이전트는 언어 모델을 루프 안에서 실행하는 시스템으로 볼 수 있다.
- 모델이 강해질수록 주변 스캐폴딩(scaffolding)은 줄어들고 있다.
- 최신 Opus 모델과 Fable 모델은 과거의
edit_file·read_file처럼 목적별로 쪼갠 도구 대신 Bash 도구 하나를 곧바로 사용하는 경향을 보인다. - 모델은 사용자 의도와 맥락을 이해하고, 함수와 리소스 집합을 사용하며, 단기 기억과 장기 기억으로 경험을 추적하고, 함수를 실행할 환경을 필요로 한다.
- 코딩 에이전트에 실제 코드를 실행할 환경을 주지 않으면 코드를 작성하는 것 외에는 아무것도 할 수 없다.
2. AI Studio와 에이전트 워크로드의 현실
2.1. AI Studio에서 빠르게 실험하기
-
발표 준비도 AI Studio로 만든다
- Ivan Leo는 발표자 화면을 사용할 수 없다는 사실을 발표 2분 전에 알게 됐고, AI Studio에 모바일 반응형 speaker notes 웹사이트를 만들어 달라고 짧게 지시했다.
- 대화 기록에 요구사항을 넣자 바로 사용할 수 있는 간단한 애플리케이션이 생성됐고, 별도 번거로움 없이 웹사이트로 배포됐다.
- 넉넉한 무료 티어 덕분에 발표 준비에서 Google의 무제한 토큰을 사용하지 않고도 대부분의 실험을 처리할 수 있었다.
-
모델 탐색의 진입 장벽을 낮춘다
- 영어 음성을 받아 어떤 언어로든 변환하는 speech-to-speech translation 모델을 시험할 수 있다.
- Gemini 3.5 Flash 같은 최신 모델을 선택하고 여러 파라미터를 UI 토글로 조정할 수 있다.
- AI Studio는 모델을 처음 시험하거나 짧은 애플리케이션을 즉석에서 만들려는 개발자에게 가장 쉬운 출발점으로 제시된다.
2.2. 모델 API에서 모델·에이전트 API로
-
워크로드의 폭이 달라졌다
- Gemini API에는 Nano Banana 같은 생성 모델과 Gemini 3.5 Flash 같은 모델이 있고, 3분 이상 실행되며 연구 계획을 세우고 외부 작업을 수행한 뒤 긴 연구 보고서를 반환하는 Deep Research 에이전트도 있다.
- 모델과 에이전트를 서로 다른 엔드포인트 묶음으로 소비하면 제품을 만들 때 인터페이스가 파편화된다.
- 기존 엔드포인트는 데이터가 깊게 중첩된 객체에 들어 있어 Google 내부의 퍼스트파티 통합을 만들 때도 다루기 어려웠다.
-
조합형 애플리케이션이 필요하다
- 한 번의 흐름에서 Nano Banana로 이미지를 만들고, 그 이미지로 연구를 수행하고, 연구 결과를 바탕으로 Veo 비디오를 생성할 수 있어야 한다.
- 여러 에이전트를 병렬로 실행해 각자 작업을 수행하게 하는 사용례도 같은 흐름에서 다뤄야 한다.
- Interactions API는 모델과 에이전트를 모두 지원하고 Google 생태계 전반에서 Gemini를 사용할 수 있도록 설계된 통합 추상화다.
3. Interactions API의 핵심 설계
3.1. 서버 측 상태와 Interaction ID
-
Thought signature를 클라이언트에서 관리하는 문제
- 최신 Gemini 모델이 함수 호출이나 응답을 수행하면 불투명한 숫자열인 thought signature를 돌려준다.
- 개발자가 이 서명을 매번 수동으로 보존해 다음 요청에 넣어야 했고, 어떤 스타트업은 실수로 넣은 공백 하나 때문에 캐시를 잃기도 했다.
- Gemini 모델에 서명을 다시 전달하지 않으면 성능이 떨어질 수 있어, 수동 관리 자체가 신뢰성 위험이었다.
-
Interaction ID로 맥락을 이어 간다
- 첫 번째 요청은 “안녕, 내 이름은 Phil이야”라는 입력과 함께 Interaction ID를 반환한다.
- 두 번째 요청에서
previous_interaction_id에 같은 ID를 넣으면 서버가 이전 맥락과 thought signature를 보존한다. - 클라이언트는 전체 대화와 불투명한 내부 상태를 다시 조립하지 않고 다음 상호작용만 제출하면 된다.
3.2. 이미지·비디오·오디오를 한 맥락으로 연결하기
-
한 장의 사진에서 여러 장면과 비디오로 확장한다
- Vampsy가 만든 데모는 한 장의 사진으로 Nano Banana를 호출해 같은 인물을 여러 국가와 장소에 배치한 다양한 이미지를 생성한다.
- 각각의 사진은 개별 상호작용이지만, 최초 API 호출에서 여러 Interaction이 파생되는 구조다.
- 같은 Interaction ID를 사용해 새로 출시된 Omni 모델로 그 이미지들을 이어 붙인 비디오를 생성한다.
- Philip이 만든 Interactions API가 이미지 생성과 비디오 생성을 같은 맥락으로 연결했기 때문에 가능한 흐름이다.
-
코드의 형태를 단순화한다
- Gemini 3.1 Flash Image에 “베네치아에 있는 나”를 생성하라고 요청한다.
- 응답으로 받은 Interaction ID를 다시
client.create에 전달하고, 이번에는 수요일에 출시된 Omni Flash 모델을 지정한다. - 두 호출은 같은 정보·이미지·맥락을 공유하므로 더 복잡하고 풍부한 에이전트 애플리케이션으로 확장된다.
-
출력 타입을 명시한다
- 과거에는
completions.audio처럼 깊게 중첩된 객체를 찾아 오디오를 꺼내야 했다. - 이제 각 출력에
output.type이 있고, 오디오라면 오디오로, 이미지라면 이미지로 명시된다. - 이미지 생성을 원하면 같은
client.interaction.create호출에서 response modality와 generation config만 바꾸면 된다. - 강한 타입(Strong Type)은 멀티모달 결과를 파싱하고 처리하는 코드를 단순하게 만든다.
- 과거에는
3.3. 내장 도구와 커스텀 도구의 조합
-
최신 보안 정보를 조사하는 에이전트
- React 애플리케이션의 최신 보안 보고서를 찾는 에이전트에 Google이 사용하는 것과 같은 검색 인덱스를
type: Google Search로 제공한다. - Google Search 결과에서 웹 페이지 내용을 읽도록 Google이 제공하는 URL Context 도구를 추가한다.
- 보안 사고를 기록하는
file_incident커스텀 도구도 함께 제공한다.
- React 애플리케이션의 최신 보안 보고서를 찾는 에이전트에 Google이 사용하는 것과 같은 검색 인덱스를
-
한 번의 요청 안에서 자율적으로 순서를 결정한다
- 모델은 어떤 정보가 필요한지 스스로 판단하고 검색·URL 읽기·사고 기록을 필요한 순서로 수행한다.
- 학습 데이터의 기준 시점에 갇힌 모델도 인터넷 도구를 통해 그 이후의 정보에 접근할 수 있다.
- 내장 도구와 사용자 정의 도구를 섞는 방식은 정보 검색과 실제 업무 수행을 하나의 API 호출로 묶는다.
3.4. Steps 데이터 모델
-
메시지-응답 모델의 한계
- 에이전트 흐름에는 비동기 도구 호출과 여러 모델의 협업이 들어가며, 하나의 메시지와 하나의 응답만으로는 순서를 표현하기 어렵다.
- 각 단계에서 모델이 무엇을 출력했는지, thought signature가 무엇인지, 어떤 함수를 호출했는지, 어떤 콘텐츠를 생성했는지 보존해야 한다.
-
명확한 판별자(discriminator)
- Steps 데이터 모델은 기존 legacy
outputs배열을 대체한다. - 각 단계의 타입을 판별하는 강한 구조가 있어 출력과 함수 호출의 종류를 분명하게 구분한다.
- 텍스트·오디오·비디오 같은
content.type정보를 같은 파이프라인에서 처리할 수 있어 Gemini 모델군의 멀티모달 조합이 쉬워진다.
- Steps 데이터 모델은 기존 legacy
4. Managed Agents와 영속 실행 환경
4.1. Antigravity harness를 원격에서 사용하기
-
공통 harness의 표준화
- Google 제품군은 원격 에이전트인 Antigravity를 공통 harness로 표준화하고 있다.
- AI Studio에서 웹사이트를 만들 때도 Antigravity 에이전트를 사용하고, Antigravity 애플리케이션에서도 같은 에이전트를 사용한다.
- Gemini로 학습한 능력 있는 harness를 기본 제공하므로 개발자가 처음부터 harness를 조정하지 않아도 된다.
-
기존 코딩 에이전트 구축의 부담을 없앤다
- 기존에는 harness를 튜닝하고, 샌드박스 공급자를 찾고, 인프라를 관리하고, 실행 사이의 맥락을 보존하는 방법을 따로 설계해야 했다.
- Managed Agent는 단일 API 호출로 영속 샌드박스를 제공하며, 수정 없이 개인용 클로(personal claw)처럼 계속 호출할 수 있다.
4.2. GitHub 저장소 분석 데모
-
원격 샌드박스에서 자율 분석한다
- 분석할 GitHub 저장소를 API 호출로 Antigravity 에이전트에 전달한다.
- 원격 샌드박스가 부팅되고 에이전트는 작업공간의 파일 목록을 얻기 위해
list_file을 호출한다. - 각 파일을 읽은 뒤 저장소가 무엇을 하는지 최종 보고서를 생성한다.
- 이 과정은 호출자의 개입 없이 원격 환경에서 연구·추론·도구 실행을 스스로 수행한다.
-
Interaction ID와 Environment ID를 분리한다
Interaction ID는 요청·응답·이전 행동을 포함한 대화 맥락을 이어 간다.Environment ID는 파일, 설치된 패키지, 실행 상태가 있는 정확한 샌드박스로 돌아가게 한다.- 두 ID를 함께 보존하면 같은 샌드박스를 다시 사용하면서 상태 보존 인프라를 직접 운영하지 않아도 된다.
4.3. 소스 로딩과 장기 실행 분석
-
샌드박스에 소스를 주입한다
- Google Cloud Storage(GCS) 버킷을 소스로 연결할 수 있다.
- GitHub 저장소를 그대로 불러올 수 있다.
- 필요한 의존성, Markdown 파일, helper 파일을 inline file로 전달할 수 있다.
-
환경을 계속 이어 간다
- Environment ID와 Interaction ID를 다시 전달하면 직전 호출에서 작업하던 파일을 그대로 볼 수 있다.
- 설치한 패키지와 생성한 파일도 각 턴에 남으므로, 매번 새 환경을 만들거나 상태를 복원할 필요가 없다.
-
200만 토큰 규모의 저장소를 처리한다
- 해커톤에서 만든 저장소 중에는 강화학습 환경을 위한 프로그래밍 언어를 처음부터 만든 프로젝트가 있었다.
- 이 프로젝트는 Scratch처럼 캐릭터를 드래그 앤 드롭으로 움직이는 언어가 아니라, 커스텀 DSL, 웹 페이지, 여러 스키마, 내부에 동작하는 강화학습(RL) 학습 루프를 포함한 훨씬 복잡한 시스템이었다.
- Managed Agent는 단일 API 호출로 이 저장소를 분석하는 과정에서 200만 토큰 이상을 사용했다.
- 개발자는 하부 인프라를 운영하거나 harness를 직접 튜닝하지 않고도 특수한 프로젝트에 맞는 강력한 에이전트를 만들 수 있다.
4.4. 로컬과 클라우드의 동일한 에이전트
- 개발한 스킬을 그대로 배포한다
- Antigravity IDE에서 쓰던 에이전트와 클라우드 Managed Agent는 근본적으로 같은 에이전트다.
- 로컬에서 충분히 다듬은 workflow와 skill을 하나의 폴더로 패키징해
agents폴더에 소스로 업로드할 수 있다. - 로컬과 클라우드에서 같은 skill, 같은 harness, 같은 prompt가 실행되므로 검증한 동작을 그대로 원격으로 옮길 수 있다.
5. 보안·재사용·운영 확장
5.1. 자격 증명을 노출하지 않는 프록시
-
기업 환경의 핵심 우려
- 에이전트가 Gemini API나 비공개 GitHub 저장소에 접근하려면 네트워크 자격 증명이 필요하다.
- 프롬프트 인젝션으로 에이전트가 토큰을 읽어 외부로 유출할 수 있다는 문제가 생긴다.
-
Man-in-the-Middle proxy
- Managed Agents는 에이전트와 외부 서비스 사이에 프록시를 두고 모든 outbound 요청의 헤더를 검사한다.
- GitHub API로 나가는 요청의 헤더에 토큰을 동적으로 주입하거나 필요한 값을 교체할 수 있다.
- 에이전트가 프롬프트 인젝션을 당해도 실제 토큰은 모델에게 보이지 않고, 토큰을 사용한 코드 실행만 GitHub API에 도달한다.
5.2. Named Agent로 설정을 얼린다
-
파일·네트워크 소스로 고정하기
- Antigravity Preview 기본 에이전트에 GCS skill 같은 환경 설정과 네트워크 소스를 추가해 데이터 분석 에이전트를 만들 수 있다.
- 구성된 파일과 소스를 특정 설정으로 동결하면 후속 호출이 언제나 같은 기반에서 실행된다.
-
대화로 환경을 만든 뒤 고정하기
- 에이전트와 반복적으로 대화하면서 필요한 패키지와 의존성을 설치한다.
- 원하는 상태에 도달하면 그 환경을 특정 Named Agent로 동결하고 이후 호출을 그 에이전트로 보낸다.
-
운영 비용의 기준
- 최대 1,000개의 Named Agent를 지원한다.
- Named Agent의 저장 공간이나 샌드박스 자체에는 비용을 청구하지 않고 모델 사용량에 대해서만 비용을 낸다.
- 인프라는 이러한 다수의 구성과 workload를 높은 성능으로 처리하도록 최적화돼 있다.
6. 로컬 CLI와 Interactions API로의 이전
6.1. Gemini API CLI
- 명령줄에서 모델을 시험한다
- 오픈소스로 공개된 Gemini API CLI는 간단한 CLI 명령으로 로컬에서 Gemini 모델을 시작하고 시험하게 한다.
- 코딩 에이전트나 Antigravity 에이전트를 로컬에서 반복 개선한 뒤 하나의 폴더로 패키징할 수 있다.
- 패키지를 업로드하면 Managed Agent가 생성되므로 로컬 실험과 클라우드 실행이 자연스럽게 이어진다.
6.2. 마이그레이션 스킬
-
코딩 에이전트에 문서를 주입한다
- 기존 Gemini API에서 Interactions API로 전환할 때는 새 Interactions API skill을 선호하는 코딩 에이전트에 제공한다.
- 코딩 에이전트가 최신 인터페이스에 맞게 구현을 바꾸고, 모델과 메서드의 변경을 놓치지 않게 한다.
-
오래된 모델과 구현을 피한다
- Gemini에 구현을 요청했는데도 에이전트가 Gemini 2.5 Flash나 Gemini 2.0을 계속 사용하는 문제가 발생할 수 있다.
- Google 측 skill은 모델 목록과 메서드 목록을 최신 상태로 유지한다.
- 제공되는 skill은 정기적으로 평가해 실제로 Gemini를 잘 사용하고 Gemini 위에 제대로 구축하게 하는지 확인한다.
주요 발언 모음
“An interaction is all you need.”
“에이전트에 실제 코드를 실행할 환경을 주지 않으면 아무것도 할 수 없다.”
“Interaction ID는 맥락을 보존하고, Environment ID는 정확히 같은 실행 환경으로 돌아가게 한다.”
“모델은 토큰을 보지 않고 GitHub API를 호출하는 코드만 실행한다.”
“로컬에서 만족스러운 skill을 만들었다면 같은 skill을 클라우드 에이전트에 올릴 수 있다.”
“저장 공간이나 샌드박스에는 비용을 내지 않고 모델에 대해서만 비용을 낸다.”
핵심 데이터 & 수치
- 약 2분: 발표자 화면을 대신할 모바일 반응형 speaker notes 앱을 AI Studio에서 만들어낸 시간이다.
- 3분 이상: Deep Research 에이전트가 연구 계획을 세우고 외부 작업을 수행하는 대표적인 실행 시간이다.
- 200만 토큰 이상: 커스텀 DSL·웹 페이지·스키마·RL 학습 루프를 가진 해커톤 저장소를 분석한 Managed Agent 실행량이다.
- 최대 1,000개: 지원되는 Named Agent 수다.
- 2종 ID: 대화 상태를 위한 Interaction ID와 실행 환경 상태를 위한 Environment ID다.
- 3종 소스 경로: GCS 버킷, GitHub 저장소, inline file로 샌드박스에 자료를 넣을 수 있다.
결론 및 시사점
- 에이전트 애플리케이션의 기본 단위는 한 번의 모델 호출이 아니라 도구 호출과 중간 산출물이 이어지는 상호작용이어야 한다.
- 대화 상태와 파일·패키지·실행 상태를 서로 다른 ID로 분리하면 장기 실행과 재개 가능한 워크플로를 간단하게 설계할 수 있다.
- 멀티모달 출력을 강한 타입과 Steps로 표현하면 이미지·비디오·오디오 생성과 함수 호출을 한 파이프라인에서 조합할 수 있다.
- Managed Agent를 사용하면 harness 튜닝, 샌드박스 운영, 상태 복원, 자격 증명 보호를 직접 구현하는 비용이 줄어든다.
- 로컬에서 skill과 환경을 검증하고 동일한 폴더를 클라우드에 배포하는 방식은 에이전트의 재현성과 운영 신뢰성을 높인다.
- 프록시 기반 자격 증명 주입은 프롬프트 인젝션이 발생해도 비밀값을 모델 컨텍스트 밖에 두는 보안 경계를 제공한다.
- 모델이 더 오래 생각하고 더 많은 도구를 사용할수록 API는 응답 JSON보다 상태·단계·환경·비용을 먼저 표현해야 한다.
핵심 요약 (20줄)
- Ivan Leo는 Google DeepMind의 Interactions API와 Managed Agents를 에이전트 개발의 새 기본 인터페이스로 제시한다.
- 단일 메시지 응답은 함수 호출과 장시간 추론을 거치며 환경 속에서 행동하는 에이전트로 발전했다.
- 함수 호출은 모델의 의도를 예측 가능한 JSON 구조로 바꿔 애플리케이션이 실제 동작을 실행하게 한다.
- 에이전트는 모델, 도구와 리소스, 단기·장기 기억, 실행 환경이 결합된 반복 시스템이다.
- AI Studio는 무료 티어와 간단한 UI로 최신 Gemini 모델과 음성 번역 모델을 시험하게 한다.
- Interactions API는 Nano Banana 이미지, Deep Research, Veo 비디오를 하나의 상호작용 흐름에서 연결한다.
- 서버 측 상태는 thought signature를 보존해 개발자가 불투명한 캐시 정보를 직접 관리하지 않게 한다.
previous_interaction_id를 전달하면 후속 요청이 이전 대화 맥락과 모델 상태를 이어받는다.- 한 장의 사진으로 만든 여러 이미지는 같은 Interaction ID를 통해 Omni 비디오 생성으로 확장된다.
output.type과 Steps 데이터 모델은 텍스트·이미지·오디오·비디오·함수 호출을 명시적 단계로 구분한다.- Google Search, URL Context, 커스텀
file_incident도구는 한 번의 호출에서 자율적인 정보 수집과 업무 실행을 가능하게 한다. - Antigravity harness는 AI Studio와 Antigravity 제품 전반에서 재사용되는 원격 에이전트 실행 기반이다.
- Managed Agent는 단일 API 호출로 파일과 패키지를 유지하는 영속 샌드박스를 제공한다.
- Interaction ID가 대화 흐름을 보존하는 반면 Environment ID는 동일한 작업공간과 실행 상태를 복원한다.
- GCS, GitHub, inline file을 소스로 넣으면 복잡한 저장소와 맞춤형 의존성을 원격 환경에서 분석할 수 있다.
- 200만 토큰 이상의 커스텀 언어·웹·스키마·강화학습 저장소도 Managed Agent가 단일 호출로 분석했다.
- 로컬 Antigravity의 skill 폴더는 같은 harness와 prompt를 유지한 채 클라우드 에이전트로 배포할 수 있다.
- 자격 증명 프록시는 GitHub 토큰을 모델에게 노출하지 않고 outbound 요청에 동적으로 주입한다.
- Named Agent는 고정된 환경과 소스를 재사용하며 최대 1,000개까지 모델 사용량만 과금하는 방식으로 확장된다.
- Gemini API CLI와 Interactions API skill은 로컬 실험과 최신 API 마이그레이션을 하나의 개발 루프로 묶는다.
