The Art of Counter-Questioning: 답하는 기계에서 질문하는 지성으로

우리는 챗봇에게 ‘답변’을 기대합니다. 검색창에 질문을 입력하고 엔터를 누르는 순간, 우리는 명확하고 즉각적인 해답이 돌아오기를 기다립니다. 이러한 ‘답변하는 기계(Answering Machine)’라는 편향은 현재 AI 인터페이스의 지배적인 패러다임입니다.

하지만 아이러니하게도, 가장 훌륭한 대화는 정답을 제시할 때가 아니라 “좋은 질문”이 돌아올 때 시작됩니다.

1. 답하는 기계를 넘어서 (Beyond the Answering Machine)

현재의 거대언어모델(LLM)들은 사용자의 입력이 아무리 모호해도 어떻게든 답변을 생성해내도록 훈련받았습니다. “맛집 추천해줘”라는 불충분한 정보만 주어져도, AI는 확률적으로 가장 그럴듯한 리스트를 나열합니다.

이는 언뜻 친절해 보일 수 있으나, 치명적인 문제를 안고 있습니다.

  1. 전제의 오류: 사용자의 의도와 다른 맥락에서 답을 찾을 수 있습니다.
  2. 피상적인 결과: 구체적인 제약 조건이 없으므로 누구나 얻을 수 있는 일반적인 정보에 그칩니다.
  3. 할루시네이션(Hallucination): 모르는 것을 모른다고 하지 않고, 그럴듯하게 말을 지어내려는 압박을 받습니다.

우리가 AI를 단순한 검색 도구가 아닌, 문제를 해결하는 동반자(Co-pilot)에이전트(Agent)로 격상시키려 한다면, AI는 이제 “모르겠습니다”라고 말할 용기, 그리고 나아가 “이것이 궁금하신가요?”라고 되물어볼 지성을 갖춰야 합니다.

2. 역질문의 핵심: 의도 명확화와 도출

AI가 사용자에게 질문을 던지는 이러한 행위는 정보 검색(Information Retrieval) 분야에서 Clarifying Questions1라는 개념으로 연구되고 있습니다.

이 개념은 LangChain과 같은 최신 AI 프레임워크에서 ‘휴먼 인 더 루프(Human-in-the-loop)’ 패턴의 일환으로 적극적으로 도입되고 있습니다2.

예를 들어 사용자가 모호한 검색어를 입력했을 때, 시스템은 단순히 결과를 나열하는 대신 “어떤 용도로 찾으시나요?”와 같은 유용한 질문을 제안함으로써 사용자의 의도를 명확히 파악할 수 있습니다. 즉, 단순히 명령을 수행하는 것을 넘어 질문을 통해 문제를 함께 정의해나가는 과정이야말로 에이전트의 핵심 역량입니다.

이 과정은 크게 두 가지 층위로 나뉩니다.

A. 의도 명확화 (Intent Disambiguation)

사용자의 입력이 여러 가지로 해석될 수 있을 때, 그 범위를 좁히는 과정입니다.

User: “우산 챙겨야 할까?”
AI: “지금 계신 곳이 서울인가요, 아니면 다른 지역인가요?”

이는 검색 공간(Search Space)을 줄여 정확도를 높이는 가장 기초적이고 필수적인 단계입니다.

B. 요구사항 도출 (Elicitation)

한 걸음 더 나아가, 사용자가 미처 생각하지 못한 조건을 찾아내는 적극적인 과정입니다. 이는 앞서 이야기한 Askitect의 역할과 맞닿아 있습니다.

