1.0.1 ko public

스펙

RAWP-DPS

Data processing specification for RAWP integrations.

18. 단일 턴 프로세스 재생성 (Single-Turn Process Respawn)

일부 프로세스 기반 에이전트는 하나의 프롬프트를 처리한 후 프로세스가 종료된다. 다음 프롬프트 시 이전 세션 컨텍스트를 유지하면서 새 프로세스를 생성하는 "재생성(respawn)" 패턴을 정의한다.

18.1. 어댑터 플래그

에이전트 메타데이터(RAWP 1.0.2 §4.3)에 다음 필드를 포함한다:

필드 타입 설명
single_turn_process Boolean true이면 프로세스가 Turn 완료 후 exit code 0으로 종료되는 것이 정상 동작이다.
resume_flag String 재생성 시 이전 세션 컨텍스트를 전달하기 위한 CLI 플래그 템플릿. {session_id} 플레이스홀더를 실제 값으로 치환한다.

18.2. Exit Code별 동작

single_turn_process: true인 에이전트의 exit code 해석:

Exit Code 동작 세션 상태
0 정상 Turn 완료. 프로세스 종료는 예상된 동작. idle (다음 프롬프트 대기, 프로세스 없음)
1127 에러 종료. §17.2.2와 동일. TERMINATED
128+N 시그널 종료. §17.2.2와 동일. TERMINATED

exit code 0에서의 핵심 차이: 일반 프로세스 어댑터(§17.2.2)에서는 exit code 0이 세션 종료를 의미하지만, single_turn_process: true에서는 Turn 완료만을 의미하며 세션은 유지된다.

18.3. 세션 ID 전달

재생성 시 이전 세션 컨텍스트를 전달하기 위해 resume_flag 템플릿을 사용한다:

  • 에이전트 프로세스가 첫 Turn 실행 중 내부 세션 ID를 보고하면(예: session.capabilitiesextensions.agent_session_id), 클라이언트는 이를 보존해야 한다 (MUST).
  • 재생성 시 보존된 세션 ID를 resume_flag 템플릿의 {session_id} 플레이스홀더에 치환하여 프로세스 인자에 포함한다.
  • 예: resume_flag: "--resume {session_id}" → 실제 실행: agent-cli --resume abc-123-def

18.4. 상태 전이

[프롬프트 수신] → RUNNING (프로세스 생성, 에이전트 실행)
  → Turn 완료 (exit 0) → idle (프로세스 종료, 다음 프롬프트 대기)
  → [다음 프롬프트 수신] → RUNNING (프로세스 재생성, resume_flag 포함)
  → ...
  • idle 상태에서 프로세스는 존재하지 않는다. 이것이 일반 프로세스 어댑터와의 핵심 차이다.
  • idle 상태에서 DELETE /v1/session/{session_id}(RAWP 1.0.2 §5.2)를 수신하면 종료할 프로세스가 없으므로 즉시 TERMINATED로 전이한다.
  • RUNNING 상태에서의 세션 종료는 §17.2.3의 종료 시그널 순서를 따른다.

참조