happy_various AI 실전 기록

LLM 중계기 개발기 6부 · 30편 / 전체 33편

2026년 10월 2일 기준

이 글에는 제휴 링크가 없고 OpenAI·앤트로픽과 아무 관계가 없습니다. 제가 직접 만든 중계기의 개발 기록을 바탕으로 썼습니다. 삽화는 GPT 이미지 생성, 도식은 직접 제작했습니다.

AI가 허락을 기다리다 멈췄다 — 결재 도장을 기다리는 서류 (LLM 중계기 개발기)

결재 서류 한 장을 올렸다고 해 볼게요. 담당자는 “팀장님 도장을 받아야 다음 일을 할 수 있다”며 손을 놓고 기다립니다. 그런데 서류를 나르던 사람이 이 서류를 ‘내가 보낸 서류에 온 답장’으로 착각했어요. 장부를 뒤져 보니 그런 서류를 보낸 기록이 없어서, 조용히 버렸습니다.

팀장님은 서류를 본 적도 없어요. 담당자는 도장이 오기만을 기다리며 아무 일도 못 하고요. 해가 지고 나서야 누군가 “이 일, 멈춘 거 아니야?” 하며 일을 접습니다.

제가 만든 LLM 중계기에서 AI가 바로 이 담당자 신세가 된 날이 있었어요.

이 글은 LLM 중계기 개발기의 30편입니다. 지난 29편 「생각하지 않고 고르기만 하는 창구」에서는 정해진 보기 중에서 고르기만 하는 ‘판정 창구’가 처음에는 보기마다 확률을 다 적느라 느렸던 이야기를 했어요. 오늘은 7편에서 “6부에서 자세히 하겠다”고 약속한 작업 폴더 모드, 그리고 그 기능을 처음 돌린 날 AI가 허락을 기다리다 멈춘 이야기예요.

텅 빈 의자 앞 책상 위에서 도장을 기다리는 종이 서류 로봇, 뒤에서는 벽시계가 흘러간다 (GPT 이미지 생성)

결론 요약

📁 1. 작업 폴더 모드 — AI에게 내 폴더를 맡기는 기능

7편에서 규칙 하나를 정했어요. 채팅은 빈 책상, 일은 내가 고른 폴더. 평범한 채팅용 AI는 아무것도 없는 전용 폴더에 앉혀 질문에만 답하게 하고, 일을 맡길 때는 내가 고른 폴더에 앉힌다는 뜻이었죠. 그 ‘일을 맡기는’ 쪽이 작업 폴더 모드입니다.

Claude와 Codex의 명령어 도구(Claude Code, Codex CLI)는 원래 코딩을 돕는 도구예요. 프로젝트 폴더에서 켜 두고 “이 오류 고쳐 줘”라고 하면, 파일을 열어 읽고, 고치고, 필요하면 명령을 실행해 결과를 확인합니다. 작업 폴더 모드는 이 경험을 중계기를 거쳐서도 그대로 쓰게 해 줘요. 9월 8일 업데이트(v0.1.95)에 들어갔습니다.

등록제로 만든 이유가 있어요. 중계기 창구는 내 컴퓨터 안에서만 열리지만, 같은 컴퓨터의 프로그램이라면 어느 것이든 부를 수 있어요. 요청에 폴더 주소를 마음대로 실어 보낼 수 있게 하면, 실수한 프로그램 하나가 내 문서 폴더 전체를 AI 손에 넘길 수도 있습니다. 그래서 사람이 화면에서 직접 등록한 폴더만 열고, 요청은 그 이름표만 가리키게 했어요.

🙋 2. 코딩 AI는 왜 허락을 구할까

채팅 AI는 말만 해요. 코딩 AI는 손을 씁니다. 파일을 새로 쓰거나 지우고, 명령을 실행해요. 명령 하나로 프로그램을 설치하거나, 인터넷에서 무언가를 내려받거나, 폴더 밖의 파일을 건드릴 수도 있죠.

그래서 Claude Code와 Codex는 위험할 수 있는 일 앞에서 잠깐 멈추고 사람에게 물어요. “이 명령을 실행해도 될까요?” 사람이 허락하면 이어 가고, 거절하면 다른 방법을 찾습니다. 묻는 기준은 도구마다 조금 달라요.

이 ‘허락해도 될까요?‘가 오늘 이야기의 결재 서류예요. 사람 앞에서 직접 쓸 때는 화면에 질문이 뜨니 문제가 없어요. 그런데 중계기를 거치면, 이 서류를 사람 책상까지 날라 줄 누군가가 필요합니다.

📭 3. 사고 — 아무도 받지 않은 결재 서류

작업 폴더 모드는 9월 8일 오후에 완성됐어요. 새로 넣은 시험 30건도, 제 컴퓨터에서 실제 Claude와 Codex로 돌린 단계별 점검도 모두 통과했습니다. 제 컴퓨터에서는 Codex의 명령이 울타리 안에서 처리돼서, 허락을 물을 일이 없었거든요.

