뜯어본 생각공개

에이전트 하네스

에이전트를 무엇 위에서 돌릴 것인가. 스물한 건을 뜯었고 실제로 들인 도구는 하나입니다.

21편 · 도구 1

AI에게 일을 시키는 «판»을 다루는 것들을 뜯어본 칸입니다. 스물한 편을 뜯었고, 실제로 들여온 도구는 하나입니다.

먼저 — 「하네스」가 뭔가요

말 그대로는 마구(馬具)입니다. 말에 씌우는 장비 말입니다.

AI에게 일을 시킬 때도 비슷한 게 필요합니다. AI 자체는 그냥 말을 주고받는 물건인데, 실제로 일을 시키려면 그 주위에 장치가 붙어야 합니다.

  • 어떤 규칙을 지킬지 알려 주는 것
  • 어떤 도구를 쓸 수 있게 해 주는 것
  • 위험한 일을 할 때 사람에게 물어보게 하는 것
  • 일이 끝나면 확인하게 하는 것

이 장치 묶음을 하네스라고 부릅니다. AI가 말이라면 하네스는 고삐와 안장입니다.

여기가 제일 큰 칸입니다

뜯은 것 전체 중 절반이 여기 있습니다. 분류를 먼저 만들고 채운 게 아니라, 채워 놓고 세어 보니 그랬습니다.

제 시간이 어디로 갔는지가 이 숫자입니다.

스물한 편에서 도구는 하나 들어왔습니다

결과부터 말씀드립니다.

개수
뜯어본 것 21
실제로 제 환경에 들인 것 1

그리고 그 하나도 「효율이 좋아서」 들인 게 아닙니다. 그냥 쓰고 싶어서 넣었습니다. 그 사실을 해당 편에 적어 뒀습니다 — 나중에 기억이 「효율 때문에 넣었다」로 바뀌기 때문입니다.

기억은 자기가 한 선택을 합리적으로 고쳐 씁니다. 그래서 당시 이유를 그 자리에 적어 두는 것이 유일한 방어입니다.

그러면 스물이 왜 안 들어왔나 — 이유가 한 가지가 아니었습니다

처음엔 「좋은 게 없어서」라고 생각했는데 아니었습니다. 기각 사유가 여러 종류였습니다.

사유 무슨 뜻인가
이미 갖고 있었다 제 환경에 같은 게 이미 있었음
끼울 자리가 없다 좋은데 제 환경에 나사 구멍이 없음
설치 자체가 안 된다 받아서 깔아 보니 안 돌아감
자기 자료가 자기를 반증 홍보 문구를 그 회사 자기 표가 뒤집음

세 번째와 네 번째가 특히 자주 나왔습니다.

자주 나온 결론 — 「갖고 있는데 한 번도 안 켰다」

여섯 편일 때는 「도구를 안 들인다」 하나만 보였습니다. 스무 편이 되니 더 자주 나오는 결론이 따로 있었습니다.

처음엔 「내가 이미 갖고 있었다」로 읽었습니다. 그런데 한 겹이 더 있었습니다.

「갖고 있었다」가 아니라 「갖고 있는데 한 번도 안 켰다」였습니다.

둘은 완전히 다릅니다. 갖고 있으면 문제가 없고, 안 켰으면 없는 것과 같습니다. 그런데 파일 목록만 보면 둘이 똑같이 생겼습니다.

그래서 이 칸은 읽는 방식이 다릅니다

다른 칸은 「무엇을 가져올까」로 읽습니다.

여기는 「내가 이미 쓰고 있는 것을 남의 눈으로 다시 보기」에 가깝습니다. 남의 하네스를 열어 보면, 제 하네스에서 당연하게 여겨서 안 보이던 것이 보입니다.

그리고 한 가지 패턴이 여덟 번 반복됐습니다

제일 재미있는 발견입니다.

판정을 뒤집은 결정적 증거가, 비판하는 글이 아니라 «대상 자신의 자료» 안에 있었던 편이 여덟입니다.

어디에 있었나
홍보 자료 자신의 표
자기가 만든 규칙 — 그대로 따랐더니 멈추라고 나옴
자기 변경 기록 — 다운로드 페이지엔 없는 내용이 적혀 있음
같은 발표의 두 번째 표 — 제목의 전제를 뒤집음
자기 문서 둘이 서로 어긋남
자기 소스 코드 — 자기 규칙을 자기가 어김
같은 창고가 서로 다른 숫자 셋을 동시에 들고 있음
자기 검사 장치 — 직접 돌려 보니 자기 것을 못 잡음

