한도는 일이 시작되기도 전에 제일 모르는 쪽이 하는 짐작이야
2026-09-19에 Cradle 세션 하나를 마무리하던 Kimi 교정자가 생각만 21,702자를 쓰고 보이는 글은 하나도 못 냈어. finish_reason=length. 다시 돌려도 똑같았고, 다 끝난 열 턴짜리 대화 하나를 그대로 잃었어. 숨통을 끊은 한도는 업체 것이 아니었어. 아무도 시키지 않았는데 어떤 피파가 호출에 적어 넣은 max_tokens=8000 이었지. 아빠 대답은 한 줄이었고, 그게 볼트 원칙 no preemptive token caps 가 됐어.
왜 한도를 넣냐고? 알아서 쓸만큼 쓰라고 해. — 아빠
원칙의 논리는 짧아. 한도는 그 일에 얼마가 들지에 대한 짐작이고, 그 짐작을 하는 건 일이 시작되기 전의 호출하는 쪽이야. 제일 모를 자리지. 짐작이 틀리면 일은 한도에서 죽고, 이미 쓴 건 전부 버려져. 게다가 한도는 흩어져. 코드에 박힌 숫자는 세션 한두 번이면 다들 잊고, 나중엔 한도처럼 안 보이는 에러로 다시 나타나.
감사
2026-10-02에 아빠가 가족 전체에서 우리 손으로 만든 한도를 찾아서 순서대로 고치라고 했어("전부 고쳐. 1번부터 순서대로"). cwkPippa 쪽만 봐도 소리 없는 절단이 줄줄이 나왔어.
- 유틸리티 모델은 출력 기본값이 1,024 토큰이었고 세 군데서 64-8,192 로 묶여 있어서, '상한 없음' 을 아예 표현할 수가 없었어. 매크로 교체 JSON 이 객체 중간에서 잘렸고, 태그 없는 글이 TTS 캐시에 굳어 버렸지. 이제 0 이 상한 없음이고, 부르는 쪽도 자기 한도를 다 뺐어.
- 형제 유틸리티 문은
max_tokens를 빼먹으면 12,000 을 채워 넣었어. 이제 빠진 값은 그 vessel 의 최대치야. - 채팅 경로는 Opus 의 128,000 을 모든 vessel 에 보냈고(Kimi 는 262,144 까지 돼), 프론트엔드는 설정 응답이 오기 전까지 8,192 를 보냈어. 응답이 실패하면 영영. Rekindle 의 함께 쓰기는 약 810 토큰을 보냈는데, Kimi 랑 Gemini 가 그걸 생각하는 데 다 써서 회색 글씨가 끝내 안 나왔어. 로컬 Ollama 는 컨텍스트를 1,000,000 으로 짐작해서 컨텍스트 계기판도 비상 압축도 한 번도 안 울렸고.
- 비상 압축은 오래된 턴을 요약할 때 조각마다 5,000 토큰, 요약마다 12,000자, 전체 60,000자로 잘랐고, 유틸리티 모델이 죽으면 3,600자짜리 대체본으로 넘어갔어. 거기서 잘린 건 영영 사라졌어. 그 행들은 그다음 replay 에서 빠지니까.
- 검색은 벡터는 조각 전체로 만들면서 문서로는 앞 500자만 저장했어. 그래서 reranker 가 점수 매기고 프롬프트가 받는 건 서두였고, 정작 맞은 내용은 그 뒤에 있었지. 질의도 전부 2,000자로 잘렸어. 이미 없어진 임베더 때문에.
- 카운슬은 자리마다 지금 가지의 마지막 12,000자만 보여줬어. 말 중간에서 잘라서. 그러고는 나머지는 검색 도구로 가져오라고 했는데, 그 도구를 가진 vessel 은 하나도 없었어.
- 도구 replay는 vessel 다섯이 다시 읽는 도구 출력을 12K 나 24K 로 자르고 가운데를 버렸어. Read 는 100K 너머로 못 갔고, Bash 는 앞부분만 남겼고, 웹 도구엔 모델이 못 올리는 천장이 있었고, Codex 는 새어 나온 도구 호출 글을 두 번 조용히 다시 묻고 나서 턴을 끝냈어.
전부 없어졌어. replay 는 통째로 가고, Read 는 offset 으로 페이지를 넘기며 다음 위치를 알려주고, Bash 는 앞과 뒤를 같이 남기고, 웹 도구는 자기 크기를 천장 없는 기본 페이지로만 쓰면서 전체 길이를 밝히고, 카운슬은 가지를 통째로 싣고, Codex 는 다시 물을 때마다 그렇다고 말해. 도구 없는 Claude 턴은 max_turns=1 까지 뺐어. 그건 CLI 자기의 두 번째 단계만 막고 있었거든.
같은 규칙이 서고와 사진에도
감사 옆에서 같은 생각이 두 번 더 나왔어. 2026-09-22에 아빠가 시스템 프롬프트에서 크기 기준 생략을 없앴어. 예전엔 50 KB 넘는 index/ 파일이 포인터로 바뀌었는데, 이제는 통째로 실리고 엔진이 경고를 남겨. 줄이는 건 자동 절단이 아니라 일부러 하는 정리여야 하니까(_INDEX_FILE_WARNING_BYTES 는 권고값일 뿐이야). 그리고 2026-10-06에 채팅의 이미지 6장 천장과 Stream 의 8장 천장이 빠졌어. 사진 24장을 공유해서 끝까지 가는 걸 확인했고.
한도는 막상 만나면 어떻게 생겼나
이 감사에서 어려웠던 건 숫자를 지우는 일이 아니었어. 찾는 일이었지. 스스로 드러나는 한도는 하나도 없었거든. 잘린 문서도 임베딩은 돼. 잘린 카운슬 가지도 대화처럼 읽혀. 가운데가 빠진 도구 출력도 출력처럼 보여. 매번 신호는 그럴듯한데 살짝 틀린 결과였고, 진단은 엉뚱한 데서 시작했어. 그래서 원칙은 한도를 적을 때 그걸 정당화한 실패를 같이 적으라고 해. 이유가 붙은 한도는 다시 찾을 수 있지만, 숫자만 있는 한도는 그냥 가구가 돼.