지난 몇 주 동안, 저희는 LangGraph.js와 LangGraph Python 모두를 위한 새로운 기능들을 출시하여, 저수준 워크플로 (low level workflows)와 사전 구축된 에이전트 (prebuilt agents)를 모두 개선했습니다.
이러한 새로운 기능들은 더 빠른 개발 주기, 더 효율적인 실행, 그리고 그래프의 모든 수준에서 더 큰 제어력을 제공함으로써 워크플로를 구축하기 더 쉽게 만들어 줍니다.
새롭게 추가된 사항에 대한 빠른 요약은 다음과 같습니다:
1. 노드 캐싱 (Node Caching) ♻️
저희는 **노드/태스크 수준 캐싱 (node/task level caching)**을 도입하며 한 주를 시작했습니다. 이제 LangGraph 워크플로 내 개별 노드의 결과를 캐싱할 수 있어, 중복 계산을 줄이고 실행 속도를 높일 수 있습니다. 노드 캐싱은 특히 개발 주기를 앞당기는 데 매우 유용합니다.
🔗 Python docs | JS docs
2. 지연된 노드 (Deferred Nodes) 🕰️
다음으로, 모든 상위 경로 (upstream paths)가 완료될 때까지 실행이 연기되는 지연된 노드 (deferred nodes) 지원을 추가했습니다. 지연된 노드는 맵-리듀스 (map-reduce), 합의 (consensus), 그리고 에이전트 협업 (agent collaboration) 워크플로에 이상적입니다.
🔗 Python docs | JS docs
3. Pre/Post 모델 훅 (Pre/Post Model Hook) 🪝
저희의 사전 구축된 ReAct 에이전트는 이제 pre/post 모델 훅을 통해 더 맞춤화 가능한 메시지 흐름을 지원합니다. Pre 모델 훅은 메시지 기록을 요약하여 컨텍스트 팽창 (context bloat)을 제어하는 데 매우 유용하며, post 모델 훅은 가드레일 (guardrails) 및 인간 참여형 (human-in-the-loop) 상호작용에 이상적입니다.
기분 좋은 보너스로, ReAct 에이전트 워크플로를 시각화하는 데 도움이 되는 대화형 문서를 확인해 보세요.
🔗 Python docs | JS docs
이제 사전 구축된 ReAct 에이전트와 함께 웹 검색 (web search) 및 원격 MCP 도구 (Remote MCP tools)와 같은 내장 프로바이더 도구를 사용할 수 있습니다. 도구 사양 딕셔너리 (tool specification dict)를 tools 리스트에 전달하기만 하면 바로 사용할 수 있습니다!
JS 개선 사항
Python과 JS 모두에 도입된 위의 기능 외에도, JS 측면에 특화된 몇 가지 개선 사항을 추가했습니다.
1. 재개 가능한 스트림 (Resumable Streams) ⏩
reconnectOnMount를 사용하여 페이지 새로고침이나 네트워크 장애에 탄력적인 앱을 만드세요. 스트림이 자동으로 재개되므로, 토큰 손실이나 추가 코드 작성이 필요 없습니다.
🔗 JS docs
2. 개발자 경험 (DevX) 개선 사항 🧘
마지막으로, LangGraph JS v0.3를 통해 일상적인 개발자 경험 (DevX)을 개선하기 위한 다양한 변경 사항을 적용했습니다:
.stream()
메서드가 이제 완전히 타입 안전 (type-safe)하게 구현되어, 사용 중인 스트림 모드 (streamMode)에 따라 상태 업데이트와 값을 반환합니다. 더 이상 코드 곳곳에 any 타입이나 안전하지 않은 형변환 (unsafe casts)이 난무하지 않습니다. Python 버전에도 곧 적용될 예정입니다!
StateGraph에서 .addNode({node1, node2, ...}) 및 .addSequence({node1, node2, ...})를 사용할 수 있게 되어, 간단한 워크플로우 (workflow)를 구축할 때 발생하는 상용구 코드 (boilerplate)를 줄일 수 있습니다.
중단 (Interrupts) 사항이 이제 .invoke() 및 `