Articlelangchain.com·2026년 10월 14일·0

Context Engineering with Deep Agents: How To Remember Without Keeping Everything In Context

Quick Summary

LangChain의 Deep Agents는 오프로딩·요약·스킬·서브에이전트·장기 기억으로 활성 컨텍스트의 부담을 줄이고, 사용자 소유 저장소의 일반 파일에 기억을 보존해 모델이나 제공자가 바뀌어도 재사용할 수 있게 한다.

Context Engineering with Deep Agents: How To Remember Without Keeping Everything In Context 관련 대표 이미지

🖼️ 인포그래픽

Context Engineering with Deep Agents: How To Remember Without Keeping Everything In Context 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Context Engineering with Deep Agents: How To Remember Without Keeping Everything In Context의 핵심 내용을 4단계로 요약한 인포그래픽
Context Engineering with Deep Agents: How To Remember Without Keeping Everything In Context 핵심 내용을 4단계로 압축한 4컷 인포그래픽

💡 한 줄 요약

LangChain의 Deep Agents는 오프로딩·요약·스킬·서브에이전트·장기 기억으로 활성 컨텍스트의 부담을 줄이고, 사용자 소유 저장소의 일반 파일에 기억을 보존해 모델이나 제공자가 바뀌어도 재사용할 수 있게 한다.

📌 핵심 요약

  • 장시간 실행되는 에이전트는 지시·도구 결과·파일·중간 작업이 누적되면서 정확도와 추론 성능이 떨어지는 context rot를 겪을 수 있으며, Deep Agents는 다섯 가지 컨텍스트 관리 기법을 제공하는 LangChain의 오픈소스 하네스다.
  • 오프로딩은 약 20,000토큰을 넘는 도구 결과와 50,000토큰 기준의 대형 사용자 메시지를 파일로 저장하고 미리보기와 경로를 제공한다. 요약은 기본적으로 모델 컨텍스트 창 사용량이 85%를 넘으면 오래된 메시지를 압축하되 최근 메시지는 원문으로 유지하며, 압축한 메시지도 파일에서 다시 읽을 수 있게 한다.
  • 스킬은 이름과 설명을 먼저 제시하고 관련 작업에서만 전체 지침을 읽는 점진적 공개 방식을 사용한다. 서브에이전트는 검색과 자료 조사처럼 정보가 많이 발생하는 작업을 별도 컨텍스트에서 수행하고 최종 결과만 주 에이전트에 반환하며, 범위가 작은 작업은 더 저렴한 모델이나 병렬 실행에 적합할 수 있다.
  • 장기 기억은 실행 시작 시 읽고 매 모델 호출의 시스템 프롬프트에 주입하며 보존할 학습 내용을 갱신하는 마크다운 파일이다. 사용자가 제어하는 저장소에 있으므로 모델이나 제공자를 바꿔도 저장된 기억을 재사용할 수 있다.
  • 각 기법은 에이전트 실행 루프에 연결되는 미들웨어로 대부분 기본 제공된다. 원문은 RAG나 파일시스템 검색만으로는 이미 누적된 중간 작업까지 관리할 수 없다고 설명하며, 원문 복구 가능성·필요할 때의 지침 로딩·작업별 임계값 조정을 설계 원칙으로 제시한다.

🧩 주요 포인트

  1. RAG가 필요한 정보의 유입을 좁혀도 실행 중 기록은 계속 쌓임 → 검색과 함께 활성 컨텍스트 내부의 누적 정보도 관리해야 한다.
  2. 오프로딩·요약은 원문을 파일에 남기고 스킬·서브에이전트는 필요한 지침과 결과만 전달함 → 세부 정보에 대한 접근을 유지하면서 주 에이전트가 처리하는 정보량을 줄인다.
  3. 장기 기억을 사용자 소유의 일반 파일로 저장하고 임계값을 조정할 수 있음 → 모델·제공자 전환 시 기억을 이어 쓰고 작업 특성에 맞게 컨텍스트 관리 방식을 바꿀 수 있다.

