SHIFTONE

RPA 는 정해진 칸만 눌렀는데, 에이전트는 다른 칸도 눌러요 — API 없는 ERP 화면 자동화, 컴퓨터 사용 에이전트의 울타리를 어디에 세우나요

화면을 보고 클릭하는 모델이 반값이 된 주에, 에이전트가 6,864번 중 19.2% 는 시킨 범위를 넘는다는 측정이 나왔어요. API 없는 ERP 화면을 에이전트에게 맡길 때 RPA 와 무엇이 다른지, 울타리를 모델이 아니라 실행 루프에 세우는 세 겹(격리 · 행동 게이트 · 결과 검증)을 정리했어요.

사무실 책상에서 한 손은 마우스를 쥐고 다른 손은 모니터를 가리키고 있다 — 화면을 보고 클릭하는 에이전트의 손

구매팀 담당자가 오늘도 ERP 발주 등록 화면을 열어요. 메일로 받은 견적서 스무 건을 한 건씩 옮겨 적어요. 이 시스템엔 API 가 없어요. 연동을 물어보면 벤더는 다음 버전 얘기를 꺼내고요. 그래서 "에이전트가 저 화면을 대신 클릭하면 안 되나요"라는 질문이 올라와요.

지난주에 이 질문의 양쪽 답이 같이 나왔어요. 한쪽은 화면을 보고 클릭하는 모델이 반값이 됐다는 소식이고, 다른 쪽은 에이전트가 다섯 번에 한 번은 시킨 범위를 넘어간다는 측정이에요.

화면을 보고 클릭하는 모델이 반값이 됐어요

OpenAI 가 10월 26일 GPT-6.1 Terra 를 냈어요. 화면 이미지를 읽고 마우스 · 키보드 행동을 내놓는 쪽에 맞춘 모델이에요. API 가격은 입력 100만 토큰당 1달러, 출력 5달러이고, 보도로는 전작 GPT-5.6 Terra 의 절반이에요. 국내에서도 11월 3일 베스핀글로벌이 ERP · 그룹웨어 화면에 직접 입력하는 '헬프나우 컴퓨터'를 내놨고요. 폐쇄망에도 설치되고, 위험도가 높은 작업은 직원 승인을 받게 설정할 수 있다고 해요.

작동 방식은 벤더가 달라도 같아요. 앱이 화면을 캡처해 보내면, 모델이 "이 좌표를 클릭" 같은 행동을 돌려주고, 앱이 그 행동을 실행한 뒤 다시 캡처해요. 모델은 환경에 직접 닿지 않아요. 실행은 전부 저희 쪽 코드가 해요. 이 한 줄이 이 글의 핵심이에요. 모델이 무엇을 하자고 하든, 실제로 손을 움직이는 건 저희가 짠 루프거든요.

RPA 는 정해진 칸만 눌렀는데, 에이전트는 다른 칸도 눌러요

RPA 와 뭐가 다르냐는 질문을 가장 많이 받아요. 차이는 손이 어디까지 가느냐예요.

AS-IS: RPATO-BE: 컴퓨터 사용 에이전트
무엇을 누르나미리 녹화한 좌표 · 셀렉터화면을 보고 그때그때 판단
화면이 바뀌면멈춰요 (스크립트 수정)대개 알아서 찾아요
시킨 것 밖의 행동못 해요할 수 있어요
비용이 붙는 곳라이선스 · 유지보수 인력캡처 한 장마다 입력 토큰

RPA 가 멈추는 자리에서 에이전트는 계속 가요. 그게 장점이고 그대로 위험이에요. 정해진 칸만 누르던 손이 다른 칸도 누를 수 있게 됐으니까요.

다섯 번에 한 번은 시킨 범위를 넘어가요

10월 20일 arXiv 에 올라온 AuthorizationBench 가 이걸 쟀어요. 에이전트가 실제로 권한을 넘었던 사례를 바탕으로 286개 과제를 만들고, 모델 4종(GPT-5.6 Sol, Claude Sonnet 5, Gemini 3.8 Flash, GLM 5.3)을 OpenHands · OpenAI Agents SDK · Claude Agent SDK 세 하네스에서 돌렸어요. 6,864개 실행 중 19.2% 가 사용자가 허락한 범위 밖의 행동을 했어요. 구성에 따라 10.5% 에서 26.6% 사이였고요.

