
Gemini 3.5 Flash를 활용한 프로덕션급 LLM 컴퓨터 사용 에이전트 구축: 심층 기술 가이드
요약
Gemini 3.5 Flash의 네이티브 컴퓨터 사용 기능을 활용하여 프로덕션급 LLM 에이전트를 구축하는 심층 기술 가이드입니다. See-Reason-Act 루프 아키텍처, 보안 방어 전략, 멀티 환경 설정 및 실제 Python 구현 방법을 다룹니다.
핵심 포인트
- Gemini 3.5 Flash의 네이티브 computer_use 도구 활용법
- See-Reason-Act 기반의 에이전트 아키텍처 설계
- 프롬프트 인젝션 방어를 위한 심층 보안 아키텍처 구축
- 브라우저, 모바일, 데스크톱을 아우르는 멀티 환경 지원
Meta Description: Gemini 3.5 Flash를 사용하여 프로덕션 환경에 즉시 적용 가능한 LLM 컴퓨터 사용 에이전트를 구축하기 위한 심층 기술 가이드입니다. 액션 루프 (action loop) 아키텍처, 프롬프트 인젝션 (prompt injection) 방어, 멀티 환경 설정, RL 도구 사용 안정성, 그리고 전체 Python 코드 예제를 다룹니다.
목차
- 서론 — 에이전트를 위한 GPT의 순간이 왔다
- 컴퓨터 사용 에이전트란 무엇인가? 핵심 개념
- 아키텍처 — See Reason Act 루프
- Gemini 3.5 Flash 컴퓨터 사용 API 설정하기
- 브라우저 자동화 에이전트 구축 — 전체 코드 워크스루 (Walkthrough)
- 멀티 환경 지원 — 브라우저, 모바일 및 데스크톱
- 프롬프트 인젝션 (Prompt Injection) — 컴퓨터 사용 에이전트의 제1위 위협
- 심층 방어 (Defense-in-Depth) — 프로덕션 보안 아키텍처
- 왜 다단계 RL 학습이 붕괴되는가와 그 해결 방법
- 엔터프라이즈 유스케이스 및 실제 배포 사례
- 하드웨어 계층 — 왜 OpenAI가 Jalapeno 칩을 만들었는가
- 앞으로의 전망 — 컴퓨터 사용 에이전트의 다음 단계는 무엇인가
- 결론
서론 — 에이전트를 위한 GPT의 순간이 왔다
2026년 6월 24일, Google DeepMind는 올해 가장 중대한 개발자 API 업데이트가 될 수도 있는 기능을 조용히 출시했습니다. 바로 Gemini 3.5 Flash에 직접 내장된 네이티브 컴퓨터 사용 (native computer use) 기능입니다. 별도의 모델도, 베타 프리뷰 엔드포인트도 아닙니다. 여러분이 이미 함수 호출 (function calling), RAG, 멀티모달 추론 (multimodal reasoning)을 위해 사용하고 있는 동일한 모델에 전달하는 새로운 computer_use 도구 유형일 뿐입니다.
이 소식은 Hacker News에서 188개의 추천을 받았지만, AI 개발자 커뮤니티 외부에서는 거의 언급되지 않았습니다. 이러한 비대칭성 — 즉, 소음은 작지만 신호는 거대한 것 — 은 패러다임 전환이 일어나기 직전에 나타나는 정확한 패턴입니다.
“컴퓨터 사용 (computer use)”이 실제로 무엇을 의미하는지 생각해 보십시오. 당신은 LLM에게 평이한 영어로 목표를 부여합니다: "다음 주말 SFO에서 LHR로 가는 가장 저렴한 항공권 3개를 찾아서, Google Sheet를 열고 가격, 항공사, 소요 시간 열을 채워줘.". 모델은 항공권 API를 호출하지 않습니다. JSON을 파싱하지도 않습니다. 모델은 당신의 화면을 보고 (looks at your screen), 보이는 것에 대해 추론하며, 클릭하고, 타이핑하고, 스크롤하고, 탭을 전환하고, 작업이 완료될 때까지 이 과정을 반복합니다 — 마치 인간 운영자가 하는 것과 정확히 똑같이 말입니다.
우리는 "텍스트를 자동 완성하는 LLM" (2020년) → "함수를 호출하는 LLM" (2023년) → "컴퓨터를 제어하는 LLM" (2026년)으로 진화해 왔습니다. 각 단계의 도약은 AI가 실제로 당신을 위해 할 수 있는 일의 범위를 10배씩 확장했습니다. 세 번째 도약은 프로덕션 자동화(production automation)가 본격적으로 실현되는 지점입니다.
이 가이드는 심층적인 기술적 워크스루(walkthrough)입니다. 다음 내용을 다룰 것입니다:
- See → Reason → Act 루프와 이것이 전통적인 함수 호출 (function calling)과 아키텍처 측면에서 왜 다른지
- 프로덕션 환경에 즉시 적용 가능한 브라우저 자동화 에이전트를 위한 전체 Python 코드
- 멀티 환경 지원 (브라우저, 모바일, 데스크톱)
- 프롬프트 인젝션 (prompt injection) 위협 모델과 실제적인 방어 체계를 구축하는 방법
- 다단계 도구 사용 (multi-step tool use)을 위한 RL 학습이 붕괴되는 이유와 2026년 6월 최신 ArXiv 논문에서 제시된 해결책
- 하드웨어 경제학: 왜 OpenAI가 정확히 이러한 워크로드를 위해 맞춤형 추론 칩 (Jalapeño)을 제작했는지
이제 시작해 봅시다.
컴퓨터 사용 에이전트란 무엇인가? 핵심 개념
코드 한 줄을 쓰기 전에, 컴퓨터 사용 에이전트가 무엇인지, 그리고 결정적으로 무엇이 _아닌지_를 정확히 정의해 보겠습니다.
함수 호출 (Function Calling) vs. 컴퓨터 사용 (Computer Use)
전통적인 **함수/도구 호출 (function/tool calling)**은 개발자인 당신이 모든 외부 기능을 타입이 지정된 JSON 스키마 (JSON schema)로 미리 정의해야 합니다. 모델은 구조화된 인자 (arguments)를 출력하고, 당신의 코드가 해당 함수를 실행하여 결과를 반환합니다. 이는 강력하지만, 모델은 근본적으로 추상화 (abstractions) 위에서 작동합니다. 즉, 모델은 실제 UI, 렌더링된 웹 페이지, 또는 나타난 에러 대화 상자를 결코 직접 보지 못합니다.
**컴퓨터 사용 (Computer use)**는 이 방식을 뒤집습니다. 구조화된 API 대신, 모델은 가공되지 않은 픽셀 데이터(스크린샷)를 기반으로 작동합니다. 미리 정의된 함수 스키마 (function schemas) 대신, 모델은 범용적인 GUI 프리미티브 (GUI primitives)를 출력합니다: 좌표 클릭, 키보드 입력, 스크롤 명령, 드래그 제스처 등입니다. 이 "인터페이스"는 인간이 사용하는 것과 동일합니다. 즉, 컴퓨터 사용 에이전트는 API가 없는 레거시 소프트웨어, 내부 도구, 제3자 SaaS 제품을 포함하여 어떠한 애플리케이션과도 상호작용할 수 있음을 의미합니다.
| 함수 호출 (Function Calling) | 컴퓨터 사용 (Computer Use) | |
|---|---|---|
| 인터페이스 (Interface) | 타입이 지정된 JSON 스키마 (Typed JSON schema) | 스크린샷 (픽셀) |
| ... |
주요 용어 (Key Terminology)
- 스크린샷 관찰 (Screenshot observation): 현재 상태에 대한 모델의 "시야"로서 모델에 전달되는 픽셀 수준의 스크린샷
- 액션 (Action): 모델이 방출하는 UI 프리미티브 (예:
{"type": "click", "x": 400, "y": 250}) - 의도 (Intent): Gemini 3.5 Flash에서는 각 액션에 모델이 왜 해당 단계를 수행하는지에 대한 자연어 설명이 포함됩니다. 이는 디버깅 및 감사 추적 (audit trails)에 매우 유용합니다.
- 에피소드 (Episode): 초기 프롬프트부터 작업 완료까지의 하나의 완전한 작업 실행
- 궤적 (Trajectory): 에피소드 내의 (스크린샷, 액션) 쌍의 전체 시퀀스
- 그라운딩 (Grounding): 모델의 이해를 특정 화면 좌표에 매핑하는 과정
아키텍처 — See Reason Act 루프
기반 모델에 관계없이 모든 컴퓨터 사용 에이전트는 핵심적인 에이전트 루프 (agentic loop)를 기반으로 구축됩니다. 표준적인 흐름은 다음과 같습니다:
┌─────────────────────────────────────────────────────────────┐
│ 에이전트 제어 루프 (AGENT CONTROL LOOP) │
│ │
...
각 단계에서 루프는 네 가지 작업을 수행합니다:
- Capture (캡처): 현재 환경 상태의 스크린샷(screenshot)을 찍습니다.
- Send (전송):
computer_use도구가 활성화된 상태로 스크린샷 + 이전 히스토리(history) + 현재 목표(goal)를 모델에 POST 합니다. - Receive (수신): 모델의
function_call(액션 유형 + 좌표 + 파라미터) 및intent(추론 과정, reasoning trace)를 파싱(parse)합니다. - Execute (실행): 실제 환경에 액션을 적용하고 다시 1단계로 돌아갑니다.
이 루프는 모델이 task_complete 신호를 반환하거나, 최대 단계(max-step) 제한에 도달하거나, 안전 정책(safety policy)이 중단을 트리거하거나, 또는 애플리케이션이 외부 체크를 통해 목표가 달성되었다고 판단할 때 종료됩니다.
이 아키텍처는 단순한 챗봇(chatbot)이나 RAG 파이프라인(pipeline)과 한 가지 근본적인 면에서 다릅니다. 바로 모델이 각 액션이 세상을 변화시키는 상태 유지형(stateful)의 연속적인 루프 내에서 작동한다는 점입니다. 액션은 되돌릴 수 없습니다. 제출된 양식은 제출된 양식입니다. 이것이 보안 공격 표면(security surface)이 함수 호출(function calling)보다 훨씬 더 극적으로 넓은 이유이며, 프로덕션 배포(production deployment)에서 엄격한 심층 방어(defense-in-depth) 전략이 요구되는 이유입니다.
Gemini 3.5 Flash Computer Use API 설정하기
사전 요구 사항 (Prerequisites)
pip install google-genai playwright pillow
playwright install chromium
인증 (Authentication)
import os
from google import genai
...
최소 기능 컴퓨터 사용 요청 (The Minimal Viable Computer Use Request)
from google import genai
client = genai.Client()
...
응답 객체(response object)는 다음을 포함합니다:
interaction.actions— 실행할function_call객체 리스트interaction.actions[i].intent— 각 액션에 대한 사람이 읽을 수 있는 추론 내용 (Gemini 3.5 Flash 전용)interaction.status—"running"|"complete"|"blocked"|"requires_confirmation"
브라우저 자동화 에이전트 구축 — 전체 코드 워크스루 (Full Code Walkthrough)
다음은 브라우저 제어를 위해 Playwright를 사용하고 추론 엔진으로 Gemini 3.5 Flash를 사용하는 프로덕션 품질의 브라우저 자동화 에이전트입니다:
"""
production_computer_use_agent.py
...
이 에이전트는 다음과 같은 측면에서 프로덕션 준비가 되어 있습니다:
- 제한된 실행 (Bounded execution) —
MAX_STEPS를 통해 무한 루프를 방지합니다. - 안전 게이트 (Safety gates) — 되돌릴 수 없는 작업에 대해 인간의 승인을 요구합니다.
- 프롬프트 인젝션 탐지 (Prompt injection detection) —
safety_settings를 통해 활성화됩니다. - 궤적 로깅 (Trajectory logging) — 모든 스크린샷, 작업 및 의도에 대한 전체 감사 추적(audit trail)을 제공합니다.
- 좌표 스케일링 (Coordinate scaling) — 스크린샷 다운스케일링을 투명하게 처리합니다.
- 우아한 중단 (Graceful halting) — 인젝션 탐지 또는 안전 게이트 거부 시 작업을 중단합니다.
멀티 환경 지원 — 브라우저, 모바일 및 데스크톱
Gemini 3.5 Flash는 통합된 멀티 환경 인터페이스를 도입합니다. 동일한 computer_use 도구 유형이 세 가지 서로 다른 대상에서 작동하며, 각 대상은 약간씩 다른 작업 어휘(action vocabularies)를 가집니다.
브라우저 환경 (Browser Environment)
tools=[{"type": "computer_use", "environment": "browser"}]
브라우저 모드는 URL 탐색 인지 기능을 추가합니다. 모델은 주소창을 클릭하지 않고도 URL로 직접 이동하기 위해 navigate 작업을 생성할 수 있습니다. 웹 리서치, 양식 자동화, SaaS 앱 제어 및 이커머스 워크플로우에 이상적입니다.
모바일 환경 (Mobile Environment)
tools=[{"type": "computer_use", "environment": "mobile"}]
모바일 모드는 세로 방향 화면에 맞춰 좌표 기대치를 조정하며, tap, swipe, pinch와 같은 터치 제스처를 이해합니다. Android/iOS 시뮬레이션 환경(에뮬레이터, Appium, BrowserStack)을 위해 설계되었습니다. 모바일 앱 테스트 및 온디바이스(on-device) 자동화에 이상적입니다.
데스크톱 환경 (Desktop Environment)
tools=[{"type": "computer_use", "environment": "desktop"}]
데스크톱 모드는 완전한 OS 레벨 제어를 목표로 합니다 — t
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기