Session Context 도구
Session Context 도구 (Session Context Tool)
에이전트가 이전 세션을 발견하고 현재 세션의 맥락으로 가져오는 방법을 설명해요.
출처: 문서
본문
session_context 도구셋은 에이전트가 이전 세션을 발견하고 그중 하나를 현재 세션의 맥락으로 끌어오게 해 줘요. 대화를 HTML로 내보내고 @ 언급으로 다시 첨부하는 수동 우회법을 없애주죠.
도구 표면은 두 개의 읽기 전용 도구예요:
| 도구 | 설명 |
|---|---|
list_sessions |
이전 세션 나열(최신 것부터) — id, 제목, 생성 시각, 메시지 수 포함 |
read_session |
이전 세션의 대본을 id 또는 -1 같은 상대 참조로 반환 |
에이전트가 현재 실행 중인 세션은 list_sessions에 절대 나열되지 않고, read_session으로 읽을 수도 없어요(순환 참조는 오류를 반환해요).
구성
toolsets:
- type: session_context
구성 옵션은 없어요. 두 도구 모두 읽기 전용이고 런타임이 이미 지속성에 쓰는 것과 같은 세션 저장소에 대해 동작해요.
도구셋을 표준 방식으로 하위 집합으로 제한하세요:
# 전체 대본을 맥락으로 끌어오지는 않고 탐색만 하는 에이전트.
toolsets:
- type: session_context
tools:
- list_sessions
세션 선택
read_session은 두 형태를 모두 받아요:
- list_sessions가 반환한 구체적 id, 예: read_session("a1b2c3...").
- 상대 참조: -1은 가장 최근 세션, -2는 두 번째로 최근, 이하 동일. 상대 참조는 list_sessions가 쓰는 것과 같은 순서(최신 것부터)로 해석되며 서브 세션은 제외돼요.
대본 크기
긴 세션은 현재 컨텍스트 윈도우를 넘칠 수 있어서, read_session은 렌더링된 대본에 상한을 둬요. 대본이 예산보다 크면 가장 오래된 메시지가 버려지고(작업을 계속하는 데는 보통 가장 최근 것이 가장 유용) 얼마나 생략했는지 메모가 기록돼요:
[12 earlier message(s) omitted to fit the context budget; showing the most recent 8]
참고
- list_sessions는 기본 20개 세션이고 100개가 상한이에요. 더 적게 요청하려면 limit을 전달하세요.
- read_session은 세션을 찾을 수 없거나, 참조를 해석할 수 없거나, 현재 세션을 가리키면 오류를 반환해요.
- 두 도구 모두 읽기 전용이에요: 세션을 수정하거나, 분기하거나, 삭제하지 않아요.
예시
examples/session_context.yaml에서 완전한 작동 예시를 확인하세요.
더 알아보기 (Learn more)
- Memory 도구로 세션을 넘어 영구 저장하기
- Docker Agent 도구 개요에서 다른 도구 살펴보기