🧠 상세 정리

1. 장시간 실행에서 발생하는 context rot

원문은 시험 직전 많은 내용을 한꺼번에 공부할수록 앞부분이 흐려지는 경험에 빗대어, 에이전트도 긴 작업에서 비슷한 문제를 겪는다고 설명한다. 지시, 도구 결과, 파일과 대화 이력이 계속 쌓이면 모델의 컨텍스트 창에 편안하게 담을 수 있는 범위를 벗어나며, 기록과 잡음이 많을수록 정확도와 추론 성능이 떨어지는 경향을 context rot라고 부른다. 이를 다루는 컨텍스트 엔지니어링은 불필요한 정보가 처음부터 들어오지 않게 하는 방법과 이미 들어온 정보를 관리하고 걸러내는 방법으로 나뉜다. 모델을 둘러싼 하네스는 주어진 작업에 맞는 정보를 적절한 시점에 제공하도록 이 방법들을 적용한다. LangChain의 오픈소스 하네스인 Deep Agents는 오프로딩, 요약, 스킬, 서브에이전트, 장기 기억을 통해 정보를 파일이나 요약, 별도 에이전트로 옮겨 주 에이전트의 활성 컨텍스트 부담을 줄인다.

2. 경쟁사 분석 사례와 미들웨어의 역할

원문은 매주 월요일 경쟁사 다섯 곳을 조사하고 팀의 양식으로 보고서를 작성하는 에이전트를 예로 든다. 이 에이전트가 기업별 수만 행의 시장 데이터, 뉴스 검색 결과, 기사와 메모를 모으고 피드백에 따라 초안을 고치면, 마지막 서식 작업에서도 원시 데이터 다섯 벌과 수십 개 검색 결과, 오래된 초안 두 개를 계속 전달하게 된다. RAG나 파일시스템 검색은 필요한 자료만 가져오는 데 도움이 되지만, 실행 중 쌓이는 불필요한 메시지와 중간 작업까지 해결하지는 못한다. 에이전트는 모델의 판단, 도구 호출, 결과 읽기를 반복하며, 미들웨어는 실행 전이나 모델·도구 호출 전후의 특정 지점에 연결되어 다음 단계가 실행되기 전에 컨텍스트를 읽고 바꿀 수 있다. 글에서 소개하는 다섯 기법은 모두 이런 연결 지점에 적용되는 미들웨어이며, 대부분 기본 제공되므로 특정 동작을 맞춤화하려는 경우가 아니라면 직접 구현할 필요가 없다고 설명한다.

3. 오프로딩으로 대형 입력의 유입 줄이기

오프로딩은 도구나 사용자가 반환한 대량의 정보를 모두 모델에 보여주는 대신 원문을 파일로 옮기고 짧은 미리보기만 전달하는 방식이다. FilesystemMiddleware는 도구가 호출될 때마다 작동하며, 결과가 약 20,000토큰을 넘으면 대화에 들어오기 전에 전체 내용을 /large_tool_results/{tool_call_id}에 저장한다. 모델은 처음과 마지막 몇 줄 및 파일 경로를 보고, 나중에 Company B의 분기 매출처럼 특정 세부 정보가 필요해지면 read_file로 파일을 나누어 읽을 수 있다. 붙여 넣은 통화 기록처럼 지나치게 큰 사용자 메시지에도 같은 방식이 적용되지만, 기준은 더 높은 50,000토큰이며 저장 위치는 /conversation_history/다. 원문은 이를 단순 잘라내기와 구분하는데, 잘라내기는 정보를 잃게 하지만 오프로딩은 활성 컨텍스트의 크기를 줄이면서 원문을 다시 가져올 가능성을 유지하기 때문이다.

4. 요약으로 누적된 대화 압축하기

