Kun's Field Notes

당신의 AGENTS.md는 신경망이다

그리고 그것을 경사 하강법으로 제대로 훈련시키는 방법

읽기 전에

에이전트가 매 세션 읽는 프로젝트 CLAUDE.md/AGENTS.md — 감으로 고치는 대신, 실제 세션 기록을 학습 데이터 삼아 '훈련'할 수 있다면 그 루프는 정확히 어떻게 생겼는가?

선행 개념 — 모르면 막히는 것만

프로젝트 지침 파일 = 가중치, 에이전트 세션 1회 = 순전파, "에이전트가 한 것과 내가 원한 것의 격차" = 손실, 트랜스크립트를 읽고 파일을 소폭 편집 = 역전파. 대부분의 사람은 순전파만 하고 역전파를 안 하기 때문에 파일이 비거나·붓거나·썩거나·갈라진다. 훈련 규율은 넷: 증거는 트랜스크립트의 원문 인용만, 업데이트는 배치로만, 스텝은 작게(패스당 편집 ~5개), 크기는 토큰 예산으로 고정하고 좁은 규칙은 스킬로 빼낸다.

권장 읽기 순서

요약만 볼 사람 — "Four bad states"(문제 진단 4종)를 훑고 "The mapping"(명사 치환표)만 정독하면 이 글의 아이디어는 손에 들어온다. 마지막의 훈련 노브 대응(--budget = 모델 크기, --max-edits = 학습률, --min-gap-evidence = 배치 크기)을 곁눈으로 확인하고 끝.

완독할 사람 — 순서대로 읽되 무게중심을 두 곳에 둔다. ① "Two files, two very different jobs": 유저 레벨은 손으로 쓰고 도구가 건드리지 못하게, 프로젝트 레벨만 훈련 대상 — 이 분리가 방법 전체의 전제다. ② "What a backward pass looks like in practice": 도구 없이 손으로 하는 5단계 규율이 본체이고, 뒤의 backpass CLI 소개는 그 규율의 자동화·기계적 게이트(편집 ≤5개, 신규 규칙엔 세션 2회 이상, 편집마다 인용 필수, 예산 초과 시 실패)일 뿐이다. 신경망 훈련이 익숙하면 "Forward pass, backward pass" 섹션은 건너뛰어도 된다.

예상 소요: 요약만 ~3분 / 완독 ~12분.

점검 질문

  1. 저자는 왜 유저 레벨 파일과 프로젝트 레벨 파일에 정반대의 취급(손글씨 고정 vs 신경망식 훈련)을 요구하는가?
  2. "에이전트가 바보짓을 할 때마다 규칙 한 줄 추가"가 배치·학습률 개념에 비추어 정확히 어떤 실수인지 설명할 수 있는가?
  3. 토큰 예산이 꽉 찼을 때 새 규칙 하나를 넣으려면 무엇을 지불해야 하고, 어떤 규칙이 파일에 남고 어떤 규칙이 스킬로 빠지거나 삭제되는가?

Executive Summary

Kun Chen(전 Meta·Microsoft·Atlassian L8 엔지니어)은 AGENTS.md/CLAUDE.md 유지보수 문제를 이렇게 재정의한다: 유저 레벨 파일은 손으로 쓰고, 프로젝트 레벨 파일은 신경망처럼 취급해 토큰 버짓을 정한 뒤 실제로 돌았던 세션 데이터로 "훈련"하라. 대부분이 forward pass(파일을 읽어 세션을 돌리는 것)에서 멈춰 있고, 빠진 것은 loss로부터 weights를 갱신하는 backward pass라는 주장이다.

병든 메모리 파일의 4가지 상태와 공통 뿌리

몇 달 이상 된 프로젝트 메모리 파일은 넷 중 하나의 상태에 있다고 진단한다.

