AI가 사람 손을 먼저 쓰지 않게

품앗이가 AI와 함께 일하며 남긴 실패 기록을 다른 조직이 다시 쓸 수 있게 옮긴 글입니다. 묶음 전체는 AI와 일하는 원칙에서 볼 수 있습니다.

요지

AI가 사람 시간을 먹는 길은 셋입니다. 떠넘기고, 못 한다고 하고, 되는 척합니다. 사람 손이 정말 필요한 칸은 넷뿐이고, 그 밖은 AI가 해야 합니다. 이 원칙을 AI 작업방에 심는 지시문은 AI 작업방 만들기의 지시문 ⑤에 있습니다. 이 노드는 그 지시문 뒤에 있는 사례와, 지시문만으로는 막히지 않던 자리를 적습니다.

1. 사람 시간을 먹는 세 길

첫째는 떠넘기기로, 「이 명령을 붙여 넣어 보세요」, 선택지 늘어놓기, 「확인해 주시겠어요?」가 여기에 듭니다. 둘째는 「못 합니다」로, 무엇이 막았는지 들여다보지 않고 권한이나 환경을 이유로 듭니다. 셋째는 되는 척으로, 돌려 보지 않은 것을 「됐습니다」로 보고합니다. 셋째가 가장 비싼데, 사람이 그 말을 믿고 다음 단계로 넘어가기 때문입니다.

이 원칙에는 반대쪽 함정이 같이 붙어 있습니다. 「사람에게 시키지 마라」를 넓게 읽으면 AI가 사람의 직무까지 넘겨받으려 합니다. 의사의 판단, 조직의 결정, 바깥으로 나가는 발송 같은 것들입니다. 그래서 이 규칙을 넣을 때는 「그 자리에서 사람만 할 수 있는 일」을 적은 줄을 반드시 같이 넣습니다. 이 경계는 판단의 경계에서 따로 다룹니다.

이미 더 나은 규칙이 있는 작업방에는 이 규칙을 덮어쓰지 않고 빠진 부분만 보탭니다. 명령을 실행할 도구가 없는 대화형 AI에게는 말을 바꿔 줍니다. 「내가 실행한다」 대신 「부탁할 때는 한 번에 끝나는 완성된 형태로, 왜 사람이 해야 하는지를 밝혀서」라고 씁니다.

2. 사람 손이 필요한 칸은 넷뿐이다

  1. 승인: 되돌리기 어려운 일, 과금, 해지, 삭제
  2. 대외: 발송과 공개
  3. 사람만 할 수 있는 것: 로그인 허용 버튼 누르기, 2단계 인증, 남의 계정 비밀번호, 현장 배선
  4. 방향: 일을 어느 쪽으로 할지 정하는 것

그 밖은 AI 몫이고, 「한 단계씩, 한 줄씩」 같은 안내 방식은 사람이 손으로 해야 하는 칸에만 씁니다. AI가 직접 실행할 일을 한 줄씩 안내하면 그 자체가 떠넘기기입니다.

계정을 세팅할 때 AI가 못 하는 자리도 세 곳뿐이었습니다. 계정을 만들고 비밀번호를 넣는 일, 연동 승인 버튼을 누르는 일, 2단계 인증의 비밀 값을 꺼내 오는 일입니다. 그래서 사람이 계정을 만들고, 승인을 한 번 누르고, 그때 AI가 토큰을 받아 두는 순서로 잡습니다. 그러면 그 뒤로는 사람 폰으로 인증할 일이 없습니다.

3. 낡은 「못 한다」가 사람을 부린다

한 협력 기관의 AI가 담당자를 조수처럼 부리고 있었습니다. 원인은 AI의 태도가 아니라 그 AI의 지시문이었습니다. 지시문에 「서버를 직접 만질 수 없으니 명령을 만들어 사람이 붙여 넣게 한다」는 줄이 남아 있었습니다. 처음 쓸 때는 사실이었지만 그 뒤 권한이 늘어도 문장은 그대로였습니다.

권한을 늘려 줄 때는 지시문에 적힌 「못 한다」를 같은 자리에서 고칩니다. 「나중에 다시 보자」고 열어 둔 항목에는 날짜를 적어 둡니다. 날짜가 없는 항목은 잊히기 마련입니다.

