본문으로 건너뛰기
LVIS AI

Host · Chat

질문 카드 — AskUserQuestionCard

에이전트가 사용자에게 되묻거나 다중 선택을 요청할 때 단순 텍스트 응답 대신 인터랙티브 카드로 표시합니다. 컴포넌트: src/ui/renderer/components/AskUserQuestionCard.tsx:159.

에이전트가 사용자에게 되묻는 인터랙티브 질문 카드

실제 타입 (verbatim)

// src/ui/renderer/components/AskUserQuestionCard.tsx:30-73
export interface AskUserQuestionItem {
  question: string;
  choices?: string[];
  recommendedIndex?: number;
  altIndices?: number[];
  allowFreeText: boolean;
  allowMultiple?: boolean;
  placeholder?: string;
  summaryHint?: string;
  suggestedAnswers?: string[]; // @deprecated
}

export interface AskUserQuestionRequest {
  id: string;
  questions: AskUserQuestionItem[];
  createdAt: number;
}

언제 카드가 나오나요?

  • 사용자 의도가 모호할 때 — 「어떤 메일을 정리할까요?」
  • 여러 후보 중 선택이 필요할 때 — 「세 곳의 회의실 중 어디로?」
  • 위험한 액션 직전 확인 — agentApproval.request 의 사용자 다이얼로그 변형.
  • 플러그인이 후속 액션을 제안할 때 — 「액션 아이템을 TODO에 추가할까요?」

선택 → 액션

  1. 호스트 또는 plugin 이 ask-user-question 요청 발사 (도구 응답 또는 LLM 출력에 포함).
  2. ChatView 가 카드 렌더. recommendedIndex 가 있으면 highlight, altIndices 는 alt 후보.
  3. allowMultiple 가 true 면 multi-select, false 면 single. allowFreeText 가 true 면 입력 박스.
  4. 선택/입력 결과가 다음 대화 턴의 user message 로 들어가고, 카드는 잠긴 상태로 히스토리에 보존.
recommendedIndex / altIndices 활용
에이전트는 default 추천을 recommendedIndex 로 표시하고 (예: 회의실 추천), 동등하게 좋은 다른 후보를altIndices 로 marking. UI 는 추천을 강조하면서도 alt 들을 동등 비중으로 보여줍니다.