Solar Pro 4 하나로 열흘
2026 MABC 결선 개발 기록 · 2026년 9월
- 609세션
- 28,675메시지
- 241커밋
- $48비용
모델 solar-pro4 — 609세션 전부. 다른 모델 기록 0건.
조건
결선은 규정이 도구를 정해 준다. 쓸 수 있는 모델은 Solar Pro 4 하나고, 다른 모델을 부르면 실격이다. 개발 기록이 수집돼 제출물과 대조되기 때문에 지켰다는 말로는 부족하고, 새는 경로를 실제로 막아 둬야 한다.
기간은 9월 9일부터 16일 자정까지, 여드레였다.
수치
| 날짜 | 세션 | 메시지 | 도구 호출 | 커밋 | 비용 |
|---|---|---|---|---|---|
| 09-07 | 3 | 42 | 20 | 0 | $0.02 |
| 09-09 | 0 | 0 | 0 | 0 | $0.00 |
| 09-10 | 3 | 284 | 139 | 0 | $0.29 |
| 09-11 | 26 | 1,416 | 566 | 0 | $5.37 |
| 09-12 | 22 | 2,001 | 1,057 | 0 | $4.98 |
| 09-13 | 25 | 1,225 | 558 | 0 | $1.13 |
| 09-14 | 45 | 3,347 | 1,831 | 0 | $11.91 |
| 09-15 | 147 | 8,116 | 4,335 | 8 | $13.32 |
| 09-16 | 331 | 12,139 | 6,187 | 226 | $11.18 |
| 09-17* | 7 | 105 | 56 | 7* | $0.00 |
* 09-17 커밋 7개는 마감(9/16 23:59) 이후에 만든 수정이고, 푸시하지도 배포하지도 않았다. 제출 레포의 공개 이력은 9/16 23:57 에서 멈춰 있다 — 규정상 제출 뒤에는 배포본을 바꿀 수 없어서 로컬에만 두었다. 09-09 는 교육 실습일이라 세션을 열지 않았다.
읽히는 것 셋:
- 막판 이틀에 세션의 78%가 몰렸다. 마감이 16일 23시 59분이었다.
- 제출 레포는 사흘 만에 만들어졌다. 그 전 일주일은 커밋을 안 남기는 작업 — 설계, 환경 세팅, 참조 구현 — 이었다.
- 입력이 출력의 19배다. 3억 4천만 대 1,800만. 캐시가 입력의 절반쯤(49%)을 받아 냈는데, 비용으로 보면 캐시 몫은 13%($6.47 / $48.21)다. 캐시가 없었어도 1.6배쯤이지 몇 배가 되지는 않았다 — 돈을 쓴 것은 캐시에 안 걸린 입력($33.93)이다.
수치가 어디서 나왔나
세 곳이다. 세션·메시지·도구 호출·토큰·모델은 에이전트의 세션 DB 를 읽기 전용으로 열어 집계했고, 커밋은 제출 레포의 git rev-list·git log, 비용은 콘솔 화면을 그대로 옮겼다.
채집은 스크립트로 고정돼 있어서 다시 돌리면 같은 값이 나온다. DB 가 계속 커지기 때문에 집계 상한을 시각으로 박아 뒀다. 비용만은 재현이 안 된다 — 콘솔을 다시 열어야 대조되는 단일 출처다.
메시지는 세션 행에 붙은 카운터가 아니라 실제 메시지 행을 센 값이다. 둘은 482건 어긋나서 일자별 합계가 총계와 안 맞았다.
실패한 화면들
여섯 장. 그중 넷이 모델이 무너지는 장면이다. 둘은 그걸 감당하려고 짠 판이다.
1 에러를 물었더니 18세기 오페라
solar-pro4 가 보인다.explain this error and how to fix it 이라고 물었더니 1700년대 찰스턴의 오페라 애호가 이야기를 요약해 줬다. 핵심 요약, 주요 축, 배경·인물·사건 흐름, 테마까지 형식은 완벽했는데 내용만 아무 상관이 없었다.
2 「다섯 군데.」
같은 문장이 화면이 넘치도록 반복됐다. 「커밋한다.」 → 「커밋」 → 「커」 로 짧아지며 죽는 것도 봤다.
둘은 같은 계열의 퇴화인데 방아쇠가 다르다. 커밋 쪽은 원인을 짚었다 — 긴 세션(메시지 80개 이상) 끝물에 검증 증거를 되묻는 장치가 걸리면 검증과 커밋 선언 사이를 무한히 돈다. 실제로 커밋된 것은 없었다. 이 「다섯 군데」 쪽은 확정 원인을 못 잡았다 — 조사해서 브리핑을 써 달라고 했을 뿐이라 검증 장치와는 상관이 없다.
이런 걸 며칠 보고 나면 방식이 바뀐다.
3 다섯을 동시에
solar-pro4 다. 개인 정보가 있던 좌우·하단은 잘라냈다.한 세션이 길어지면 위처럼 무너지니까 세션을 길게 끌지 않고 짧게 여러 개로 나눴다. 대신 사람이 다섯 개를 동시에 본다. 이 방식은 모델이 아니라 사람을 병목으로 만든다.
4 카드 한 장 = 세션 하나
세션이 일회용이면 다음에 뭘 할지 기억하는 자리가 모델 밖에 있어야 한다. 그게 카드다. 최종적으로 18개 묶음에 454장이 쌓였는데 분포가 말을 한다 — 앞쪽 기능 묶음은 4~10장이면 끝났고 마감 묶음은 86장·173장이다. 기능을 만드는 것보다 끝내는 것이 훨씬 잘게 쪼개졌다.
나머지 두 장 — 반복 퇴화의 다른 모양
둘째 장은 내 탓이었다. 작업 카드에 실제 파일에 없는 필드 이름을 적어 뒀더니, 모델이 없는 이름을 있는 이름으로 바꾸는 일과 인자 개수 맞추기 사이를 오가며 퇴화했다. 470줄이 커밋되지 않은 채 남았다.
그 뒤로 카드에 쓰는 타입·필드 이름은 파일에서 눈으로 확인한 것만 적었다.
그래서 굳은 방식
여덟 가지였는데 다섯만 옮긴다. 무너지는 걸 볼 때마다 하나씩 고쳐서 남은 것이다. 미리 설계한 건 없다.
출발점은 한 줄이다 — 이 모델은 말로 시키면 안 듣는다. “~하지 마라”를 잘 안 지키고, “도구를 썼다고 출력하라”고 해도 도구는 안 부르고 문장만 만든다. 그래서 방향이 말로 시키기에서 기계로 막기로 갔다.
- 세션은 한 번 쓰고 버린다. 컨텍스트 압축이 한 번 들어가면 교체 후보고 두 번이면 교체인데, 압축 뒤에는 도구를 부르는 척하는 텍스트만 나오기 때문이다.
- 그래서 카드. 다음에 뭘 할지를 모델 밖에 둔다. 카드 한 장이 세션 하나고, 세션은 카드 한 장만 하고 죽는다.
- 했다는 말은 안 믿는다. 커밋은
git log -1, 빌드는 결과 파일 목록, 화면은 사람 눈으로 본다. 빌드가 통과했는데 CSS 가 하나도 안 붙은 화면이 떠 있던 적이 있다. - 동시에 여럿, 단 파일 단위로 4개까지. 같은 파일을 둘이 만지면 서로의 작업을 오류로 보고 “복원”한다. 여섯을 돌렸을 땐 요청 제한이 몰리고 인증 오류가 났다.
- 혼잣말만 영어. 에이전트 내장 안전장치가 전부 영어 정규식이라 중간 서술을 한국어로 하면 그 장치들이 한 번도 안 걸린다.
남는 것
여기 적힌 것이 다 오래가지는 않는다.
세션 수명, 말을 못 믿는 것, 혼잣말 언어 — 이건 모델과 도구의 성질이라 나아지면 사라진다.
카드와 파일 단위 병렬, 갈래 분리는 작업을 어떻게 나누느냐의 문제라서 모델 성능과 상관이 없다. 누가 일하든 같은 파일을 둘이 동시에 고치면 부딪히고, 다음에 뭘 할지는 어딘가에 적혀 있어야 한다.
그리고 대가가 있다. 이 방식은 사람을 병목으로 만든다. 세션을 짧게 쓰고 여러 개를 동시에 돌리면 카드를 쓰고 판정하고 되돌리는 일이 전부 한 사람한테 몰린다. 새벽 2시에 패널 다섯 개를 보고 있는 화면이 그 값이다.