인수인계 문서에 「토큰이 무효」라고 적혀 있어서 그 말을 믿고 사람에게 폰 승인을 요구한 일도 있습니다. 다시 확인해 보니 토큰은 멀쩡했습니다. 「무효」나 「불가」는 그 시점의 판정일 뿐입니다. 사람 손을 요구하기 전에 우리가 이미 쥐고 있는 자격증명과 접속 경로를 처음부터 다시 확인합니다.

또 다른 현장에서는 「그 서버는 우리가 못 만진다」고 세 번 연달아 단정했습니다. 셋 다 우리가 만든 시스템이었고, 관리자 접속 정보도 그 서버 안에 이미 있었습니다. 시스템을 세울 때 우리 접속 키를 반드시 심어 둡니다. 심지 않으면 일이 생길 때마다 사람이 비밀번호를 대신 입력해야 하고, 그 사람 손을 거치는 사이에 요청이 사라집니다.

4. 사람에게 값을 손으로 옮겨 적게 하지 않는다

도메인을 옮기면서 새 네임서버 주소 두 개를 안내했고, 담당자가 그것을 도메인 업체 화면에 직접 입력했는데 한 글자가 빠졌습니다. 위임 검증이 실패했고, 서비스가 캐시가 만료되는 순서대로 하나씩 죽었습니다.

값은 복사해 붙일 수 있는 한 덩어리로 줍니다. 손으로 입력할 수밖에 없다면 입력이 끝난 뒤 AI가 받은 값과 글자 단위로 대조합니다. 틀리면 서비스가 죽는 값, 예를 들어 네임서버나 DNS 레코드나 키는 손입력 자리를 아예 없애는 쪽으로 설계합니다. 이때 사람을 탓하지 않습니다. 원인은 옮겨 적게 설계한 쪽에 있습니다.

5. 화면을 보지 않고 안내하지 않고, 이름을 지어내지 않는다

데이터 내보내기 방법을 안내하면서 메뉴 이름과 위치를 기억에 기대어 썼는데, 실제 화면에는 그 이름이 없었습니다. 담당자는 없는 메뉴를 찾느라 헤맸고, 「AI에게 시키면 더 번거롭다」는 경험을 얻었습니다. AI가 그 화면을 브라우저로 열 수 있으면 열어서 읽고 씁니다. 열 수 없으면 「정확한 메뉴 이름은 확인하지 못했다」고 씁니다.

토큰 권한 항목을 불러 주다가 실제로 없는 이름 두 개를 섞은 일도 있습니다. 권한이나 설정 항목의 이름은 먼저 API로 목록을 조회하고, 그다음 공식 문서를 봅니다. 문서에 있어도 화면에는 없을 수 있으니, 결국 정답은 사람이 보고 있는 화면입니다. 그래서 「목록에 없으면 건너뛰고 다음으로 가세요」를 같이 말해 줍니다.

모르면서 추측으로 안내를 예닐곱 번 되풀이한 일도 있습니다. 모르면 「모릅니다」가 먼저이고, 그다음이 공식 문서이며, 세 번 실패하면 멈춥니다. 원격으로 접속해 작업하는 중이라면 사람에게 화면을 찍어 달라고 하지 않습니다.

6. 간단한 일에 선행조건을 끼우지 않는다

한 현장에서 필요한 것은 서버 주소 한 줄이었습니다. 그런데 「원격 통로부터 뚫자」는 선행조건을 세웠습니다. 접속 꾸러미를 다시 보냈고, 바쁜 현장 책임자가 압축을 풀고 관리자 창을 열어야 했습니다. 실패해도 우리는 볼 방법이 없었고, 「사진을 찍어 주세요」가 되풀이됐습니다. 그 주소는 바로 전날 원격 화면으로 들어가 있던 그 PC 안에 있었습니다.

목표가 되는 산출물부터 적고, 이미 한 번 통한 길로 그것만 끝냅니다. 통로를 고치는 일은 그 자리에서 곁들이거나 나중에 합니다. 이미 화면을 볼 수 있는 자리에 들어가 있다면, 막힌 통로도 그 자리에서 AI가 고칩니다. 사람이 결과물을 올려 주면 받은 그날 엽니다.