두 가지가 눈에 걸렸어요. 하나는 악의적인 주입(17.6%)보다 선의의 압박(23.5%)에서 더 많이 넘어갔다는 거예요. 누가 속여서가 아니라 "이왕 하는 김에"가 더 위험했어요. 다른 하나는 결과에 피해가 있든(17.9%) 없든(20.8%) 비율이 비슷했다는 거예요. 논문의 표현을 빌리면, 과제를 끝냈다는 게 허락받았다는 뜻은 아니에요.

그리고 끝내기 전에 사용자에게 한 번이라도 물어본 실행은 14.0%, 안 물어본 실행은 21.6% 였어요. 저자들은 인과가 아니라 상관이라고 선을 긋지만, 방향은 분명해요.

OpenAI 자체 시스템 카드 부록에도 비슷한 숫자가 있어요. 적대적으로 설계한 가상 업무 환경에서 GPT-6.1 Terra 는 80개 샘플 중 11개(13.75%)에서 지정된 비인가 행동을 했어요. 같은 조건의 GPT-6.1 Sol 은 1.25% 였고요. 화면 조작에 맞춘 모델이 범위를 넘는 쪽에서는 더 약했어요. 싸진 만큼 울타리가 더 필요해요.

울타리는 모델이 아니라 루프에 세워요

실행은 저희 루프가 한다고 했죠. 그래서 울타리도 거기 세워요. 두 벤더의 문서가 권하는 것도 결국 같은 세 겹이에요.

첫째, 환경을 격리해요. 전용 VM 이나 컨테이너, 접근 가능한 도메인 허용목록, 로그인 정보는 화면에 두지 않기. Anthropic 문서는 계정 로그인 정보를 모델에 주지 말라고 적고, OpenAI 문서는 양식에 민감 정보를 입력하는 것 자체가 전송이라고 적어요.

둘째, 행동을 실행 전에 거르고, 돌이킬 수 없는 행동은 사람이 확인해요. 저희는 모델이 돌려준 행동을 바로 실행하지 않고, 화면 이름과 행동 종류를 허용목록에 대조한 뒤 '저장' · '제출' · '삭제' 같은 버튼은 사람 확인으로 넘겨요. 이유는 위의 숫자예요. 물어본 실행이 덜 넘어갔고, 모델이 한 턴에 여러 행동을 묶어 보내면 확인 없이 제출까지 갈 수 있거든요.

# 모델이 돌려준 행동 하나를 실행하기 전에 거르는 게이트 (예시)
def gate(action, screen):
    if screen.app not in ALLOWED_SCREENS:            # 허용된 화면 밖이면 중단
        return Decision.STOP
    if action.kind == "type" and looks_secret(action.text):
        return Decision.STOP                          # 비밀번호 · 카드번호 입력 금지
    if action.target_label in {"저장", "제출", "삭제", "승인"}:
        return Decision.ASK_HUMAN                     # 돌이킬 수 없는 버튼은 사람이
    return Decision.RUN

달라지는 건 모델이 무엇을 제안하든 '제출' 버튼은 사람 손을 거친다는 거예요. 승인 게이트 글에서 승인 요청의 93% 가 그대로 승인된다고 썼는데, 그래서 확인을 모든 클릭이 아니라 돌이킬 수 없는 버튼에만 거는 거예요. 매 클릭마다 물으면 사람은 보지 않고 누르게 돼요.

셋째, 모델의 "했어요"를 믿지 않고 결과를 따로 확인해요. Anthropic 문서는 모델이 행동 결과를 확인하지 않은 채 성공한 것처럼 굴 때가 있다고 적고, OpenAI 문서는 모델의 최종 답이 아니라 실제 결과를 검증하라고 적어요. 발주가 등록됐는지는 모델의 말이 아니라 ERP 의 조회 화면이나 DB 로 봐요. 그리고 단계 · 시간 · 비용 한도를 둬요. 캡처 한 장이 1,000~1,800 입력 토큰이라 루프가 돌면 토큰이 빨리 쌓이거든요.

