블로그

AI 지침을 90KB에서 147KB로 늘렸다. 위반은 안 줄었고, 코드로 내린 8건만 재발 0이었다

2026년 9월 23일untactit

AI 에이전트에게 지키게 하고 싶은 규칙이 있다. AGENTS.md에 쓴다. 안 지킨다. 더 자세히 쓴다. 그래도 안 지킨다. 조문을 하나 더 넣는다.

48일간 그렇게 운영한 결과 상주 지침 파일은 90KB에서 147KB가 됐다.

그리고 위반은 안 줄었다.

숫자를 낸다. 전부 내 환경 1대의 실측이다(n=1).

1. 토큰의 94.4%는 같은 텍스트를 다시 읽은 것이었다

지침 파일을 늘리면 비용이 어떻게 움직이는가. 48일 집계다.

항목실측값
누계 토큰62,250M
그중 캐시 재독58,751M (94.4%)
순수 생성 출력185.9M (0.30%)
메시지 수268,766
메시지당 재독량약 219k 토큰

상주 지침은 4파일 204,309바이트. 이게 매 턴 재주입된다.

즉 「누계 토큰량」은 에이전트의 작업량이 아니라 지침 길이 × 턴 수의 함수다. 이걸 자기 가동 규모의 지표로 쓰면, 지침을 길게 쓴 사람일수록 「많이 쓰는 사람」으로 보인다.

캐시 적중률 99.3%도 같은 함정이다. 효율의 증거가 아니라 같은 맥락을 반복해서 던지고 있다는 증거였다.

2. 그런데도 위반은 안 줄었다

지적받을 때마다 규칙 단위로 횟수를 세는 작은 스크립트를 돌리고 있다. 대단한 게 아니고, 교정받으면 카운터를 1 올리는 것뿐이다.

조문을 써넣은 뒤에도 카운터는 멈추지 않았다. 전날 신설한 조문이 다음 날 깨지는 일까지 있었다.

조문을 늘리는 것은 해결이 아니라 증상이었다.

3. 24개 규칙을 두 군으로 나눠 재봤다

기록된 24개 규칙이 마침 두 군으로 갈려 있었다.

  • A군(8건): 위반을 코드에서 막은 것. PreToolUse 훅, 검사 스크립트, 발송 직전 가드.
  • B군(16건): 조문으로 문서에만 쓴 것.

같은 환경, 같은 에이전트, 같은 기간이다.

규칙 수재발한 규칙누적 재발규칙당
A: 코드 게이트80건 (0%)0회0.00
B: 문서 조문만1616건 (100%)19회1.19

B군은 전멸이었다. 16건 전부가 최소 1회는 재발했다.

A군은 게이트 설치 후 2,500~4,053턴 무재발이 이어지고 있다.

4. 이걸 「게이트가 효과 있었다」고 해도 되나

반론 세 개를 진지하게 본다.

반론 1: 선택 편향. 게이트를 붙인 건 원래 제일 심한 규칙 아닌가.

맞다. 운영 규칙상 같은 위반이 3회를 넘으면 코드로 내린다. 즉 A군은 원래 가장 재발이 심했던 8건이다. 그게 지금 0회다. 편향은 결론을 약화시키는 게 아니라 강화하는 방향으로 작동한다.

반론 2: 역인과. 게이트 설치 시점에 이미 학습이 끝난 것 아닌가.

부정할 수 없다. 「3회째에 게이트를 붙인다」는 절차 자체가 시간 경과와 상관한다. 다만 B군에도 2회 재발한 채 멈추지 않은 규칙이 3건 있어서, 시간만으로는 설명이 안 된다.

반론 3: 애초에 문서를 안 읽는 것 아닌가.

읽는다. 204KB 전량이 매 턴 컨텍스트에 들어간다. 읽은 상태에서 안 지켜진다는 게 이 측정의 의미다.

5. 학습 큐도 절반이 버려지고 있었다

지적받을 때마다 큐에 쌓고 조문화까지 추적하는 장치도 돌린다. 누적 내역이다.

상태건수
조문 승격231
검증 완료178
기각229
미처리12
사람 판단 대기63

기각률 49.8%. 포착한 학습 신호의 절반이 조문이 되지 못하고 사라진다. 그리고 「사람 판단 대기」가 63건 쌓여 있다. 자동화했다고 생각한 장치가 결국 사람을 병목으로 만들고 있었다.

6. 무엇을 바꿨나

규칙의 거처를 3단으로 나눴다.

  1. 1회째: 기록만 한다. 조문에 쓰지 않는다.
  2. 2회째: 조문에 쓴다. 단 매 턴 앞에 「최근 빈발 위반 상위 3건」만 주입한다. 전문이 아니라 3건이다.
  3. 3회째: 문서 수정으로 닫는 것을 금지한다. 코드 게이트를 쓰고, 일부러 망가뜨린 입력이 그 게이트에 걸리는 것을 확인할 때까지 닫지 않는다.

3단계가 핵심이었다. 「조문 고쳤습니다」로 닫을 수 있는 한, 같은 위반이 4회째에 온다.

상위 3건만 주입하는 것도 의도적이다. 건수를 늘리면 또 안 읽힌다. 안 읽히는 조문을 늘린 게 애초의 원인이었으니까.

7. 못 잰 것

구멍을 정직하게 적는다.

  • n=1이다. 1대, 1인 운영이다. 다른 환경에서 재현될지 모른다.
  • 게이트 정확도를 못 쟀다. 회귀 판정기 자체에 1표본 오탐률 66%라는 측정이 있다(「확정」으로 보고된 회귀 3건 중 2건이 3표본 재측정에서 통과). 게이트 검증은 이제부터다.
  • 「지켜졌다」의 정의가 약하다. 재발 카운트는 사람의 지적이 기점이다. 아무도 못 잡은 위반은 안 세어진다. 실제 위반율은 이보다 높다.

정리

  • 지침을 90KB → 147KB로 늘려도 위반은 안 줄었다
  • 토큰의 94.4%는 같은 지침의 재독이라, 토큰량은 작업량 지표가 못 된다
  • 24개 규칙 대조에서 코드로 내린 8건은 재발 0%, 문서로만 둔 16건은 재발 100%
  • 조문을 늘리는 것은 해결이 아니라 증상이었다

자기 머신에서 같은 측정을 해본 사람이 있으면 숫자를 보고 싶다. 특히 B군 재발률이 환경에 따라 달라지는지.

이 계측은 untactit을 만드는 과정의 실측이다. AI 에이전트가 읽는 스킬·지침·메모리를 한곳에서 관리하는 control plane이고 현재 얼리 액세스다. 드리프트 탐지 부분은 agent-drift로 MIT 공개했다(의존성 없음, 단일 파일).

같이 읽기

에이전트가 무엇을 실행 중인지, 더는 추측하지 않습니다.

워크스페이스 하나만 연결하면 팀이 실제로 쓰는 스킬·규칙·메모리 전부가 보입니다. 약 10분이면 됩니다.

무료로 시작 문의하기

신용카드 없이 시작합니다. 지금 쓰는 툴 그대로 동작합니다.