← Docs hub
TaskManager Vendor Implementation Checklist

1. 목적
업체가 문서만 보고 DeviceAgent TaskManager 연동을 구현할 때 확인해야 하는 작업 항목을 체크리스트로 정리한다.
2. 사전 확인
| 항목 |
확인 기준 |
상태 |
| TaskManager 활성화 property |
persist.sys.deviceagent.taskmanager.enable 사용 방식 확인 |
TODO |
| Legacy queue property |
persist.sys.deviceagent.taskmanager.legacy_queue 사용 방식 확인 |
TODO |
| Executor bootstrap |
DeviceAgent.onCreate()에서 등록 여부 확인 |
TODO |
| dry-run 종료 |
제품 빌드에서 dryRun=false 확인 |
TODO |
| callback 전달 |
ModuleCmdCallbackPolicy에 onTaskEvent 허용 확인 |
TODO |
3. 구현 작업
| ID |
작업 |
파일 |
완료 기준 |
| TM-BOOT-001 |
executor bootstrap 호출 추가 |
DeviceAgent.java |
부팅 후 registry에 method 등록 |
| TM-EXEC-001 |
TaskModuleExecutor hook 구조 변경 |
TaskModuleExecutor.java |
dry-run/real-run 분기 가능 |
| TM-MOVE-001 |
returnToStation 연결 |
MovementTaskExecutor.java |
station 복귀 명령 접수 성공 |
| TM-MOVE-002 |
setMoveTo 연결 |
MovementTaskExecutor.java |
positionId 기반 이동 가능 |
| TM-MOVE-003 |
stopMovement 연결 |
MovementTaskExecutor.java |
실행 중 이동 취소 가능 |
| TM-CLEAN-001 |
setAirCleanerOperation 연결 |
CleaningAmpTaskExecutor.java |
청정 시작/모드 변경 가능 |
| TM-CLEAN-002 |
stopCleaning 연결 |
CleaningAmpTaskExecutor.java |
청정 중지 가능 |
| TM-LLM-001 |
setLlmTts 연결 |
LlmTtsTaskExecutor.java |
TTS 요청 전달 가능 |
| TM-LLM-002 |
stopTts/setChangeLlmStatus 연결 |
LlmTtsTaskExecutor.java |
TTS/LLM 중단 가능 |
| TM-IOT-001 |
setDeviceStatus 연결 |
IotTaskExecutor.java |
IoT/LLM 상태 제어 가능 |
| TM-UPD-001 |
update adapter 분리 |
UpdateTaskExecutor.java + adapter |
OTA 단계 명령 가능 |
| TM-CB-001 |
correlation registry 구현 |
신규 또는 TaskManager.java |
callback으로 task 종료 가능 |
| TM-CB-002 |
onTaskEvent 발행 |
TaskManager.java/listener |
외부 앱이 task 상태 수신 |
4. 테스트 항목
| ID |
테스트 |
기대 결과 |
| TT-001 |
submitTask(returnToStation) |
accepted=true, taskId 발급, 이동 완료/실패 이벤트 발생 |
| TT-002 |
submitTask(setMoveTo) |
목표 위치 이동 시작, 완료 callback으로 COMPLETED |
| TT-003 |
이동 중 cancelTask |
stopMovement 호출, task state CANCELLED |
| TT-004 |
submitWorkflow(setMoveTo -> setAirCleanerOperation) |
순차 실행, 중간 실패 시 workflow 실패 |
| TT-005 |
setLlmTts |
LLM/TTS로 text 전달, 정의된 완료 기준으로 종료 |
| TT-006 |
resource unavailable |
resource_rejected 또는 지정 reason 반환 |
| TT-007 |
callback timeout |
timeout 후 FAILED 이벤트 발생 |
| TT-008 |
dry-run |
실제 동작 없이 executorDryRun=true 응답 |
5. 산출물
업체는 다음 산출물을 제출해야 한다.
| 산출물 |
내용 |
| 구현 diff |
수정 파일 목록과 핵심 변경 설명 |
| method mapping 표 |
taskMethod -> 실제 호출 함수 -> 완료 callback |
| callback 계약서 |
callback method/key/state 값 정의 |
| 테스트 로그 |
unit/instrument/device 테스트 결과 |
| 리스크 목록 |
미정 계약, fallback, timeout 기준 |
6. 수용 기준
- 문서에 정의된 taskMethod가 모두 executor에 등록되어야 한다.
- dry-run이 아닌 상태에서 skeleton exception이 발생하면 안 된다.
- Movement 계열은 명령 접수와 실제 완료가 분리되어야 한다.
cancelTask는 실제 stop/cancel command와 연결되어야 한다.
- LLM/MCP router는
DENY/NOOP/RESPONSE_ONLY를 DeviceAgent 실행 명령으로 보내면 안 된다.
onTaskEvent에는 taskId, taskMethod, state, source, requestId가 포함되어야 한다.
7. 참고 링크
20_deviceagent_taskmanager_framework_wiki.md
21_deviceagent_task_executor_wiring_wiki.md
22_taskmanager_llm_mcp_mapping_wiki.md
23_taskmanager_callback_completion_wiki.md
../../docs/task-manager/DEVICEAGENT_TASK_MANAGER_IMPLEMENTATION_WIKI.md
../../docs/task-manager/DEVICEAGENT_TASK_MANAGER_VENDOR_HANDOFF_FULL.md