출시 전에 다른 컴퓨터에서도 실제로 돌려 봤어요. Codex에게 명령을 실행하는 일을 맡기자 작업 로그에 ’▶ 명령 시작’이 찍혔습니다. 그리고 그 뒤로 아무것도 오지 않았어요. 답도, 오류도, 진행 표시도요. 5분이 지나자 중계기가 “진행이 멈췄다”며 시간 초과로 일을 끊었습니다.

중계기에는 AI가 5분(300초) 동안 아무 진행이 없으면 멈춘 것으로 보고 끊는 장치가 기본으로 들어 있어요. 11편에서 본 ‘그만’ 신호를 시간이 대신 보내는 셈이죠. 이번에는 그 장치가 일을 끊었을 뿐, Codex 쪽은 끝까지 대답을 기다리고 있었어요.

원인을 따라가 보니 결재 서류였어요.

① 그 컴퓨터에서는 Codex의 명령이 울타리 밖 일로 처리돼서, Codex가 “이 명령 실행해도 될까요?”라는 허락 요청을 중계기에 보냈어요 ② 이 요청에는 번호가 붙어 있었어요. “답장을 기다리는 질문”이라는 표시예요 ③ 그런데 중계기의 우편 담당은 “번호가 붙은 메시지는 내가 보낸 질문에 온 답장”이라고만 알고 있었어요. 장부를 뒤져 봤지만 그 번호로 보낸 질문은 없었죠. 그래서 조용히 버렸습니다 ④ Codex는 답을 받기 전에는 다음 단계로 넘어갈 수 없어요. 사람 화면에는 질문이 온 적도 없으니, 누구도 도장을 찍어 줄 수 없었어요

고치기 전에는 Codex의 허락 질문이 중계기에서 버려져 5분 뒤 시간 초과로 끝나고, 고친 뒤에는 질문이 사람 화면의 벨 카드로 전해져 허용·거절 답이 돌아간다 (직접 제작)

Claude 쪽은 멈추지 않았어요. 첫 버전은 ‘편집’ 권한에서 Claude에게 명령 실행 도구를 아예 주지 않았거든요. 물어볼 일이 없으니 멈출 일도 없었지만, 대신 명령은 하나도 쓸 수 없었습니다.

🔁 4. 첫 번째 고침 — 어떤 질문에도 반드시 답한다

몇 시간 뒤 첫 고침이 들어갔어요. 우편 담당에게 규칙을 하나 더 가르쳤습니다. 번호가 붙어 있어도 ‘질문’이면 버리지 말고, 반드시 답한다.

처음에는 사람에게 묻지 않고 폴더 권한을 보고 그 자리에서 답했어요.

7편에서 “일반 채팅의 AI가 명령을 시도하면 승인 요청을 자동으로 거절한다”고 했죠. 그 거절도 이날 만든 ‘반드시 답한다’ 장치 위에서 돌아가요.

같은 고침에 기록도 더했어요. 작업 폴더에서 일하는 동안 Codex가 내는 경고와 오류 메시지를 중계기 기록에 남겨서, 어떤 컴퓨터에서 왜 명령이 허락 요청 쪽으로 가는지 나중에 볼 수 있게 했습니다.

이제 멈추지는 않았어요. 하지만 금방 한계가 보였습니다.

🔔 5. 두 번째 고침 — 승인 벨을 달다

같은 날 저녁, 두 번째 고침이 들어갔어요. 이번에는 결재 서류를 사람 책상까지 날라 주는 방식이에요. 중계기가 AI의 질문을 받아, 그 일을 맡긴 쪽 화면에 벨을 울립니다. 개발 기록에는 이 기능이 ‘승인 중계’라고 적혀 있어요.

폴더를 등록할 때 규칙을 하나 골라요.

폴더 규칙명령 허락이 필요할 때어울리는 쓰임
물어보기 (기본)사람 화면에 🔔 승인 카드를 띄우고 결정을 기다려요사람이 채팅 화면에서 지켜볼 때
자동 허용폴더 안에서 하는 명령은 묻지 않고 허락해요사람 없이 혼자 도는 프로그램
거절늘 거절해요명령은 절대 실행하면 안 되는 폴더

카운터 위 작은 벨이 울리고, 사람 손이 작은 로봇이 든 서류에 도장을 찍어 준다 (GPT 이미지 생성)

‘물어보기’ 폴더에서 AI가 허락을 구하면, 중계기 채팅 화면의 작업 로그에 승인 카드가 떠요. 카드에는 실행하려는 명령과 “120초 안에 결정”이라는 안내, 그리고 버튼 세 개가 있습니다.

