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)