GPTERS 23기 에이전트하네스 3주차 · 기본과제(설계 계약 + 실행 영수증) + 확장과제(부러뜨리기 + 최소 수리 + 재평가)
"일이 진짜 끝났나"를 검사하는 장치를 새로 달았습니다. 규칙 다섯 개짜리였습니다.
부러뜨려 보기 전에, 습관대로 정상 파일부터 한 번 걸어봤습니다. 정상이 떨어졌습니다. 다섯 규칙이 전부 헛돌고 있었습니다.
1. 무슨 업무인가
2월부터 클로드 코드(터미널에서 도는 AI 에이전트)로 스킬 30여 개와 자동화를 만들어 왔는데, 구멍이 하나 있었습니다. 스킬을 부르지 않은 보통 대화에는 검증 규율이 0이었습니다. 에이전트가 "다 됐습니다"라고 하면 그게 진짜인지 잴 방법이 없었죠.
먼저 용어 두 개
이 글에 계속 나오는 말이라 먼저 풀어둡니다. 둘 다 제가 붙인 이름이고, 실제로는 그냥 문서 한 장씩입니다.
이름
언제 쓰나
뭐가 적히나
계약
일 시작 전
뭘 할 건지 · 뭘 하면 성공인지 · 실패하면 어떻게 할 건지
영수증
일 끝난 뒤
뭘 했는지 · 증거가 뭔지 · 판정이 뭔지 · 뭘 고쳤는지
식당 영수증이랑 발상이 같습니다. 먹었다는 말 말고 뭘 얼마에 먹었는지 적힌 종이가 남아야 하는 거죠. 에이전트한테 "다 했습니다" 대신 이 종이를 내게 한 겁니다.
그래서 전체에 1벌을 깔았습니다. 모든 요청을 먼저 세 등급으로 나눕니다.
등급
무슨 일이 여기 오나
예
절차
L
물어보고 답만 듣는 일. 남는 게 없다
"이 파일 어디 있지?"
그냥 답한다. 절차 없음
F
결과물이 남고 "끝났다"고 말해야 하는 일
문서 작성, 스크립트 수정
시작 전 계약 → 실행 → 영수증
M
되돌리기 어렵거나 남한테 나가는 일
메일 발송, 파일 삭제, 규칙 변경
F에 더해 사람 승인 + 끝난 뒤 재확인
영수증은 에이전트가 쓰지만 검사는 코드가 합니다. 칸이 비었는지, 판정이 정해진 네 가지(완료·질문·보류·차단) 중 하나인지를 파이썬 스크립트가 봅니다. 사람이 눈으로 보면 바쁠 때 그냥 넘어가니까요.
이 규율을 실제로 물고 있는 건 제가 만든 「하네스」라는 스킬 하나입니다(스킬 = 에이전트에게 특정 상황의 절차를 미리 적어둔 문서). 계약 양식·영수증 양식·검사 스크립트가 전부 여기 매달려 있어서, 이번 주 작업의 대상도 이 스킬이었습니다.
이번 주 과제로 스터디장님 배포 정본과 제 것을 대조했더니, 뼈대는 같았고 칸 속이 여섯 군데 비어 있었습니다. 그 여섯을 내리는 게 이번 작업이었습니다.
2. 설계 계약 — 일곱 칸
규칙 자체를 고치는 일이라 등급은 M이었습니다.
아래가 이 작업을 시작하기 전에 쓴 계약입니다. 그리고 Criteria(성공 기준) 칸은 쓰자마자 동결했습니다 — 칸 글자를 지문으로 떠서 문서 머리에 박아뒀고, 하다가 기준을 슬쩍 고치면 지문이 어긋나 걸립니다.
칸
뜻
내용
Goal
무엇을 바꾸려 하나
배포 정본에서 내게 없던 계약 구조 6종을 내 양식에 내린다. 끝나면 계약은 무시조건·애매기준·실행모양·수리예산을 빈칸으로 둘 수 없고, 기준을 사후에 고치면 코드가 잡는다
Trigger
언제 시작하나 / 언제는 안 하나
시작: 배포본 2개 확인 지시 + 반영 범위 승인. 무시: ①상시 헤더 20줄 상한을 넘겨야 들어가는 항목 ②백업 게이트(별건으로 분리) ③교육 배포 전용 장치 ④회귀 미통과 상태의 전파
Context
무엇을 근거로 하나
배포본 2개(51개 파일 열람) + 내 양식·검사기·기존 영수증 6건. 빠진 것: 학습가이드 본문 6만 자 미독(요약본·슬라이드 전사로 대체)
Route
무엇을 어떤 순서로
모양: 정해진 순서(분기 없음) — 양식 개정 → 검사 규칙 5종 → 고장 샘플 제작 → 회귀 세트 증설 → 전수 회귀 → 영수증 → 재확인
Criteria
뭘 하면 성공인가
아래 표로 따로 뺐습니다
Approval
어디서 사람이 막나
반영 범위 사전 승인 완료. 정본 변경이라 커밋 후 재확인 필수
Repair
실패하면 무엇만 고치나
깨진 검사 하나만 고치고 전수 재실행. 원복 경로 = 백업 4벌. 예산: 시도 3 / 수리 2 / 같은 방식 재시도 1
Criteria 칸은 길어서 따로 뺐습니다. 통과 조건만 적지 않고 실패와 애매까지 미리 가르는 게 이번에 새로 내린 것 중 하나입니다.
판정
내용
통과
①회귀 전수 통과 ②기존 영수증에 새 규칙 소급 적용 없음 ③상시 헤더 무변경 ④새 규칙 5종이 각각 고장 샘플에서 실제로 잡힘 ⑤이 작업의 영수증 자체가 새 양식으로 통과 ⑥기준 변조를 대조 검사가 잡음
실패
하나라도 미충족이면 기각·원복
애매
검증용 비밀 문제는 같은 날 만들면 무효 — 만들지 않고 "확인 못 함"으로 남긴다
내린 여섯 개는 Trigger의 무시조건(언제는 시작하지 않나), Route의 실행 모양, Criteria의 애매 칸(통과와 실패 사이 회색지대를 미리 적기), Repair의 유한 예산, 그리고 기준 동결과 판정 3값입니다.
3. 어디서 막혔나 / 무엇을 부러뜨렸나
막힘 ① 시작하기도 전에 계약 전제가 틀렸다
계약에 "기존 영수증 6건 전부 통과 유지"라고 썼습니다. 착수 전 실측을 해보니 5통과 / 1실패였습니다. 이틀 전 영수증 하나가 판정 칸 미기입 상태로 남아 있었습니다.
기준을 "5통과/1실패 유지"로 고쳐 쓸 수도 있었습니다. 고치지 않고, 판정 기준을 "개정 전후 동일성 유지"로 대고 전제가 틀렸다는 사실을 영수증에 적었습니다.
막힘 ② 새 검사 규칙 다섯 개가 전부 헛돌고 있었다
고장 샘플을 만들기 전에 정상 샘플부터 걸었습니다. 지난주 사례글에 "새로 단 게이트는 정상 케이스부터 걸어봐라"라고 써놨고, 이번엔 그걸 회귀 세트에 검사 항목으로 박아뒀습니다. "정상 기준본은 통과해야 한다"가 15개 검사 중 하나입니다.
그 검사가 울렸습니다. 정상 파일이 탈락.
원인은 별표 두 개였습니다. 양식은 강조 표시를 써서 무시:로 적는데, 검사기는 무시:라는 글자를 찾고 있었습니다. 사이에 별표가 끼어서 찾는 글자가 영영 안 나옵니다. 다섯 규칙이 전부 같은 방식이라, 다섯 개가 전부 모든 파일에 경보를 울리는 상태였습니다.
고장 샘플만 걸어봤다면 — 고장 샘플은 어차피 탈락이 기대값이라 — "잘 잡네" 하고 통과시켰을 겁니다.
막힘 ③ 부러뜨렸더니, 못 막는 자리가 나왔다
기준 동결은 이렇게 동작합니다. 계약의 판정기준 칸을 해시(내용이 한 글자만 바뀌어도 완전히 달라지는 지문)로 떠서 문서 머리에 박아둡니다. 실행하다가 기준을 몰래 고치면 지문이 어긋나 탈락이 뜹니다.
확장과제로 이걸 부러뜨려 봤습니다. 시나리오는 기준을 완화한 다음, 지문을 다시 떠서 박으면? 입니다.
단독 검사는 통과했습니다. 지문과 본문이 일치하니까요. 자기 지문 검사는 "사후에 고쳤나"