Agent는 턴이 길어질수록 맥락 소실이 발생합니다. session_id로 대화를 이어고, context로 프로젝트 배경을 주입하며, conversation log·metadata로 학습과 감사를 지원합니다.
개념 정의
| 필드 | 역할 |
|---|---|
| session_id | 동일 사용자·주제의 대화 스레드 식별자 |
| context | 시스템/RAG 외 고정 배경(예산, 스택, Out 목록) |
| chat_history | LangChain MessagesPlaceholder에 적재되는 이전 턴 |
| metadata | recommendedProducts, source, shopUrl 등 구조화 부가정보 |
| continue_session | 기존 session_id로 재개하는 클라이언트 패턴 |
ShopAgentConversation은 threadId, sessionId, userMessage, response, metadata를 저장합니다.
메커니즘: 컨텍스트 주입 순서
- system_prompt (Agent 정체성)
- context 문자열 (프로젝트·쇼핑몰 고정 facts)
- chat_history (최근 N턴, 토큰 budget 내)
- input (현재 user message)
- agent_scratchpad (tool 중간 결과)
캐시 키는 normalized_query|agent_id|context로 구성되어 동일 context면 RAG·응답 캐시 hit률이 올라갑니다.
이론적 배경
Working memory vs Long-term memory: session은 working memory, context+metadata는 세션 간 semi-persistent LTM입니다. Context window 한계로 요약 압축(summarize-and-slide) 이 필요하며, 15분 기획·5턴 쇼핑 플로우는 턴 budget을 설계합니다.
30초 요약
session_id로 대화를 이어고,context로 매 턴 반복하지 않을 배경을 고정합니다.- conversation log·metadata로 추천 상품·클릭·학습 신호를 남깁니다.
- 토큰 한도 전 요약 슬라이딩으로 맥락을 유지합니다.
세션은 수첩, context는 스티커 메모입니다. 수첩에 대화가 쌓이고, 스티커에는 "예산 1500만·Out: 다국어"처럼 바뀌지 않는 fact가 붙어 있습니다.
FAQ
Q. session_id는 누가 생성하나요?
A. 클라이언트 UUID 또는 서버 첫 응답의 session_id 재사용.
Q. context에 뭘 넣나요?
A. PRD 요약, shopUrl, Must/Out, 사용자 등급. 매 턴 바뀌는 말은 chat_history로.
Q. 멀티 Agent에서 session 공유?
A. 동일 session_id 유지 시 Coordinator가 Agent만 바꿔도 history 참조 가능.
Q. metadata 활용?
A. recommendedProducts, clickedLinks로 전환 funnel·재학습 라벨.
용어 사전
| 용어 | 설명 |
|---|---|
| session_id | 대화 세션 UUID |
| context | 고정 배경 문자열 파라미터 |
| continue_session | 기존 세션 재개 UX 패턴 |
| conversation log | userMessage/response 저장 레코드 |
| chat_history | LLM에 전달되는 이전 메시지 배열 |
팁: context는 500토큰 이내 bullet이 ideal. 장문 PRD는 링크+요약 10줄로 압축하세요.
실무: context 붙여넣기 템플릿
[PROJECT_CONTEXT]
slug: startup-mvp-2026Q1
budget: 1500만원
deadline: 8주
platform: iOS + Web
must: 회원가입, 상품목록, 결제
out: 관리자, 다국어, 푸시
kpi: 첫 결제 100건
stack: Next.js, NestJS
handoff_target: /content/ai-명세서-생성기-소개
API 예:
{
"message": "Must 3개만 다시 확인해줘",
"session_id": "sess_20260307_001",
"context": "[PROJECT_CONTEXT] ...",
"auto_select": true
}
세션 운영 체크리스트
- 24h idle 후 session 새로 시작 vs 요약 재개 정책
- PII context 마스킹 규칙
- history 최대 턴 수(예: 20) + summarize
- metadata JSON schema 버전 관리
- session별 tool_calls 감사 로그
Before / After
| Before | After |
|---|---|
| 매 턴 PRD 전체 붙여넣기 | context 10줄 + session |
| Agent가 Out 잊음 | context Out 고정 |
| 추천 클릭 추적 불가 | metadata clickedLinks |
KPI
- 맥락 관련 재질문 비율 ≤ 15%
- session당 평균 턴(목표 달성) 3~7
- context 토큰 median ≤ 400