← Docs hub

LLM 업무 역할·책임: A2A 제외 범위

이 문서는 지금까지 함께 진행한 LLM 제품 업무 중 A2A를 제외한 범위를 업무 패키지와 역할 단위로 정리한다. 단순한 작업 목록이 아니라 각 업무의 책임자, 협업 경계, 입력, 산출물, 완료 기준을 명시해 기획·개발·검증·운영 사이의 누락과 중복을 줄이는 기준 문서다.

실제 업무 항목과 담당을 먼저 확인하려면 LLM 업무 목록과 역할·책임에서 87개 업무를 순번 · 수행 책임 · 최종 책임 · 산출물 기준으로 본다. 현재 문서는 그 목록의 구조·시나리오·완료 기준을 설명하는 상세 해설서다.

A2A 제외 LLM 역할·책임 구조

1. 범위 선언

포함

음성 신호 수신
  -> STT와 전처리
  -> 온디바이스 dictionary / local LLM
  -> Cloud LLM 일반 응답·rewrite·RAG
  -> TTS와 음성 세션 상태
  -> Android system app 배포
  -> E2E 품질·장애·비용·운영

명시적 제외

제외 영역 이 문서에서 다루지 않는 책임 이어서 볼 문서
A2A Router family, owner agent, skill 선택 A2A Category
Semantic Planner typed step, dependency, condition, replan A2A Knowledge Hub
Experience Goal 상위 목표, effect, observation, bounded adaptation Experience Goal Category
TaskManager queue, workflow, executor, callback, scheduling DeviceAgent / SoC
On-device A2A Bridge Cloud plan을 device task/workflow로 변환 On-device Bridge

Cloud LLM을 사용한다는 이유만으로 모든 업무가 A2A가 되는 것은 아니다. 이 문서는 사용자 음성을 안정적인 입력으로 만들고, 로컬·Cloud 모델에서 답변 또는 재진입 표현을 생성하고, TTS까지 안전하게 종료하는 제품 LLM 경로를 소유한다.

2. R&R을 나누는 원칙

원칙 적용 기준
사실 소유자가 책임진다 PCM은 Audio/STT, model lifecycle은 On-device Runtime, HTTP 결과는 Cloud LLM이 소유한다.
의미 판단과 실행을 섞지 않는다 일반 응답·rewrite는 LLM 범위지만 기기 task의 순서·완료 판단은 제외한다.
검증 수준을 구분한다 compile, unit, dry-run, connected device, 실음성 acceptance를 같은 성공으로 쓰지 않는다.
장애를 한 단어로 묶지 않는다 LLM 실패 대신 Audio, STT, dictionary, local inference, Cloud, TTS, Android lifecycle로 분해한다.
운영 산출물까지 완료 조건에 넣는다 코드뿐 아니라 로그, 테스트 결과, release APK 검증, runbook까지 닫혀야 한다.

3. 업무 패키지 목록

WP-01 · Voice Ingress와 음성 세션

항목 내용
핵심 책임 F1/F2/F3, pre/main recording, end-of-speech, 취소, timeout, 다음 turn 진입을 일관되게 관리
주요 코드 ForegroundService, MyAccessibilityService, F123BroadcastReceiver, CancelableTimer
입력 wake-up/F-key event, PCM callback, 사용자 취소, timeout
출력 STT에 전달할 완결된 turn, recording 상태, 실패·취소 상태
협업 경계 Audio HAL/AFE는 PCM 품질을 보장하고, LLM Voice Runtime은 turn lifecycle과 buffer 소유권을 보장
Done 기준 반복 F1/F2/F3에서 입력 종료, buffer 반환, timer 정리, PID 유지, 다음 turn 정상 시작

WP-02 · STT, 전처리와 발화 정규화

항목 내용
핵심 책임 SenseVoice STT 초기화·추론, 언어별 모델, raw/processed 음성 비교, 오인식 보정과 입력 품질 분석
주요 코드 SpeechRecognitionService, AudioRecordManager, SttPreprocessPipeline, AudioPreprocessor, STTSubstitutor
입력 PCM, 언어 설정, preprocessing flag
출력 recognized text, STT latency, raw/processed evidence, 실패 원인
협업 경계 SoundFlow/Kardome은 신호 품질, STT 담당은 decoder 결과와 전처리 손실을 책임
Done 기준 WER/CER 또는 제품 발화 성공률, latency, dropout, raw 대비 processed 영향이 분리 측정됨

전처리 개선은 파형이나 dB proxy만으로 완료하지 않는다. 최종 제품 판정은 실제 decoder 결과 또는 제품 E2E 성공률로 닫는다.