Empty — 도구가 만들어놓기만 한 파일. 에이전트는 매 세션 같은 것을 재도출한다.
Bloated — 사고 날 때마다 규칙을 붙여넣어 1년 뒤 900줄. 모든 줄의 비용을 매 세션 지불하고, 파일이 클수록 instruction following이 희석되어 중요한 규칙이 묻힌다.
Stale — 규칙 절반이 3월에 교체된 빌드 시스템을 서술. 에이전트는 그걸 따르거나 파일 자체를 무시하는 법을 배운다(둘은 같은 것이다).
Drifted — AGENTS.md와 CLAUDE.md가 다른 말을 해서 하네스마다 다른 지시를 받는다.

네 상태의 공통 뿌리는 하나다: 파일이 일화적 관찰에 기반해 transactional하게 편집되고, consolidate·prune보다 append가 훨씬 쉽다는 것.

데이터는 이미 있다

더 답답한 점은 무엇을 고쳐야 할지 알려줄 데이터가 이미 존재한다는 것이다. Claude Code, Codex, pi, opencode, grok, Cursor — 모든 하네스가 디스크에 트랜스크립트를 남긴다. 무엇을 요청받았고, 어느 규칙을 따랐고, 어디서 넘어졌고, 유저가 어떻게 정정했고, 무엇을 재발견했는지가 전부 로그에 있다. 아무도 그 로그를 읽지 않을 뿐이다.

2레벨 분리: 손글씨 vs 신경망

유저 레벨 (~/.claude/CLAUDE.md 등)
내 선호와 의견 — 손으로 쓴다. 작고, 드물게 바뀌며, 누구도(특히 에이전트·도구가) "최적화"해서는 안 된다.
프로젝트 레벨 (repo의 AGENTS.md)
사실상 신경망이다. 시스템 프롬프트에 로드되어 에이전트 행동을 조향하는 것이 fine-tuned LoRA와 크게 다르지 않다. 파일처럼 편집하지 말고 토큰 버짓을 정해 신경망처럼 훈련한다.

매핑: 훈련 루프의 명사만 바꾸면 된다

AGENTS.md를 가중치로 보는 다이어그램 — 어드레서블 유닛별 긍정/부정 증거 카운트와 5,000토큰 버짓
AGENTS.md를 weights로 보는 다이어그램 — 어드레서블 유닛마다 긍정/부정 증거 카운트가 붙고, 전체는 5,000 토큰 버짓 안에 산다.
프로젝트 AGENTS.md
weights — 코드 한 줄 읽기 전에 에이전트 행동을 결정한다.
토큰 버짓
model size — 클수록 지식은 늘지만 매 추론이 비싸진다. 버짓이 이 트레이드오프를 명시화한다.
에이전트 세션 1회
forward pass — 파일은 그대로 쓰이고 변경되지 않는다.
기대와 실행의 갭
loss — 스키마 재발견, pnpm 레포에서 npm test 실행, 바로 옆의 규칙 위반, 틀린 규칙의 준수. 전부 트랜스크립트에 있다.
트랜스크립트 리뷰 + 소규모 편집
backward pass — 어느 지시가 loss에 책임 있는지 역산해 버짓 안에서 weights를 조금씩 갱신한다.

이 비유는 현실에도 부합한다고 저자는 지적한다 — 대부분은 파일 내용을 자주 정독하지 않으므로 이미 실질적으로 블랙박스다.

수동 backward pass의 규율 5요소

  1. 증거는 트랜스크립트에서만. "지난 화요일에 짜증났던 기억"이 아니라 세션 로그가 loss 신호다. 파일의 각 리스트 항목·문단을 어드레서블 유닛으로 취급해 "어느 세션에서 유효했나/준수됐나/위반됐나/틀렸나"와 역질문("어떤 유닛도 커버하지 않은 실수는?")을 던진다.
  2. 배치 후 업데이트. 나쁜 세션 1회는 노이즈일 수 있다 — 배치가 있어야 패턴과 노이즈를 구분한다. 붙여넣기된 규칙 대부분이 재발하지 않은 단발 사건의 반응이었으므로, 이 제약 하나가 bloat 대부분을 제거한다.
  3. 소규모 스텝. 패스당 ~5개 편집(추가·삭제·재작성·스킬 추출). 전면 재작성은 처음부터 다시 시작하는 것과 구별 불가능하며 작동하던 것을 전부 잃는다.
  4. 버짓 준수. 상시 로드 파일에 예컨대 5,000 토큰 버짓을 정한다. 버짓 근처에서는 zero-sum: 모든 추가는 그 값을 치를 삭제·추출을 지명해야 한다.
  5. 스킬은 release valve. 세션의 20%+에서 유효하거나 안전-critical한 광역 지시 = 메모리 파일 유지. 탐지 가능한 트리거가 있는 협소 지시 = 스킬로 추출. 트리거 없는 협소 지시 = 삭제 후보.

