Note
상태 관리 개요
4단계 계층 지도 + 워크로드별 선택 가이드
⏱ 25분
87 / 189
상태 관리 개요
4단계 계층 지도 + 워크로드별 선택 가이드
에이전트의 기억을 설계한다
세션 영속화부터 컨텍스트 자동 관리까지 — 상태의 4계층
🧠
상태의 기초
턴과 세션 · messages[] · 왜 상태 관리인가
PART 1 · 상태의 기초
에이전트 대화의 구조 — 턴 · 세션 · 기억
메시지가 모여 턴, 턴이 모여 세션 — 그리고 그 전부를 기억하는 곳
PART 1 · 상태의 기초
기억의 실체 — messages[]
모델은 아무것도 기억하지 않음 — 매 턴, 지금까지의 대화 전체를 재전송
PART 1 · 상태의 기초
상태가 없으면 생기는 세 가지 문제
인메모리 messages[]를 그대로 프로덕션에 두면 생기는 문제
맥락 유실
재시작·콜드 스타트·배포 = 기억 상실
- 서버 재시작 후 "아까 그거"를 모름
- 사용자가 처음부터 다시 설명해야 함
토큰 폭발
매 호출에 전체 히스토리 전송
- 50턴이면 매번 수만 토큰 과금
- 비용과 지연이 대화 길이에 비례 증가
윈도우 초과
컨텍스트 한도를 넘으면 호출 실패
- 긴 대화·큰 도구 결과가 한도를 넘김
- 정리 전략 없이는 대화가 중단
takeaway
이 세 문제의 해법이 곧 상태 관리입니다.
Strands는 이를 네 계층으로 풀어냅니다 — 저장은 Session, 길이는 Conversation, 기억은 Memory, 조립은 Context
PART 1 · 상태의 기초
네 가지 이름의 실체
저장·길이·기억·조립 — 각 이름이 Strands에서 실제로 가리키는 것
Session
저장 — 대화 전체를 영속화·복원
Conversation
길이 — 쌓이는 대화 이력과 그 관리
Memory
기억 — 세션을 넘어 남는 사실과 선호
Context
조립 — 이번 호출에 실제로 들어가는 입력
takeaway
Strands에 "상태 관리"라는 단일 API는 없습니다 — 위 네 계층의 조합이며, 별도로 agent.state(모델에 전송되지 않는 key-value 저장소)가 세션과 함께 저장됩니다.
🗺️
상태 관리 계층
Session → Conversation → Memory → Context
PART 2 · 상태 관리 계층
4계층 지도 — 쌓아가는 선택
워크로드가 복잡해질수록 아래부터 하나씩 쌓이는 계층
Session— 저장·복원Conversation— 길이 정리Memory— 장기 기억Context— 모델 입력 조립
Conversation
SlidingWindow
Context
context_manager='auto'
왼쪽에서 오른쪽으로 — 대화가 길고 깊어질수록 계층이 하나씩 쌓입니다
PART 2 · 상태 관리 계층
모델 입력이 되기까지 — Context 조립 라인
네 계층이 각자의 기여물을 꽂아 넣는, 매 호출 새로 조립되는 Context
상태 관리가 에이전트의 지능을 결정합니다.
Session · Conversation · Memory · Context — 4계층으로 기억을 설계