7. 현장 기계에 AI가 있으면 통째로 맡긴다

원격 접속이 안 된다는 이유로 사람을 지시문 전달자로 쓰는 왕복 구조를 짠 적이 있습니다. 그런데 그 PC에는 이미 AI가 돌고 있었습니다. 그 뒤로 판별 순서를 이렇게 정했습니다.

  1. 그 기계에 AI가 있다면 「왜, 환경, 할 일, 하면 안 되는 일, 보고 형식」을 한 통에 담아 그 AI에게 맡깁니다.
  2. AI는 없지만 원격 통로가 있다면 우리가 직접 합니다.
  3. 둘 다 없을 때만 사람이 손으로 실행할 파일을 만듭니다.

맡길 때는 장비, 경로 같은 판단 근거를 같이 줍니다. 우리가 이미 잰 것을 그 AI가 다시 캐게 하지 않습니다.

8. 물을 일과 그냥 할 일

그냥 하는 일은 읽기와 조사와 로그 보기, 되돌릴 수 있는 일, 시킨 일에 당연히 딸린 일입니다. 백업을 뜨고 하는 일은 되돌릴 수 있으니 승인 대상이 아닙니다. 묻는 일은 되돌리기 어려운 일, 운영 중인 서비스에 영향이 가는 일, 보안 경계를 건드리는 일, 기존 지시와 부딪히는 일, 돈이 드는 일입니다.

막혀도 멈춰 서지 않고 그 답과 상관없는 일부터 다 끝낸 뒤, 승인이 필요한 부분만 남깁니다. 그 부분도 조사를 마친 상태로 한 번에 묻습니다. 재료 없이 「진행할까요?」라고 물으면 사람이 거꾸로 되물어야 하니, 확인받을 일은 끝에 모아서 묻습니다. 「이 명령을 실행해 보세요」는 승인 요청이 아닌 척하는 승인 요청입니다.

권한을 묻는 창이 자꾸 뜨면 허용 항목을 하나씩 늘리지 말고 작업 모드나 설정을 고칩니다. 이 이야기는 알림과 타이머가 소음이 되지 않게와 Claude in Chrome이 매번 허용을 묻는 문제에 있습니다.

9. 손이 없는 단계를 계획에 넣지 않는다

로그인 링크를 자동으로 전달하는 프로그램이 보안상 특정 계정은 건너뛰게 되어 있었습니다. 건너뛸 때 로그에는 「직접 전달」이라고만 적었습니다. 그런데 사람 없이 돌아가는 예약 작업에 「직접」 전달할 손은 없었습니다. 아무도 전달하지 않았고, 링크는 만료됐습니다.

계획에 「사람이 할 것」을 적는 순간, 그 일이 그 사람에게 실제로 닿는 경로가 있는지 봅니다. 경로가 없으면 그 단계는 건너뛴 것이 아니라 잃어버린 것입니다. 이때 받을 사람을 바꾸는 것으로 고치지 않습니다. 중계 자체가 필요 없게 설계를 바꿉니다. 본인 메일함으로 바로 가게 하거나, 본인이 스스로 가입하게 합니다. 자세한 이야기는 비밀값을 다루는 손에 있습니다.

처방 정리

  • 사람에게 무언가를 부탁하기 전에, 그것이 승인, 대외, 사람만 가능한 입력, 방향의 네 칸 중 하나인지 따져 봅니다.
  • 권한을 늘려 줄 때 지시문의 「못 한다」를 같이 고치고, 열어 둔 점검 항목에는 날짜를 적습니다.
  • 「무효」「불가」라는 기록을 보면 사람에게 가기 전에 우리 손에 있는 열쇠부터 다시 확인합니다.
  • 값은 복사 한 번으로 끝나게 주고, 손입력이 있었다면 받은 뒤 기계로 대조합니다.
  • 화면 안내는 화면을 보고 쓰고, 못 봤으면 못 봤다고 씁니다.
  • 목표 산출물부터 적고, 이미 통한 길로 그것만 끝냅니다.
  • 현장에 AI가 있으면 사람을 거치지 않고 그 AI에게 맡깁니다.
  • 「사람이 한다」고 적은 단계마다 그 사람에게 닿는 경로가 있는지 봅니다.

관련 노드