TaskManager의 전체 기준을 빠르게 이해하고, 역할에 맞는 상세 사양으로 바로 이동하기 위한 문서 허브다. 규범 내용은 주제별 상세 페이지에 나누고 이 페이지는 정의, 핵심 원칙과 읽기 경로만 제공한다.
TaskManager는 여러 요청 경로에서 들어오는 기기 동작을 Task로 접수하고, 실행 가능 여부·순서·상태·완료·취소·실패를 공통 규칙으로 관리하는 DeviceAgent 내부 실행 프레임워크다.
5분 안에 이해하기
핵심 원칙
의미
기능은 그대로
이동·청정·화면·TTS 같은 실제 기능과 안전 정책은 기존 기기 도메인이 계속 소유한다.
실행은 공통 관리
요청 출처와 관계없이 Task와 Workflow로 접수해 queue, 우선순위와 자원 경쟁을 관리한다.
접수와 완료 분리
accepted=true는 시작일 뿐이며 실제 callback과 상태 증거가 있어야 완료된다.
기존 경로와 공존
모든 MQTT나 앱 API를 한 번에 바꾸지 않고 관리가 필요한 요청부터 점진적으로 전환한다.
Task와 Workflow
단위
의미
대표 예시
Task
독립적으로 접수·실행·취소·완료 판정할 수 있는 하나의 작업
지정 위치 이동, 청정 시작, 화면 전환
Workflow
Task의 순서, 의존관계, 조건, 지연과 실패 정책을 가진 실행 묶음
이동 완료 → 청정 → 종료 확인 → 복귀
Completion Evidence
다음 단계나 최종 완료를 허용하는 실제 상태 증거
movement.arrived, cleaning.stopped
TaskManager가 확장하는 제품 기능
TaskManager가 새 기기 기능이나 사용자 목표를 직접 만들지는 않는다. 기존 DeviceAgent 기능을 재사용 가능한 Task로 연결하고 실행 계약을 공통화해, 앱·IoT·예약·내부 서비스와 선택적 상위 Planner가 더 복잡한 제품 시나리오를 안전하게 구성할 수 있게 한다.
확장 가능한 기능
TaskManager가 제공하는 기반
구현·출시 조건
복합 기기 시나리오
이동 → 청정 → 복귀처럼 여러 Task의 순서·의존관계·실패를 하나의 Workflow로 관리한다.
현재 기반. 각 단계의 실행기와 실제 완료 증거가 연결돼야 한다.
시간·조건 기반 실행
“30분 뒤 작은방 청정”, “이동 완료 30초 후 화면 전환”을 예약 Task와 after_step 지연으로 표현한다.
현재 기반. 출시 형상에서 Alarm, 재부팅 복원과 실행 시점의 재검증이 필요하다.
장시간 사용자 참여 작업
Vital Sign, Security, Welcome과 앱 세션을 시작 응답이 아니라 완료·취소·시간 초과까지 추적한다.
부분 연동. 도메인별 terminal callback과 취소 계약을 완성해야 한다.
중단·실패 후 안전한 수렴
PUI 취소, 저전력, 이동 실패를 reason code로 남기고 중지·재시도·보상 동작을 선택한다.
부분 연동. 기능별 안전 정책과 보상 가능 범위를 검증해야 한다.
채널 간 동일한 진행 관리
PUI·앱·IoT·예약·Agent가 같은 Task ID, 상태, 취소와 결과 계약을 사용한다.
점진 전환. 기존 direct 경로는 유지하고 관리가 필요한 명령부터 전환한다.
상태 기반 동적 Workflow
선택적 Planner가 기기 상태와 capability로 단계를 구성하고 TaskManager가 실행 가능성·순서·완료를 결정적으로 관리한다.
목표 확장. capability catalog, 최신 context, 동의 정책과 재계획 경계를 함께 검증해야 한다.
외부 실행 관리 구조에서 확인되는 공통 원리
장시간·복합 작업을 단순 함수 호출과 분리해 관리하는 구조는 Android, 로보틱스와 클라우드 Workflow에서도 확인된다. 아래 사례는 SKIX TaskManager와 동일한 제품이 아니라, 상태·의존관계·진행·취소·실패·복원을 별도 실행 계층이 소유하는 이유를 보여 주는 설계 참조다.
예약 복원과 장기 Workflow 이력의 확장 방향에 대응한다. 현재 실행 중 Workflow 전체 replay는 보강 대상이다.
구조 예시: ROS 2 Actions와 SKIX TaskManager
ROS 2 Actions는 장시간 Goal마다 UUID와 상태를 부여하고 Action Server가 수락·거절, 진행 feedback, 취소와 최종 result를 관리한다. 이 생명주기는 SKIX의 Task ID, Admission, 진행 Event, 취소와 Completion Evidence에 직접 대응한다.
Isaac ROS Missions도 ROS 2 패키지와 Mission Client를 사용하지만, 공식 Missions 흐름은 여러 Task를 mission_tree로 묶어 VDA5050 Order로 전달하는 상위 Mission 계층이다. 따라서 아래 그림은 TaskManager Core의 직접 대응은 ROS 2 Actions, 여러 Task를 묶는 상위 활용 사례는 Isaac Missions로 구분한다.