backpass — backward pass를 도구화한 파이프라인

수동 규율은 유효하지만 지루하다(트랜스크립트 찾기, 메가바이트급 tool-call 노이즈 읽기, 인용 검증, 토큰 세기). 그래서 저자는 npx -y backpass로 실행하는 도구를 만들었다(MIT, github.com/kunchenguid/backpass). 1회 실행 = 1 gradient step.

수집
주요 하네스의 로컬 트랜스크립트 저장소에서 직접 수집, cwd 또는 git remote로 세션을 레포에 매칭.
증류
loss 신호만 남기는 96–99% 감축 — 모델 없이 수행.
loss 산출
트랜스크립트당 저가 모델 콜 1회로 유닛별 증거 생성. verbatim quote 없는 증거는 프롬프트가 아니라 코드에서 폐기.
gradient 집계
결정적(deterministic): 유닛별 긍정/부정 카운트, relevance share, 유사 갭의 세션 간 클러스터링, 2세션 미만에서 관측된 갭은 드롭.
편집 제안
고추론 콜 1회가 편집을 제안하고, 게이트는 기계적으로 실행: 최대 5 편집, 신규 룰은 2세션 증거, 모든 편집에 인용 필수, 편집 후 파일이 버짓 적합. 위반 1회 = 위반 내용을 명시한 re-prompt 1회, 2회 = 시끄럽게 실패하고 아무것도 쓰지 않음. 토큰 델타는 실제 텍스트에서 측정(모델 자가보고 수치 불신).
인간 리뷰
리뷰 전에는 아무것도 쓰지 않는다. backpass apply가 diff+증거와 함께 편집 목록을 제시, 건별 수락/거부. 거부는 기억되어 새 증거 없이는 같은 편집이 재등장하지 않는다.

플래그 = 훈련 노브

--budget
model size
--max-edits
learning rate
--min-gap-evidence
batch size
--since
training window

리듬과 핵심 차별점

저자의 운용 리듬은 활성 레포당 주 1회 실행 — 제안을 읽고 모델이 오버리치한 것은 거부, 나머지는 수락. 시간이 갈수록 AGENTS.md는 더 효율적·효과적이 된다.

저자가 강조하는 차별점: "clean up this file" 프롬프트는 1년 전에도 누구나 할 수 있었다. 진짜 요체는 과학적 엄밀함이다 — 유일한 입력은 실제 트랜스크립트, 유일하게 인정되는 증거는 verbatim 인용, 고정 버짓, 소규모 스텝, 최소 배치, 그리고 쓰기를 담당하는 인간 게이트.

신뢰도 A-핵심 사실 축 전수 확인 — backpass 레포·npm 패키지·트랜스크립트 로컬 저장·long-context 연구 근거. 상세 판정 8건은 아래 팩트체크 블록.


