Seven Stages in One Day
Day one
반디는 미니팹 시뮬레이터 안에 상주하는 AI 공정 튜터다. 이날 시작됐다. 그 전 커밋에는 반디가 한 번도 나오지 않는다. 하루에 7단계를 몰아쳤다. 1. 게이팅 결선 — 첫 화면 동행 카드 2. 동행 상태 + 캐릭터 존 + 랩 구석 아바타 3. 반디의 눈 — 화면 상태 직렬화 + 골든 비교 4. 트리거 카탈로그 + 잡담 클래스 + 잔소리 방지 룰 5. 말풍선 UI + 개입 로그 6. 가리키며 묻기 + 용어사전 38항목 7. 액션 버스(손 · 화이트리스트) + 반디 커서 골든은 검증해서 정답으로 박아둔 결과값이다. 반디의 눈은 지금 화면을 그것과 대본다.
The design doc came first
코드보다 설계 문서가 먼저 커밋돼 있다. 거기 적힌 네 가지가 이후 두 달을 결정했다. · 엔진 state 를 직렬화한 것이 반디의 눈이다 · 룰이 우선이고 LLM 은 해석을 맡는다 · 학생이 묻기 전에 반디가 먼저 말을 건다 · 채팅창이 없다 마지막 항목이 제일 이상해 보이는데, 이게 제일 중요했다. 채팅창을 만들면 학생이 시뮬레이터를 보지 않고 채팅창을 본다. 반디는 화면 안에 있어야지, 화면 옆에 있으면 안 된다.
Two things I put in early
잔소리 방지 룰과 개입 로그를 4·5단계에 넣은 게 나중에 다 갚아졌다. 개입 로그는 학생이 무시한 걸 기억한다. 같은 걸 두 번 무시했으면 세 번째는 말하지 않는다.
무엇을 말할지보다 무엇을 다시 말하지 않을지를 먼저 정했다.
The hands
액션 버스를 화이트리스트로 만들었다. 반디가 할 수 있는 일이 코드 어딘가가 아니라 한 곳에 적혀 있다. 7단계는 실제로는 준비만 했다. 프롬프트 캐시를 3층으로 쌓는 빌더와 LLM 클라이언트 틀을 올리고, 응답이 없으면 룰로 떨어지는 폴백을 달았다. 두뇌를 실제로 연결한 건 나흘 뒤다. 한 달 반 뒤 두뇌를 통째로 갈아끼울 때 이 구조가 값을 했다.
The same day, unrelated
반디만 한 날이 아니었다. 같은 날 배포 전 물리 검증 게이트를 CI 에 걸었다. 물리 테스트나 UI 테스트가 깨지면 배포가 막힌다. 새 물리나 장비를 추가할 때 밟을 표준 12단계도 이날 문서로 묶었다. 그때까지 규칙이 여기저기 흩어져 있었다. 튜터를 붙이기 전에 밑을 굳혀둔 셈인데, 순서가 그렇게 된 건 우연이 아니다. 반디는 시뮬레이터가 계산한 값을 그대로 읽어서 말한다. 밑에서 틀린 값이 나오면 반디는 그 틀린 값을 확신을 갖고 설명한다.
- 눈 · 트리거 · 손 결선
- LLM 중계 서버
- 자연스러움 5축
- 두뇌 교체 가능한 구조
- 수업에서 학생과 함께 사용