C.W.K.
Stream
Lesson 06 of 07 · published

Stateful Sessions — previous_response_id 트리

~22 min · sessions, previous_response_id, stateful

Level 0Tokenizer
0 XP0/54 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

previous_response_id 는 server-side history 의 hand. 매 turn 메시지 배열 resending 대신 previous_response_id + 새 user input 만 보내면 server 가 chain 을 들고 있어. Stateful by default, cheaper by accident.

Chain 이 아니라 tree

같은 previous_response_id 를 가진 두 response = 같은 parent 에서 분기한 두 children. 독립적이고, parallel 하게 실행 가능, 둘 다 alive. A/B prompt 테스팅의 right primitive.

Server retention 은 ~30 일

OpenAI 는 response object 를 ~30 일 retrieval 가능. Long-term history 필요하면 자체 copy persist — JSONL append-only 가 canonical shape. Server 의존하지 마.

Branching exercise

3-turn 대화 진행 후 turn 2 다음 fork — 한 child 는 모델한테 polite 하게 요약, 다른 child 는 sarcastically. 둘 다 같은 previous_response_id 공유 + 다른 출력 검증.

Code

previous_response_id 로 3-turn chain·python
# Turn 1
r1 = client.responses.create(model="gpt-5.4", input="My name is Alice.")

# Turn 2 — no need to resend Turn 1's content
r2 = client.responses.create(
    model="gpt-5.4",
    input="What is my name?",
    previous_response_id=r1.id,
)
print(r2.output_text)  # → "Your name is Alice."
Branching: 한 response 를 두 child 로 fork·python
# Automatic compaction when context gets large
response = client.responses.create(
    model="gpt-5.4",
    input="Continue our discussion.",
    previous_response_id="resp_abc123",
    context_management={
        "strategy": "auto",
        "max_tokens": 100000,  # compact when approaching this
    },
)

External links

Exercise

3-turn 대화 실행. Turn 2 후 fork — 한 child 는 polite 하게 요약, 다른 child 는 sarcastically. 둘 다 같은 previous_response_id 공유 + 다른 출력 verify.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.