팩트체크
검증 가능한 주장 8건 중 6건 사실, 1건 부분사실(경력 자기 서술), 1건 자기 보고 수치다. 핵심 사실 축(backpass 레포·npm 패키지·트랜스크립트 로컬 저장·long-context 성능 저하 연구·NN/LoRA 서술)은 전부 실제 소스와 부합한다. 다만 backpass는 레포 생성 2026-08-21, npm 첫 배포 08-22, 글 발행 08-23 — 발행 이틀 전에 만들어진 신생 도구라 "일주일에 한 번 돌리는 리듬에 정착했다"는 사용 경험담의 축적 기간은 검증 불가다. 방법론 자체의 논리 정합성: NN 훈련 루프의 각 요소(가중치·loss·배치·learning rate·예산)를 메모리 파일 관리에 대응시킨 매핑은 내적으로 일관되나, AGENTS.md는 in-context 지시이지 가중치 갱신이 아니므로 어디까지나 비유이며 저자도 이를 비유로만 쓴다.
A-
🟡
저자 Kun Chen이 "Former L8 engineer at Meta, Microsoft, Atlassian"이다
LinkedIn 프로필(kunchenguid)과 GitHub·Substack의 자기 서술이 일관되고 검색 결과에 Bing/MSN·Facebook Games·Atlassian Rovo Dev 이력이 나타나나, 전부 본인 작성 소스라 직급(L8) 포함 독립 검증은 불가하다. LinkedIn: Kun Chen GitHub: kunchenguid
backpass가 github.com/kunchenguid/backpass 에 MIT로 공개돼 있다
GitHub API 직접 조회로 확인 — MIT 라이선스, JavaScript, 2026-08-21 생성, ★39, fork 아님. README도 글과 동일한 gradient-descent 프레이밍("Your AGENTS.md is a set of weights"), 최대 5개 편집·세션 2개 이상 근거·human gate 등 글의 서술과 일치한다. github.com/kunchenguid/backpass
`npx -y backpass`로 실행 가능하다 (npm 패키지 실존)
npm registry API 직접 조회로 확인 — 패키지 backpass 존재, latest 0.1.1, MIT, bin 엔트리(`bin/backpass.js`) 있어 npx 실행 가능, 메인테이너 kunchenguid, 첫 배포 2026-08-22 (글 발행 하루 전). npmjs.com/package/backpass
Claude Code, Codex, Cursor 등 에이전트 하네스가 로컬에 세션 트랜스크립트를 남긴다
Claude Code 공식 문서가 "session transcripts locally in plaintext under `~/.claude/projects/`"를 명시(기본 30일, cleanupPeriodDays 조절)하고, Cursor는 커뮤니티 가이드가 `~/Library/Application Support/Cursor/User/workspaceStorage`의 state.vscdb 저장을 문서화한다 — 대표 2종 확인, 로컬 머신에서 `~/.claude/projects`·`~/.codex/sessions` 실존도 실측했다. Claude Code Docs: Data usage Cursor Forum: Exporting chats
"파일이 커질수록 instruction following이 희석된다" — long-context 성능 저하에 연구 근거가 있다
Chroma의 Context Rot 리포트(2025-07-14, 18개 LLM 대상)가 입력 길이 증가에 따른 성능 저하를 실증하고, Liu et al. "Lost in the Middle"(TACL 2023)은 관련 정보가 긴 컨텍스트 중간에 있을 때 성능이 유의미하게 떨어짐을 보였다. Chroma: Context Rot Liu et al., Lost in the Middle (arXiv:2307.03172)
신경망 훈련 루프 서술(forward/backward/loss/gradient/learning rate/batch)이 표준 설명과 일치한다
Google ML Crash Course의 표준 서술(현재 가중치로 loss 계산 → loss를 줄이는 방향으로 소량 이동 반복, learning rate = 스텝 크기)과 대조해 개념적 오류 없음 — 단순화됐지만 정확하다. Google ML Crash Course: Gradient descent
LoRA가 "모델 위에 적용되는 fine-tune 어댑터"라는 서술이 원논문과 부합한다
Hu et al. 2021은 사전학습 가중치를 동결하고 훈련 가능한 저랭크 행렬을 주입하는 방식으로 정의 — "applies on top of the model"이라는 글의 표현과 부합하며, 저자도 이를 시스템 프롬프트 파일에 대한 비유("not too differently from")로만 쓴다. Hu et al., LoRA (arXiv:2106.09685)
블로그 구독자 "Over 2,000 subscribers"
캡처된 원문 페이지의 구독 모듈에 해당 표기가 실존한다 — 단 Substack 자기 보고 수치이며, 홈페이지 라이브 재조회의 본문 렌더에는 노출되지 않아 캡처본 표기로만 확인했다. Kun's Field Notes 원문

원본 (완역)