WP-03 · Dictionary와 로컬 기능 문장 처리

항목 내용
핵심 책임 발화 normalization, contains/exact match, <sk_xx> token 생성, positive/negative collision 관리
주요 코드 PreDefinedCommandMatcher, CommandContainsMatcher, CommandContainsFinder, FunctionCallHandler, dictionary assets
입력 recognized text, locale, device state 조회값
출력 local token, local answer, Cloud fallback 후보
협업 경계 token의 실제 기기 기능 의미는 DeviceAgent API와 합의하지만 task orchestration은 소유하지 않음
Done 기준 positive fixture 통과, negative collision 차단, rewrite 재진입 호환, 미지원 입력의 안전한 fallback

WP-04 · 온디바이스 LLM Runtime

항목 내용
핵심 책임 Genie/QaClient 초기화, infer, unload, restart, 모델 상태 전이, native 자원 해제
주요 코드 QaClient, ForegroundService.processLLAMA, initializeLLAMA, restartLLM, JNI main.cpp
입력 prompt, conversation history, model lifecycle event
출력 local model response, init/infer latency, restart 상태, native 오류 evidence
협업 경계 Android service가 lifecycle을 호출하고, runtime 담당이 native context와 resource ownership을 닫음
Done 기준 cold/warm init, 반복 infer, unload/reload, error/restart, destroy 중 callback을 포함한 stress 통과

빈 출력 뒤 재시작 가능한 오류와 JNI fatal crash는 다른 문제다. 전자는 app-level recovery로 다루고, 후자는 tombstone·process death·LMKD evidence로 판정한다.

WP-05 · Cloud LLM 일반 응답, Rewrite와 RAG

항목 내용
핵심 책임 Cloud 인증·호출, 일반 답변, 제품 기능 재진입용 rewrite, 문서/Web RAG, timeout·retry·fallback
주요 코드 ChatRepository, CloudApiService, AuthInterceptor, Cloud Lambda full_rag, Gemini client
입력 STT text, locale, 필요한 제품·문서 context
출력 case, response, rewrite_query, there_is_question_mark, 오류 코드
협업 경계 이 패키지는 A2A owner/plan을 생성하지 않고 일반 응답과 기존 local path 재진입 품질만 소유
Done 기준 response/rewrite 계약 검증, credential·403·5xx·timeout 분리, retry 상한, 근거 없는 제품 기능 약속 차단

Cloud가 기기 기능을 직접 수행했다고 말하지 않는다. 기능 실행이 필요하면 온디바이스가 이해할 수 있는 안정적인 rewrite/token 후보를 반환하거나, 지원하지 않는 경우 명확한 사용자 응답으로 종료한다.

WP-06 · TTS와 사용자 응답 품질

항목 내용
핵심 책임 TTS normalization, queue, 중복 제거, 재생·중지·오류, 음성 세션 상태, 사용자-facing 문장 품질
주요 코드 TTSNormalizer, AudioPlayManager, TTSText, ForegroundService, DeviceCommunicator
입력 local/Cloud response text, language, TTS lifecycle event
출력 재생 가능한 문장, STATE_TTS_*, 완료·중지 상태
협업 경계 LLM은 말할 내용을, TTS Runtime은 재생과 terminal state를 책임
Done 기준 내부 field·영문 debug 표현 미노출, 중복 발화 없음, cancel/error 후 idle 수렴, 다음 음성 turn 방해 없음

WP-07 · 화자 식별과 LLM Turn 결합

항목 내용
핵심 책임 CPU STT와 QNN speaker embedding 병렬 처리, turn hard join, dominant speaker, fallback, 등록 lifecycle
주요 코드 SpeakerQnnIsolatedService, SpeakerQnnProcessClient, TurnInferenceCoordinator, DominantSpeakerResolver
입력 같은 turn의 PCM/WAV, 등록 profile
출력 recognized text + speaker result, confidence, fallback 상태
협업 경계 화자 결과를 개인화에 제공하지만 A2A owner selection이나 권한 정책은 이 문서의 범위 밖
Done 기준 STT 비차단 fallback, Binder/PFD 전달, companion release, 실화자 FAR/FRR/EER와 장시간 메모리 gate

WP-08 · 성능, 메모리와 비용 최적화

