DECHIVE
DECHIVE
← Archive
AI/

AI에게 도구를 쥐여준다는 것

AI가 텍스트로만 답하는 단계를 넘어, 실제로 검색하고 계산하고 데이터를 가져올 수 있게 되면 무엇이 달라지는가.

AI에게 "지금 환율이 얼마야?"라고 물으면, 모델은 답을 만든다.

그런데 그 답은 실제 환율이 아니다. 훈련 데이터에서 본 숫자들을 바탕으로 만들어낸 추정값에 가깝다. 오늘 이 순간의 환율을 AI는 모른다. 알 방법이 없다.

말로만 답하는 AI의 한계가 여기에 있다.


말로 답하는 AI의 한계

LLM은 텍스트를 받아 텍스트를 만드는 구조다.

아무리 잘 만들어진 모델이라도, 훈련이 끝난 시점 이후의 정보는 없다. 내부 데이터베이스에 접근할 수 없다. 계산기 없이 복잡한 수식을 처리하면 실수가 생긴다. 파일을 읽거나 저장하거나 전송하지 못한다.

이것들은 모델이 약해서가 아니다. 텍스트 생성 자체의 구조적 한계다.

"고객 ORD-2026-004 주문 현황이 어떻게 돼?"라는 질문에 AI가 줄 수 있는 답은, 데이터베이스를 실제로 조회하지 않는 한, 없다. 그럴듯하게 채워 넣으면 할루시네이션이 된다.


도구는 AI의 손이 된다

Tool Use는 AI가 실제 도구를 쓸 수 있게 만드는 방식이다.

개발자가 사용 가능한 도구 목록을 AI에게 알려준다. AI는 질문을 받았을 때, 직접 답하는 대신 도구를 호출해야겠다고 판단하면 그 요청을 만든다. 실제 호출은 우리 코드가 한다. 결과가 돌아오면 AI는 그 결과를 읽고 답을 완성한다.

사용자 질문 → AI가 도구 호출 요청 생성
→ 코드가 실제 API/함수 실행 → 결과를 AI에게 전달
→ AI가 결과를 바탕으로 최종 답 작성

AI가 직접 인터넷에 연결되거나 시스템에 접근하는 것이 아니다. AI는 "이 도구를 이렇게 써달라"는 요청을 만들 뿐이고, 실행과 결과 전달은 개발자가 설계한 코드가 담당한다. 그래서 보안과 제어권이 유지된다.


언제 도구를 써야 하는가

도구가 있다고 항상 쓰는 것은 아니다. AI는 질문을 보고 스스로 판단한다. 도구가 필요한 상황인지, 직접 답할 수 있는 상황인지.

도구가 필요한 상황은 대체로 분명하다. 지금 이 순간의 정보가 필요할 때(환율, 날씨, 주가), 내부 시스템 데이터를 읽어야 할 때(주문 조회, 고객 정보), 정확한 계산이 필요할 때, 외부 서비스에 실제로 접근해야 할 때.

AI가 이 판단을 잘 하려면 도구 설명이 중요하다. "언제 이 도구를 써야 하는가"를 명확하게 써야 한다.

# 애매한 설명
{"name": "search", "description": "검색한다."}

# 명확한 설명
{
    "name": "web_search",
    "description": "최신 뉴스, 실시간 정보, 훈련 데이터 이후 사건을 조회할 때 사용한다. "
                   "모델이 알 수 없는 최신 정보가 필요한 모든 상황에 이 도구를 사용한다."
}

AI는 이 설명을 읽고 도구를 고른다. 설명이 모호하면 잘못된 도구를 선택하거나, 도구가 필요한데 쓰지 않는 일이 생긴다. 도구의 품질은 결국 설명의 품질에 달려 있다.


도구의 결과를 다시 읽게 하기

도구를 쓴다고 끝이 아니다. 결과가 돌아왔을 때, 그것을 어떻게 AI에게 전달하느냐가 중요하다.

결과가 에러일 수 있다. 결과가 비어있을 수 있다. 기대한 형태가 아닐 수도 있다. 이 상황을 그냥 AI에게 넘기면, AI는 에러 메시지를 정답처럼 읽을 수 있다.

검증이 필요하다.

result = execute_tool(tool_name, tool_input)

if result is None or "error" in result:
    tool_result = "도구 호출에 실패했습니다. 해당 정보를 찾을 수 없습니다."
else:
    tool_result = json.dumps(result, ensure_ascii=False)

AI가 도구 결과를 제대로 읽고 답을 만들게 하는 것. 이 부분이 생각보다 자주 무너진다. 도구를 연결하는 것보다, 결과를 올바르게 다시 넣어주는 것이 더 섬세한 작업이다.


행동하는 AI를 설계한다는 것

Tool Use는 AI가 더 많이 말하게 하는 기술이 아니다.

필요한 순간에 말 대신 행동을 선택하게 만드는 구조다. 실시간 데이터가 필요하면 API를 호출하고, 계산이 필요하면 계산기를 쓰고, 데이터베이스가 필요하면 쿼리를 실행한다. 텍스트로 그럴듯하게 채우는 대신, 실제 결과를 가져온다.

이 설계에서 반복적으로 문제가 되는 지점이 있다. 도구 설명이 느슨하면 AI가 잘못된 도구를 선택한다. 도구가 너무 많으면 판단이 흔들린다. 결과를 검증하지 않으면 에러가 답으로 흘러든다. 이 세 가지는 연결돼 있다. 설명이 명확해야 선택이 맞고, 선택이 맞아야 결과가 의미 있고, 결과를 검증해야 답이 신뢰할 수 있다.

AI에게 도구를 쥐여준다는 것은, 더 많은 것을 말하게 만드는 게 아니다. 말이 필요 없는 순간에 실제로 움직이게 만드는 것이다.