📚 Agentic AI - 기업용 자율 에이전트 개발 4장 · 에이전트 ② 웹검색 Agentic AI란

LLM이 모르는 것 — 학습이 끝난 시점 이후의 세상

한 줄 요약

LLM에게는 지식이 멈춘 시점이 있습니다. 그 뒤의 세상은 모릅니다. 문제는 모른다고 말하지 않고 옛날 정보를 요즘 것처럼 답한다는 점입니다. 3장이 "우리 데이터"를 붙였다면, 4장은 "바깥세상" 과 연결합니다.


1. 1장의 두 번째 질문

  Q: 요즘 스마트워치 시장에서 어떤 기능이 가장 주목받나요?
  A: 요즘 스마트워치 시장에서 가장 주목받는 기능들은 단순한 알림이나 기본적인
     운동 추적을 넘어, 사용자의 건강과 안전에 초점을 맞추고 있습니다. ...

술술 답했습니다. 그리고 이게 문제입니다.

첫 번째 질문(주문 상태)은 "모릅니다" 라고 정직하게 답했습니다. 그런데 이 질문에는 답을 합니다. 왜일까요?

  • 주문 O001203 → 훈련 데이터에 있을 리가 없다 → 확실히 모른다
  • 스마트워치 시장 → 훈련 데이터에 잔뜩 있다 → 아는 것을 말한다

아는 건 맞습니다. 다만 "언제 기준"인지가 문제입니다.


2. 지식 컷오프

LLM은 어느 시점까지의 글을 읽고 훈련을 마칩니다. 그 시점을 지식 컷오프(knowledge cutoff) 라고 합니다.

학습에 사용한 자료모르는 구간시간컷오프지금모델은 학습 이후의 정보를 접하지 못했습니다. 그래서 답을 지어내기도 합니다. 검색 도구를 연결하면 최신 정보를 찾을 수 있습니다.
모델은 컷오프 이후의 세상을 본 적이 없다

컷오프 이후에 일어난 일은 아예 모릅니다.

  • 지난달 출시된 제품
  • 어제 바뀐 가격
  • 오늘 아침 뉴스

그런데 모델은 이 구간을 인식하지 못합니다. "내가 아는 건 여기까지야"라고 말해 주지 않습니다. 아는 것 중 가장 최근 것을 "요즘"이라고 부릅니다.

이게 왜 위험한가 — 주문 상태처럼 명백히 모르는 것은 모른다고 하니 안전합니다. 위험한 건 아는 것과 모르는 것의 경계가 흐린 질문입니다. "요즘 시장이 어떤가"는 답이 나오지만 얼마나 낡았는지 알 수 없습니다. 1장의 반품 기간 답이 위험했던 것과 같은 이유입니다.


3. 이 장이 하는 일

모델에게 "지금 찾아보라"고 시킵니다.

[3장]  질문 ──▶ 모델 ──"주문 조회 도구 써 주세요"──▶ orders.csv
[4장]  질문 ──▶ 모델 ──"웹검색 도구 써 주세요"────▶ 인터넷

구조는 3장과 똑같습니다. 도구를 하나 더 만들어 쥐여 줄 뿐입니다. 다만 그 도구가 CSV 대신 인터넷을 봅니다.


4. 3장과 다른 세 가지

같은 Function Calling인데, 이번 장에서 새로 생기는 문제가 셋 있습니다. 이 장의 절 구성이 그대로 이 셋입니다.

① 도구가 둘이 된다 → 무엇을 보고 고르나

아래는 개념 설명용 코드입니다 — 실습 파일에 넣지 않습니다.

tools=[get_product_info, search_web]

모델이 어느 쪽을 쓸지 골라야 합니다. 자사 상품 가격을 웹에서 찾으려 하면 곤란하죠. 4절에서 다룹니다.

② 순서대로 여러 번 써야 한다 → 루프가 필요하다

"승승 스마트워치 Fit 5는 얼마인가요? 요즘 시장 가격대와 비교하면 어느 수준인가요?"