사람이 아니라 프로그램이 중계기를 쓰는 경우도 생각했어요. 답을 조금씩 흘려받는 방식(스트리밍)으로 요청하면, 흘러오는 답 사이에 ‘승인 요청’ 알림과 번호가 함께 와요. 프로그램은 그 번호로 중계기의 승인 창구에 ‘허용’이나 ‘거절’을 보내면 됩니다. 답을 한꺼번에 받는 방식은 중간에 대답할 틈이 없어서, 허락이 필요한 순간 거절로 처리해요. 그런 프로그램에는 ‘자동 허용’ 규칙을 권하고요.

그리고 이번 사고에서 배운 원칙을 그대로 넣었어요. 대답 없는 질문은 없다. 답이 안 오면 ‘아니요’다.

Claude도 같은 벨을 달았어요. 이제 편집 권한의 Claude에게도 명령 실행 도구를 주되, 명령을 실행하기 전에는 이 벨을 거치게 했습니다.

벨을 달고 나서 작은 일이 하나 더 있었어요. 단계별 점검 도구의 한 단계가 벨을 듣지 않아서, 허락이 필요한 요청마다 2분을 꼬박 기다린 뒤 거절로 끝났거든요. 멈추지 않고 끝난 건 원칙이 일했다는 뜻이지만, 점검 도구도 벨에 답하도록 고쳤어요. 벨을 달면 듣는 쪽도 있어야 합니다.

그날 밤 이 모든 것을 담아 업데이트를 내보냈어요. 제 컴퓨터에서 실제 Claude와 Codex로 돌려 보니 승인 요청 1건 → 허용 → 실행으로 이어졌고, 실제 화면에서도 🔔 카드를 눌러 끝까지 가는 것을 확인했습니다.

한 시간쯤 뒤에는 화면의 예시 질문도 바꿨어요. 작업 폴더 모드에는 네 단계로 기능을 시험해 보는 예시 질문이 있는데, 마지막 단계가 원래 ‘파일 개수 세기’였어요. 그런데 Claude Code는 이런 명령을 읽기 전용으로 보고 묻지 않아서 카드가 뜨지 않았어요. “허락 없이 실행됐다”고 오해하기 쉬웠죠. 그래서 Claude Code도 허락을 묻는 명령, 계산 한 줄을 실행하는 명령으로 바꿨습니다.

🛡️ 6. AI에게 손을 맡길 때의 안전장치

작업 폴더 모드는 AI에게 손을 빌려주는 기능이에요. 그래서 편하게 쓰는 만큼 안전장치도 겹겹이 두었어요.

노랑·민트·빨강 세 칸 서류함에 작은 로봇이 서류철을 나눠 넣고, 노랑 칸 위에는 벨이, 옆에는 작은 문들이 서 있다 (GPT 이미지 생성)

오늘 이야기의 교훈은 하나예요. 중간에 선 사람은 답만 나르는 게 아니라 질문도 날라야 한다. 그리고 그 질문에는 반드시 답이 가야 해요. 답이 오지 않는 질문은 서류를 든 담당자를 하염없이 세워 둡니다. 사람이 답할 수 없을 때는 미리 정한 규칙이 답하고, 그것도 없으면 ‘아니요’가 답이에요.

정리

① 작업 폴더 모드는 Claude와 Codex가 내가 등록한 폴더에서 파일을 읽고 고치고 명령까지 실행하게 해요. 진짜 코딩 도구처럼, 위험할 수 있는 일 앞에서는 허락을 구해요 ② 처음에는 중계기가 Codex의 허락 요청을 ‘내 질문의 답장’으로 착각해 조용히 버렸고, Codex는 대답을 기다리다 5분 뒤 시간 초과로 끊겼어요 ③ 이제 중계기는 어떤 질문에도 반드시 답해요. 폴더마다 물어보기·자동 허용·거절을 고르고, 물어보기면 사람 화면에 🔔 승인 카드가 뜨며, 2분 안에 답이 없으면 거절이에요

다음 31편은 「검사는 지우지 않는다」예요. 오늘처럼 사고 하나를 고칠 때마다 그 사고를 다시 잡아낼 검사를 하나씩 남겨 온 이야기예요. 오늘의 고침에도 ‘허락 요청을 흉내 내 보내고 반드시 답이 오는지’ 확인하는 검사가 함께 들어갔어요. 그리고 검사가 느리면 아무도 돌리지 않게 된다는 교훈도 다룰게요. 끊는 신호 이야기는 11편에, 채팅용 빈 책상 이야기는 7편에 있어요.


2026년 10월 2일 기준입니다. 제가 만든 중계기의 개발 기록을 바탕으로 썼고, 특정 기업·서비스의 공식 입장이 아닙니다. 진행 없음 시간 초과(5분), 승인 대기 시간(2분), 폴더의 기본 권한과 규칙은 기본 설정값이라 이후 버전에서 바뀔 수 있어요. Claude Code와 Codex가 언제 허락을 묻는지는 각 도구의 버전과 설정에 따라 다를 수 있어요.