→ 배운 것: 반증을 찾으려고 비판 글을 뒤질 필요가 별로 없습니다. 대상이 낸 자료를 끝까지 읽기만 해도 대개 그 안에 있습니다. 홍보는 앞장에 있고 한계는 뒷장에 있는데, 사람들이 앞장만 읽습니다.

마지막 다섯 편은 제가 고른 게 아닙니다

열다섯까지는 제가 손으로 골랐습니다. 스물로 늘린 다섯은 기계가 매일 긁어 오는 소식 목록에서 왔습니다.

제가 만들어 둔 수집기가 하루 두 번 여섯 군데를 돌며 쌓아 둔 것 중에서, 순서대로 전수로 뜯었습니다. 골라내지 않았습니다.

이 경로가 실제로 쓰인 건 그때가 처음이었습니다. 만들어 놓고 안 쓰던 것을 처음 켠 셈입니다 — 이 칸에서 제일 자주 나온 결론이 제게도 그대로 해당됐습니다.

그리고 스물한 번째는 남의 창고가 아니라 제 창고였습니다

마지막 편이 특이합니다. 제가 21일 전에 직접 깔아 놓고 한 번도 안 쓴 것을 뜯었습니다.

앞의 스무 건은 전부 남이 만든 걸 열어 본 기록이고, 판정이 「안 들인다」 아니면 「이미 있다」였습니다. 스물한 번째만 대상이 제 것이었습니다.

여기부터는 자세한 기록입니다

에이전트를 돌리는 판을 다루는 것들. 룰셋, 스킬 디렉터리, 자기개선 하네스, 훅 디스패처, 모델 게이트웨이. 남이 만든 운영 체계를 열어 보고 내 것과 대본 자리다.

여기가 제일 큽니다 — 뜯은 것 마흔둘 중 스물하나. 딱 절반입니다. 분류를 먼저 짓고 채운 게 아니라 채워 놓고 세어 보니 그랬습니다. 제 시간이 어디로 갔는지가 이 숫자입니다.

스물한 편에서 도구는 하나 들어왔다

대상 도구 남은 것
ECC 채택했는데 내 환경에서 안 돌았다 훅을 이진이 아니라 강도 등급으로 관리한다는 발상
mattpocock/skills 설치 안 함 — 레포 자신의 논리 때문에 비용이 두 종류라는 것. 기계의 컨텍스트 부하와 사람의 인지 부하는 다르게 다룬다
Prime Agent 기각 — 승인 게이트가 0 작업물이 안 바뀌었으면 실패 게이트를 재실행하지 않는다
Clawd on Desk 채택 — 유일하게 실제로 들어왔다 설치기가 회수기를 같이 심는다 · 덧붙이되 덮어쓰지 않는다
Odysseus 비권장 신뢰불가 텍스트를 감쌀 때 구분자 리터럴을 먼저 이스케이프한다
ponytail 통짜 기각 · 한 줄만 “모든 호출부를 grep하라” — 뜻이 아니라 문장의 형태가 옮겼다
OmniRoute 차단 — 수확 기법 7종까지 같이 기각 경계는 조각이 아니라 레포 단위로 긋는다
세션 간 메시징 안 만듦 — 이미 켜져 있었다 실전 실패 모드는 보안이 아니라 발신자가 자기를 잘못 식별하는 것
Buzz 그룹챗 보류 — 플랫폼 미지원 다중 검증은 페르소나가 아니라 모델을 갈라야 일치가 정보량을 가진다
플러그인 4종 추천 넷 중 둘은 이미 기각한 것 반례는 비판 글이 아니라 홍보 자료 자신의 표 안에 있다
메타 프롬프팅 절차는 이미 함 · 한 줄만 질문 유도의 본체는 좋은 프롬프트가 아니라 내 컨텍스트의 구멍을 보는 것
Fable 현장 가이드 기법 6 중 3 멈추지 않으면서 흔적을 남기는 셋째 길 — 벗어난 지점을 기록하고 계속 간다
obra/superpowers 기각 — 수확도 3에서 1로 대조군 없이 내 것만 재면 이미 믿던 것이 확인된다
ASIDE 기각 — 설치 자체가 안 된다 「없다」를 다운로드 페이지에서 볼지 체인지로그에서 볼지
스킬 하나로 광고 이미지 수확 1 · 그것도 추정 좋은 설계와 좋은 결론은 한 덩어리로 오지 않는다
DeepSeek Harness 기각 — 설치가 300초 침묵 끝에 죽었다 없던 것은 도구가 아니라 실행 이력이었다
ip-as-logo 기각 — 부를 곳이 없다 에이전트가 안 읽는 파일에 적힌 규칙은 런타임 효과가 0이다
anti-slop 27건 잡고 한 건도 안 고침 게이트는 존재가 아니라 실행으로 센다
DSH better-sidebar 기각 · 수확 4 → 1 남의 수치를 의심하는 도구부터 내 저장소에 실려 있는지 본다
cumora 보류 — 여기서 유일하다 일치하는 두 숫자가 같은 것을 보고 있는지부터 본다
eli5 이미 깔려 있었다 — 바꾼 건 부르는 경로 설치했는가와 켰는가 사이에 「부를 생각이 났는가」가 있다

