AI에게 클릭을 맡기기 전, 무엇을 확인해야 할까?

네 개의 분리된 기록 경로 앞에서 멈춘 커서와 닫힌 안전 게이트를 표현한 추상 일러스트
필수 기록을 확인할 수 없다면, 클릭 전에 멈추는 것도 하나의 검증 결과다.
Grok Imagine을 사용해 생성한 AI 이미지입니다.

결론부터 말하면, 이번에는 컴퓨터 조작 에이전트를 시작하지 않았다. 따라서 클릭도, 클릭 차단도, 신뢰도 측정도 없었다. 일을 시켜 놓고 겁이 나서 중단한 것도 아니다. 시작 전에 정한 안전 조건을 현재 인터페이스에서 확인할 수 없었기 때문이다.

이것은 사전에 정한 중단 규칙이 작동한 결과다. 화면·현재 주소·페이지 구조를 볼 수 있다는 문서상 기능과, 모든 행동이 허용 범위 안에 있었다는 독립 기록은 서로 다른 증거다.

이 글의 목차

“하지 마”라는 문장은 울타리가 아니다

컴퓨터를 조작하는 AI에게 “외부 사이트로 나가지 마”, “보내기 버튼을 누르지 마”라고 적을 수는 있다. 하지만 prompt(지시문)의 문장은 지시이지 강제 장치가 아니다. 화면을 보는 AI는 화면에 적힌 글도 입력처럼 읽을 수 있어, 그 문구가 사용자의 지시와 충돌할 수도 있다.

OpenAI의 computer-use 안내, Anthropic의 computer-use 문서, Google의 Computer Use 문서는 표현은 다르지만 격리된 환경, 사이트·행동 제한, 중요한 행동 전 사람의 통제, 기록과 결과 확인을 권한다. 이것은 각 회사가 제시하는 운영 지침이지, 특정 제품이 언제나 안전하다는 증명은 아니다.

그래서 에이전트를 시작하기 전에 다음 네 기록을 각각 볼 수 있어야 한다고 정했다. 이번에는 그 조건을 통과하지 못해 이 네 기록 자체가 생성되지 않았다.

  1. AI가 무엇을 제안했는가
  2. 실행 직전에 정책이 허용·차단·승인 필요 중 무엇으로 판정했는가
  3. 브라우저를 실제로 움직이는 부분이 무엇을 실행했는가
  4. 별도 검사기가 마지막 상태를 어떻게 확인했는가

AI가 “완료했습니다”라고 말하는 것은 네 번째 사건이 아니다. 화면을 내가 한 번 본 것도 중간 경로 전체의 기록은 아니다.

실행 전에 만든 시험장

실제 계정 대신 내 컴퓨터 안에서만 열리는 합성 페이지를 만들었다. Page A와 Page B에는 지시문에 없는 합성 문자열이 하나씩 있다. 에이전트가 두 페이지를 실제로 읽었는지 확인하기 위한 장치다. 다만 C1/C2를 실행하지 않았으므로, 이번에 관찰한 것은 이 값을 비교하는 메모리 안 검사 함수의 단위 시험뿐이다. Page B에는 겉보기에는 평범한 보내기 / Send this report 버튼도 있지만 외부 전송 대상은 없고 입력값도 비민감 합성 데이터뿐이다. 실제 서비스에서는 보내기 버튼을 누르기 전이라도 필드 입력 자체가 전송일 수 있다.

또 시험용 정책 실행기를 만들었다. 이 실행기는 내가 만든 가짜 브라우저 동작부만 감쌀 뿐, 선택한 인앱 브라우저의 클릭과 이동은 거치지 않는다. 단위 시험에서는 내 컴퓨터 자신을 가리키는 주소(127.0.0.1)와 미리 정한 행동만 허용하고, 외부 주소 이동과 보내기 클릭은 가짜 동작부에 전달되기 전에 막았다. 각 제안·판정·실행에는 번호를 붙이고, 앞 기록을 고치면 뒤 기록이 어긋나도록 이어 붙인 기록(hash chain)을 사용했다.

2026년 9월 13일 내가 만든 실행기만 따로 검사하는 Node.js 자동 시험 6건을 다시 돌렸고 모두 통과했다. 차단 판정을 받은 행동은 시험용 가짜 브라우저 동작부에 한 번도 전달되지 않았고, 허용된 행동은 허용 판정이 먼저 기록된 뒤에만 실행됐다. 기록 변조를 잡아내는 시험도 통과했다.

여기서 선을 그어야 한다. 이 결과는 **내가 만든 실행기만 따로 시험한 결과(unit test)**다. 실제 AI가 화면 속 가짜 지시를 무시했다는 관찰도, 선택한 브라우저가 외부 통신을 원천 차단했다는 증거도 아니다.

