간단한 답
대부분의 경우 실제로는 검색이 전혀 실행되지 않았습니다. 토글이 켜져 있으면 Whizi는 먼저 약 50토큰 분량의 저렴한 probe 도구를 모델에 보내고, 모델이 실제로 그 도구를 호출하는 턴에서만 실제 웹 검색이 실행됩니다. 모델이 이미 알고 있는 내용으로 답할 수 있다고 판단했다면 검색은 일어나지 않고, 토글은 여전히 초록색으로 표시된 채 출처 없는 답변을 받게 됩니다.
확인해볼 가치가 있는 순서대로 나열한 원인은 다음과 같습니다:
| 나타난 현상 | 가장 유력한 원인 | 해야 할 일 |
|---|---|---|
| 토글은 켜져 있는데 답변에 출처가 없음 | 모델이 probe 도구를 한 번도 호출하지 않아서 검색이 실행되지 않음 | 사용자 쪽에서 검색을 강제할 방법은 없습니다: 모델이 턴마다 판단합니다 |
| 이 채팅에서는 토글이 꺼진 것처럼 보임 | 토글은 계정 단위가 아니라 대화 단위로 저장되며, 새 채팅에서는 검색이 기본으로 켜지지 않습니다 | 이 대화에서 다시 켜세요 |
| 출처가 두세 개만 나옴 | 일반 검색은 결과가 3개로 제한됩니다 | 바꿀 것은 없습니다: 검색당 3개, 총 3개가 상한입니다 |
| boolean을 언급하는 오류 | 요청 본문 형식이 잘못됨 | 페이지를 새로고침하고 다시 보내세요 |
| 메시지 전체에 오류가 남 | 모델 제공업체 쪽 장애 | 다시 시도하고, 반복되면 지원팀에 문의하세요 |
토글이 켜져 있다고 검색이 실행된 것은 아닌 이유
요청은 off, probe, native 세 가지 검색 모드 중 하나로 실행됩니다.
Off 모드는 검색 도구를 아예 갖고 있지 않습니다: 토글이 꺼져 있으므로 모델은 아무것도 찾아볼 방법이 없고 대화 내용만으로 답변합니다. 토글을 켜면 메시지는 probe 모드로 넘어갑니다.
Probe 모드는 저렴한 대역입니다. 모델에게는 호출할 수 있는 평범한 함수가 주어지며, 여기에 드는 비용은 약 50토큰입니다. 실제로 그 함수를 호출한 메시지만 실제 검색이 붙은 형태로 다시 실행됩니다. 웹이 전혀 필요 없었던 메시지에서는 probe 모드가 native보다 약 46배 저렴하고, 실제로 필요했던 메시지에서는 약 0.8퍼센트의 추가 비용만 듭니다.
Native 모드는 제공업체의 실제 웹 검색 도구를 직접 실행합니다. 이는 공짜가 아닙니다: 도구 정의 자체가 약 4,400 입력 토큰 분량의 고정된 프리앰블을 추가합니다. 동일한 두 메시지짜리 프롬프트를 측정한 결과, 도구 없이는 36토큰, 도구를 포함하면 4,472토큰이었습니다.
토글은 검색을 허용할 뿐입니다. 실제로 검색을 실행할지는 모델이 결정하며, 그래서 같은 대화 안에서 토글을 건드리지 않아도 "괜찮은 CRM이 뭐야" 같은 질문은 출처 없이 돌아오고 "이 회사가 이번 주에 발표한 내용이 뭐야" 같은 질문은 검색을 거쳐 돌아옵니다.
웹 검색은 모델별 기능 플래그가 아니라 요청 단위의 사용자 토글이므로, 어떤 모델이 브라우징할 수 있고 어떤 모델은 할 수 없는지 정리한 공식 목록은 존재하지 않습니다.
정확한 오류 문구와 각각의 의미
Whizi 클라이언트는 백엔드의 error.message를 그대로 렌더링하므로, 눈앞에 보이는 문구는 해당 라우트가 실제로 내보낸 문구입니다. 다음 중 하나를 보고 있다면, 그 의미는 이렇습니다.
| 오류 문구 | HTTP과 코드 | 발생 조건 |
|---|---|---|
webSearchEnabled must be a boolean. | 400, invalid_generate_request | 웹사이트 전송 라우트가 true/false가 아닌 webSearchEnabled 값을 받음 |
webSearch must be a boolean. | 400, invalid_chat_request | 앱 채팅 라우트가 true/false가 아닌 webSearch 값을 받음 |
Web searches failed. You have not been charged. | 실패한 실행에 기록됨 | Deep Research 실행에서 최소 검색 횟수를 채우지 못함 |
두 boolean 오류는 요청 형식이 잘못되었다는 뜻입니다. 클라이언트가 검색 플래그로 보낸 값이 boolean이 아니었을 뿐이며, 계정이나 플랜, 모델과는 아무 관련이 없습니다. 페이지를 새로고침하고 메시지를 다시 보내세요. 새로고침으로도 해결되지 않으면 지원팀에 문의하세요.
Web searches failed. You have not been charged.는 Deep Research 실행에서 최소 검색 횟수를 채우지 못하고 실패했을 때 기록됩니다. 크레딧은 차감되지 않습니다. 나중에 다시 요청해 보세요.
결과는 나왔지만 세 개뿐이었던 경우
일반 검색 요청은 낮은 검색 컨텍스트 크기에서 검색당 3개, 총 3개 결과로 제한됩니다. 꼼꼼해 보이는 질문이든 사소한 질문이든 뒤에 붙는 페이지는 최대 세 개뿐입니다.
예외적으로 동작하는 라우트가 하나 있습니다. 캐나다 CPA 에이전트는 모든 턴에서 웹 검색을 강제하는 유일한 라우트로, 검색은 7회로 제한되며 허용된 도메인 목록과 대략적인 캐나다 사용자 위치로 범위가 한정됩니다. 이 에이전트에서 좁은 범위의 사이트에서만 결과가 나오는 것은 바로 이 허용 도메인 목록 때문입니다.
답변이 출처가 없는 게 아니라 오래된 것이거나, 하나의 수치를 여러 검색 결과와 대조하고 싶다면 웹 검색 사용법과 문제 해결 허브에서 다룹니다.
메시지 전체가 실패하는 경우
검색 턴은 검색과 아무 상관 없는 이유로 실패할 수도 있습니다. 다음 문구들은 모델 제공업체 계층에서 나온 것으로, 생성 자체가 실패했다는 뜻입니다.
| 오류 문구 | HTTP과 코드 | 의미 |
|---|---|---|
The model is temporarily rate-limited. Please retry shortly. | 429, provider_rate_limited | Whizi가 아니라 업스트림 제공업체가 연결을 거부함 |
The model provider rejected the request. | 502, provider_error | 제공업체의 오류 본문을 읽을 수 없었음 |
The model provider returned an empty stream. | 502 | 업스트림 응답 자체는 정상이었지만 본문이 없었음 |
The model stream was interrupted. | 스트림 내 오류 이벤트 | 스트림이 도중에 실패함 |
Too many requests. Please wait and try again. | 429, rate_limit_reached | Whizi의 요청 제한 구간에 걸림 |
채팅 메시지는 모든 플랜에 동일하게 사용자당 분당 10개, 시간당 60개로 제한되며, 모든 라우트에 걸쳐 분당 30개 요청이라는 공유 상한도 있습니다. 거부된 요청은 비용이 들지 않습니다: 속도 제한으로 인한 거부는 되돌려지므로 429는 사용자의 메시지 한도를 소모하지 않습니다.
이런 오류를 막을 수 있는 설정은 사용자 쪽에 없습니다. 잠시 기다렸다가 다시 보내세요. 같은 모델이 여러 분에 걸쳐 계속 실패한다면 다른 모델로 바꿔서 작업을 이어가고, 계정 상황을 확인할 수 있도록 지원팀에 문의하세요.
- 초록색 토글은 검색을 허용할 뿐이며, 실제로 실행할지는 모델이 결정합니다
- Probe 모드는 약 50토큰이 들며, 모델이 호출한 턴에서만 실제 검색이 실행됩니다
- 일반 검색은 최대 3개 결과만 반환합니다
- 두 boolean 오류는 요청 형식이 잘못된 것입니다: 새로고침 후 다시 보내세요
- 검색은 모델별 기능 플래그가 아니라 요청 단위 토글입니다
- 제공업체 오류와 429는 일시적입니다: 기다렸다가 다시 시도하고, 그래도 안 되면 지원팀에 문의하세요
자주 묻는 질문
Whizi에서 웹 검색을 켰는데 검색을 안 했어요. 왜 그런가요?
모델이 검색이 필요 없다고 판단했기 때문입니다. 토글이 켜져 있으면 Whizi는 메시지와 함께 약 50토큰 분량의 저렴한 probe 도구를 보내고, 모델이 실제로 그 도구를 호출한 턴에서만 진짜 검색이 실행됩니다. native 제공업체 검색은 모든 요청마다 약 4,400 입력 토큰의 프리앰블을 추가하기 때문에, 이런 설계로 비용을 낮춥니다.
"webSearchEnabled must be a boolean."는 무슨 뜻인가요?
이는 코드 invalid_generate_request가 붙은 HTTP 400 오류로, 전송 요청에 담긴 webSearchEnabled 값이 true나 false가 아닐 때 반환됩니다. 계정이나 플랜, 모델은 여기에 아무 영향을 주지 않습니다. 페이지를 새로고침하고 다시 보내세요. 새로고침으로 해결되지 않으면 지원팀에 문의하세요. 앱 채팅 라우트에는 코드 invalid_chat_request가 붙은 동일한 성격의 문구 webSearch must be a boolean.가 있습니다.
"Web searches failed. You have not been charged."는 무슨 뜻인가요?
Deep Research 실행에서 최소 검색 횟수를 채우지 못하고 실패했을 때 기록되는 문구입니다. 문구 그대로 크레딧은 차감되지 않습니다. 이를 막을 수 있는 설정 변경은 없으므로, 나중에 다시 요청해 보는 것이 유일하게 의미 있는 대응입니다.