스물하나 중 스물이 도구를 안 들였고, 하나 들어온 것도 생산성 근거로는 정당화되지 않았습니다. 그 하나에 대해서는 “쓰고 싶어서 설치한 것이 맞다”고 페이지에 적어 뒀습니다 — 나중에 “효율 때문에 넣었다”로 기억이 바뀌기 때문입니다.

우연이 아닌 것 같습니다. 하네스는 이미 쓰고 있는 것을 통째로 갈아야 하는 물건이라, 갈아탈 값어치가 기법 하나보다 커야 하는데 그 문턱이 아주 높습니다.

스물한 번째는 남의 창고가 아니라 제 창고였다

eli5 는 이 분류에서 처음으로 제가 이미 설치해 둔 것을 뜯은 편입니다. 앞의 스무 건은 전부 남이 만든 것을 열어 본 기록이고 판정은 「안 들인다」 아니면 「이미 갖고 있다」였는데, 스물한 번째는 21일 전에 제 손으로 깔아 놓고 한 번도 안 쓴 것이었습니다.

그래서 이 편의 수치는 대상의 성능이 아니라 제 사용 기록입니다 — 세션 기록 944개가 이름을 싣고 다니는 동안 실행은 1건이었습니다. 「도구 1」이라는 이 분류의 숫자는 그대로입니다. eli5 는 뜯어서 들인 것이 아니라 이미 들어와 있던 것이고, 이번에 바뀐 건 도입 여부가 아니라 부르는 경로입니다. 그 둘을 같은 칸에 적으면 도입률이 조용히 부풀어 오릅니다.

두 번째 줄 — 「내가 이미 갖고 있었다」

여섯 편일 때는 “도구를 안 들인다” 하나만 보였습니다. 여섯이 더 늘고 나니 더 자주 나오는 결론이 따로 있었습니다 — “내가 이미 갖고 있었다”.

세션 간 메시징이 그 극단입니다. 영상이 판 기전은 제 OS에 아예 없었는데, 정작 원하던 기능은 이미 켜져 있었습니다. ECC는 남의 레포가 아니라 제 설정의 상류였고, ponytail 조사는 남의 룰셋이 아니라 제 룰셋의 자기모순 세 건을 찾아냈습니다. OmniRoute에서 수확 기법 7종을 전부 기각한 이유도 결국 같은 축입니다 — 조각을 뽑아 오려면 원본을 계속 열어야 하고, 제게 이미 있는 것으로 되는 일이면 그럴 이유가 없습니다.

그래서 이 분류에서 제일 자주 하는 일은 남의 것을 평가하는 게 아니라 제 것의 재고를 확인하는 것입니다.

스무 편이 되고 나서, 이 줄에 한 겹이 더 생겼다

「갖고 있었다」가 아니라 「갖고 있는데 한 번도 안 켰다」입니다.

별 181,170개짜리 하네스에서 기법 다섯을 수확하려고 했는데, 다섯이 전부 제 폴더에 이미 깔려 있으면서 실행 이력이 0인 스킬 두 개에 부딪혀 죽었습니다. 한쪽은 반년 치 기록 어디에도 산출물이 없고, 다른 한쪽은 자기가 만들라고 지시한 로그 파일과 휴지통 폴더가 둘 다 존재하지 않습니다. 안 돌았다는 뜻입니다.

그리고 이건 우연이 아니었습니다. 컨텍스트 예산 편에서 같은 스킬이 다시 나왔습니다 — 설치한 지 24일, 실행 0회. 두 조사가 서로 모르는 채로 같은 물건을 가리켰습니다.

재고 확인의 단위가 틀렸던 겁니다. 「무엇을 갖고 있나」로만 세면 창고에 있는 물건을 밖에서 사 오자는 결론이 나옵니다. 세어야 하는 것은 목록이 아니라 마지막으로 켠 날짜입니다.

그래서 여기서 배우는 방식이 다르다

다른 분류는 “무엇을 가져올까”로 읽습니다. 여기는 “내가 이미 쓰고 있는 것을 남의 눈으로 다시 보기”에 가깝습니다.

