A2A Work Breakdown
이 페이지는 Cloud A2A, 온디바이스 Bridge, DeviceAgent/SoC 업체가 각각 무엇을 구현하고 무엇을 맞춰야 하는지 분리한다.
역할 분리
| 담당 | 책임 | 하지 말아야 할 것 |
|---|---|---|
| Cloud A2A | 발화 이해, family routing, multi-step plan, replan 판단 | 모든 task 진행마다 LLM 재판단 |
| Cloud Runtime | planner step을 agent 실행 또는 device request로 변환 | device native 조건 판단 우회 |
| On-device Bridge | Cloud request 수신, token intent/workflow 실행, DeviceAgent 연결 | Cloud가 이미 만든 plan을 임의로 재계획 |
| DeviceAgent TaskManager | 실제 queue, 순차 실행, 상태 event, reason code 관리 | 자연어 reason만 보내고 구조화된 code 누락 |
| SoC/Native Layer | 실제 기능 실행, 센서/상태/제약 조건 판단 | Cloud payload를 직접 unsafe command로 실행 |
| QA/SQA | contract, dry-run, integration, real-device E2E 검증 | 단일 unit test만으로 완료 판정 |
Cloud A2A 작업
필수:
- Planner prompt가
turn_mode,steps,depends_on,input_from,execution_target,wait_policy를 안정적으로 출력하도록 유지한다. token_text는 임의 생성하지 않고 capability/catalog/contract에서 안전하게 주어진 경우만 통과시킨다.device_task_requests생성 시 trace field를 유지한다.- 정상 event와 replan event를 구분한다.
대표 파일:
gemini/a2a/planner/main_router_api.py
gemini/a2a/planner/assets/main_router.system_prompt.txt
gemini/a2a/runtime/task_manager.py
gemini/a2a/runtime/workflow_state.py
gemini/a2a/runtime/orchestrator.py
On-device Bridge 작업
필수:
- Cloud 응답에서
orchestration.deviceTaskRequests를 읽는다. task_type=device_intent_step을CloudIntentWorkflowRunner로 넘긴다.depends_on완료 전 다음 step을 실행하지 않는다.- native task event를 Cloud trace metadata와 함께 report한다.
WORKFLOW_COMPLETED를 생성해 workflow 종료를 명확히 한다.
대표 파일:
ForegroundService.kt
CloudIntentWorkflowRunner.kt
DeviceIntentExecutor.kt
DeviceCommandSink.kt
DeviceCommunicator.kt
ManagedDeviceTask.kt
DeviceAgent / SoC 작업
필수:
submitTask와submitWorkflow를 제공한다.- Task 상태를
QUEUED,RUNNING,PROGRESS,COMPLETED,FAILED,BLOCKED,PAUSED등으로 전달한다. - 실패/차단 시
reason_code,reason_params,requires_cloud_decision을 포함한다. - Cloud trace field를 task lifecycle 동안 보존한다.
getDevicePlanningContext로 plan 전 최소 기기 상태 snapshot을 제공한다.
대표 파일:
TaskManager.java
TaskEventListener.java
TaskReasonContract.java
TaskIngressClassifier.java
DevicePlanningContextProvider.java
MainApi.java
업체 전달 체크리스트
| 항목 | 확인 질문 |
|---|---|
| Task 등록 | 온디바이스가 전달한 task를 queue에 넣을 수 있는가 |
| Workflow | 여러 task를 순차 실행할 수 있는가 |
| Callback | 각 task 상태가 온디바이스로 올라오는가 |
| Reason Code | 실패/차단이 구조화된 code/params로 올라오는가 |
| Trace | Cloud trace field가 logcat과 event에 남는가 |
| Context | Cloud plan 전 현재 기기 상태 snapshot을 제공하는가 |
| Cancel/Pause | 사용자 취소 또는 topic shift 때 workflow 정리가 가능한가 |
QA 검증 분장
| 검증 | 담당 | 산출물 |
|---|---|---|
| Planner sample | Cloud | planner output JSON |
| Device dry-run | Cloud | device_task_requests artifact |
| Workflow runner unit | On-device | unit test result |
| TaskManager unit | DeviceAgent | unit/instrumented test result |
| E2E logcat | QA/SQA | logcat evidence, artifact validator result |
| Benchmark full-run | Cloud | family별 성공률, 실패 sample |
우선순위
- Contract field를 먼저 고정한다.
- Mock/dry-run으로 Cloud와 온디바이스 사이 payload를 맞춘다.
- DeviceAgent TaskManager callback shape를 고정한다.
- ADB 실기기에서 sequential workflow를 검증한다.
- 이후 memory/personalization을 planner context에 붙인다.