항목 내용
핵심 책임 end-to-end latency, local/Cloud call 비율, token, cache, PSS/RSS/CMA, thread·buffer retention 관리
입력 latency trace, token ledger, meminfo, LMKD, FastRPC, cold/warm run
출력 baseline, 병목 분해, 예산, 최적화 전후 회귀 결과
협업 경계 비용 절감을 위해 의미 품질을 임의로 낮추지 않고 QA acceptance와 함께 변경
Done 기준 STT·local LLM·Cloud·TTS 구간별 p50/p95, token/call, memory high-water와 품질 지표를 함께 비교

WP-09 · Android 통합, 시스템 앱 배포와 보안

항목 내용
핵심 책임 release build, platform signing, /system/priv-app 교체, 권한, process/service 상태, rollback 준비
입력 source revision, release APK, platform certificate, target device
출력 검증된 system APK, backup, 설치·부팅·서비스 evidence
협업 경계 Android/SoC 담당이 image·SELinux·privileged permission을 소유하고 LLM 담당이 앱 runtime을 검증
Done 기준 cert·hash·owner·mode·SELinux 확인, debug cert 차단, reboot 후 package/PID/서비스/음성 E2E 확인

WP-10 · QA, 장애 분석, 문서와 운영

항목 내용
핵심 책임 test set, log correlation, tombstone/ANR/LMKD 분석, 회귀 기준선, release note, runbook, wiki 관리
입력 발화셋, logcat, Cloud log, tombstone, test report, source revision
출력 재현 절차, 원인 계층, 수정 근거, acceptance 판정, 공개 가능한 기술 문서
협업 경계 QA는 증거와 판정을 독립적으로 유지하고 구현 담당은 결함 수정과 재검증을 수행
Done 기준 문제→방법→측정→해석→영향이 연결되고, compile 결과와 실기기 evidence가 구분됨

4. 실제 세부 프로젝트 포트폴리오

아래 표는 업무 패키지를 실제 릴리즈 과업으로 내린 목록이다. 사용자가 제공한 LLM Release Note의 항목을 기준으로 git history, 현재 source, 기존 설계·검증 문서를 대조했다. 인증이 필요한 Notion 본문은 사용자가 전달한 업무 목록을 입력 기준으로 삼았으며, 구현 여부는 별도로 로컬 코드와 commit evidence에서 확인했다. 상태는 다음처럼 해석한다.

상태 의미
구현 근거 확인 current source 또는 특정 branch/commit에서 구현 흔적을 확인
설계·정책 필요 요구는 있지만 parameter, API, 기본값 또는 UX 합의가 먼저 필요
검증·운영 코딩보다 test set, SQE, release evidence가 핵심인 업무
이슈 분석 원인 분리와 타 계층 협의가 우선인 업무

LLM release project scenario portfolio

4.1 Schedule, Interaction과 Night Mode

Project 사용자 시나리오 LLM·On-device 책임 협업 경계 상태·근거
A1 스케줄 유형별 UI 문구 등록·조회·중복·실패마다 TTS와 화면 문구가 달라짐 schedule type, 성공·중복·일반 실패를 동일 문구 계약으로 정리 Launcher UI, Schedule API, SQE 구현·운영 혼합. strings.xml, SK_48 flow
인터랙션 스케줄 “웨이크업 스케줄 멈춰줘”, “릴렉스 다시 시작해줘” 웰컴·웨이크업·릴렉스의 pause/resume/stop과 지원 불가 start를 구분 Device 상태의 interSchedule, 콘텐츠 재생 구현 근거 확인. prompt와 DeviceActionStatusStore
스케줄 backlog 조회·삭제·중복·온디바이스 전용·Cloud 등록의 미완성 구간 관리 token/action과 실제 API coverage gap을 backlog로 유지 Schedule backend, DeviceAgent 설계·정책 필요. SK48_SCHEDULE_FLOW_STATUS_2026-06-01.md
Phase 3 스케줄 설계 요일·시간·공간·청정 방식이 결합된 예약 time/day/place/mode slot과 payload, 질문 순서를 확정 제품 사양, backend schema, UI 설계·정책 필요
고정 청정 스케줄 “평일 오후 5시에 고정 청정해줘” <sk_48>(action=1), 시간·요일, duplicate 처리, 성공 TTS local/server schedule 저장소 구현 근거 확인. b8a4aca1, 039aaf5d
전체·선택 청정 스케줄 “내일 8시에 거실과 안방 청정해줘” map/space 확인, 선택 공간 payload와 순서, 누락 slot 질문 map/place API, CLMD0003 계약 전체 청정 skeleton 확인, 선택 청정 계약은 보강 필요
나이트모드 실행 “나이트 모드 켜줘”, “항상 켜둬”, “예약 모드 해제해줘” 상시·시간지정·상태조회·중복·해제 상태를 분리 Ghost mode, Night mode time API MR8 구현 근거 확인. 8b29e91c, bbc4043c
나이트모드 시작 시간만 발화 “밤 10시부터 나이트 모드 켜줘” 종료 시간 누락 시 질문할지 default를 적용할지 결정 제품 UX 정책 정책 필요. MR8 ref는 20:00~07:00 default 사용
Night Mode Rewrite Query Cloud가 “예약 나이트 모드 설정”처럼 local path가 이해할 문장을 반환 Case 2 rewrite의 type·enable·시간 보존, 재진입 collision 방지 Cloud prompt, local dictionary 구현·회귀 업무. 0bf5ea81, bbc4043c

