LangChain & LangGraph 1.0 알파 릴리스
TMThttps://blog.langchain.com/langchain-langchain-1-0-alpha-releases/
오늘 우리는 Python과 JS 모두에서 langgraph 및 langchain의 v1.0 알파 릴리스를 발표합니다. LangGraph는 개발자에게 내구성 있는 실행과 세밀한 제어를 제공하여 복잡한 에이전트 시스템을 프로덕션 환경에서 실행할 수 있는 저수준 에이전트 오케스트레이션 프레임워크입니다. LangChain은 표준화된 모델 추상화와 사전 구축된 에이전트 패턴을 통해 개발자가 벤더 종속 없이 복잡한 애플리케이션을 쉽게 구축할 수 있도록 빠르게 AI 기능을 출시할 수 있게 도와줍니다. 우리는 공식 1.0 릴리스를 10월 말에 목표로 하고 있으며, 여기에서 피드백을 주시면 감사하겠습니다!
LangGraph
langgraph는 Uber, LinkedIn, Klarna와 같은 기업들이 프로덕션 환경에서 사용하면서 충분히 검증되었습니다. 우리는 1.0으로 승격하며, 브레이킹 체인지 없이 릴리스합니다. 내장 에이전트 런타임(내구성 있는 실행, 단기 메모리, 휴먼 인 더 루프 패턴, 스트리밍)을 제공하며, 임의의 워크플로우와 에이전트 패턴을 구축하는 데 사용할 수 있습니다.
LangChain
langchain은 다양한 에이전트 패턴을 최대한 쉽게 시작할 수 있도록 고수준 인터페이스를 항상 제공해왔습니다. 초창기에는 이러한 패턴이 몇 개뿐이었으며(이것들이 원래 langchain의 모든 체인과 에이전트를 구성했습니다), 지난 2년 동안 우리는 다음과 같은 사실을 깨달았습니다:
- 여러 사용 사례는 완전히 커스텀 패턴이 필요합니다. 이런 경우에는
langgraph를 사용하여 직접 구축하는 것을 추천합니다. - 나머지 사용 사례는 특정 “에이전트” 구현에 집중되었습니다.
이 “에이전트” 추상화는 주로 다음과 같습니다:
- LLM에 몇 가지 도구를 사용할 수 있게 한다.
- 입력값을 전달한다.
- 만약 도구를 호출하면: 3-1. 해당 도구를 실행한다. 3-2. 도구 호출 및 결과를 추가하여 2단계로 돌아간다.
- 도구를 호출하지 않으면: 종료한다.
우리는 LangChain 초기부터 이 추상화를 가지고 있었으며 - 2022년 11월에 도입되었습니다. 이후 도구 호출 등 다양한 기능이 등장하면서 진화해왔습니다.
LangChain 1.0에서는 이 추상화에 중심을 두고 langchain 패키지를 재구성하며, 새로운 create_agent 구현을 도입합니다 - 동일한 고수준 인터페이스이지만 기반이 다릅니다. 이 구현은 langgraph 위에 구축되어 기본 에이전트 런타임의 이점을 활용합니다. 이는 langchain 패키지에는 새롭지만, LangChain 생태계에는 새로운 것이 아닙니다. 지난 1년간 langgraph.prebuilts의 일부로 충분히 검증되었습니다. 다음과 같이 쉽게 사용해볼 수 있습니다:
Python: from langchain.agents import create_agent
JS: import { createAgent } from "langchain"
기존 langchain 체인과 에이전트를 사용 중이라면 걱정하지 마세요. 기존 체인과 에이전트를 계속 사용할 수 있도록 langchain-legacy 패키지를 출시할 예정이며, 원한다면 새로운 langchain 1.0으로 업데이트할 수도 있습니다.
LangChain Core
langchain의 핵심 부분 중 하나는 통합 추상화입니다. LangChain은 OpenAI, Anthropic 등과 같은 공급업체와의 수천 개의 통합을 포함하고 있습니다. 이러한 추상화는 기술적으로 langchain-core에 존재하며, 이 추상화만을 위해 만든 기본 패키지입니다.
우리는 브레이킹 체인지 없이 langchain-core를 1.0으로 승격하지만, 핵심적인 추가 사항이 있습니다.
langchain-core의 중요한 부분은 “메시지”라는 개념, 즉 LLM API와 소통하는 방식입니다. 1.0에서는 이러한 메시지의 포맷에 더 많은 구조를 도입합니다(하위 호환성 유지). LangChain의 큰 가치 중 하나는 LLM과 상호작용하는 표준화된 방식입니다. LLM과 상호작용하는 방식은 시간이 지나며 변화해왔습니다 - 처음에는 문자열, 그 다음은 메시지(각 메시지의 content가 문자열), 이제는 LLM API가 콘텐츠 블록 목록을 반환합니다. 이에 따라 표준 콘텐츠 타입을 가진 새로운 .content_blocks 속성을 도입합니다. 콘텐츠 블록에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
Documentation
마지막으로, 모든 오픈소스 프로젝트를 위한 새로운 문서 사이트도 출시합니다. 이 문서는 오픈소스 문서를 한 곳에 모으고, Python과 Javascript 모두를 위한 통합 페이지를 제공합니다. 더 중앙화되고 따라가기 쉬운 문서 사이트를 요청해주신 것을 반영했습니다. 이는 앞으로도 계속 중요한 초점이 될 것입니다.
Try it out
오늘 1.0 알파를 발표하게 되어 기쁩니다. 다음과 같이 쉽게 사용해볼 수 있습니다:
JavaScript
LangChain: npm install langchain@next
LangGraph: npm install @langchain/langgraph@alpha
Python
LangChain: pip install langchain==1.0.0a3
LangGraph: pip install langgraph==1.0.0a1
다시 한 번 - 1.0 릴리스(및 문서)에 대한 피드백은 여기에서 주시면 감사하겠습니다. GitHub 토론 항목(LangChain, LangGraph)도 확인할 수 있습니다. 이는 큰 이정표이며, 앞으로 두 달간 커뮤니티와 함께 작업하게 되어 기대가 큽니다.