LangChain
랭체인
LLM 애플리케이션 개발 프레임워크. 체인, 에이전트, 도구 조합.
랭체인
LLM 애플리케이션 개발 프레임워크. 체인, 에이전트, 도구 조합.
LangChain은 LLM 기반 애플리케이션을 구축하기 위한 오픈소스 프레임워크입니다. 2022년 Harrison Chase가 시작했으며, 현재 v1.2.7(2026년 1월 기준)로 Python 3.10+ 환경에서 사용 가능합니다. 체인, 에이전트, 도구, 메모리를 조합해 복잡한 AI 애플리케이션을 만듭니다.
핵심 개념: Chain(LLM 호출 연결), Agent(도구를 선택해 작업 수행), Tool(외부 API/DB 연동), Memory(대화 기록 유지), Retriever(RAG용 문서 검색). 2025년부터 에이전트 개발에는 LangGraph를 권장합니다.
최신 기능(2025-2026): MCP(Model Context Protocol) 도구 통합, 멀티모달 도구 지원, LangSmith 통합(디버깅/모니터링), LangGraph 기반 에이전트 오케스트레이션. Anthropic, OpenAI, Google, Ollama 등 주요 프로바이더를 모두 지원합니다.
실무 활용: RAG 파이프라인, 챗봇, 문서 QA, 에이전트 워크플로우 구축에 표준으로 사용됩니다. 단, 단순한 API 호출에는 오버헤드가 크므로, 복잡한 체인/에이전트가 필요할 때 도입하세요.
# pip install langchain langchain-openai langchain-community
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_community.tools import DuckDuckGoSearchRun
# 1. 기본 Chain (LCEL - LangChain Expression Language)
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
prompt = ChatPromptTemplate.from_messages([
("system", "당신은 {role} 전문가입니다."),
("human", "{question}")
])
chain = prompt | llm | StrOutputParser()
result = chain.invoke({"role": "Python", "question": "데코레이터 설명해줘"})
# 2. RAG Chain (문서 기반 QA)
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.load_local("my_index", embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
rag_prompt = ChatPromptTemplate.from_template(
"컨텍스트를 참고해 답변하세요:\n{context}\n\n질문: {input}"
)
document_chain = create_stuff_documents_chain(llm, rag_prompt)
rag_chain = create_retrieval_chain(retriever, document_chain)
answer = rag_chain.invoke({"input": "우리 회사 휴가 정책은?"})
# 3. Agent with Tools
search_tool = DuckDuckGoSearchRun()
tools = [search_tool]
agent_prompt = ChatPromptTemplate.from_messages([
("system", "도구를 사용해 최신 정보를 검색하세요."),
("human", "{input}"),
("placeholder", "{agent_scratchpad}")
])
agent = create_tool_calling_agent(llm, tools, agent_prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = executor.invoke({"input": "오늘 비트코인 가격은?"})
2025년 1월 기준 LangChain 생태계 가격 정보입니다.
| 서비스 | 가격 | 특징 |
|---|---|---|
| LangChain 오픈소스 | 무료 (MIT License) | 체인, 에이전트, RAG 구축 |
| LangGraph 오픈소스 | 무료 | 복잡한 에이전트 워크플로우 |
| LangSmith Free | 무료 | 5,000 traces/월 |
| LangSmith Developer | $39/월 | 무제한 traces, 1명 |
| LangSmith Plus | $1,200/월 | 팀용, 10 시트 포함 |
| LangSmith Enterprise | 문의 필요 | SSO, SLA, 전용 지원 |
참고: LangSmith는 디버깅, 평가, 모니터링 도구. 프로덕션 품질 관리에 필수적이나, 개발 단계에서는 무료 티어로 충분합니다.
"사내 문서 검색 챗봇 만드는데, LangChain으로 RAG 파이프라인 구축하고 LangSmith로 품질 모니터링하겠습니다. FAISS 벡터스토어에 문서 10만 건 인덱싱하고, Retriever top-k=5로 설정해서 hallucination 줄이겠습니다."
"LangChain Agent로 주문 처리 자동화를 구현했습니다. Tool로 재고 조회 API, 배송 API를 연결하고, GPT-4가 고객 요청을 분석해 적절한 Tool을 호출하게 했어요. LangGraph로 분기 로직을 DAG로 관리해서 복잡한 워크플로우도 처리합니다."
"단순 LLM 호출에 LangChain 쓰면 오버엔지니어링이에요. OpenAI SDK 직접 호출이 더 깔끔합니다. LangChain은 체인 연결, 도구 호출, 메모리 관리가 복잡해질 때 진가를 발휘합니다."
API 한 번 호출하는 데 LangChain은 과도. 체인/에이전트가 2개 이상일 때 도입하세요.
LLMChain, SequentialChain은 deprecated. LCEL(| 연산자)과 create_* 함수를 사용하세요.
복잡한 에이전트는 LangGraph 사용. LangSmith로 디버깅. langchain-core, langchain-openai 등 패키지 분리 버전 사용.