현재 MR8 reference의 NightModeDecisionResolver에는 예약 기본값 20_00~07_00, 상시/시간지정 전환, 상태조회와 중복 분기가 있다. 다만 현재 작업 checkout과 MR8 reference가 다를 수 있으므로 브랜치 존재를 제품 반영 완료로 간주하지 않는다. 대상 release branch에서 다시 정합·검증해야 한다.

4.2 Product Function, UI와 응답 시나리오

Project 대표 발화·상황 담당 작업 핵심 검증 상태·근거
<sk_39> 대기화면 커스텀 공기질 “대기화면을 커스텀 공기질로 바꿔줘” theme parameter, 현재 theme, custom image 존재, TTS와 API를 함께 변경 기존 theme=2 상세 공기질과 신규 custom 충돌 설계 필요. docs/sk39_custom_air_quality_theme_design.md
날씨 응답 “오늘 날씨 어때”, “내일 쿠알라룸푸르 날씨 알려줘” timeframe·location·단위·최저/최고·습도와 오류 문구 location 없음, network 실패, 7일 범위, TTS 발음 구현 근거 확인
scattered_clouds 의미 수정 날씨 API가 scattered clouds를 반환 내부 enum과 한국어 표시를 “대체적으로 맑음” 정책으로 정렬 icon/code와 번역·TTS 일치 commit d2b0e421; current branch 재확인 필요
알림함 설명 “What’s the advantage of a notification box?” 지원 기능 설명과 음성 제어 미지원 안내를 구분 설명 질의를 삭제·제어 요청으로 오분류하지 않음 prompt/dictionary 검증 항목
올타임 모드 설명 “What is the all time mode?” prepared answer 또는 local/Cloud 일반 답변의 제품 사양 grounding <sk_49> 제어와 <sk_107> 설명 구분 영문 dictionary 근거 확인
B2B 모드 답변 변경 B2B 제품에서 소비자용 안내가 노출되는 상황 product mode에 따른 답변·지원 범위·브랜드 문구 분리 NXSP-419 기대문구, B2C 회귀 정책·검증 업무
커스텀 공기질 딕셔너리 한·영 “상세 공기질”, “custom air quality screen” 등 mapping/contains/3-keyword와 negative phrase를 함께 관리 광범위 air quality가 조회·테마를 혼동하지 않음 dictionary 설계·회귀 업무

4.3 Cloud, Prompt와 입력 계약

Project 문제 책임 범위 Acceptance
Cloud 원문 발화 전달 normalization 이후 문장만 보내면 Cloud가 원래 의미를 잃을 수 있음 originalSttResult와 local filtered text를 분리하고 request·로그에 provenance 유지 같은 turn의 raw, processed, Cloud input을 log ID로 대조
Rewrite Query 품질 Case 2가 맞아도 local dictionary가 rewrite를 이해하지 못하면 실행 실패 rewrite가 제품 용어, action, slot을 보존하고 local pipeline에 재진입하도록 prompt·dictionary 동시 관리 기대 Case, rewrite, token, API, TTS를 한 행에서 검증
일반 응답·FAQ notification box, all-time mode, 제품 장점 질문 제품 사양에 근거한 짧은 응답, 내부 field와 미지원 기능 약속 차단 한국어·영어 answer set과 TTS 자연스러움
날씨·공기질 context 최신 외부 값과 제품 내부 상태를 답변에 사용 값의 source·freshness·missing/error를 prompt에 전달 stale/missing 상태에서 값을 추정하지 않음
말레이시아 지원 현지 영어 표현, 지명, haze, 서비스·보증 질문 영어 dictionary, place substitution, Malaysia RAG와 제품 기능 범위 분리 한국어 회귀 + 말레이시아 표현 negative/positive set
B2B/B2C 답변 분기 동일 질문의 제품·계약별 답변 차이 device/product mode를 bounded context로 사용 mode 없음, 잘못된 mode, mode 전환 후 cache 오염까지 검증