대형 입력을 오프로딩해도 여러 기업의 검색, 메모, 초안이 이어지면 컨텍스트는 점진적으로 늘어나므로, 이미 쌓인 오래된 메시지를 요약해 실행을 계속할 공간을 확보한다. SummarizationMiddleware는 매 모델 호출 직전에 토큰 사용량을 확인하고, 기본적으로 모델 컨텍스트 창의 85%를 넘으면 별도의 LLM 호출로 오래된 메시지를 하나의 요약으로 압축한다. 오래된 메시지는 활성 창에서 빠지지만 가장 최근 메시지는 원문으로 남아, 모델은 요약을 먼저 보고 이어서 최근 내용을 읽는다. 요약 대상 메시지는 /conversation_history/{session_id}.md에 저장되므로 보고서 작성 중 앞선 조사 세부 사항이 필요하면 다시 읽을 수 있다. 실행이 계속되어 다시 임계값에 도달하면 이전 요약을 포함해 새 요약을 만들며, 토큰 사용량뿐 아니라 주제 전환을 계기로 요약하거나 요약 프롬프트를 맞춤화하는 방법도 제시한다.

5. 스킬의 점진적 공개로 지침을 필요할 때 로딩하기

분기별 비즈니스 리뷰인 QBR의 작성 양식처럼 가끔만 필요한 지침을 시스템 프롬프트에 항상 넣으면, 관련 없는 작업에서도 매 호출마다 토큰과 응답 시간 비용을 부담하게 된다. 스킬은 이런 전문 작업용 지침과 선택적인 스크립트·참고 문서를 폴더로 묶고, 처음에는 짧은 설명만 보여준 뒤 관련성이 생겼을 때 전체 내용을 읽도록 한다. SkillsMiddleware는 에이전트 시작 전에 스킬 폴더를 훑어 각 SKILL.md의 헤더만 읽고, 매 모델 호출에서 이름과 설명을 시스템 프롬프트에 추가한다. 모델이 특정 스킬이 필요하다고 판단해 read_file로 읽을 때만 전체 지침이 컨텍스트에 들어오므로, 조사 단계에서는 양식을 싣지 않고 QBR 서식을 맞출 시점에 qbr-report를 불러올 수 있다. 원문은 이를 점진적 공개라고 부르며, 스킬 열 개도 초기에는 짧은 설명 열 줄 정도의 컨텍스트만 차지한다는 비유로 작동 방식을 설명한다.

6. 서브에이전트로 정보가 많이 발생하는 작업 격리하기

오프로딩이 지나치게 큰 결과를 다루는 데 효과적이라면, 서브에이전트는 수십 번의 검색과 페이지 열람처럼 처음부터 많은 정보가 발생할 것으로 예상되는 작업에 적합한 설계 선택이다. 서브에이전트가 자신의 컨텍스트 창에서 작업을 마치고 최종 결과만 반환하면 주 에이전트는 조사 과정의 잡음을 전달받지 않는다. SubAgentMiddleware는 서브에이전트의 시스템 프롬프트와 사용 가능한 도구를 맞춤화할 수 있으며, 예시의 market-researcher는 pull_market_report를 사용한 뒤 가장 주목할 만한 변화 세 가지를 짧은 글머리표로 반환하도록 설정된다. 주 에이전트는 기업별 조사를 이 서브에이전트에 맡기고 원시 보고서나 그 미리보기 없이 세 개의 결과만 받는다. 원문은 서브에이전트의 작업이 작고 범위가 명확한 경우가 많아 더 저렴한 모델에서 실행하거나 병렬로 처리할 수 있는 경우가 많다고 설명하지만, 이를 모든 작업에 보장되는 특성으로 단정하지는 않는다.

7. 장기 기억과 모델·제공자 간 이동