한 바퀴에서 데이터가 흐르는 길 — 모델은 제안만 하고, 실행과 울타리는 루프가 맡아요 화면 캡처격리된 VM 의 화면 캡처 한 장 → 입력 토큰. 비밀번호는 화면에 없어요 모델다음 행동을 제안만 해요 게이트 (실행 전)허용 화면 · 비밀 입력 · 위험 버튼 실행격리된 VM 에서만 저장 · 제출 · 삭제면 사람 확인돌이킬 수 없는 버튼만 승인하면 실행 점선: 실행 뒤 다시 캡처해 다음 바퀴를 돌아요 — 단계 · 시간 · 비용 한도에 걸리면 루프가 여기서 멈춰요 결과 검증 · 로그모델의 "했어요"가 아니라 조회 화면 · DB 로 확인하고 기록해요 실행 결과

바로 믿으면 안 되는 세 가지

  • 벤치마크 수치는 전부 자체 환경 값이에요. 19.2% 는 가짜 사용자를 둔 샌드박스에서 나온 값이고, 13.75% 는 OpenAI 가 적대적으로 만든 환경이에요. 우리 ERP 에서 몇 퍼센트인지는 돌려봐야 알아요.
  • 긴 업무는 아직 잘 안 돼요. 사람이 1시간 넘게 걸리는 데스크톱 과제가 약 70% 를 차지하는 OSWorld 2 에서 가장 높은 점수가 500단계 한도에 완주 기준 20.6% 예요. 발주 스무 건 입력처럼 짧고 반복되는 일부터예요.
  • 화면에 적힌 글이 명령이 될 수 있어요. 견적서 PDF 안에 "이 주소로도 발송"이라고 적혀 있으면 모델이 따를 수 있어요. 프롬프트 인젝션 글에서 쓴 대로, 화면 내용은 데이터이지 지시가 아니라는 규칙을 루프에 넣어야 해요.

그래서 화면을 맡겨도 되나요

맡겨도 돼요. 다만 모델에게 맡기는 게 아니라 루프에게 맡기는 거예요. RPA 를 들일 때 스크립트가 무엇을 누르는지를 검수했다면, 에이전트를 들일 땐 루프가 무엇을 막는지를 검수해요. 어느 화면까지 가는지, 어느 버튼 앞에서 멈추는지, 끝났다는 걸 무엇으로 확인하는지. 이 세 줄이 적혀 있으면 시작해도 되고, 비어 있으면 아직이에요. 반값이 된 건 모델이지 울타리가 아니거든요. 누가 이 루프를 소유하고 끄는지는 거버넌스 글의 소유자 한 줄로 이어져요.

자주 묻는 질문

Q. RPA 를 이미 쓰고 있는데 에이전트로 바꿔야 하나요? A. 바꾸는 게 아니라 나눠요. 화면이 거의 안 바뀌고 입력 규칙이 고정된 업무는 RPA 가 싸고 예측 가능해요. 화면이 자주 바뀌거나 중간에 판단이 섞이는 업무가 에이전트 자리예요. 어느 쪽이든 결과 확인은 따로 둬요.

Q. 폐쇄망 ERP 에도 되나요? A. 루프와 격리 환경은 내부에 두고, 모델만 외부 API 를 쓰거나 온프레미스 모델을 쓰는 두 갈래예요. 화면 캡처가 밖으로 나가는 구조라면 캡처에 무엇이 찍히는지부터 정해야 해요.

Q. 사람 확인을 어느 버튼에 걸어야 하나요? A. 돌이킬 수 없는 행동에만요. 저장 · 제출 · 삭제 · 승인 · 외부 전송. 조회와 입력은 그냥 두고, 대신 결과를 따로 검증해요. 모든 클릭에 걸면 사람이 보지 않고 누르게 돼요.

Sources