원문 전달은 구현 history f9e1851a와 현재 originalSttResult 경로에서 근거가 확인된다. 판정할 때는 “Cloud에 문자열이 보였다”로 끝내지 않고 STT raw, processed, request body, Cloud response, rewrite 재진입을 같은 turn으로 묶어야 한다.

4.4 Quality, Release와 Field Operation

Project 실제 업무 필수 산출물 완료 Gate
1차 EVAL set 보강 단순 인사부터 Case 2/3/4, 기능별 positive/negative 확장 발화, expected case/token/function/action/TTS, 모델 raw 결과 기능·언어·경계별 coverage와 재현 가능한 runner
Prompt Auto Evaluation 기존 prompt와 후보 prompt를 model/judge로 비교 results.jsonl, results.csv, winner·confidence·case 비교 자동 judge와 수동 제품 판정 불일치 검수
SQE 릴리즈 전 협의 릴리즈 후보, 기기·언어·기능 범위와 알려진 이슈 합의 acceptance matrix, blocker, waiver, 재시험 항목 SQE와 동일 APK/model/dictionary/prompt 기준선 확인
에러 리팩토링 error code가 이동·청정·LLM 중 어디를 막는지 재분류 ErrorGroup, 사용자 TTS, 상태 reset, 회귀표 E09, S02, management-only code 등 오그룹 차단
저전력 이동 중 emergency 분석 이동 중 battery/emergency 값 변화가 기능 차단·TTS에 미치는 영향 시간순 DeviceAgent/Quber/LLM log와 source owner SQEA1DEF1-1185/1004 재현, false block/unsafe continue 구분
날씨 field 이슈 위치·네트워크·단위·condition mapping·발음 문제 API raw, enum mapping, TTS/subtitle, locale 비교 data 문제와 LLM 표현 문제 분리
말레이시아 현지 검증 지명·기능 영어·RAG·미지원 표현 필드 테스트 local phrase set, Cloud 결과, token/API/TTS, vendor feedback 현지 positive/negative 회귀와 국내 기능 회귀 동시 통과
STT 모델 릴리즈 model artifact, 언어, decoder 성능과 앱 패키징 model hash/version, WER/CER, latency, APK asset 확인 cold/warm 실기기, noisy/clean, rollback 가능한 artifact
LLM 모델 릴리즈 local model/config/prompt/dictionary 호환성 검증 model hash, prompt version, token set, latency·memory 기능 회귀, 빈 응답·restart, native lifecycle stress
MR8 브랜치 운영 schedule/night mode/dictionary/model 변경을 release line에 통합 기준 commit, 포함 목록, conflict, test report branch 생성 자체가 아니라 release APK 실기기 통과

5. 대표 시나리오와 E2E 판정

S-01 · 고정 청정 스케줄 등록

사용자: "평일 오후 5시에 고정 청정해줘"

STT raw/original
  -> dictionary 또는 local LLM
  -> <sk_48>(action=1, day=weekday, start=17:00)
  -> on-device only / Cloud schedule 경로 판정
  -> 동일 시간 중복 조회
  -> 등록
  -> 성공·중복·실패 TTS와 화면 반영
확인점 기대 결과
의미 일반 “스케줄”이 아니라 고정 청정 schedule로 확정
slot 요일과 시작 시간 보존, 임의 sample 값 사용 금지
저장 경로 on-device/server 기준과 network fallback 명확화
중복 메시지 문자열이 아니라 확정 error code 우선
UX 등록 결과와 실제 저장 결과가 일치

S-02 · 선택 공간 청정 스케줄

사용자: "내일 아침 8시에 거실하고 안방 청정해줘"

이 시나리오는 시간만 해석해서는 완료되지 않는다. 내일, 08:00, 거실, 안방, 선택공간청정 mode와 공간 순서를 보존해야 한다. 등록 공간이 없거나 이름이 불일치하면 임의 공간으로 대체하지 않고 구체적으로 되묻는다. 최종 Gate는 CLMD0003 payload와 backend·Device API 계약이 동일한지다.

S-03 · 인터랙션 스케줄 제어

발화 기대 처리
“웨이크업 스케줄 시작해줘” 음성 start 미지원 정책이면 앱/기기화면 안내
“웨이크업 잠깐 멈춰줘” 현재 interaction schedule 실행 중일 때 pause
“릴렉스 다시 시작해줘” paused 상태에서만 resume, 아니면 상태 기반 안내
“스케줄 끝내줘” active interaction schedule을 stop하고 관련 상태 정리

