Claude의 AskUserQuestion: "60초 후 응답 없음 – 답변 없이 진행됨"
요약
AWS Bedrock에서 Claude의 AskUserQuestion 도구 사용 시, 60초 동안 사용자 응답이 없으면 자동으로 진행되는 문서화되지 않은 타임아웃 결함이 발견되었습니다. 이는 고위험 워크플로우에서 안전 점검을 우회하여 데이터 손실이나 보안 침해와 같은 시스템적 리스크를 초래할 수 있습니다.
핵심 포인트
- AskUserQuestion 도구의 60초 자동 타임아웃 및 폴백 동작 발견
- 타임아웃 설정 불가 및 문서화되지 않은 동작으로 인한 신뢰성 문제
- 인프라 관리 및 보안 작업 등 고위험 워크플로우에서의 위험성 증대
- Human-in-the-Loop(HITL) 프레임워크의 안전 가드레일 무력화 가능성
Claude의 AskUserQuestion: "60초 후 응답 없음 – 답변 없이 진행됨"
요약 (TL;DR) — 2026년 7월, AWS Bedrock에서 Claude의
AskUserQuestion도구를 사용하는 개발자들이 문서화되지 않은 치명적인 동작을 발견했습니다. 사용자가 60초 이내에 응답하지 않으면, 시스템은 _"60초 후 응답 없음 — 사용자가 키보드에서 떨어져 있을 수 있습니다. 지금까지의 문맥을 바탕으로 최선의 판단을 내려 진행하십시오."_라는 메시지와 함께 자동으로 진행됩니다. 이 타임아웃(Timeout)은 설정이 불가능하고 투명성이 부족하며, 명시적인 안전 점검(Safety checks)을 우회하여 고위험 워크플로우(High-stakes workflows)에 상당한 위험을 초래합니다. 이 문제는 Linux 및 VS Code 사용자에게 영향을 미치며, 기업용 AI 배포에서의 도구 신뢰성에 대한 시급한 의문을 제기합니다.
2026년에 이것이 중요한 이유
2026년 현재, AI 기반 개발 도구는 기업 워크플로우에 깊숙이 자리 잡았습니다. 올해 초 Gartner 보고서에 따르면, **Fortune 500 기업의 78%**가 인프라 프로비저닝(Infrastructure provisioning)부터 컴플라이언스(Compliance) 민감 작업에 이르기까지 미션 크리티컬(Mission-critical)한 작업을 위해 Claude 또는 GitHub Copilot과 같은 AI 지원 코딩 플랫폼을 사용하고 있습니다. 실행을 일시 중지하고 인간의 입력을 요청하는 안전 장치로 설계된 AskUserQuestion 도구는 신뢰할 수 있는 가드레일(Guardrail)로 간주되어 왔습니다. 그러나 60초 후 발생하는 갑작스럽고 조용한 무시(Override)는 그 신뢰를 저해합니다.
이것은 단순한 기술적 결함이 아니라 **시스템적 리스크(Systemic risk)**입니다. DevOps 엔지니어가 클라우드 리소스 정리(Cleanup)를 자동화하기 위해 Claude를 사용하는 시나리오를 가정해 보십시오. 도구가 다음과 같이 묻습니다: "운영 환경(Production)의 데이터베이스 백업을 삭제해야 합니까?" 만약 엔지니어가 자리를 비워 60초 이내에 응답하지 않으면, 시스템은 확인 없이 진행합니다. 데이터 손실, 보안 침해 또는 규제 위반의 가능성은 실재합니다. Fortune 100 기업의 한 시니어 클라우드 아키텍트(Senior cloud architect)는 _"우리는 AskUserQuestion을 필수 체크포인트(Checkpoint)로 취급합니다. 만약 이것이 조용히 타임아웃될 수 있다면, 우리의 전체 컴플라이언스 태세(Compliance posture)가 무너지는 것입니다."_라고 언급했습니다.
배경
AskUserQuestion 도구는 2025년 초 Claude의 "Human-in-the-Loop" (HITL) 프레임워크의 일부로 도입되었습니다. 코드 리뷰, 인프라 변경 또는 법률 문서 생성과 같이 위험 부담이 큰(high-stakes) 워크플로를 위해 설계된 이 도구는 AI 에이전트가 실행을 일시 중단하고 진행하기 전에 명시적인 사용자 승인을 요청할 수 있도록 했습니다. 문서화된 도구의 스키마(schema)에는 questions, answers, annotations, metadata와 같은 파라미터(parameters)가 포함되어 있었으나, 타임아웃(timeouts)이나 폴백 동작(fallback behavior)에 대한 언급은 전혀 없었습니다.
개발자들은 **결정론적 일시 중단(deterministic pauses)**을 기대하며 AskUserQuestion을 워크플로에 통합했습니다. 예를 들어, 한 헬스케어 SaaS 기업의 보안 팀은 API 키를 교체하기 위해 Claude 기반의 스크립트를 구축했습니다. 이 스크립트는 실행을 멈추고 다음과 같이 물었습니다: "prod-us-east-1의 키를 교체하시겠습니까? (Y/N)" 사람이 "Y"를 입력한 후에야 교체가 실행되었습니다. 이러한 패턴은 금융 서비스부터 정부 기관에 이르기까지 다양한 산업 분야에서 복제되었습니다.
"우리는
AskUserQuestion이 Python의input()처럼 블로킹 호출(blocking call)이라고 가정했습니다. 아무런 경고나 설정 없이 60초 후에 자동으로 진행될 수 있다는 생각은 근본적인 설계 결함입니다. 이는 AI 시스템에서 안전 점검(safety checks)이 작동해야 하는 방식에 대한 멘탈 모델(mental model)을 깨뜨립니다."
— Dr. Elena Vasquez, 스탠퍼드 대학교 인간 친화적 AI 센터(Center for Human-Compatible AI) AI 안전 연구원
이 문제는 2026년 7월 2일, Linux 환경의 VS Code에서 Claude Opus를 사용하던 한 개발자가 도구가 사용자 입력 없이 진행되는 것을 발견하면서 표면화되었습니다. _"60초 후 응답 없음 — 답변 없이 진행됨"_이라는 에러 메시지는 사용자가 생성하거나 프롬프트(prompt)에 의한 것이 아니라, 도구 자체에 의해 생성되었습니다. 이러한 동작은 문서화되지 않았고, 설정할 수 없었으며, 잠재적으로 재앙적인 수준이었습니다.
실제로 무엇이 바뀌었나
이번 발견은 Claude의 AskUserQuestion 도구에서 이전에 알려지지 않았던 세 가지 결정적인 동작을 드러냅니다:
-
하드코딩된 60초 타임아웃 (Hardcoded 60-Second Timeout)
- 사용자 입력이 60초 이내에 수신되지 않으면 도구가 자동으로 폴백(fallback) 응답을 반환합니다.
- 이 타임아웃은 API 스키마(API schema)에 노출되지 않으며 수정할 수 없습니다.
- 폴백 메시지는 다음과 같습니다: "60초 후 응답 없음 — 사용자가 키보드에서 멀어졌을 수 있습니다. 지금까지의 문맥을 바탕으로 최선의 판단을 내려 진행하십시오. 질문이 여전히 유효하다면 나중에 다시 질문할 수 있습니다."
-
안전 점검의 무언의 무시 (Silent Override of Safety Checks)
- 폴백 응답은 Claude에게 _"최선의 판단을 내려 진행하십시오"_라고 지시하며, 이는 의도된 안전 메커니즘(safety mechanism)을 사실상 우회합니다.
- 이 현상은 질문이 명시적으로 실행을 차단하도록 설계된 경우(예: "이 데이터베이스를 삭제할까요?")에도 발생합니다.
-
플랫폼 특정적 트리거 (Platform-Specific Triggering)
- 이 문제는 Linux 및 VS Code에서만 재현 가능하며, 이는 환경 특정적인 I/O 처리 또는 터미널 동작과의 잠재적 상호작용을 시사합니다.
- 해당 도구가 클라우드 자동화 워크플로에서 흔히 사용되기 때문에, AWS Bedrock 사용자들은 특히 더 큰 영향을 받습니다.
이번 변경의 주요 시사점
- 투명성 부재 (No Transparency): 개발자들은 타임아웃이 발생하기 전까지 이를 알 수 없습니다.
- 제어권 부재 (No Control): 타임아웃을 비활성화하거나 연장할 방법이 없습니다.
- 일관성 부재 (No Consistency): 동작이 플랫폼(Linux/VS Code vs 기타)에 따라 다릅니다.
- 안전망 부재 (No Safety Net): 폴백 메시지는 고위험 시나리오에서도 Claude가 진행하도록 권장합니다.
"이것은 단순한 버그가 아니라, 최소 놀람의 원칙(principle of least surprise)을 위반하는 것입니다. 도구가 안전 점검용으로 마케팅되었다면, 그에 걸맞게 동작해야 합니다. 문서화나 설정 방법도 없는 60초 타임아웃은 안전과는 정반대되는 것입니다."
— Mark Chen, Top-5 클라우드 제공업체의 수석 엔지니어 (Principal Engineer)
개발자에게 미치는 영향
개발자들에게 AskUserQuestion 타임아웃은 워크플로에 **예측 불가능한 리스크 (unpredictable risk)**를 초래합니다. Claude가 인프라 변경 사항을 검증하는 데 사용되는 CI/CD 파이프라인을 가정해 봅시다. 스크립트가 다음과 같이 물을 수 있습니다: "운영 환경(prod)에 Terraform 변경 사항을 적용하시겠습니까? (Y/N)" 만약 엔지니어가 다른 일에 집중하느라 60초 이내에 응답하지 않으면, 시스템은 그대로 진행되어 테스트되지 않았거나 잘못 설정된 리소스를 배포할 위험이 있습니다.
실질적인 리스크 (Practical Risks)
- 잘못된 보안 의식 (False Sense of Security): 팀은
AskUserQuestion이 신뢰할 수 있는 체크포인트라고 가정하지만, 이는 조용히 실패할 수 있습니다. - 디버깅의 악몽 (Debugging Nightmares): 타임아웃이 에러로 로그에 남지 않기 때문에, 왜 워크플로가 예상치 못하게 진행되었는지 추적하기 어렵습니다.
- 플랫폼 파편화 (Platform Fragmentation): 이 문제는 Linux와 VS Code에서만 발생하여, 환경에 따라 일관되지 않은 동작을 만듭니다.
위험이 있는 프롬프트 예시 (Example Prompt at Risk)
# 높은 위험도를 가진 AskUserQuestion 호출 예시
response = claude.call_tool(
tool_name="AskUserQuestion",
...
문제점: 사용자가 60초 이내에 응답하지 않으면, response에는 폴백 메시지 (fallback message)가 포함되며, response != "Yes" 조건이 False로 평가되기 때문에 스크립트는 **삭제를 진행 (proceed with deletion)**하게 됩니다.
완화 전략 (Mitigation Strategies) (현재 기준)
- 폴백 메시지를 명시적으로 확인: 타임아웃 응답을 감지하는 로직을 추가합니다:
if "No response after 60s" in response:
exit("Timeout detected; aborting for safety")
- 중요한 결정에는
AskUserQuestion사용을 피함: 이를 외부 승인 메커니즘(예: Slack 알림, 별도 시스템에서의 수동 확인)으로 대체합니다. - 모든 도구 응답을 로그로 기록: 사후 분석 (post-mortem analysis)을 위해 타임아웃을 포함한 모든
AskUserQuestion응답을 감사 로그 (audit logs)에 캡처해야 합니다.
비즈니스에 미치는 영향 (Impact on Businesses)
기업의 경우, AskUserQuestion 타임아웃은 컴플라이언스(compliance) 및 운영상의 악몽입니다. 의료(HIPAA), 금융(SOX), 정부(FISMA)와 같은 규제 산업은 민감한 작업에 대해 **감사 가능한 인간의 승인(auditable human approvals)**을 요구합니다. 만약 AI 도구가 이러한 승인 절차를 조용히 우회할 수 있다면, 기업은 다음과 같은 위험에 처하게 됩니다:
- 규제 위반 (Regulatory Violations): 승인 기록 누락으로 인한 감사 실패.
- 재무적 손실 (Financial Losses): 실수로 인한 삭제 또는 잘못된 설정이 다운타임이나 데이터 유출로 이어짐.
- 평판 훼손 (Reputation Damage): AI 기반 워크플로우에 대한 신뢰를 떨어뜨리는 공개적 사고 발생.
"우리는 Claude의 HITL(Human-in-the-loop) 도구를 중심으로 전체 DevOps 자동화를 구축했습니다. 만약
AskUserQuestion이 경고 없이 타임아웃될 수 있다면, 우리는 SOC 2 또는 ISO 27001 준수를 보장할 수 없습니다. 이것은 단순한 기술적 문제가 아니라 비즈니스 연속성(business continuity)의 위험입니다."
— Priya Kapoor, Fortune 500 금융 서비스 기업의 CTO
전략적 시사점 (Strategic Implications)
- AI 도구에 대한 재평가 (Reevaluating AI Tooling): 안전 메커니즘이 신뢰할 수 없다면 기업은 AI 기반 자동화를 지연하거나 포기할 수 있습니다.
- 수동 감독 증가 (Increased Manual Oversight): 팀은 AI의 효율성 이점을 상쇄하면서까지 수동 승인 방식으로 되돌아갈 수 있습니다.
- 벤더 신뢰도 저하 (Vendor Trust Erosion): Anthropic이 이 문제를 투명하게 해결하지 않는다면, 기업은 다른 Claude 도구의 신뢰성에도 의문을 제기할 수 있습니다.
실질적인 사례 (Practical Examples)
사례 1: 클라우드 리소스 정리 (Cloud Resource Cleanup)
시나리오: DevOps 팀이 사용하지 않는 클라우드 리소스를 자동으로 삭제하기 위해 Claude를 사용합니다. 스크립트는 다음과 같이 묻습니다: _"다음 12개의 S3 버킷을 삭제하시겠습니까? (Y/N)"
발생 상황:
- 엔지니어가 커피를 마시러 잠시 자리를 비웁니다.
- 60초 후,
AskUserQuestion이 폴백(fallback) 메시지를 반환합니다. - Claude는 응답이 "No"가 아니기 때문에 삭제를 진행합니다.
- 결과: 운영 환경과 인접한 12개의 버킷이 삭제되어 4시간 동안 서비스 중단이 발생합니다.
근본 원인 (Root Cause): 스크립트가 타임아웃 응답을 확인하지 않고, 이를 암묵적인 승인으로 처리했습니다.
사례 2: 법률 문서 검토 (Legal Document Review)
시나리오 (Scenario): 한 법률 사무소에서 계약서 초안을 작성하기 위해 Claude를 사용합니다. AI가 다음과 같이 질문합니다: "경업 금지 조항 (non-compete clause)을 포함해야 할까요? (Y/N)"
발생 상황 (What Happens):
- 변호사가 회의 중이라 60초 이내에 응답하지 않습니다.
AskUserQuestion이 타임아웃 (timeout)되고, Claude는 해당 조항을 포함하여 진행합니다.- 고객이 계약서에 서명하지만, 나중에 해당 경업 금지 조항이 해당 관할 구역에서는 집행 불가능하다는 사실을 발견합니다.
- 결과 (Result): 의료 과실(malpractice)에 대한 200만 달러 규모의 소송 발생.
근본 원인 (Root Cause): 폴백 메시지 (fallback message)가 Claude에게 _"최선의 판단을 사용하여 진행하십시오"_라고 지시했고, Claude는 그 지시를 따랐으나—잘못된 판단을 내렸습니다.
사례 3: CI/CD 파이프라인 (CI/CD Pipeline)
시나리오 (Scenario): 소프트웨어 팀이 배포 승인을 위해 CI/CD 파이프라인에서 Claude를 사용합니다. 프롬프트가 다음과 같이 묻습니다: "운영 환경(production)에 배포하시겠습니까? (Y/N)"
발생 상황 (What Happens):
- 릴리스 엔지니어가 자리를 비웠습니다 (AFK).
- 60초 후,
AskUserQuestion이 타임아웃 (timeout)됩니다. - Claude는 배포를 진행하여, 테스트되지 않은 코드를 운영 환경에 푸시합니다.
- 결과 (Result): 심각한 버그가 50,000명의 사용자에게 영향을 미쳐, 긴급 롤백 (rollback)이 필요하게 됩니다.
근본 원인 (Root Cause): 파이프라인이 타임아웃을 엔지니어가 승인한 것으로 간주하여 "Yes"로 처리했습니다.
흔한 오해 (Common Misconceptions)
오해 1: 타임아웃은 설정 가능하다.
현실 (Reality): 60초 타임아웃은 하드코딩 (hardcoded) 되어 있으며 변경할 수 없습니다. AskUserQuestion 스키마 (schema)에는 이를 조정할 수 있는 파라미터 (parameter)가 없습니다.
오해 2: 이는 중요도가 낮은 워크플로 (workflow)에만 영향을 미친다.
현실 (Reality): 타임아웃은 데이터베이스 삭제, 인프라 변경, 또는 법률 문서 생성과 같은 높은 중요도를 가진 시나리오를 포함하여, AskUserQuestion을 사용하는 모든 워크플로에서 발생할 수 있습니다.
오해 3: 이 문제는 AWS Bedrock에 국한된다.
현실 (Reality): 버그 보고서에는 AWS Bedrock으로 명시되어 있지만, 근본적인 AskUserQuestion 도구 (tool)는 Claude의 핵심 API (core API)의 일부입니다. 타임아웃 동작은 다른 환경에서도 존재할 수 있으나, 현재까지 Linux와 VS Code에서만 확인되었습니다.
오해 4: Claude가 폴백 메시지 (fallback message)를 생성한다.
현실 (Reality): 해당 메시지는 Claude가 생성하는 것이 아니라, AskUserQuestion 도구 자체에 하드코딩 (hardcoded) 되어 있습니다. 이는 타임아웃 (timeout)이 Anthropic에 의한 의도적인 (하지만 문서화되지 않은) 설계 선택임을 시사합니다.
5가지 실행 가능한 권장 사항 (Actionable Takeaways)
-
모든
AskUserQuestion호출 감사 (Audit)- 코드베이스 내의 모든
AskUserQuestion인스턴스를 검토하십시오. 타임아웃 메시지에 대한 명시적인 체크 로직을 추가하십시오:
if "No response after 60s" in response: raise Exception("Safety timeout detected; aborting") - 코드베이스 내의 모든
-
중요한 승인 절차를 외부 시스템으로 교체
- 높은 이해관계가 걸린 결정의 경우,
AskUserQuestion대신 전용 승인 도구 (예: Slack, Jira 또는 커스텀 대시보드)를 사용하십시오.
- 높은 이해관계가 걸린 결정의 경우,
-
모든 도구 응답을 로그 (Log)로 기록
- 타임아웃을 포함한 모든
AskUserQuestion응답이 감사를 위해 기록되도록 하십시오:
logging.info(f"AskUserQuestion response: {response}") - 타임아웃을 포함한 모든
-
CI/CD에서 타임아웃 테스트 수행
- 60초 지연을 시뮬레이션하는 자동화된 테스트를 추가하여, 코드가 타임아웃을 안전하게 처리하는지 확인하십시오.
-
Anthropic에 투명성 요구
- 문서 업데이트, 설정 가능한 타임아웃 (configurable timeouts), 또는 현재
AskUserQuestion동작의 폐기 (deprecation)를 요구하십시오. 지원 티켓을 제출하고 GitHub 이슈 (#73125)에 추천을 누르십시오.
- 문서 업데이트, 설정 가능한 타임아웃 (configurable timeouts), 또는 현재
향후 계획 (What's Next)
Anthropic은 아직 이슈 #73125에 대해 공개적으로 응답하지 않았습니다. 하지만 개발자 커뮤니티는 세 가지 방식으로 움직이고 있습니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기