graph TD
    User("User: 노트북 하나 사고 싶어")
    
    subgraph G1 [Typical AI]
        direction TB
        Typical["맥북 에어 M3를 추천합니다."]
    end
    
    End1((End))
    G1 --> End1
    
    subgraph G2 [AI Agent]
        direction TB
        AgentQ1["Q1. 주로 어떤 용도로 쓰시나요?"]
        AgentQ2["Q2. 이동성 vs 고성능 중 무엇이 우선인가요?"]
        AgentQ1 --> AgentQ2
    end
    
    User -->|Immediate Answer| G1
    User -->|Counter-Questioning| G2
    
    %% Force Layout: G1 on Left, G2 on Right
    G1 ~~~ G2
    
    %% Styles
    style G1 fill:#f9f9f9,stroke:#999,stroke-dasharray: 5 5
    style G2 fill:#e6fffa,stroke:#00cc99,stroke-width:2px
    style Typical fill:#fff,stroke:#ccc
    style End1 fill:#333,stroke:#333,color:#fff
    style AgentQ1 fill:#fff,stroke:#ccc
    style AgentQ2 fill:#fff,stroke:#ccc

이 과정에서 AI는 사용자의 머릿속에만 있던 암묵적인 지식(Implicit Knowledge)을 도출하여 명시적인 조건(Explicit Constraint)으로 변환합니다.

3. 언제, 어떻게 물어야 하는가?

무턱대고 질문만 하는 AI는 사용자를 피로하게 만듭니다. “역질문의 기술”은 적절한 타이밍과 방식에 달려 있습니다.

Timing: 불확실성의 임계값 (Threshold of Uncertainty)

AI는 자신의 답변에 대한 확신(Confidence Score)이 낮을 때만 개입해야 합니다. 지나치게 뻔한 질문은 대화의 흐름을 저해하고, 시의적절하지 못한 질문은 오류를 방치할 위험이 있습니다. 사용자가 충분한 정보를 주지 않았다고 판단될 때, AI는 답변 생성을 멈추고 질문 모드로 전환하는 판단력, 바로 메타인지(Meta-cognition)가 필요합니다.

Method: 온톨로지 기반의 슬롯 채우기 (Slot Filling)

질문의 방식 또한 중요합니다.

  • Bad: “어떤 걸 원하세요?” (너무 광범위함)
  • Good: “선호하는 운영체제가 있나요?”, “예산은 100만원 대인가요?”

여기서 ‘운영체제’, ‘예산’ 등은 해당 도메인의 온톨로지(Ontology)에 정의되어 있어야 하는 속성들입니다. 구조화된 지식을 가진 AI만이 막연한 질문이 아니라, 정보를 채워넣어야 할 빈칸(Slot)을 정확히 조준하여 질문할 수 있기 때문입니다. 이것이 뉴로 심볼릭 AI가 빛을 발하는 순간이기도 합니다.

4. Uncertainty as a Feature

우리는 흔히 UX(사용자 경험)를 설계할 때 불확실성을 제거해야 할 버그로 취급합니다. 하지만 AI 시대의 UX에서 불확실성은 그 자체로 중요한 기능(Feature)이 됩니다.

AI가 “저는 확신이 서지 않습니다”라고 시각적으로 표현하거나, “이 부분이 명확하지 않아 A와 B 중 하나로 추정했습니다”라고 투명하게 밝히는 것은 신뢰를 쌓는 과정입니다. 사용자는 이 불확실성을 해소하기 위해 기꺼이 AI의 질문에 답할 것이며, 이 과정 자체가 하나의 협업이 됩니다.

마치며

좋은 대화는 탁구(Ping-pong)와 같습니다. 일방적으로 공을 던지기만 해서는 게임이 성립되지 않습니다.

우리가 만드는 AI가 단순히 명령을 수행하는 비서가 아니라, 생각을 확장해주는 파트너가 되길 원한다면, 이제 기계에게 질문할 수 있는 권한을 부여해야 합니다. 사용자의 짧은 프롬프트 뒤에 숨겨진 거대한 맥락을 파헤치는 ‘역질문의 기술’이야말로, AI가 진정한 지능으로 나아가는 첫걸음이 될 것입니다.


  1. Aliannejadi, M., et al. (2019). “Asking Clarifying Questions in Open-Domain Information-Seeking Conversations”. SIGIR ‘19

  2. LangChain Blog. (2024). “Human-in-the-loop with OpenGPTs and LangGraph”

Comments