Skip to content

가지쳐진 세션 트리와 압축되는 대화 기록을 표현한 이미지

Pi는 대화를 세션으로 저장합니다. 활성 브랜치가 다음 모델 요청의 대화 기록이 되는 구조는 동작 원리 글에서 살펴봤습니다. 이 글에서는 실제 운영에 필요한 세션 관리 작업을 정리합니다.

세션 이어하기와 전환 ​

--no-session으로 시작하지 않는 한 Pi는 자동 저장합니다.

bash
pi --continue   # 현재 폴더의 가장 최근 세션 열기
pi --resume     # 세션 선택기 열기

대화형에서는 /resume이 같은 선택기를 열고 /new가 새 세션을 시작합니다. 각 세션은 만들어질 때의 작업 폴더를 기록하며 절대 바꾸지 않습니다. 도구, @path 참조, 프로젝트 설정, 컨텍스트 파일이 모두 그 폴더 기준으로 해석되기 때문입니다.

진입점작업 폴더
--continue현재 디렉터리
--resume, /resume, --session, /import세션의 작업 폴더 (현재와 다를 수 있음)
--fork 등 다른 폴더 세션을 포킹하는 경우새 세션으로 현재 디렉터리

세션의 작업 폴더가 더 이상 존재하지 않으면 대화형에서는 현재 폴더로 실행할지 물어봅니다. 이 선택은 저장되지 않아 다음에도 다시 묻습니다.

/name이나 --name으로 알아보기 쉬운 이름을 붙이고, /session으로 파일·ID·메시지 수·토큰 사용량·비용을 확인합니다. 세션 선택기에서는 검색, 이름 변경, 삭제, 경로 표시, 정렬 변경, 이름 지정 세션만 필터링할 수 있습니다.

갈라치기 방식 고르기 ​

Pi는 항목을 트리로 저장하므로 이전 시점으로 돌아가도 떠나는 브랜치가 지워지지 않습니다.

동작결과이런 때 쓴다
/tree같은 세션 파일 안에서 이동대안들을 한 세션에 묶어 두고 싶을 때
/fork이전 사용자 메시지부터 새 세션 생성대안을 독립된 작업으로 키울 때
/clone활성 브랜치를 새 세션으로 복사현재 상태의 별도 사본이 필요할 때

/tree에서 사용자 메시지를 선택하면 텍스트가 편집기로 돌아옵니다. 편집해 제출하면 다른 브랜치가 됩니다. 어시스턴트 응답이나 다른 항목을 고르면 그 항목 다음에서 빈 편집기로 이어집니다. 브랜치를 떠날 때 Pi는 그 브랜치를 요약해 진입하는 브랜치에 첨부할 수 있습니다. 버리는 경로의 모든 메시지를 그대로 두지 않으면서 의미 있는 작업 내용은 보존하는 방식입니다.

컨텍스트 압축(compaction) ​

모델이 받는 것은 세션 파일의 전체가 아니라 활성 브랜치입니다. Pi는 이 기록에 시스템 프롬프트, 컨텍스트 파일, 사용 가능한 도구, 스킬 설명을 더해 요청을 만듭니다.

하단 바에는 현재 컨텍스트 사용량이 표시됩니다. 활성 컨텍스트가 모델의 한도에 가까워지면 Pi는 보통 자동으로 오래된 기록을 압축합니다. 압축은 요약을 추가해 이전 메시지들을 대체하지만 원래 세션 항목은 삭제되지 않습니다.

  • /compact [지시문]: 수동 압축. 요약이 특정 주제나 결정 보존을 필요로 하면 지시문을 덧붙입니다.
  • 자동 압축 설정과 보존 범위는 Settings의 compaction 항목에서 조절합니다.
  • 제공자 장애 등으로 압축이 실패하면 문제를 고친 뒤 /compact를 다시 실행합니다. 자동 압축을 꺼도 수동 명령은 그대로 동작합니다.

저장 위치 제어 ​

기본 저장소는 ~/.pi/agent/sessions/이며 작업 폴더별로 묶입니다. --session-dir, PI_CODING_AGENT_SESSION_DIR 환경변수, sessionDir 설정으로 위치를 바꿀 수 있고 우선순위는 CLI 옵션이 가장 높습니다. --no-session은 임시 실행용이며 나간 뒤 복원할 수 없습니다.

내보내기·공유·버그 리포트 ​

  • /export: 세션을 HTML 또는 JSONL로 저장
  • /share: 업로드 후 뷰어 링크 (Radius 인증 시 아티팩트, 아니면 비공개 gist. sessionShareDestination 설정으로 강제 가능)
  • /bug [설명]: Pi 개발자에게 보내는 비공개 리포트 준비. 세션 기록 포함·생략·현재 모델 요약 중 선택 가능

세션에는 프롬프트, 도구 인자, 명령 출력, 파일 내용, 확장 메시지가 들어 있습니다. 내보내거나 공유하기 전에 반드시 먼저 검토하세요.

오픈소스를 한국어로 읽고 배웁니다.