여기서 웨이크업·릴렉스는 설명 질문과 실행 제어가 다르다. “웨이크업 기능이 뭐야”는 설명이고 “웨이크업 멈춰줘”는 현재 상태를 확인하는 제어다.

S-04 · 나이트모드 상시·시간지정 전환

발화 의미 기대 동작
“나이트 모드 켜줘” generic ON 현재 예약 대기·실행 상태를 보존해 적절한 안내
“나이트 모드 항상 켜둬” always ON 예약 mode를 해제하고 상시 mode로 전환
“매일 밤 10시에 나이트 모드 켜줘” scheduled ON 시작·종료 정책을 확정해 time mode 등록
“나이트 모드 꺼줘” OFF 현재 실행만 끌지 예약 자체도 삭제할지 사양대로 구분
“나이트 모드 켜져 있어?” GET command 없이 현재 상시/예약대기/예약실행 상태 응답

시작 시간만 말한 경우 07:00 종료를 자동 적용할지 질문할지는 제품 정책이다. LLM이 임의 종료 시간을 창작하지 않도록 prompt와 resolver가 같은 정책 상수를 사용해야 한다.

S-05 · 대기화면 커스텀 공기질

사용자: "대기화면을 커스텀 공기질로 바꿔줘"
  -> SK_39 theme 의미 확정
  -> 현재 theme 조회
  -> custom image 존재 확인
  -> 존재하면 setPuiWaitingScreenTheme
  -> 없으면 앱에서 이미지 등록 안내

가장 큰 리스크는 기존 <sk_39>(theme=2)가 상세 공기질을 의미한다는 점이다. 따라서 dictionary만 추가하면 안 되고 parameter migration, enum, DB mapping, multiturn 문구, API 값, 한국어·영어 regression을 함께 변경해야 한다.

S-06 · 날씨 상태와 번역

사용자: "내일 쿠알라룸푸르 날씨 알려줘"
  -> STT 지명 보존
  -> location/timeframe 전달
  -> Weather API condition code
  -> locale mapping
  -> 온도 단위·최저·최고·습도
  -> 자연스러운 TTS

scattered_clouds 변경은 단순 문구 수정이 아니다. API code, WeatherCondition, 한국어·영어 resource, icon과 prompt context가 같은 의미를 사용해야 한다.

S-07 · Cloud Rewrite 재진입

사용자: "밤 열 시부터 조용하게 나이트 모드 해줘"
  -> originalSttResult를 Cloud에 전달
  -> Case 2 + rewrite_query
  -> local dictionary / local LLM 재진입
  -> 기대 <sk_28> parameter 생성
  -> 사전 검증과 Device API
  -> TTS

Cloud Case가 맞아도 rewrite가 action·type·시간을 잃으면 실패다. 이 시나리오는 Case -> rewrite -> token -> API -> TTS 다섯 결과를 모두 평가한다.

S-08 · 말레이시아 제품 질의와 기능 실행 분리

입력 기대 경로
“What is all-time mode used for?” 제품 설명 answer
“Turn on all-time mode.” <sk_49> 제어
“What’s the advantage of a notification box?” 제품 설명 answer
“Delete all notifications.” 음성 미지원이면 Case 4 안내
“How is the haze in Kuala Lumpur?” 현지 location·환경 Cloud/RAG

같은 명사를 포함해도 설명, 상태조회, 실행, 미지원 기능이 다르다. Malaysia set은 영문 positive만 늘리지 않고 서로 충돌하는 negative pair까지 관리한다.

S-09 · STT·LLM 모델 릴리즈

모델 릴리즈는 파일 교체가 아니라 아래 compatibility bundle을 함께 고정하는 프로젝트다.

STT model + language config + preprocessing + substitution
Local LLM model + runtime config + prompt + dictionary/token schema
Cloud prompt/model + response contract + rewrite compatibility
TTS resource + Android release APK

release report에는 model hash, source commit, prompt/dictionary version, APK cert, 기기, latency·memory, 발화셋 결과와 rollback artifact가 함께 있어야 한다.

6. 프로젝트 단위 업무 카드 표준

앞으로 릴리즈 노트의 한 줄 업무는 다음 필드를 가진 카드로 관리한다.

