Skip to content

세션 도구

OpenClaw는 에이전트에게 세션 간 작업, 상태 검사, 서브 에이전트 오케스트레이션을 위한 도구를 제공합니다.

사용 가능한 도구

도구기능
sessions_list선택적 필터 (kind, recency)로 세션 목록 조회
sessions_history특정 세션의 트랜스크립트 읽기
sessions_send다른 세션에 메시지 전송하고 선택적으로 대기
sessions_spawn백그라운드 작업을 위한 격리된 서브 에이전트 세션 생성
sessions_yield현재 턴을 종료하고 후속 서브 에이전트 결과를 기다림
subagents이 세션에 대해 생성된 서브 에이전트 목록, 조종 또는 종료
session_status/status 스타일 카드를 표시하고 선택적으로 세션별 모델 오버라이드를 설정

세션 목록 및 읽기

sessions_list는 키, 종류, 채널, 모델, 토큰 수, 타임스탬프와 함께 세션을 반환합니다. 종류 (main, group, cron, hook, node) 또는 최근성 (activeMinutes)으로 필터링하십시오.

sessions_history는 특정 세션의 대화 트랜스크립트를 가져옵니다. 기본적으로 도구 결과는 제외됩니다 -- includeTools: true를 전달하면 볼 수 있습니다. 반환된 뷰는 의도적으로 제한되고 안전하게 필터링됩니다:

  • 어시스턴트 텍스트는 회상 전에 정규화됩니다:
    • thinking 태그 제거됨
    • <relevant-memories> / <relevant_memories> 스캐폴딩 블록 제거됨
    • <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls>와 같은 일반 텍스트 도구 호출 XML 페이로드 블록 제거됨 (깔끔하게 닫히지 않은 잘린 페이로드 포함)
    • [Tool Call: ...], [Tool Result ...], [Historical context ...]와 같은 다운그레이드된 도구 호출/결과 스캐폴딩 제거됨
    • <|assistant|>, 기타 ASCII <|...|> 토큰, 전각 <|...|> 변형과 같은 유출된 모델 제어 토큰 제거됨
    • <invoke ...> / </minimax:tool_call>와 같은 잘못된 형식의 MiniMax 도구 호출 XML 제거됨
  • 자격 증명/토큰 형태의 텍스트는 반환 전에 교정됩니다
  • 긴 텍스트 블록은 잘립니다
  • 매우 큰 히스토리는 오래된 행을 삭제하거나 과도한 크기의 행을 [sessions_history omitted: message too large]로 대체할 수 있습니다
  • 도구는 truncated, droppedMessages, contentTruncated, contentRedacted, bytes와 같은 요약 플래그를 보고합니다

두 도구 모두 세션 키 (예: "main") 또는 이전 목록 호출의 세션 ID를 허용합니다.

정확한 바이트 단위 트랜스크립트가 필요한 경우, sessions_history를 원시 덤프로 처리하는 대신 디스크의 트랜스크립트 파일을 직접 검사하십시오.

크로스 세션 메시지 전송

sessions_send는 다른 세션에 메시지를 전달하고 선택적으로 응답을 기다립니다:

  • Fire-and-forget: timeoutSeconds: 0을 설정하면 즉시 큐에 넣고 반환합니다.
  • 응답 대기: 타임아웃을 설정하고 응답을 인라인으로 받습니다.

대상이 응답한 후, OpenClaw는 에이전트가 번갈아 메시지를 교환하는 응답 루프를 실행할 수 있습니다 (최대 5턴). 대상 에이전트는 REPLY_SKIP을 응답하여 일찍 중단할 수 있습니다.

상태 및 오케스트레이션 도우미

session_status는 현재 또는 다른 가시적 세션을 위한 가벼운 /status 상당 도구입니다. 사용량, 시간, 모델/런타임 상태, 존재 시 연결된 백그라운드 태스크 컨텍스트를 보고합니다. /status와 마찬가지로, 최신 트랜스크립트 사용량 항목에서 희박한 토큰/캐시 카운터를 백필할 수 있으며, model=default는 세션별 오버라이드를 지웁니다.

sessions_yield는 현재 턴을 의도적으로 종료하여 다음 메시지가 대기 중인 후속 이벤트가 될 수 있도록 합니다. 폴링 루프를 구축하는 대신 완료 결과가 다음 메시지로 도착하기를 원할 때 서브 에이전트를 생성한 후 사용하십시오.

subagents는 이미 생성된 OpenClaw 서브 에이전트를 위한 컨트롤 플레인 도우미입니다. 다음을 지원합니다:

  • action: "list" 활성/최근 실행 검사
  • action: "steer" 실행 중인 자식에게 후속 안내 전송
  • action: "kill" 하나의 자식 또는 all 중단

서브 에이전트 생성

sessions_spawn은 백그라운드 태스크를 위한 격리된 세션을 생성합니다. 항상 비차단적입니다 -- 즉시 runIdchildSessionKey를 반환합니다.

주요 옵션:

  • runtime: "subagent" (기본값) 또는 외부 하네스 에이전트에는 "acp".
  • 자식 세션에 대한 modelthinking 오버라이드.
  • thread: true 생성을 채팅 스레드 (Discord, Slack 등)에 바인딩.
  • sandbox: "require" 자식에게 샌드박싱 강제.

기본 리프 서브 에이전트는 세션 도구를 받지 않습니다. maxSpawnDepth >= 2인 경우, 깊이-1 오케스트레이터 서브 에이전트는 자체 자식을 관리할 수 있도록 sessions_spawn, subagents, sessions_list, sessions_history를 추가로 받습니다. 리프 실행은 여전히 재귀 오케스트레이션 도구를 받지 않습니다.

완료 후, 공지 단계가 요청자의 채널에 결과를 게시합니다. 완료 전달은 가능한 경우 바인딩된 스레드/토픽 라우팅을 보존하며, 완료 출처가 채널만 식별하는 경우 OpenClaw는 직접 전달을 위해 요청자 세션의 저장된 경로 (lastChannel / lastTo)를 재사용할 수 있습니다.

ACP별 동작은 ACP 에이전트를 참조하십시오.

가시성

세션 도구는 에이전트가 볼 수 있는 것을 제한하는 범위로 설정됩니다:

수준범위
self현재 세션만
tree현재 세션 + 생성된 서브 에이전트
agent이 에이전트의 모든 세션
all모든 세션 (구성된 경우 크로스 에이전트)

기본값은 tree입니다. 샌드박싱된 세션은 구성에 관계없이 tree로 제한됩니다.

추가 읽기