LangChain
LangChain은 교체 가능한 모델, 도구, 검색기, 미들웨어로 LLM 애플리케이션과 에이전트를 구축하기 위한 오픈 소스 프레임워크입니다.
LangChain은 대규모 언어 모델(LLM)을 기반으로 애플리케이션과 AI 에이전트를 구축하기 위한 오픈 소스 프레임워크입니다. 메시지, 채팅 모델, 도구, 검색기에 대해 모든 모델 공급자가 동일한 인터페이스를 사용하도록 하므로 모델 이름을 변경하는 것만으로 한 공급자의 모델을 다른 공급자의 모델로 바꿀 수 있습니다. 또한 바로 사용할 수 있는 에이전트 루프와 벡터 저장소, 문서 로더, API를 위한 수백 가지 통합 기능을 제공합니다. Harrison Chase는 ChatGPT 출시 몇 주 전인 2022년 10월 LangChain을 오픈 소스 Python 프로젝트로 공개했습니다. 이후 프롬프트, 검색, 모델 호출을 연결해 생성형 AI 애플리케이션을 만드는 데 가장 널리 사용되는 툴킷 중 하나가 되었습니다. LangChain 1.0과 LangGraph 1.0은 2025년 10월 22일 함께 출시되었으며, 버전 2.0까지 호환성을 깨는 변경 사항이 없을 것이라고 약속했습니다.
LangChain 생태계#
현재 이 이름은 Python과 JavaScript에서 사용할 수 있는 여러 패키지 제품군을 가리킵니다.
- langchain:
create_agent을 중심으로 하는 에이전트 프레임워크입니다. 모델, 도구 목록, 시스템 프롬프트를 입력받아 작동하는 에이전트를 반환합니다. - langchain-core 및 통합 기능: 채팅 모델, 메시지, 임베딩, 검색기, 도구를 위한 표준 인터페이스와 이를 구현하는 langchain-openai 및 langchain-anthropic과 같은 공급자 패키지를 제공합니다.
- LangGraph: LangChain 에이전트가 실행되는 하위 수준 런타임입니다. 공유 상태를 사용하는 단계들의 그래프로 프로그램을 표현하고 각 단계가 끝날 때마다 상태를 체크포인트로 저장할 수 있으므로, 장시간 실행되는 작업도 재시작 후 이어서 진행할 수 있으며 사람의 승인을 기다리도록 일시 중지할 수도 있습니다.
- LangSmith: 관측 가능성 추적, 데이터셋 기반 에이전트 평가, 에이전트 배포를 위한 호스팅 플랫폼입니다.
기존 LangChain 앱은 체인으로 구성되었습니다. 즉, 사용자의 입력을 채우는 프롬프트 템플릿, 모델 호출, 출력 파서를 프롬프트 체이닝과 같은 파이프 구문으로 조합했습니다. 가장 일반적인 체인은 검색 증강 생성(RAG)입니다. 문서를 불러와 청크로 나누고, 해당 임베딩을 벡터 데이터베이스에 저장한 다음, 각 질문과 가장 잘 일치하는 청크를 모델의 컨텍스트 윈도우에 추가합니다.
LangChain 에이전트 실행 방식#
create_agent으로 만든 에이전트는 모델 호출과 도구 호출의 루프를 반복합니다. 이는 모든 에이전트 하네스가 실행하는 동일한 함수 호출 루프입니다. 미들웨어는 각 단계에 연결되어 모델 주변의 동작을 변경합니다. 내장 미들웨어는 긴 기록을 요약하고, 개인 데이터를 마스킹하며, 선택한 도구가 실행되기 전에 사람의 승인을 받도록 일시 중지합니다.
LangChain 에이전트에 비전 기능 추가#
LangChain의 @tool 데코레이터는 Python 함수를 도구로 변환합니다. 함수 시그니처에서 인수 유형을, 독스트링에서 설명을 가져옵니다. 이러한 방식으로 Ultralytics YOLO26을 래핑하면 에이전트에 객체 탐지 기능이 추가되며, Results.summary()은 각 탐지의 클래스 이름, 신뢰도, 박스를 모델이 읽을 수 있는 데이터로 반환합니다.
from langchain_core.tools import tool
from langchain_core.utils.function_calling import convert_to_openai_tool
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
@tool
def detect_objects(image_url: str) -> list[dict]:
"""Detect objects in an image and return each one's class name, confidence, and box."""
results = model(image_url)
return results[0].summary()
# LangChain이 시그니처와 독스트링에서 추출하는 스키마를 모델에 전달하는 형태로 표시합니다.
print(convert_to_openai_tool(detect_objects))
# 에이전트는 모델의 도구 호출에서 가져온 인수로 도구를 실행합니다.
detections = detect_objects.invoke({"image_url": "https://ultralytics.com/images/bus.jpg"})
print(detections[0]["name"], detections[0]["confidence"])첫 번째 출력은 image_url 문자열 매개변수와 설명으로 사용되는 독스트링이 포함된 함수 정의를 보여 줍니다. LangChain은 이를 모델에 전송합니다. 두 번째 출력은 도구가 반환하는 첫 번째 탐지 결과를 보여 줍니다. tools=[detect_objects]을 create_agent에 전달하면 지원되는 모든 채팅 모델이 predict 모드를 통해 탐지기를 호출할 수 있습니다.
LangChain과 관련 도구 비교#
- 에이전트형 워크플로: 라우팅, 도구 사용, 평가자 루프와 같은 일반적인 설계 패턴으로, LangGraph 그래프와 LangChain 에이전트가 이를 구현합니다.
- 공급자 SDK: 모델 공급자의 API를 직접 호출하는 데 프레임워크는 필요하지 않으며 단일 모델 앱에 적합합니다. LangChain은 앱에서 여러 모델, 도구 또는 데이터 소스를 사용할 때 유용한 공통 인터페이스, 통합 기능, 에이전트 루프를 제공합니다.
- DSPy: 다단계 LLM 프로그램의 프롬프트를 자동으로 작성하고 최적화하는 프레임워크입니다. 예제 데이터의 지표를 기준으로 프롬프트를 조정합니다.
- LlamaIndex: RAG를 위해 비공개 데이터를 수집, 인덱싱, 쿼리하는 데 중점을 둔 프레임워크입니다. 두 프레임워크의 기능은 겹치며, 애플리케이션에서는 LangChain 또는 LangGraph 에이전트 내부의 검색에 LlamaIndex를 사용하는 경우가 많습니다.