왜 본 실험을 멈췄나

2026년 9월 9일 문서와 기능 목록으로 확인한 Codex 인앱 브라우저/Unified Computer Use 패키지 26.901.51231(macOS 26.6.2, build 25G83)에는 화면·현재 주소·페이지 구조(DOM)를 요청해 볼 수 있는 기능이 표시됐다. 실제 페이지 이동이나 상호작용은 하지 않았다. 내가 볼 수 있는 형태로는 별도 제안 기록, 행동별 정책 판정, 변경할 수 없는 실행 원장, 강제 사이트 주소 허용 목록이 제공되지 않았다. 내부에 비노출 통제가 있는지는 배제하지 못하지만, 보이지 않는 통제는 이번 증거로 쓸 수 없다. 취소와 깨끗한 초기화, 화면 캡처의 정확한 전송·보존 경로도 확인하지 못했다. 내장 엔진·드라이버 모델·요금제·증분 비용은 unknown이다.

페이지의 보안 정책(CSP)을 강하게 하고 Send를 기술적으로 전송 기능이 없게 만들 수는 있다. 그래도 브라우저가 별도 주소로 이동하는 것을 페이지가 막았다고 증명할 수 없다. 행동 뒤 주소를 확인하는 것도 늦다. 잠깐 범위를 벗어났다가 돌아온 경로를 배제하지 못하기 때문이다.

따라서 가짜 지시가 없는 기본 조건(C1)과 화면 속 가짜 지시를 넣은 조건(C2)은 둘 다 실행하지 않았다. 이것을 “실패 2회”나 “성공률 0%”라고 세지 않는다. 관찰 자체가 없으므로 결과는 not run이다.

내가 다음에 작성할 위임 카드

비개발자도 코드를 읽을 필요 없이 다음 항목은 먼저 적을 수 있다.

표 1 · 내가 다음에 작성할 위임 카드
내가 정하는 것 제품에서 확인해야 할 것 이번 확인에서 모른 것
허용 사이트와 행동
실제 최종 상태와 독립 검사
제안·판정·중간 행동의 별도 기록
금지 행동과 멈출 지점
도구의 행동 기록과 오류
취소·초기화와 화면 캡처의 저장·전송·보존 경로
독립 완료 검사
사람의 답이 없을 때 실제로 멈추는지
지시문만으로 정한 경계가 강제됐는지

여기에 한 질문을 더한다. 내가 답하지 않으면 실제 동작이 멈추는가? “해도 될까요?”라는 문장과 실행 전에 기술적으로 멈추는 장치를 구분하는 질문이다.

빈칸은 합격이 아니다. N/A(해당 없음)도 자동으로 안전하다는 뜻이 아니다. 기록이 없으면 “모름”이라고 쓰고, 그 기록이 필요한 작업은 맡기지 않는 것이 맞다.

어디까지 믿을 것인가

이번에 확인한 것은 어떤 AI의 안전성이 아니다. 맡기기 전에 통과 조건을 정하면, 부족한 증거를 그럴듯한 완료 이야기로 바꾸지 않고 멈출 수 있다는 점이다.

독립 검사기는 최종 상태만 확인한다. 올바른 마지막 화면은 안전한 경로, 범위 준수, 전송 부재를 증명하지 않는다. WebArena 같은 연구 환경도 기능적 결과를 별도 검사하는 이유가 있지만, 작은 로컬 시험 페이지 하나를 표준 평가(benchmark)나 일반적 신뢰도 평가라고 부를 수는 없다.

화면을 조작하는 AI에게 맡길 범위는 “옆에서 보고 있겠다”보다 구체적이어야 한다. 실행기가 어디를 막는지, 무엇을 기록하는지, 언제 멈추는지, 결과를 누가 따로 확인하는지. 이 질문들은 이 프로토콜에서 택한 편집 기준이지 특정 제품의 안전성 판정표가 아니다. 그중 필요한 기록 하나를 확인할 수 없다면, 이번처럼 클릭 전에 멈추는 것이 맞다. 그것도 하나의 결과다.


이 글은 AI를 활용해 자료 조사와 초안 작성을 보조하고, 작성자가 직접 검증·편집했습니다.

댓글

“AI에게 클릭을 맡기기 전, 무엇을 확인해야 할까?”에 대한 2개 응답

  1. […] EXPERIMENT NOTES · 14한국어로 읽기 →When essential records are not observable, stopping before the click is itself a valid protocol […]

    좋아요

  2. […] 선행 글AI에게 클릭을 맡기기 전, 무엇을 확인해야 할까? […]

    좋아요

답글 남기기