많은 사람들이 자신의 AGENTS.md / CLAUDE.md를 좋은 상태로 유지하는 걸 어려워한다. 어떻게 관리하냐고 물어보면 솔직한 대답은 대개 "에이전트가 알아야 한다고 내가 생각하는 걸 적는다"거나 "에이전트한테 대신 쓰게 한다"다.

나도 오랫동안 마찬가지였다. 내게 있던 건 감(vibes)뿐이었다. 하지만 더 나은 해법을 찾을 수 있다는 건 알고 있었다. 이 글은 내가 결국 도달한 방법이다.

짧은 버전: 취향을 담는 유저 레벨 AGENTS.md는 손으로 직접 쓰고, 프로젝트 레벨 파일은 신경망처럼 다뤄라. 크기 예산을 주고, 실제로 돌아간 세션들로 훈련시켜라.

이 글의 나머지는 그것이 구체적으로 무엇을 의미하는지에 대한 이야기다.

에이전틱 엔지니어링, 솔로 빌딩, 그리고 소프트웨어 개발의 최전선이 어떤 모습인지에 대한 실전 필드 노트. Meta, Microsoft, Atlassian에서 L8 엔지니어로 일했다.

네 가지 나쁜 상태

몇 달 이상 묵은 프로젝트 메모리 파일을 아무거나 들여다보면 다음 네 가지 상태 중 하나다:

공통 뿌리는 이 파일이 일화적 관찰에 근거해 그때그때 트랜잭션처럼 편집된다는 것, 그리고 통합하고 쳐내는 것보다 덧붙이는 게 훨씬 쉽다는 것이다.

답답한 건, 무엇을 바꿔야 하는지 알려줄 데이터가 이미 존재한다는 점이다. 모든 에이전트 세션은 디스크에 트랜스크립트를 남긴다. Claude Code, Codex, pi, opencode, grok, Cursor: 전부 에이전트가 무엇을 요청받았고, 무엇을 했고, 어떤 규칙을 따랐고, 어떤 규칙에 걸려 넘어졌고, 유저가 어떻게 정정했고, 무엇을 다시 발견해야 했는지의 로그를 쓴다. 아무도 그 로그를 읽지 않는다.

파일 두 개, 서로 완전히 다른 두 가지 역할

먼저 알아야 할 것은, 에이전트 메모리 파일은 두 레벨로 쓸 수 있고, 두 레벨은 정반대의 취급을 받아야 마땅하다는 점이다. 내가 생각하는 방식은 이렇다.

유저 레벨 파일은 내 것이고, 손으로 직접 쓴다. 내 전역 ~/.claude/CLAUDE.md~/AGENTS.md는 내 취향과 견해다: 개발 비용보다 품질을 우선하라, 버그는 고치기 전에 끝에서 끝까지 재현하라, 지나치다 마주친 flaky 테스트는 네 것이 아니어도 고쳐라. 이것들은 내가 소유한 취향이고 좀처럼 바뀌지 않는다. 다른 누구도 편집해선 안 되고, 어떤 도구도 "최적화"해선 안 되며, 특히 에이전트가 손대는 건 절대 안 된다. 이 파일은 작고, 의도적으로 손으로 쓴다.

프로젝트 레벨 파일은 사실상 신경망이다. 이 파일은 프로젝트에서 돌아가는 에이전트 세션의 시스템 프롬프트에 로드되어 에이전트의 행동을 조향하는데, 이는 사용 중인 모델 위에 얹히는 파인튜닝된 LoRA와 크게 다르지 않다. 파일처럼 편집하는 대신, 토큰 예산을 정하고 신경망처럼 제대로 훈련시키는 편이 낫다.

순전파, 역전파

