
Deep Agents v0.6의 새로운 기능
요약
Deep Agents v0.6는 오픈 웨이트 모델을 활용한 비용 효율적인 에이전트 실행, 체크포인트 저장 용량을 획기적으로 줄인 Delta 채널, 그리고 실시간 UI 구축을 위한 스트리밍 프리미티브를 도입했습니다. 또한, 에이전트가 직접 코드를 작성하고 실행할 수 있는 코드 인터프리터와 모델 불가지론적 PTC(Programmatic Tool Calling)를 통해 에이전트의 워크플로를 혁신합니다.
핵심 포인트
- Kimi, Qwen, DeepSeek 등 오픈 웨이트 모델 사용 시 폐쇄형 API 대비 비용을 20배 이상 절감 가능
- Delta 채널을 통해 장기 실행 에이전트의 체크포인트 저장 용량을 최대 100배까지 최적화
- 메시지, 도구 호출, 서브 에이전트에 대한 타입 지정된 실시간 스트리밍 이벤트 지원
- 에이전트가 데이터 변환 및 도구 조정을 직접 수행할 수 있는 프로그래밍 가능한 코드 인터프리터 출시
- 모델의 추론 부담을 줄이고 실행 런타임 내에서 도구를 호출하는 모델 불가지론적 PTC 도입
핵심 요약 (Key Takeaways)
오픈 웨이트 (open-weight) 모델에서 실행 가능한 에이전트— Harness 프로필을 사용하면 Kimi, Qwen, DeepSeek와 같은 모델로부터 폐쇄형 프런티어 (closed frontier) API보다 20배 이상 낮은 비용으로 프로덕션급 성능을 얻을 수 있습니다.
대규모 에이전트 인프라 비용 절감— Delta 채널은 관찰 가능성 (observability)이나 회복 탄력성 (resilience)을 희생하지 않으면서, 장기 실행되는 에이전트의 체크포인트 (checkpoint) 저장 용량을 최대 100배까지 줄여줍니다.
더 풍부한 실시간 에이전트 UI 구축— 새로운 스트리밍 프리미티브 (streaming primitive)는 런타임부터 프런트엔드에 이르기까지 메시지, 도구 호출 (tool calls), 서브 에이전트 (subagents)에 대해 타입이 지정되고 구독 가능한 이벤트 투영 (event projections)을 제공합니다.
이번 최신 Deep Agents 릴리스는 모델 계층, 에이전트 계층, 대규모 환경, 그리고 시간에 따른 성능에 중점을 두고 있습니다. 이번 릴리스의 다섯 가지 요소가 이에 기여합니다:
ContextHubBackend: 에이전트가 더 오래 실행되고 컨텍스트 (context)가 축적됨에 따라, 에이전트를 재개 가능하고(resumable), 관찰 가능하며(observable), 회복 탄력적(resilient)으로 만드는 내구 실행 보장을 희생하지 않으면서 효율적인 체크포인트 저장을 지원합니다.
ContextHub: LangSmith Context Hub를 기반으로 하며, 에이전트의 행동을 형성하는 기술 (skills), 정책 (policies), 메모리 (memories)를 버전 관리되는 협업 환경에 저장하여, 에이전트가 한 번의 실행에서 배운 내용을 다음 실행에서 개선할 수 있도록 합니다.
코드 인터프리터 (Code interpreter)
Deep Agents에 설치 가능한 코드 인터프리터를 출시합니다. 이를 통해 에이전트는 데이터를 변환하고, 도구 호출을 조정하며, 중간 작업물을 모델 컨텍스트 (model context) 외부로 유지할 수 있는 프로그래밍 가능한 워크스페이스를 갖게 됩니다. 에이전트는 자신의 의도를 표현하기 위해 코드를 작성하고, 그러면 인메모리 (in-memory) 런타임이 해당 코드를 실행하여 관련 결과를 반환합니다.
샌드박스 (sandboxes)가 환경에 작용하기 위한 코드 우선 (code-first) 방식(예: 명령 실행, 종속성 설치, 파일 편집 등)이라면, 인터프리터는 에이전트 루프 내부에서 작용하기 위한 코드 우선 방식입니다. 즉, 도구를 조합하고, 상태를 보존하며, 어떤 정보를 모델에 반환할지 결정하는 역할을 합니다.
// 에이전트는 다음과 같이 코드를 작성할 수 있습니다:
const topics = ["retrieval", "memory", "evaluation"];
const reports = await Promise.all(
...
이는 우리가 특히 기대하고 있는 에이전트(Agent)를 위한 몇 가지 새로운 혁신적 기능들을 가능하게 합니다:
모델 불가지론적 PTC (Model-agnostic PTC)
표준적인 도구 호출 (Tool calling) 루프는 모델이 모든 단계의 교통 관제사 역할을 수행하게 만듭니다. 모델이 도구를 요청하고, 컨텍스트(Context) 내에서 전체 결과를 수신하며, 그 결과를 바탕으로 추론한 뒤, 이 과정을 반복합니다. 중간 결과가 단지 다음 입력을 계산하기 위해서만 필요한 경우에도, 여전히 여러 번의 모델 호출을 거쳐 체이닝 (Chaining) 되어야 합니다.
프로그래밍 방식의 도구 호출 (Programmatic Tool Calling, PTC)은 이러한 워크플로 (Workflow)를 변화시킵니다. 모델은 실행 런타임 (Execution runtime) 내부에서 도구를 호출하는 코드를 작성하므로, 개별 도구 호출마다 모델로 왕복 (Round-trip) 하지 않고도 워크플로를 실행할 수 있습니다. 중간 결과는 런타임 상태 (Runtime state)에 머물 수 있으며, 여기서 인터프리터 (Interpreter)가 노이즈가 섞인 출력을 필터링하고, 데이터를 처리하며, 실패 시 재시도하고, 관련 있는 컨텍스트만을 모델에 다시 반환할 수 있습니다.
const pages = await Promise.all(
urls.map((url) => tools.fetchUrl({ url })),
);
...
이러한 도구 호출 패턴은 토큰 소비를 줄이고, 불필요한 모델 왕복을 차단하며, 에이전트의 추론 단계를 축소시킵니다.
Anthropic은 자사의 모델 제품군에 이를 API 동작으로 추가함으로써 이 패턴을 대중화하는 데 기여했지만, 인터프리터를 사용하면 이제 어떤 모델(오픈 소스 모델 포함)을 사용하는 에이전트라도 이를 구현할 수 있습니다.
재귀적 워크플로 (Recursive workflows)
인터프리터는 에이전트가 하네스 (Harness)와 더욱 혁신적인 방식으로 상호작용할 수 있게 해줍니다. 도구와 서브 에이전트 (Subagent)를 코드에서 호출할 수 있기 때문에, 에이전트는 하나의 서브 에이전트가 내놓은 출력을 받아 검사하고 변환한 뒤, 모든 중간 산출물 (Artifact)을 메인 모델로 다시 라우팅하지 않고도 다른 단계로 바로 전달할 수 있습니다.
이를 통해 재귀적 워크플로우 (Recursive workflows)가 가능해집니다. 즉, 에이전트가 질문 큐 (Queue)를 유지하고, 다음 질문에 대해 서브 에이전트 (Subagent)를 호출하며, 그 결과를 저장하고, 해당 결과로부터 후속 작업을 생성하며, 답변을 종합하기에 충분한 증거를 확보할 때까지 이 과정을 계속할 수 있습니다. (이는 단순히 "전체 입력 컨텍스트에 대해 다른 LLM을 호출하는 것" 그 이상입니다. 핵심은 모델 컨텍스트 외부에서 작업 상태 (Working state)를 유지하고, 다음 호출마다 무엇이 전달될지를 제어하는 것입니다.)
const frontier = ["What changed in interpreter middleware?"];
const findings = [];
while (frontier.length && findings.length < 6) {
...
이는 **재귀적 언어 모델 (Recursive Language Models, RLM)**의 개념과 맞닿아 있습니다. 즉, 모델 컨텍스트 외부에 작업 상태를 유지하고, 선택된 브랜치 (Branch)에 대해 모델이나 서브 에이전트를 호출하며, 다음 모델 호출에 들어갈 내용을 제어하는 방식입니다.
Deep Agents에서 인터프리터 (Interpreter)는 이러한 패턴을 위한 작업 런타임 (Working runtime) 역할을 수행합니다. 다만, 모델 계층에서 원래 정의된 방식의 "RLM을 구현한다"고 주장하는 것은 아닙니다.
이 모든 기능은 PyPI에서 deepagents[quickjs]를 설치하거나, npm에서 @langchain/quickjs를 설치하여 미들웨어 (Middleware)로 추가함으로써 활성화할 수 있습니다.
from deepagents import create_deep_agent
from langchain_quickjs import REPLMiddleware
agent = create_deep_agent(
...
인터프리터에 대한 자세한 정보는 문서를 참조하세요.
하네스 프로필 (Harness profiles)
Kimi K2.6, GLM 5.1, DeepSeek V4와 같은 오픈 웨이트 (Open-weight) 모델들은 이제 프로덕션 에이전트 작업에 투입할 수 있는 수준이 되었으며, 종종 폐쇄형 프런티어 (Closed frontier) 모델보다 20배 이상 낮은 비용으로 운영 가능합니다. 하지만 모델들은 서로 다른 도구 호출 (Tool-calling) 형식과 프롬프트 관습에 따라 사후 학습 (Post-trained)된 반면, 대부분의 하네스 (Harness)는 제작자가 구축한 폐쇄형 모델에 맞춰 튜닝되어 있습니다. 모델을 준비 없이 그대로 투입하면, 모델이 사용하는 방언을 하네스가 이해하지 못하기 때문에 모델의 실제 능력 중 극히 일부만을 보게 될 수도 있습니다.
이 격차는 크고 측정 가능합니다. 자체 테스트 결과, 하네스 계층 (Harness-layer)의 변경만으로도 gpt-5.2-codex는 Terminal-Bench 2.0에서 52.8% → 66.5% (Top 30 → Top 5)로 상승했고, gpt-5.3-codex는 tau2-bench에서 20% 향상되었으며, opus-4.7 또한...
10% 향상되었습니다. tau2-bench 전반에 걸쳐, 모델을 변경하지 않고도 프롬프트 (prompts)와 미들웨어 (middleware)를 통해 점수를 10에서 20점까지 높일 수 있습니다.
"하네스 (harness)"는 모델을 둘러싸고 있는 요소들, 즉 기본 시스템 프롬프트 (base system prompt), 도구 (tools) 및 그 설명, 그리고 각 턴 (turn)을 형성하는 미들웨어 (middleware)를 의미합니다. 하네스 프로필 (harness profile)은 이러한 모델별 재정의 (overrides) 사항을 이름이 지정되고 버전 관리가 가능한 단위로 캡처합니다.
Deep Agents v0.6은 하네스 프로필을 일급 추상화 (first-class abstraction)로 만듭니다. 모델과 함께 프로필을 비교 (diff)하고, 버전 관리하며, 교체할 수 있으므로 튜닝 (tuning) 작업 결과가 계속 유지됩니다. 우리는 주요 모델들에 대해 내장된 프로필을 제공하여 강력한 성능이 기본값으로 설정되도록 하고 있으며, 동일한 메커니즘을 사용자의 자체 스택 (stack)에서도 사용할 수 있습니다.
다양한 모델에 걸쳐 Deep Agents를 튜닝하는 방법에 대한 자세한 내용은 다음을 참조하세요. 직접 작성하려면 문서를 확인하십시오.
스트리밍 (Streaming)
에이전트 (Agents)는 최종 답변을 반환하기 전에 많은 작업을 수행합니다. 좋은 사용자 경험 (user experience)을 위해서는 해당 작업이 일어나는 동안 이를 화면에 표시하고, 사용자가 진행 과정에서 에이전트를 조종할 수 있는 능력을 제공해야 합니다. 스트리밍 (streaming)은 이를 가능하게 하는 기본 요소 (primitive)입니다. LangChain의 새로운 릴리스는 스트리밍을 일급 애플리케이션 기본 요소 (first-class application primitive)로 만듭니다. stream_events(..., version="v3")를 통해, 이제 에이전트와 그래프 (graphs)는 개발자가 실제로 렌더링하기를 원하는 기본 요소들, 즉 메시지 텍스트 (message text), 추론 블록 (reasoning blocks), 도구 호출 (tool calls), 상태 업데이트 (state updates), 서브그래프 (subgraphs), 서브에이전트 (subagents), 커스텀 채널 (custom channels), 그리고 최종 출력 (final output)에 대한 인체공학적 투영 (ergonomic projections)을 포함하는 통합된 이벤트 스트림 (event stream)을 방출합니다. 이 스트림은 콘텐츠 블록 중심 (content-block-centric)이므로, UI는 더 이상 청크 (chunk)가 텍스트인지, 추론인지, 미디어인지, 아니면 도구 호출 데이터인지 추측할 필요가 없습니다. 모든 것은 새로운 에이전트 스트리밍 프로토콜 (Agent Streaming Protocol)에 맞춰 타입이 지정된 이벤트 (typed events), 네임스페이스 (namespaces), 그리고 채널 (channels)을 중심으로 구성됩니다.
stream = agent.stream_events(
{"messages": [{"role": "user", "content": "Research LangChain streaming"}]},
version="v3",
...
이 스트리밍 모델은 새로운 에이전트 서버 (Agent Server) 엔드포인트 (endpoints)와 SDK 지원을 통해 네트워크 전송 (over the wire) 시에도 그대로 유지됩니다. LangGraph SDK는 client.threads.stream(...)을 통해 원격 이벤트 스트리밍 (remote event streaming)을 노출합니다.
프론트엔드 측면에서, 이번 릴리스는 @langchain/react, @langchain/vue, @langchain/svelte, 그리고 @langchain/angular를 위한 v1 프레임워크 통합을 제공하여, 팀들이 이벤트 파서를 직접 구현(hand-rolling)하지 않고도 풍부한 스트리밍 경험을 구축할 수 있도록 관용적인(idiomatic) 훅(hooks)과 유틸리티를 제공합니다. 새로운 스택을 쉽게 탐색할 수 있도록, 저희는 '스트리밍 쿡북(Streaming Cookbook)'도 함께 발행합니다. 이는 메시지 스트리밍(message streaming), 서브그래프(subgraphs), 서브에이전트(subagents), 커스텀 스트림 변환기(custom stream transformers), 멀티모달 UI(multimodal UI), 재연결 동작(reconnect behavior), 그리고 프레임워크별 패턴을 다루는 실행 가능한 예제 모음입니다. 그 결과, 정밀함이 필요한 곳에서는 더 낮은 수준(lower-level)의 제어를, 생산성을 원하는 곳에서는 더 높은 수준(higher-level)의 추상화를 제공하며, 에이전트 런타임(agent runtime)부터 사용자 인터페이스(user interface)까지 일관된 스트리밍 기반을 갖추게 되었습니다.
델타 채널 (Delta channels)
Deep Agents는 모든 단계에서 에이전트의 진행 상황을 체크포인트(checkpoint)로 저장하는 LangGraph 런타임(runtime)을 기반으로 구축되었습니다. 이것이 관찰 가능성(observability), 인간 참여형(human-in-the-loop), 그리고 장애 복구(failure recovery)를 가능하게 하는 핵심입니다. 즉, 에이전트가 정확히 어디에 있는지 항상 알 수 있으며 어떤 지점에서든 재개할 수 있습니다.
에이전트의 능력이 향상됨에 따라 다음과 같은 변화가 나타납니다:
- 수십 또는 수백 단계에 걸쳐 메시지 히스토리(message histories)가 증가하며 실행 시간이 길어집니다.
- 컨텍스트 관리 및 오프로딩(offloading)을 위해 파일 시스템을 활용하는 등 더 많은 컨텍스트(context)를 사용합니다.
deepagents의 경우, 메시지 히스토리와 파일은 에이전트 상태(agent state)에 저장되며, 매 단계마다 스냅샷을 찍는(snapshot-every-step) 방식 때문에 체크포인트 저장소는 $O(N^2)$로 증가합니다.
델타 채널(Delta channels)은 이러한 변화에 대응하기 위해 저희가 런타임을 진화시키는 방식입니다. 매 체크포인트마다 전체 스냅샷을 직렬화(serializing)하는 대신, 차이점(diff)만을 저장합니다. Deep Agents의 경우, 이는 메시지 히스토리와 파일에 대해 델타 기반(delta-based) 저장 방식을 사용함을 의미합니다.
저장 비용은 아주 적은 수준으로 줄이면서도, 에이전트 진행 상황에 대한 완전한 히스토리는 여전히 유지할 수 있습니다. 이는 또한 장시간 실행되는 에이전트의 경우 체크포인터(데이터베이스) 쓰기 작업에서 발생하는 병목 현상을 완화하는 데 도움이 되며, 대규모 환경에서의 저장 비용 관리도 훨씬 용이해집니다.
대화의 길이와 컨텍스트 크기에 따라, 델타 채널로 전환하면 체크포인터 저장 공간을 합리적으로 10~100배까지 절감할 수 있습니다.
예를 들어, 다음과 같은 실험을 가정해 봅시다. 에이전트가 파일을 작성하고, 문서를 검색하며, 자신의 작업 내용을 추론하는 시뮬레이션된 멀티 파일 코딩 세션입니다. 이는 유능한 코딩 에이전트가 실제로 수행하는 지속적이고 컨텍스트 집약적인(context-heavy) 작업 유형으로, 총 200회의 턴(turn)이 진행됩니다. 델타 채널 (delta channels)이 없다면, 해당 세션은 5.27 GB의 체크포인트 저장 공간을 축적합니다. 델타 채널을 사용하면: 129 MB가 됩니다.
다음은 델타 채널의 유무에 따른 동일한 에이전트의 체크포인터 (checkpointer) 저장 공간 비교입니다:
그리고 해당 폭증 현상을 시각적으로 나타낸 그래프입니다:
깊은 컨텍스트 (deep context)를 가진 장기 실행 에이전트(Long-running agents)는 이 분야가 나아가는 방향이며, 델타 채널은 우리의 런타임 (runtime)이 그들의 요구 사항을 충족하기 위해 확장(scale)하는 방법입니다.
더 자세한 내용은 전체 글을 참조하세요.
ContextHub 백엔드 (Backend)
Context Hub는 Deep Agents를 위한 LangSmith 기반의 파일 시스템 (filesystem)입니다. 에이전트의 동작을 형성하는 파일들을 위한 버전 관리된 공간을 제공하므로, 프롬프트 (prompts), 기술 (skills) 및 기타 컨텍스트의 개선 사항을 실행 간에 계속해서 이어갈 수 있습니다.
내부적으로 에이전트는 Hub 저장소 (repo)로부터 읽고 (쓰기도 가능합니다). 이러한 쓰기 작업은 이력, 검토(review) 및 환경 태깅 (environment tagging)이 포함된 커밋 (commits)으로 기록됩니다. 따라서 별도의 저장 계층을 연결할 필요 없이 스테이징 (staging) 환경에서 반복 작업(iterate)을 수행하고 프로덕션 (production)으로 승격시킬 수 있습니다.
에이전트의 파일 시스템 백엔드로 사용하려면:
from deepagents import create_deep_agent
from deepagents.backends import ContextHubBackend
agent = create_deep_agent(
...
또는 파일 시스템의 나머지 부분은 스레드 범위 (thread-scoped)로 유지하면서 /memories/ 경로만 Hub로 지정할 수 있습니다:
from deepagents.backends import CompositeBackend, StateBackend, ContextHubBackend
agent = create_deep_agent(
model="google_genai:gemini-3.1-pro-preview",
...
읽기 작업은 캐시 (cache)에서 제공되며, 쓰기 작업은 Hub 저장소로 커밋됩니다. 저장소가 아직 존재하지 않는 경우, 첫 번째 쓰기 작업 시 저장소가 생성됩니다. 그 이후에는 다른 버전 관리된 컨텍스트와 마찬가지로 변경 사항을 차이 분석(diff)하고, 검토하며, 태그를 지정할 수 있습니다.
ContextHubBackend를 사용하기 전에 LANGSMITH_API_KEY를 설정하세요. 충돌 처리 및 제한 사항에 대한 자세한 내용은 전체 문서를 참조하십시오.
마무리
Deep Agents 5월 릴리스 전반을 관통하는 핵심은 성능입니다:
**Harness profiles (하네스 프로필)**는 최적의 하네스 (harness)를 통해 모델의 성능을 최대한 끌어올리는 데 도움을 주며, 프런티어 (frontier) API 비용의 극히 일부만으로도 오픈 웨이트 (open-weight) 모델에서 실행 가능한 에이전트 구동을 가능하게 합니다. **Code interpreter (코드 인터프리터)**는 에이전트가 코드를 작성하고 실행할 수 있는 더 큰 자율성을 부여하여, 복잡한 작업을 완수하고 컨텍스트 윈도우 (context window) 사용을 최적화하도록 돕습니다. **Streaming (스트리밍)**은 도구 및 서브 에이전트 (subagent) 진행 상황에 대한 구독 모델을 통해 고도로 병렬화된 시스템에 대한 지원을 가능하게 합니다. DeltaChannel은 장시간 실행되는 롱 컨텍스트 (long-context) 에이전트를 위한 체크포인트 (checkpoint)를 지원하는 스토리지 프리미티브 (storage primitive)를 도입합니다. ContextHubBackend는 LangSmith Context Hub를 기반으로 에이전트 동작을 구동하는 파일들을 위한 버전 관리형 저장소로서, 한 번의 실행에서 다음 실행으로 컨텍스트 (context)가 개선될 수 있도록 합니다.
최신 deepagents를 직접 사용해 보시길 기대합니다. 여러분의 의견을 들려주세요!
릴리스 노트 (Release notes):
AI 자동 생성 콘텐츠
본 콘텐츠는 LangChain Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기