A2A Planner Research Reading List
이 문서는 A2A Planner, 의미 축 조정, context-aware routing, STT_NULL/DEF 경계, capability-grounded planning을 외부 연구 프레임과 연결하기 위한 읽기 자료다.
목적은 “우리 시스템이 어떤 기존 연구 흐름 위에 있는가”를 설명하는 것이다. 단순 agent 유행어 목록이 아니라, 현재 구현의 판단 축과 직접 연결되는 논문/기법만 우선순위로 정리한다.
1. 먼저 잡을 기술 프레임
현재 A2A Planner는 아래 문장으로 외부 연구 맥락에 올릴 수 있다.
Context-aware intent routing and capability-grounded LLM planning
with semantic decision-boundary calibration.
한국어로 풀면 아래와 같다.
A2A Planner는 단순 intent classifier가 아니라,
대화 상태와 기기 상태를 함께 해석하는 context-aware planner다.
외부 연구 관점에서는 Task-Oriented Dialogue의 intent/slot/state tracking,
SayCan/LLM-Planner 계열의 capability-grounded planning,
clarification question 계열의 ambiguity repair,
OOD/open-intent detection,
그리고 decision-boundary calibration을 결합한 구조로 설명할 수 있다.
2. 우선 읽을 논문 10개
| 우선 | 논문/자료 | 핵심 키워드 | 우리 A2A와의 연결 |
|---|---|---|---|
| 1 | SayCan: Do As I Can, Not As I Say | affordance-grounded planning | LLM 판단을 실제 가능한 skill/capability로 제한한다. capability_registry, ODL/SCH 실행 가능성 판단과 직접 연결된다. |
| 2 | LLM-Planner: Few-Shot Grounded Planning for Embodied Agents | grounded planning | 자연어 지시를 현재 환경에 grounded된 plan으로 변환한다. recognized_text + device_context + registry -> steps 구조와 유사하다. |
| 3 | ProgPrompt: Generating Situated Robot Task Plans using LLMs | situated action catalog | 가능한 action/object를 prompt에 넣어 plan을 제약한다. skill_registry, flow_catalog, catalog-grounded planning 설명에 좋다. |
| 4 | Inner Monologue: Embodied Reasoning through Planning with Language Models | feedback-aware planning | 환경 feedback, human feedback, success detection을 다시 context로 넣는다. workflow_context, callback, replan과 연결된다. |
| 5 | ReAct: Synergizing Reasoning and Acting in Language Models | reasoning + acting | 판단과 action/tool 실행을 번갈아 수행한다. Planner 판단 후 TaskManager/tool 실행으로 넘기는 구조 설명에 좋다. |
| 6 | A Survey of Joint Intent Detection and Slot-Filling Models | intent + slot | family 판단 + slot filling의 기본 배경이다. SCH workflow와 멀티턴 slot 채우기 설명에 필요하다. |
| 7 | Effective Open Intent Classification with K-center Contrastive Learning and Adjustable Decision Boundary | adjustable decision boundary | 우리가 말하는 “축 조정”과 가장 가깝다. DEF/STT_NULL, UNS, open intent 경계 설명에 좋다. |
| 8 | CLAM: Selective Clarification for Ambiguous Questions | selective clarification | 애매한 입력에 무조건 답하지 않고 clarification을 선택한다. STT_NULL_SOFT, missing_slots, replyability와 연결된다. |
| 9 | A Survey on Out-of-Distribution Detection in NLP | OOD / abstention | STT_NULL, UNS, 지원범위 밖 발화를 안전하게 거르는 근거다. |
| 10 | Behavior Trees in Robotics and AI | reactive task execution | 실행 중 상태/실패/재시도/조건분기 기반 workflow 설명에 좋다. DeviceAgent TaskManager lifecycle과 연결된다. |
3. Planner와 context 해석에 직접 연결되는 자료
3.1 Grounded LLM Planning
| 자료 | 볼 지점 | A2A 연결 |
|---|---|---|
| SayCan | language model score와 affordance score를 결합하는 방식 | 사용자가 말한 의미와 실제 기기 capability를 함께 본다는 점 |
| LLM-Planner | language instruction을 grounded plan으로 변환 | Planner가 route family와 step plan을 생성하는 구조 |
| ProgPrompt | action/object list를 prompt context로 제공 | catalog 밖 skill hallucination 방지 |
| Code as Policies | 자연어를 executable policy로 변환 | 자연어를 device_task_requests 또는 submitWorkflow payload로 바꾸는 방향 |
이 축의 핵심 질문은 아래다.
사용자가 무엇을 원한다고 해석했는가?
그리고 현재 시스템/기기가 실제로 그것을 할 수 있는가?
우리 구현에서는 이 질문이 capability_registry, skill_registry, device_context, ranked_top_flows로 들어간다.
3.2 Context-Aware Intent Routing
| 자료 | 볼 지점 | A2A 연결 |
|---|---|---|
| A Survey of Joint Intent Detection and Slot-Filling Models | intent와 slot을 함께 보는 NLU 구조 | ODL/SCH/DQR/... family와 room/time/action slot |
| Recent Neural Methods on Slot Filling and Intent Classification | task-oriented dialogue의 intent/slot 처리 | schedule agent와 멀티턴 slot filling |
| A Survey of Intent Classification and Slot-Filling Datasets | intent/slot dataset과 평가 구조 | A2A benchmark, holdout set, 정답지 관리 |
| Intent-Aware Dialogue Generation and Multi-Task Contrastive Learning for Multi-Turn Intent Classification | multi-turn context에서 intent 변화 추적 | active workflow 안에서 짧은 slot 답변을 해석하는 구조 |
우리의 context-aware routing은 단일 문장 분류가 아니다.
recognized_text
+ voice_context
+ history_context
+ workflow_context
+ device_context
+ capability_registry
+ preclassifier_hints
같은 “오후 6시”라도 schedule workflow 안에서는 slot answer이고, 단독 발화에서는 DEF 또는 STT_NULL일 수 있다.
3.3 Semantic Decision Boundary Calibration
축 조정을 외부 용어로 가장 정확히 표현하면 아래다.
Semantic decision-boundary calibration
단순히 “프롬프트를 조금 고친다”는 뜻이 아니다. 분류기가 어떤 family를 고를지 결정하는 의미 경계를 context와 evidence에 맞게 보정한다는 뜻이다.
일반적인 intent classifier는 입력 발화를 feature 공간에 놓고 가장 가까운 label을 고른다. A2A Planner에서는 이 feature 공간이 단순 embedding이 아니라 아래 의미 축들의 조합이다.
device execution axis
schedule workflow axis
device/product knowledge axis
public/freshness lookup axis
conversation/direct-reply axis
unsupported capability axis
stt-noise / repairability axis
context continuation axis
Semantic이라는 단어가 붙는 이유는 경계가 단순 keyword threshold가 아니기 때문이다. 예를 들어 예약, 알람, 설정, 하이나무, 어떻게 같은 단어는 단독으로 family를 결정하지 않는다. 그 단어가 어떤 speech act, target, slot, context와 결합되는지에 따라 경계가 이동한다.
"알람 꺼줘" -> 즉시 제어면 ODL
"내일 7시에 알람" -> 등록/수정 workflow면 SCH
"알람 그" -> slot fragment면 SCH recovery 후보 또는 STT_NULL_SOFT
"알람 얘기하더라" -> 서술 잔여물이면 DEF/STT_NULL
즉, 축 조정은 “알람이면 SCH” 같은 룰 추가가 아니라, schedule word가 언제 workflow intent로 승격되는지 결정하는 의미 경계를 조정하는 작업이다.
우리 작업에서 실제 조정한 경계는 아래다.
| 경계 | 왜 어려운가 | 외부 프레임 |
|---|---|---|
DEF <-> STT_NULL |
짧지만 즉답 가능한 대화와 깨진 STT 조각을 구분해야 한다. | ambiguity detection, abstention, speech-act classification |
ODL <-> SCH |
알람/시간/예약 단어가 있어도 즉시 제어인지 schedule workflow인지 갈린다. | intent boundary, slot-conditioned routing |
DQR <-> FRG |
제품/기기 설명인지 외부/public 정보인지 대상 grounding이 필요하다. | label semantics, entity grounding |
UNS <-> DEF/FRG |
지원하지 않는 실행 요청인지 일반 대화/지식 질문인지 구분해야 한다. | open intent, OOD, unsupported capability detection |
관련 자료:
| 자료 | 볼 지점 | A2A 연결 |
|---|---|---|
| Effective Open Intent Classification with Adjustable Decision Boundary | decision boundary를 조정해 known/unknown intent를 분리 | STT_NULL, UNS, DEF 경계 |
| Dynamic Label Name Refinement for Few-Shot Dialogue Intent Classification | label semantics를 동적으로 정교화 | DEF란 무엇인가, STT_NULL은 어디까지인가 같은 family 의미 재정의 |
| Few-Shot Intent Detection via Contrastive Learning | semantic하게 가까운 intent 분리 | DQR/FRG, DEF/STT_NULL, ODL/SCH 분리 |
| IntenDD: Unified Contrastive Learning for Intent Detection and Discovery | known intent detection과 unknown discovery | 새로운 기능/미지원/노이즈 분리 |
| On Calibration of Modern Neural Networks | confidence calibration의 기본 | intent_clarity, recoverability, over_inference_risk 설명 |
3.3.1 A2A에서 decision boundary가 필요한 이유
음성 기반 device agent에서는 오분류의 비용이 family마다 다르다.
| 오분류 | 위험 |
|---|---|
STT_NULL -> ODL |
깨진 발화를 실제 기기 실행으로 과해석할 수 있다. |
DEF -> STT_NULL |
자연스럽게 응답 가능한 짧은 대화를 “다시 말해달라”로 끊는다. |
ODL -> SCH |
즉시 실행 명령을 스케줄 workflow로 잘못 보낸다. |
DQR -> FRG |
기기/제품 설명을 외부 검색으로 보내거나 반대로 외부 지식을 제품 설명으로 흡수한다. |
FRG -> DEF |
외부 정보가 필요한 질문을 일반 대화로 처리해 답변 품질이 떨어진다. |
따라서 A2A의 축 조정은 정확도만 올리는 작업이 아니라, 실행형 AI의 risk boundary를 조정하는 작업이다. 특히 device action이 포함된 family는 과실행을 막아야 하고, 대화 family는 과차단을 줄여야 한다.
3.3.2 경계는 context에 따라 이동한다
같은 문장도 context가 다르면 다른 family가 될 수 있다.
| 발화 | context 없음 | active workflow 있음 | 해석 |
|---|---|---|---|
오후 6시 |
STT_NULL 또는 DEF |
SCH slot answer |
schedule workflow가 시간 slot을 기다리는 중이면 의미가 생긴다. |
거실 |
STT_NULL 또는 ODL weak candidate |
ODL target slot |
이동/청정 task가 공간을 기다리면 target room이 된다. |
꺼줘 |
target 없으면 STT_NULL_SOFT |
ODL |
직전 대상이 명확하면 실행 intent가 복구된다. |
안녕 |
DEF |
DEF |
context 없이도 첫 응답이 가능한 speech act다. |
이 관점에서 voice_context, workflow_context, history_context, device_context는 단순 보조 정보가 아니라 decision boundary를 이동시키는 조건이다.
boundary_without_context:
"오후 6시" -> no dominant first response
boundary_with_schedule_context:
"오후 6시" -> time slot filled -> SCH continuation
3.3.3 우리가 말한 “축”의 실제 의미
내부에서 말한 축은 사람이 해석 가능한 feature axis다. 예를 들어 STT_NULL 경계에서는 아래 축을 본다.
| 축 | 질문 | family에 주는 영향 |
|---|---|---|
| target scope | 안정적인 대상이 있는가? device/workflow/public/conversation/none | 대상이 없으면 STT_NULL 쪽으로 기운다. |
| intent clarity | 첫 응답 방향이 명확한가? | 낮으면 abstention 또는 clarification이 필요하다. |
| recoverability | minor repair나 좁은 질문으로 복구 가능한가? | 높으면 STT_NULL_SOFT 또는 slot follow-up이 가능하다. |
| over-inference risk | 대상/행동을 새로 만들어야 하는가? | 높으면 device 실행을 막아야 한다. |
| replyability | 지금 바로 자연스러운 첫 응답이 가능한가? | 가능하면 DEF로 살릴 수 있다. |
예시:
"안녕"
target_scope = conversation
intent_clarity = high
replyability = high
over_inference_risk = low
=> DEF
"하이 에이아이 사이일"
target_scope = none or weak product anchor
intent_clarity = low
replyability = low
over_inference_risk = high
=> STT_NULL
"하이나무 침실"
target_scope = device
intent_clarity = medium
recoverability = medium
over_inference_risk = medium
=> ODL recovery candidate, context에 따라 follow-up 또는 실행 후보
3.3.4 축 조정은 어디에서 일어나는가
실제 구현에서는 한 곳에서만 경계를 조정하지 않는다.
| 레이어 | 조정 대상 | 예 |
|---|---|---|
| Preclassifier | LLM 전 evidence flag | has_schedule_workflow_scope, has_stable_conversation_scope |
| Registry/Catalog | 가능한 family/flow 후보 | unsupported category, capability kind, skill when_to_use |
| Main Planner Prompt | family 정의와 우선순위 | ODL vs SCH, DQR vs FRG |
| Second Pass Judge | 회색지대 재판정 | DEF vs STT_NULL, FRG vs DEF |
| STT_NULL Policy | 과실행 방지/복구 전략 | HARD, GENERIC, SOFT subtype |
| Benchmark Label | 정답 family 의미 고정 | 정답지가 최신 정책과 다르면 성능 해석이 깨진다. |
그래서 성능이 흔들릴 때는 “프롬프트가 틀렸다”로 바로 결론내리면 안 된다. 먼저 어떤 boundary layer에서 밀렸는지 봐야 한다.
3.3.5 축 조정 절차
현재 A2A에서 사용한 실무 절차는 아래와 같다.
- Full-run 결과에서
expected -> predicted전이를 뽑는다. - 상위 오분류 전이를 family boundary 단위로 묶는다.
- 각 묶음에서 정답지 오류와 라우터 오류를 분리한다.
- 라우터 오류는 cue 추가보다 먼저 family 정의와 semantic axis를 점검한다.
- 실제 수정은 가능하면 한 boundary만 좁게 건드린다.
- focused test로 boundary 회귀를 막는다.
- full-run으로 전체 전이표가 좋아졌는지 확인한다.
이 절차를 표로 쓰면 아래다.
| 단계 | 산출물 |
|---|---|
| Error transition mining | DEF -> STT_NULL, STT_NULL -> ODL 같은 전이표 |
| Boundary diagnosis | 어떤 의미 축이 과하게 켜졌는지 분석 |
| Label audit | 정답 family가 최신 정책과 맞는지 검수 |
| Axis adjustment | prompt/cue/registry/second-pass 중 최소 변경 |
| Regression test | 대표 경계 예시를 unit test에 고정 |
| Full-run validation | family별 accuracy와 전이 감소 확인 |
3.3.6 룰베이스와 축 조정의 차이
둘은 겉보기에는 비슷해 보일 수 있다. 차이는 아래다.
| 구분 | 룰베이스 과적합 | Semantic boundary calibration |
|---|---|---|
| 단위 | 특정 문구/행 하나를 맞춤 | 의미 범주와 판단 경계를 보정 |
| 예 | "안녕"이면 DEF |
greeting/social opening은 직접 응답 가능한 speech act이므로 DEF |
| 확장성 | 비슷한 새 표현에 약함 | 같은 speech act나 target scope에 일반화 가능 |
| 위험 | 테스트셋 암기 | family 정의와 실행 risk를 명확히 함 |
| 검증 | 해당 행만 맞음 | 전이 그룹 전체가 개선되어야 함 |
따라서 cue를 추가하더라도 설명이 아래 수준이어야 안전하다.
나쁜 설명:
"row 290 안녕을 맞히기 위해 안녕을 DEF로 추가"
좋은 설명:
"첫 턴 사회적 인사/호출/반응은 별도 target 없이도 즉답 가능한 speech act이므로
conversation replyability axis를 high로 둔다."
3.3.7 한 문장
Semantic decision-boundary calibration은 LLM router의 label을 맞히기 위한 프롬프트 튜닝이 아니라,
발화의 speech act, target scope, slot completeness, device capability, dialogue state를 함께 보고
route family 사이의 의미 경계를 안전하게 이동시키는 작업이다.
4. STT_NULL, clarification, uncertainty 자료
STT_NULL은 단순히 “인식 실패”가 아니다. A2A에서는 아래 세 가지를 분리해야 한다.
1. 의미가 붕괴되어 첫 응답 방향이 없다.
2. 약한 scope는 남아 있지만 실행/답변은 위험하다.
3. slot 또는 context가 부족해 좁은 질문으로 복구할 수 있다.
관련 자료:
| 자료 | 볼 지점 | A2A 연결 |
|---|---|---|
| CLAM: Selective Clarification for Ambiguous Questions | ambiguity가 있을 때 clarification을 선택 | STT_NULL_SOFT, replyability, missing_slots |
| Interactive Question Clarification in Dialogue via Reinforcement Learning | clarification으로 user intent를 좁힘 | 후속 질문 전략 |
| Towards Asking Clarification Questions for Information Seeking on Task-Oriented Dialogues | task-oriented dialogue에서 정보 부족 질문 | schedule slot filling |
| A Survey on Out-of-Distribution Detection in NLP | OOD/OOS detection | STT_NULL, UNS, 지원범위 밖 처리 |
| Generalized Out-of-Distribution Detection: A Survey | open-set, novelty, anomaly 개념 | family 밖 발화 처리 |
발표에서는 아래 문장을 쓸 수 있다.
STT_NULL은 낮은 confidence label이 아니라,
첫 응답 가능성, 복구 가능성, 과추론 위험을 함께 보는 abstention boundary다.
5. Planner second pass와 LLM-as-Judge 자료
우리 second_pass_family_judge, replyability_judge, object_typer는 main planner와 별도의 verifier/judge layer로 볼 수 있다.
| 자료 | 볼 지점 | A2A 연결 |
|---|---|---|
| ReAct | reasoning과 acting을 결합 | 판단 후 device task 실행 |
| Tree of Thoughts | 여러 후보 reasoning path를 탐색/평가 | ranked flow, 회색지대 후보 비교 |
| Self-Consistency | 여러 reasoning path 중 일관된 답 선택 | 향후 family voting/judge ensemble 방향 |
| Self-Refine | 1차 결과를 feedback으로 반복 개선 | second pass, prompt refinement |
| Reflexion | 실패 경험/feedback을 다음 판단에 반영 | benchmark-driven axis tuning |
| ReSpAct | reasoning, speaking, acting을 함께 처리 | clarification과 action이 섞인 multi-turn agent |
우리 구조를 기술하면 아래와 같다.
main planner = generator / supervisor
second pass judge = verifier for ambiguous boundaries
replyability judge = direct reply feasibility checker
object typer = target grounding checker
6. Task decomposition과 DeviceAgent 실행계 자료
Planner가 만든 plan은 실제 실행 가능한 workflow로 내려가야 한다. 이 부분은 planning/robotics 문헌과 연결된다.
| 자료 | 볼 지점 | A2A 연결 |
|---|---|---|
| Hierarchical Task Network Planning Survey | high-level task를 하위 task로 분해 | submitWorkflow(subTasks), move -> clean -> return |
| Behavior Trees in Robotics and AI | 상태/조건/실패/retry 기반 task execution | TaskManager lifecycle, reason/event contract |
| Safety Aware Task Planning via Large Language Models in Robotics | LLM planner와 safety 판단 분리 | UNS, STT_NULL, over-inference risk, guardrail |
우리 TaskManager 연결은 아래처럼 설명할 수 있다.
Planner는 의미와 순서를 만든다.
TaskManager는 실행 lifecycle, queue, callback, reason, replan boundary를 관리한다.
7. 우리 문서/구현과 논문 프레임 매핑
| 우리 문서/구현 | 외부 프레임 | 설명 |
|---|---|---|
| Planner and Routing | context-aware intent routing | family, step, missing slot, STT_NULL 기준 |
| A2A Planner Deep Dive | grounded LLM planner + verifier | preclassifier, catalog, main planner, second pass |
preclassifier.py |
evidence-based NLU / semantic axes | LLM 전 evidence 축 생성 |
capability_registry, skill_registry |
affordance grounding / action catalog | 가능한 기능과 agent/skill 후보 제한 |
STT_NULL_HARD/GENERIC/SOFT |
abstention / clarification / OOD | 답변 불가, 되묻기, 노이즈 분리 |
second_pass_family_judge |
LLM-as-judge / verifier | 애매한 family 경계 재판단 |
workflow_context, slot_state |
dialogue state tracking | multi-turn slot 및 active workflow 유지 |
| Device Task Flow | semantic parsing to executable workflow | 자연어 plan을 device task request로 변환 |
| DeviceAgent TaskManager 기준 사양서 | HTN / behavior tree / event-driven execution | task/workflow lifecycle 관리 |
8. 발표/논문에 바로 쓸 표현
8.1 영어 표현
Semantic decision-boundary calibration
Capability-grounded LLM planning
Context-aware intent routing
Clarification-oriented dialogue repair
Open-intent and OOD-aware abstention
Registry-constrained agent selection
Affordance-grounded task planning
Dialogue-state-conditioned routing
Verifier-based second-pass routing refinement
Natural language to executable device workflow
8.2 한국어 표현
의미 축 기반 판단 경계 보정
기기 capability에 grounded된 LLM planner
대화 상태 기반 intent routing
모호성 복구를 위한 되묻기/clarification
지원범위 밖 발화와 STT 붕괴 발화의 abstention 경계
registry로 제한된 agent/skill 선택
자연어 발화를 실행 가능한 device workflow로 변환
9. 읽는 순서
처음 보는 사람에게는 아래 순서를 추천한다.
- SayCan: capability/affordance grounding 감 잡기
- LLM-Planner: 자연어 -> grounded plan 구조 보기
- ProgPrompt: action catalog로 planner를 제약하는 방식 보기
- Intent + Slot Filling Survey: family/slot/multi-turn NLU 기본 잡기
- CLAM: ambiguity와 clarification 이해
- Adjustable Decision Boundary: 축 조정을 외부 용어로 이해
- OOD Detection in NLP:
STT_NULL/UNS안전 경계 잡기 - ReAct: reasoning과 action 연결
- HTN Planning Survey: 복합 task 분해
- Behavior Trees: 실행 중 상태/실패/재시도 처리
10. 현재 A2A 작업에 대한 결론
우리의 Planner와 축 조정 작업은 아래 연구 흐름의 조합으로 설명할 수 있다.
1. Task-Oriented Dialogue: intent, slot, dialogue state
2. Grounded LLM Planning: capability, affordance, situated action catalog
3. Ambiguity Handling: clarification, replyability, abstention
4. Open Intent/OOD: unsupported, STT_NULL, out-of-scope boundary
5. Decision Boundary Calibration: DEF/STT_NULL, ODL/SCH, DQR/FRG 축 조정
6. Verifier/Judge Layer: second pass, replyability judge, object typer
7. Task Execution Planning: HTN, behavior tree, event-driven TaskManager
따라서 축 조정은 단순 prompt tweaking으로 설명하지 말고 아래처럼 설명하는 편이 낫다.
Semantic decision-boundary calibration over context-aware route families.
즉, 현재 발화와 과거 대화, 기기 상태, capability registry, workflow state를 함께 보고 route family 사이의 의미 경계를 보정하는 작업이다.