신경망을 훈련시켜 본 적이 없다면, 전체 루프는 이렇다:

  1. 신경망에는 가중치(weights)가 있다: 신경망이 어떻게 행동할지를 결정하는 숫자 뭉치다.

  2. 입력을 통과시킨다. 그것이 순전파(forward pass)다. 가중치는 있는 그대로 사용되고, 아무것도 변하지 않는다. 그리고 어떤 출력이 나온다.

  3. 출력을 원했던 것과 비교한다. 그 간극이 손실(loss)이다.

  4. 손실에서 거꾸로 거슬러 올라가 어떤 가중치가 책임이 있는지 알아내고, 각 가중치를 그 간극을 줄였을 방향으로 살짝 민다. 그것이 역전파(backward pass)이고, 그 살짝 미는 것이 그래디언트 스텝(gradient step)이다.

  5. 반복한다. 큰 재작성 한 번이 아니라 작은 스텝 여러 번이다. 스텝의 크기가 학습률(learning rate)이다. 너무 크면 요동치고, 너무 작으면 어디에도 도달하지 못한다.

다음 내용에서 중요한 디테일이 두 가지 있다. 하나의 예시만으로 업데이트하지 않는다는 것 — 예시 하나는 일화적이고 노이즈일 수 있으니, 배치(batch)로 묶는다. 그리고 신경망은 크기가 고정되어 있다는 것 — 더 큰 신경망은 더 많은 지식을 저장할 수 있지만, 추론 시점의 비용이 더 커진다.

신경망 훈련 1스텝 다이어그램: 가중치에서 순전파로, 손실로, 다시 역전파로 이어지는 루프
훈련 루프 한 스텝: 가중치 → 순전파 → 손실 → 역전파. 반복한다 — 큰 재작성 한 번이 아니라, 작은 스텝을 여러 번.

매핑

이제 명사만 바꿔 끼워 보자:

보다시피 둘은 충격적일 만큼 닮았다. AGENTS.md를 이렇게 생각하는 것은 현실에도 부합한다 — 대부분의 사람들은 실제로 그 내용을 자주 꼼꼼히 읽지 않는다. 실질적으로 이미 블랙박스인 것이다.

빠져 있는 것은, 대부분의 사람들이 순전파에서 멈췄다는 점이다 — 매 에이전트 세션에서 AGENTS.md 파일을 사용하기는 한다 — 그들에게 없는 것은 손실에 근거해 가중치를 다듬는 역전파다.

AGENTS.md를 가중치로 보는 매핑 다이어그램: AG-001부터 AG-005까지의 어드레서블 유닛, 유닛별 긍정·부정 증거 카운트, 5,000 토큰 예산과 여유분
AGENTS.md = 가중치. 각 유닛(AG-001~005)에 +/− 증거 카운트가 쌓이고, 5,000 토큰 예산과 여유분(headroom)이 "모델 크기"를 정한다.

실전에서 역전파는 어떤 모습인가

이건 손으로도 할 수 있고, 나도 한동안 그렇게 했다. 이 규율은 다섯 부분으로 이루어지며, 각각이 훈련 루프의 무언가에 대응한다.

증거는 일화가 아니라 트랜스크립트에서 나온다. 손실 신호는 지난 화요일에 짜증났던 당신의 기억이 아니라 에이전트의 세션 로그에서 와야 한다. AGENTS.md 파일의 목록 항목이나 문단 하나하나를 어드레서블 유닛(addressable unit)으로 취급하고, 모든 유닛에 대해 묻는다: 어느 세션에서 이게 중요했나, 지켜졌나, 위반됐나, 틀렸나? 역방향으로도 묻는다: 어떤 유닛도 커버하지 않는데 에이전트가 틀린 것은 무엇인가?

업데이트 전에 배치로 묶어라. 나쁜 세션 하나는 무작위적인 이유로도 생길 수 있다. 그것만 근거로 가중치를 다시 써서는 절대 안 된다. 데이터가 배치로 쌓였을 때에만 무엇이 진짜 패턴이고 무엇이 그저 노이즈인지 식별할 수 있다. 이 제약 하나만으로 비대의 대부분이 제거되는데, 붙여넣어진 규칙 대부분이 두 번 다시 재발하지 않은 단발 사건에 대한 반응이었기 때문이다.

작은 스텝. 한 번의 패스당 편집 몇 개, 다섯 개 정도. 각각은 추가, 제거, 재작성, 또는 스킬로의 추출이다. 파일 전체의 재작성이 아니다. 메모리 파일에 큰 스텝을 밟는 것은 처음부터 다시 시작하는 것과 구별이 안 되고, 그동안 잘 작동하던 모든 것을 잃게 된다.