필드 작성 기준
업무 번호 / 제목 SQE, 개발 대기목록, 릴리즈 노트 번호와 연결
사용자 시나리오 실제 사용 발화와 현재 기기 상태 포함
기대 의미 설명·조회·실행·예약·미지원 중 무엇인지
기대 계약 Case, 재질의, 토큰, 입력값, API, TTS
1차 원인 책임 STT, 사전, 로컬 LLM, 클라우드, TTS, 기기 API 중 1차 책임
의존 대상 Launcher, Quber, DeviceAgent, 백엔드, SQE 등
인수 기준 정상·오류·중복·누락 입력·지역별 시험 기준
검증 근거 브랜치·커밋, APK·모델 해시, 로그, 시험 결과
미확정 정책 기본 시간, 지원 범위, 사용자 추가 질문 여부
출시 상태 설계, 구현, 통합, 실기기 검증, SQE 승인

이 형식이면 “나이트모드 개발”, “말레이시아 검증”처럼 범위가 큰 한 줄을 실제 실행 가능한 개발·검증 단위로 나눌 수 있다.

7. 역할별 세부 R&R

역할 Accountable Responsible Consulted / 협업 대표 산출물
LLM Product / Technical Owner 제품 목표, 우선순위, 지원 범위, 최종 acceptance 요구사항·정답 정책 승인 모든 기술 역할 요구사항, 우선순위, Go/No-Go
Speech / STT Engineer 음성 입력부터 recognized text 품질 AudioRecord, preprocessing, STT, substitution Audio/AFE, QA WER/CER, latency, raw/processed 비교
On-device LLM Engineer local LLM과 voice runtime 안정성 dictionary, Genie, lifecycle, TTS 연결 Speech, Android, Cloud APK, unit/instrumentation, memory trace
Cloud LLM Engineer 일반 응답·rewrite·RAG 계약과 가용성 prompt, API, credential, retry, error mapping On-device, QA, 문서 owner Lambda revision, contract tests, token report
Speaker / Personalization Engineer speaker inference 품질과 lifecycle enrollment, embedding, hard join, fallback Speech, UX, privacy FAR/FRR/EER, profile lifecycle evidence
Android / SoC Engineer system app 실행 환경과 platform 정합 signing, priv-app, permission, process, rollback On-device, QA signed APK 검증, device install evidence
QA / SQA 독립된 release 판정과 회귀 기준선 test design, E2E, stress, evidence 분류 모든 구현 역할 baseline, defect report, acceptance matrix
Documentation / Operations 재현 가능한 지식과 배포 runbook, architecture, release note, llmwiki Owner, 개발, QA wiki page, source map, 운영 절차

8. 현재 협업 기준 책임 분담

이 표는 조직 직책이 아니라 현재 사용자와 구현·검증 지원 사이의 의사결정 경계다.

구분 제품·기술 오너 구현·검증 지원
목표 제품 우선순위, 사용자 경험, 허용 가능한 동작 결정 목표를 코드·계약·테스트 단위로 분해
범위 포함·제외, 정답 정책, 배포 시점 승인 저장소와 실제 구현을 조사해 변경 범위 제안
구현 위험·정책상 승인 필요한 변경 결정 코드 수정, 충돌 정합, 빌드와 자동 테스트
실기기 기기 제공, 물리 동작·음성 체감 acceptance release signing 확인, push, logcat, 반복 검증
품질 애매한 정답과 사용자-facing 기준 최종 판단 실패 분류, 원인 분석, 회귀 결과와 위험 보고
릴리즈 commit/push/제품 반영 최종 통제 변경 목록, 민감정보 검사, wiki 배포와 증거 정리

원칙적으로 구현·검증 지원이 사용자 정책을 임의로 확정하지 않으며, 제품·기술 오너가 코드 근거 없이 구현 성공을 선언하지 않는다.

9. RACI 매트릭스

A는 최종 책임, R은 수행, C는 협의, I는 결과 공유다.

업무 Product Owner Speech On-device LLM Cloud LLM Android/SoC QA Docs/Ops
음성 turn과 F1/F2/F3 C A/R R I C C I
STT·전처리 C A/R C I C R I
dictionary·local token A C R C I R I
local LLM lifecycle C I A/R I C R I
Cloud response·rewrite·RAG A I C R I R I
TTS·응답 UX A C R C C R I
화자 inference A R R I C R I
latency·token·memory A R R R C R I
system APK release C I R I A/R R I
장애 분석·release gate A C C C C R R

10. 장애 분류와 인계 기준