조사 실행 중 얻은 내용 가운데 다음 대화에도 유용한 것은 장기 기억에 남길 수 있으며, 원문은 요약을 문단 대신 글머리표로 작성해 달라는 사용자 선호를 사례로 든다. Deep Agents의 장기 기억은 마크다운 파일이며, MemoryMiddleware는 실행 시작 시 파일을 읽고 매 모델 호출의 시스템 프롬프트에 내용을 주입하며 보존할 가치가 있는 내용을 배웠을 때 파일을 갱신한다. 이 방식은 사용자가 같은 형식 선호를 매주 반복해서 설명해야 하는 문제를 줄이기 위한 것이다. 기억이 제공자에게 종속된 보관물이 아니라 사용자가 제어하는 저장소의 일반 파일이므로, 동일한 저장 백엔드를 다른 모델에 연결해도 저장된 내용을 읽을 수 있다. 예시 코드는 모델로 openai:gpt-6를 지정하면서 /memories/AGENTS.md와 backend, store를 함께 전달하며, 다음 주에 다른 모델을 사용해도 같은 파일의 선호를 읽어 글머리표 요약을 작성할 수 있다고 설명한다.

8. 복구 가능성과 작업별 조정을 중심에 둔 설계 원칙

글의 마지막은 Deep Agents를 쓰거나 다른 하네스를 선택하거나 직접 구현하는 경우 모두에 적용할 수 있는 컨텍스트 관리 원칙을 정리한다. 대형 입력은 잘라내기보다 오프로딩해 원문을 다시 가져올 수 있게 하고, 대화를 압축한 뒤에도 필요한 세부 정보에 돌아갈 경로를 남겨야 한다는 것이 첫 번째 축이다. 다른 축은 모든 작업의 지침을 매번 싣지 않고 필요할 때 불러오며, 정보가 많이 발생하는 작업은 별도 컨텍스트의 서브에이전트에 맡겨 주 에이전트가 필요한 내용에 집중하도록 하는 것이다. 기억은 사용자가 제어하는 저장소에 두어 모델이나 제공자 전환 뒤에도 유지하고, 한 작업에 맞는 임계값이 모든 작업에 맞지는 않으므로 기본값을 조정할 수 있어야 한다고 강조한다. 원문은 도입 명령인 uv add deepagents와 함께 11월 3일 강의 및 LangChain Academy의 무료 자율 학습 Deep Agents 과정을 안내하며 마무리한다.

🧾 핵심 주장 / 시사점

  • 컨텍스트 관리의 핵심은 필요한 정보를 다시 찾을 경로를 남기면서 매 모델 호출에 실리는 정보량을 줄이는 데 있다.
  • 오프로딩은 큰 입력의 순간적 증가를, 요약은 실행 전반의 점진적 누적을 다루므로 서로 보완적으로 작동한다.
  • 파일 기반 장기 기억은 대화 간 선호 유지와 모델·제공자 전환을 연결하지만, 실제로 이어지는 내용은 파일에 저장된 기억이다.

✅ 액션 아이템

  • 작업별 입력 규모와 컨텍스트 누적 양상을 바탕으로 약 20,000토큰·50,000토큰의 오프로딩 기준과 85% 요약 임계값의 적합성 검토.
  • 반복 사용하는 지침은 스킬로, 정보가 많이 발생하는 조사는 서브에이전트로 처리할 수 있는지 검토.
  • 사용자 소유 저장소의 장기 기억과 오프로딩·요약 원문을 모델·제공자 전환 이후에도 재사용할 수 있는지 확인.

❓ 열린 질문

  • 현재 작업에는 약 20,000토큰·50,000토큰의 오프로딩 기준과 85% 요약 임계값이 적합한가?
  • 어떤 지침을 스킬로 불러오고 어떤 조사 작업을 서브에이전트에 맡길 때 주 에이전트의 컨텍스트 부담을 효과적으로 줄일 수 있는가?
  • 모델이나 제공자를 바꾼 뒤에도 사용자 소유 저장소의 장기 기억을 같은 방식으로 읽고 갱신할 수 있는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.