이 질문 하나에 도구를 두 번 써야 합니다. 그것도 순서대로 — 먼저 우리 가격을 알아야 비교할 수 있으니까요.

3장의 "요청 → 실행 → 답변"은 한 번짜리였습니다. 이제 반복이 필요합니다. 이 반복 구조가 ReAct 이고, 5·7절에서 직접 짭니다.

③ 도구가 실패한다 → 끊겨도 멈추지 않아야 한다

CSV 읽기는 거의 실패하지 않습니다. 웹검색은 자주 실패합니다. 인터넷이 끊기거나, 검색 서비스가 요청을 거절하거나, 결과가 없거나.

특히 짧은 시간에 검색을 여러 번 연달아 하면 실패하기 쉽습니다. 그래서 9절 전체를 여기에 씁니다 — 실패를 사고가 아니라 예상하고 대비해야 할 상황으로 봅니다.


5. 만들 것

이번 장이 끝나면 이렇게 됩니다.

  질문: 승승 스마트워치 Fit 5는 얼마인가요?
        요즘 스마트워치 시장 가격대와 비교하면 어느 수준인지도 알려주세요.

  [1단계] get_product_info({'product_name': '승승 스마트워치 Fit 5'})
           └ 승승 스마트워치 Fit 5 | 카테고리 전자기기 | 판매가 159,000원 ...
  [2단계] search_web({'query': '스마트워치 시장 가격대'})
           └ - 스마트워치 시장 규모 및 점유율... 484억 달러로 추정 ...
  [3단계] 도구 호출 없음 → 최종 답변

  [답변]
  승승 스마트워치 Fit 5는 159,000원입니다. 현재 스마트워치 시장은 5만 원대
  가성비 모델부터 30만 원대 프리미엄 모델까지 다양하게 형성되어 있으며,
  승승 스마트워치 Fit 5는 이 중 중간 가격대에 해당합니다.

단계가 화면에 찍힙니다. 루프를 우리가 돌리기 때문에 볼 수 있습니다. 5장부터는 이 화면이 사라집니다.


6. 미리 짚어 둘 것 — 검색이 만능은 아닙니다

웹검색을 붙인다고 모든 게 해결되지는 않습니다.

붙여서 해결되는 것 여전히 남는 문제
최신 정보를 가져온다 검색 결과가 정확한지는 보장 못 한다
모델이 모르는 것을 찾아본다 검색어를 잘못 만들면 엉뚱한 결과
출처가 생긴다 광고·낚시 글이 섞인다

우리 회사 규정처럼 정확해야 하는 것은 웹에서 찾으면 안 됩니다. 1장의 반품 기간이 그런 경우죠. 그건 6장 RAG(사내 문서 검색) 의 몫입니다.

정보의 출처를 무엇으로 할지 정하는 것은 사람의 판단입니다. 재고는 CSV에서, 규정은 사내 문서에서, 시장 동향은 웹에서 — 이 배분을 모델에게 맡기지 않고 도구 설명으로 못 박아 두는 것이 8장 멀티에이전트 설계의 핵심이 됩니다.


핵심 정리

  • LLM에는 지식 컷오프가 있고, 그 이후의 세상은 모릅니다.
  • 위험한 것은 모른다고 말하지 않는다는 점입니다. 아는 것 중 가장 최근 것을 "요즘"이라고 부릅니다.
  • 대책은 3장과 같습니다 — 도구를 쥐여 줍니다. 다만 이번엔 그 도구가 인터넷을 봅니다.
  • 새로 생기는 문제 셋 — ① 도구 선택 · ② 여러 번 순서대로(ReAct 루프) · ③ 실패 처리.
  • 검색이 만능은 아닙니다. 정확해야 하는 사내 규정은 6장 RAG의 몫입니다.
  • 어떤 정보를 어디서 가져올지 배분하는 것은 사람의 판단입니다.
  다음 절 →02. 검색 도구 붙이기 키가 필요 없는 DuckDuckGo