피드로 돌아가기
Dev.toBackend
원문 읽기
Human-Agent Handoff 최적화를 위한 awaiting_human 상태 분리 설계
Deep Dive: The awaiting_human Status — Rethinking Agent-Human Handoff in Bizbox
AI 요약
Context
단일 blocked 상태로 시스템 의존성 및 인간의 의사결정 대기 상황을 모두 처리하며 발생한 로직 충돌 분석. Reconciler가 인간의 검토 중인 이슈까지 자동 할당하여 Execution Contract를 위반하는 구조적 한계 직면.
Technical Solution
- 상태 세분화를 통한 Semantic 분리: 자동 해결 가능한 blocked와 인간의 개입이 필수적인 awaiting_human으로 상태 정의
- Auto-Park 트리거 구현: ask_user_questions 및 request_confirmation 상호작용 발생 시 즉시 awaiting_human으로 상태 전환
- Reconciler 배제 로직 적용: heartbeat.ts 내 eligibleStatuses에서 awaiting_human을 제외하여 AI Agent의 무분별한 Auto-claim 방지
- Wake-Reason 필터링 도입: issue_commented 등 인간 주도의 이벤트 발생 시에만 awaiting_human 상태의 Issue Wake-up 허용
- Agent Mutation Guard 설계: AI Agent가 awaiting_human 상태로 진입은 가능하나, 해당 상태를 임의로 해제하지 못하도록 403 Forbidden 처리
실천 포인트
- AI Agent와 인간의 협업 시스템 설계 시, '자동화 가능 영역'과 '인간 의사결정 영역'의 상태 값을 엄격히 분리했는가? - 상태 전이(State Transition) 권한을 Role 기반(Agent vs Human)으로 제한하여 시스템 안정성을 확보했는가? - 외부 이벤트 기반 Wake-up 로직 설계 시, 이벤트의 성격(System-driven vs Human-driven)에 따라 처리 대상을 필터링하는가?