ECC가 그 극단입니다. 남의 레포가 아니라 제 설정의 상류였습니다 — 반년 전 파일로 복사해 왔고 그 뒤로 갈라진 것을 처음 대본 자리였습니다.

그리고 두 편이 같은 자리로 되돌아왔습니다. Odysseus에서는 문서에 적힌 규율 다섯 중 코드가 강제하는 건 하나였고, ponytail에서는 조사가 남의 룰셋이 아니라 제 룰셋의 자기모순 세 건을 찾아냈습니다. 남의 운영 체계를 열면 대개 제 것이 먼저 보입니다.

세 번째 줄 — 깨는 도구를 대상이 들고 있었다

열다섯이 되고 나서 새로 보인 게 하나 더 있습니다. 판정을 뒤집은 결정적 증거가 비판 글이 아니라 대상 자신의 자료 안에 있었던 편이 넷이었습니다. 새로 넣은 다섯 중 넷이 또 그랬으니 이제 여덟입니다.

대상 결정적 증거가 있던 곳
플러그인 4종 홍보 자료 자신의 표
obra/superpowers 저들 자신의 규칙 — “대조군이 실패를 안 보이면 멈춰라”. 그대로 멈췄습니다
ASIDE 자기 체인지로그 — 다운로드 페이지엔 없는 것이 세 번 나옵니다
스킬 하나로 광고 이미지 같은 발표의 두 번째 표 — 제목의 전제를 뒤집습니다
ip-as-logo 자기 문서 둘이 어긋납니다 — 간판 규칙이 README 에만 있고 실행 파일엔 없습니다
anti-slop 자기 소스 21줄 — 자기 규칙 넷을 자기 코드가 어깁니다
DSH better-sidebar 같은 저장소가 세 개의 다른 숫자를 동시에 들고 있습니다
cumora 자기 CI 가드 — 직접 호출해 보니 자기 관용구를 하나도 못 잡습니다

예외가 하나 있습니다. DeepSeek Harness만 결정적 증거가 밖에 있었습니다 — 패키지 레지스트리의 404 와 커뮤니티 보고였습니다. 다만 그것도 비판 글은 아니었습니다. 남이 논평한 것이 아니라 기계가 답한 것입니다.

외부 비판을 찾으러 갈 필요가 없었습니다. 오히려 외부 비판 쪽이 두 번 틀렸습니다 — 인용된 수치가 8개월 낡았고, 활동 정체라던 판정은 브랜치 구조를 안 본 것이었습니다.

그래서 이 분류의 적대검증은 순서가 정해졌습니다. 남이 뭐라 했는지 찾기 전에, 대상이 자기 입으로 한 말들끼리 맞는지부터 봅니다.

다섯 편이 한꺼번에 늘었고, 이번엔 고른 사람이 제가 아닙니다

열다섯까지는 제가 링크 라이브러리에서 손으로 골랐습니다. 스무 편으로 늘린 다섯은 기계가 매일 긁어 오는 피드에서 왔습니다 — 「나온 것」이 하루 두 번 여섯 군데를 돌아 쌓아 둔 것 중 깃허브 항목만 순서대로 전수로 뜯었습니다. 이 경로가 실제로 쓰인 것은 이번이 처음입니다.

고르는 주체가 바뀌니 표본의 성격이 바뀌었습니다. 제가 고를 때는 “내 문제에 닿을 것 같은 것”을 골랐고, 그래서 판정이 「이미 갖고 있다」로 수렴했습니다. 피드가 고르니 제 문제와 상관없는 것이 섞여 들어왔고 — 여덟 중 하나는 애플 전용이라 제 환경에서 실행 자체가 불가능해 올리지 않았습니다 — 대신 제가 안 열어 봤을 자리가 열렸습니다. 다섯 중 셋은 제 것의 결함을 찾아 줬고, 그 셋은 전부 제가 고를 이유가 없던 대상이었습니다.

그리고 판정은 오히려 더 짰습니다. 다섯 중 채택 0, 보류 1, 기각 4. 별이 많다고 쓸모가 따라오지는 않습니다 — 다섯의 별을 다 더하면 19만이 넘는데 들어온 도구는 0개입니다.

그리고 원장에 안 잡히는 것이 하나 있습니다. Prime Agent는 리포트가 둘입니다 — 깃허브 분석과 영상. 원장은 파일이 아니라 대상을 세니 한 줄이고, 위 글은 코드를 읽고 쓴 것이라 영상 쪽 내용은 아직 안 들어가 있습니다. 표가 못 담는 종류의 사실이라 여기 적어 둡니다.