관찰 증상 1차 소유 먼저 볼 증거 다음 인계 조건
말이 중간에 잘리거나 입력이 끝나지 않음 Voice/STT F1/F2/F3, AudioRecord, timer, buffer log PCM 자체가 끊기면 Audio/AFE로 인계
recognized text가 틀림 STT raw/processed WAV, decoder result 텍스트는 맞고 token만 틀리면 Dictionary로 인계
local token이 잘못 매칭됨 On-device LLM normalized text, matched entry, negative fixture Cloud rewrite가 원인이면 Cloud LLM으로 인계
Cloud 응답이 없거나 권한 오류 Cloud LLM HTTP status, credential, retry, Lambda log 기기 네트워크 자체 문제면 Android/Network로 인계
LLM 응답 후 앱이 죽음 On-device Runtime PID, tombstone, native backtrace, LMKD, PSS image/SELinux/permission이면 Android/SoC로 인계
TTS가 중복·중단되거나 idle로 안 감 TTS/Voice Runtime queue, playback callback, LLM/TTS status audio output 경로 문제면 Audio로 인계
APK 교체 뒤 부팅 또는 앱 시작 실패 Android/SoC cert, hash, package path, logcat, SELinux 앱 native init이면 On-device Runtime으로 인계

11. 공통 완료 정의

업무 패키지는 아래 다섯 단계가 모두 충족되어야 완료로 본다.

  1. 계약: 입력, 출력, 오류, lifecycle이 문서와 코드에서 일치한다.
  2. 자동 검증: unit 또는 instrumentation이 핵심 회귀를 막는다.
  3. 통합 검증: 실제 local/Cloud/TTS 경로가 한 turn으로 연결된다.
  4. 실기기 증거: release/platform-signed APK에서 로그와 물리 음성 결과를 확인한다.
  5. 운영 전달: 변경 목록, 알려진 한계, rollback, runbook과 wiki가 남는다.
증거 수준 주장 가능한 것 주장할 수 없는 것
Compile 소스가 빌드됨 기기에서 기능이 동작함
Unit 함수 계약이 fixture에서 맞음 Android lifecycle과 native runtime이 안정적임
Integration 모듈 간 payload가 연결됨 실음성·실기기 품질이 합격함
Connected device 특정 보드와 APK에서 경로가 동작함 장시간·다사용자 제품 acceptance가 끝남
Product acceptance 정해진 반복·품질·복구 Gate 통과 다른 모델·보드·국가에서도 자동 보장됨

12. 주요 저장소와 산출물

저장소 / 문서 Non-A2A LLM 책임
skmagic_ondeviceai_agent Voice ingress, STT, dictionary, local LLM, Cloud client, TTS, Android lifecycle
backend-cloud-llm-lambda 일반 Cloud response, rewrite, RAG, API/error contract. A2A 모듈은 본 문서 제외
QNN/Sherpa integration workspace CPU STT, QNN speaker companion, model/runtime artifact와 HTP resource 검증
Speech Recognition Module 비-A2A Speech/LLM 문서 허브
Voice Agent Refactoring Release buffer, F1/F2/F3, memory, release 실증
Vendor LLM Training E2E, dictionary, Cloud, 로그 분석, 운영 교육
Validation and Quality 증거 수준과 release gate

13. 우선순위 백로그

우선순위 과업 완료 신호
P0 Voice session 종료·취소·다음 turn 안정화 F1/F2/F3·TTS 반복에서 PID와 state 정상 수렴
P0 local LLM native death와 restartable error 구분 dedicated health/error contract와 tombstone correlation
P0 Cloud credential·timeout·5xx 복구 표준화 사용자 오류, retry 상한, 운영 로그가 일치
P1 STT 전처리 decoder 기준 검증 raw/processed WER/CER와 제품 발화 성공률 확보
P1 응답·rewrite 품질셋과 negative collision 확대 기능 약속·내부 field 노출·오매칭 회귀 차단
P1 token·latency·memory 통합 ledger call당 비용과 p95, PSS/CMA를 release마다 비교
P1 QNN speaker 실사용 acceptance 등록·다화자 FAR/FRR/EER와 장시간 반복 통과
P2 운영 자동화 release APK 검증, evidence 수집, wiki publish를 재현 가능하게 표준화

결론

비-A2A LLM 업무의 핵심은 모델 prompt 하나가 아니다. 음성 turn을 잃지 않고, STT와 local/Cloud 판단을 안정적으로 연결하고, TTS와 Android lifecycle까지 종료하며, 그 품질·비용·장애를 재현 가능한 증거로 관리하는 제품 실행 체계다.

A2A는 이 입력과 응답 위에서 owner와 plan을 결정하는 별도 계층이다. 따라서 이 R&R을 먼저 명확히 해야 A2A 문제와 음성·LLM runtime 문제를 서로 떠넘기지 않고 각 계층의 성능을 독립적으로 개선할 수 있다.

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date