매 turn이 옛 history 박힌 새 프롬프트
모델 관점에서 매 turn은 전체 message history에 대한 fresh forward pass야. "이전에서 계속"은 없어 — 모델이 매번 다 다시 read해. Contract 변화: system prompt가 계속 사실이어야, persona가 계속 유지돼야, rule이 계속 적용돼야 — push할 수 있는 user input N turn에 걸쳐.
살아남는 contract
- System prompt가 constitutive frame; 매 turn re-read.
- 각 turn의 user input은 fresh이고 untrusted.
- 이전 assistant output이 이제 모델 context의 일부 — user가 injection으로 쓸 수 있는 retrieved content 포함 가능.
- 이전 turn의 stop sequence와 refusal은 system prompt가 다시 assert 안 하면 carry forward 안 해.
버그 패턴
turn 1에서 work하던 프롬프트가 turn 8쯤 misbehave 시작. 거의 항상: system prompt가 single turn 가정으로 작성, user-side context 누적이 모델을 거기서 drift.