[2026 하계 모각코 3주차] LangChain

딤동희·5일 전

2026 하계 모각코

목록 보기
3/4

llm?

llm이란 대규모 언어 모델의 약자로, 우리가 쓰는 chatgpt, gemini같은 llm은 오직 사용자의 명령을 듣고 말만 뱉을 수 있다. 그니까 우리가 '오늘 강의실 예약해줘' 같은 프롬프트를 입력해도, 얘들은 '예? 우리는 귀랑 입만 달려있는데요?' 같은 상황이 발생하여 곤란해지게 된다.

하지만 이것과는 다르게, 위에 사진처럼 얘네한테 날씨를 물어도 잘 대답해주고, pdf를 첨부해도 잘 읽고 분석해주는 상황이 있다. 학습된 데이터를 기반으로 응답하는 llm이 어떻게 최신 날씨와 pdf를 알까? 매 시간마다 최신 정보를 학습하는걸까? 이미 너무 많은 PDF를 학습해서 제목만 봐도 어떤 내용일지 단숨에 아는 것일까? ㄴㄴ 답은 'tool'이다.

tool

도구다. llm의 손에 여러 도구를 쥐여줄 수 있다는 것이다. 도구만 쥐여주면 llm이 특정 프롬프트에 반응하여 어떤 도구가 필요한지 판단하고 사용한다.

위에 날씨를 물어봤던 사진을 자세히 보면, 생각하는 과정에서 based on the tool's JSON을 확인할 수 있다. 날씨 관련 도구를 써서 반환된 json값을 읽은 후 응답했다는 뜻이다.

원리?

근데 이게 어떻게 되는걸까? 원래 귀와 입만 달려있던 llm이, 기술의 발전으로 도구를 쥘 수 있는 손까지 달린걸까? 사실 얘는 여전히 듣고 말하기 밖에 못한다. 단지 llm이 도구를 사용하고 싶다는 어떤 말을 하면 우리가 도구를 호출하여 결과값을 반환해주고, 그 결과값을 토대로 답변을 해주는 것이다.

즉, llm이 듣고 답하는건 똑같지만, llm이 듣고 '무슨 도구 쓰고싶어'라고 답하고 그 도구의 반환값을 다시 llm이 듣고, 최종 답변을 하는 것이다.

LangChain

그래서 tool을 어떻게 쓰는가? 먼저 tool을 개발한 후, llm에게 '이런이런 도구가 있으니 필요할때 써' 같이 프롬프트로 알려주어야 한다. 어떻게 쓰는지도 알려주어야한다. '너가 이런이런 말을 하면, 도구를 쓰고 싶다는 표현으로 간주하고 내가 도구를 호출하여 반환값을 알려줄게' 이런식으로 알려주면 된다.
이쯤되면 생각해야한다. 너무 두루뭉실하지 않는가? 도구의 사용법은 어떻게 알려주어야하며, 유저의 요청을 파싱하여 도구의 인자값으로 어떻게 넣을지도 막막하고, 도구 사용 요청 표현도 직접 정해야하고... 텍스트로 시작해서 텍스트로 끝나는 llm에게는 어쩔 수 없는 운명이다. 그래서 langchain이 나타났다

설명

langchain은 프레임워크다. 파이썬에서 밖에 안써보긴했는데, js도 지원한다고 한다. tool 함수를 선언한 후 위에 데코레이터로 @tool만 붙여줘도 tool 개발이 끝난다. 우리는 단지 tool을 만들고 tool 설명만 잘 작성하면 개발 끝이다. langchain이 위에서 설명한 과정을 거의 다 해주기 때문이다.

후기

llm이 단순히 질의응답만 가능할줄 알았는데 세상이 생각보다 많이 발전한듯하다. 다음시간엔 langchain 코드를 가져오도록 하겠다.

0개의 댓글