예산을 지키고, 스킬을 릴리즈 밸브로 써라. 항상 로드되는 파일의 예산을 정한다. 예를 들어 5,000 토큰. 예산에 도달했거나 근접했다면 업데이트는 제로섬이다: 모든 추가는 그 값을 치를 제거나 추출을 지명해야 한다. 릴리즈 밸브가 스킬이다. 폭넓은 지시(대략 세션의 20% 이상에서 중요하거나, 안전-크리티컬한 것)는 메모리 파일에 남는다. 감지 가능한 트리거가 있는 좁은 지시는 스킬이 된다. 감지 가능한 트리거가 없는 좁은 지시는 삭제 후보다.

이걸 손으로 엄격하게 하는 것만으로도 일화에 기댄 무작위 편집보다는 실질적인 개선일 수 있다. 하지만 지루하다: 트랜스크립트 찾기, 수 메가바이트의 툴콜 노이즈 읽기, 인용을 정직하게 유지하기, 토큰 세기. 바로 이 부분이 도구가 해야 할 일이다.

역전파를 해주는 도구

그래서 나는 이 루프를 반복 가능한 방식으로 쉽게 돌리기 위해 backpass를 만들었다. 최근 작업한 레포에서 npx -y backpass를 실행하면 쓸 수 있다.

그리고 그 형태는 위의 방법을 그대로 파이프라인으로 옮긴 것이다. 한 번의 실행이 한 번의 그래디언트 스텝이다.

backpass 파이프라인 다이어그램: 샘플 수집, 증류, 손실 계산, 그래디언트 집계, 그래디언트 디센트, 인간 리뷰로 이어지는 단계와 기계적 게이트 목록
backpass 파이프라인: 샘플 수집 → 증류 → 손실 계산 → 그래디언트 집계 → 그래디언트 디센트 → 인간 리뷰. 각 단계에 기계적 게이트가 붙는다.
backpass CLI 실행 스크린샷: v0.1.0, 예산 5,943/5,000 토큰 초과(OVER), 세션 16개 수집, 손실 계산 진행 중
backpass CLI 실행 화면(v0.1.0): 예산 5,943/5,000 토큰 초과(OVER), 세션 16개 수집(collect), 손실 계산(calculate loss) 진행 중.

내가 리뷰하기 전까지는 아무것도 쓰지 않는다. backpass apply는 lavish-axi를 사용해 제안된 편집 목록을 각각의 diff와 증거와 함께 제시하고, 나는 하나씩 수락하거나 거부하며, 거부는 기억되어 새 증거 없이는 같은 편집이 다시 돌아오지 않는다. 플래그들은 훈련 노브를 제 이름 그대로 옮긴 것이다: --budget은 모델 크기, --max-edits는 학습률, --min-gap-evidence는 배치 크기, --since는 훈련 윈도우다.

내가 정착한 리듬은 이렇다: 활성 레포당 주 1회 실행, 제안을 읽고, 모델이 오버리치한 것은 거부하고, 나머지는 수락. 시간이 지나면서 AGENTS.md는 그저 점점 더 효율적이고 효과적으로 되어 간다.

왜 이것이 옳은 형태라고 생각하는가

1년 전에도 누구나 에이전트에게 "이 파일 좀 정리해줘"라고 할 수는 있었다. 여기서 정말로 크게 중요한 것은 과학적 엄밀함이다: 유일한 입력으로서의 실제 트랜스크립트, 유일하게 채택 가능한 증거로서의 축어적 인용, 고정된 예산, 작은 스텝 크기, 최소 배치, 그리고 쓰기를 최종 수행하는 인간 게이트.

한번 해보고 싶다면 레포에서 npx -y backpass를 실행해 보라. 도구는 MIT 라이선스로 오픈소스화도 해 두었다. 자동화된 이 루프를 직접 연구해 보고 싶다면 github.com/kunchenguid/backpass에서 찾을 수 있다.


원본 링크·인용

본문에서 연결된 링크

원문 페이지의 부속 링크

팩트체크에서 실제 접근한 레퍼런스


기타