← Docs hub

TaskManager LLM/MCP Mapping Wiki

LLM/MCP -> TaskManager Mapping 구조

1. 목적

LLM 발화 정책(llm_command.xlsx)을 DeviceAgent TaskManager API로 연결하는 mapping 기준을 정의한다.

이 문서는 다음 레이어를 연결한다.

llm_command.xlsx
  -> llm-command-policy-mcp-v1.json
  -> MCP router decision
  -> DeviceAgent taskMethod
  -> TaskManager submitTask/submitWorkflow

2. decisionType별 처리

decisionType DeviceAgent 호출 설명
EXECUTE submitTask 또는 submitWorkflow 실제 기기 동작 수행
DENY DeviceAgent 호출하지 않음 LLM 답변만 반환
NOOP DeviceAgent 호출하지 않음 중복 명령 답변
MULTI_TURN slot 채우기 후 실행 position/설정값이 없으면 follow-up
QUERY direct query 또는 getTaskStatus 상태 조회
RESPONSE_ONLY DeviceAgent 호출하지 않음 정보성 답변

3. 대표 token mapping

LLM 기능 token 예 DeviceAgent taskMethod API
고정청정 ON/OFF sk_0, sk_38 setAirCleanerOperation, setStatusClean, stopCleaning submitTask
스테이션 복귀 sk_1 returnToStation submitTask
선택 공간 청정 sk_4 setAirCleanerOperation 또는 setMoveTo + setAirCleanerOperation submitWorkflow
전체 공간 청정 sk_5 setAirCleanerOperation submitTask
풍량 변경 sk_2 setDeviceStatus 또는 cleaning command submitTask
AI 모드/실외연동 sk_40 setDeviceStatus submitTask
TTS/LLM 중단 상태 제어 stopTts, setChangeLlmStatus submitTask

정확한 token 전체 mapping은 framework-sdk-mcp/contracts/llm-command-policy-mcp-v1.json을 기준으로 생성해야 한다. 이 문서는 주요 연속 동작 기능의 기준만 정의한다.

4. submitTask payload 표준

MCP router가 DeviceAgent로 보낼 Bundle은 다음 필드를 기본으로 포함한다.

key type 필수 설명
method String Y submitTask
taskMethod String Y 실제 실행 method
source String Y llm, iot, app, internal
priority String N normal, control, high, emergency
requestId String N MCP request correlation id
llmRuleId String N 정책 rule id
legacySkillToken String N <sk_x> 원본 token
answerCode String N LLM 답변 코드
timeoutMs long N 완료 대기 timeout

예시:

{
  "method": "submitTask",
  "taskMethod": "returnToStation",
  "source": "llm",
  "priority": "control",
  "requestId": "mcp-20260622-0001",
  "legacySkillToken": "sk_1",
  "timeoutMs": 120000
}

5. submitWorkflow payload 표준

복합 명령은 subTasks로 분리한다.

예시: 특정 공간으로 이동 후 청정 시작

{
  "method": "submitWorkflow",
  "workflowName": "spot_clean",
  "source": "llm",
  "priority": "control",
  "subTasks": [
    {
      "taskMethod": "setMoveTo",
      "positionId": "living_room",
      "timeoutMs": 120000
    },
    {
      "taskMethod": "setAirCleanerOperation",
      "action": "start",
      "cleanMode": "spot",
      "positionId": "living_room",
      "timeoutMs": 30000
    }
  ]
}

6. 멀티턴 처리

MULTI_TURN은 TaskManager에 바로 넣지 않는다. slot이 완성된 뒤에만 submitTask 또는 submitWorkflow로 전환한다.

누락 slot 후속 질문 완성 후 task
공간 “어느 공간을 청정할까요?” setMoveTo/setAirCleanerOperation
풍량 “어떤 풍량으로 설정할까요?” setDeviceStatus
시간/예약 “언제 실행할까요?” schedule task 또는 기존 schedule command

7. callback mapping

DeviceAgent callback은 LLM/MCP에 그대로 노출하지 않는다. 다음 typed event로 변환한다.

DeviceAgent event MCP/SDK event
onTaskEvent + state=RUNNING task.started
onTaskEvent + state=COMPLETED task.completed
onTaskEvent + state=FAILED task.failed
AllMovingInfo.movingState=6 movement.rotationCompleted 또는 task progress event
onMoveStateChanged arrived/failed movement.completed / movement.failed

8. 금지 사항

9. 관련 문서