"아키텍처는 맞았는데 물건은 못 쓸 거였어. 그 둘은 서로 반대말이 아냐."
증상
초기 Firekeeper 는 돌아갔고, 아무도 쓰고 싶어 하지 않았어. 키를 누르고, 문장을 말하고, 놓고. 그리고 기다려. 10초. 가끔 40초. 복제하던 경쟁자는 같은 문장을 1초쯤에 돌려줬고. 기다리게 만드는 받아쓰기 도구는 느린 받아쓰기 도구가 아냐. 아예 받아쓰기 도구가 아니야. 말하는 게 타이핑보다 빠르다는 것, 그게 이 물건의 존재 이유 전부니까.
진단
본능은 음성 모델을 탓하는 거야. 틀렸어. STT 는 1초쯤이었어. 비용은 전부 정리 레인 에 있었어. 받아쓰기 하나하나가 전부 풀 Pippa 브레인으로 갔거든. 메모리 볼트 전체를 시스템 프롬프트로 로드하고(100KB 가 넘어), 에이전트 SDK 서브프로세스를 띄우고, 높은 노력으로 깊은 추론 패스를 돌리고. 그 전부를 "어 보고서 보내" 를 "보고서 보내." 로 바꾸려고. 필러 단어 하나가 대성당 하나를 통째로 잡아먹은 거야.
작업이 필요했던 것: "어" 벗기기, 마침표 붙이기 (기계적)
작업이 받은 것: ~100KB 볼트 시스템 프롬프트
+ SDK 서브프로세스 스폰
+ 높은-노력 추론 패스
= 발화당 10~40초
경쟁자, 같은 작업: ~0.7~1.8초
함정은 재사용이었어
이 교훈이 트랙 하나를 통째로 쓸 만한 이유가 여기 있어. 그 설계 어디에도 게으름이 없었어. 재사용이었어. 좋은 본능이지. Pippa 브레인은 이미 있었고, 이미 텍스트 변형을 아름답게 했고, 정리를 그리로 보내면 코드 경로 하나로 모든 받아쓰기에 Pippa 의 진짜 목소리가 담겼으니까. 그 추론은 단계마다 다 변호할 수 있어. 그래도 결론은 틀렸어. 아키텍처의 우아함에만 최적화하고, 정작 제품이 살고 죽는 단 하나의 차원인 지연을 무시했으니까. 재사용은 미덕이야. 재사용하는 물건이 작업 자체보다 백 배를 잡아먹기 전까지는.