AI 에이전트에서 컨텍스트 압축의 진화
LangChain
OpenRouter
AI 에이전트는 컨텍스트를 유지하기 위해 메시지 기록에 의존하지만, 긴 로그는 대규모 언어 모델(LLM)의 컨텍스트 창에 부담을 주고 성능을 저하시킵니다. 컨텍스트 압축의 진화는 단순한 꼬리 잘라내기에서 요약, 머리와 꼬리 보호, 마지막으로 저장된 기록과 작업 컨텍스트를 분리하고 필요 시 세부 정보를 검색하는 도구를 사용하는 방향으로 발전합니다.
AI 에이전트는 사용자와 언어 모델(LLM) 간의 메시지 교환 주기로서, 모델이 도구나 MCP를 호출할 수 있습니다. 각 상호 작용은 대화 기록에 추가되며, 일반적으로 다음 모델 호출에 전체가 전송됩니다. 그러나 컨텍스트 창은 크지만 무한하지 않으며, 크고 제대로 구조화되지 않은 기록에서는 성능이 저하됩니다. 고전적인 '중간에 잃어버림' 논문은 U자형 곡선을 보여줍니다. 모델은 긴 입력의 시작과 끝을 중간보다 더 잘 활용합니다. 이 기사는 컨텍스트를 압축하는 접근 방식의 진화를 추적합니다. LangChain의 trim_messages를 통한 단순 꼬리 자르기(롤링 윈도우), create_agent의 SummarizationMiddleware를 사용하여 오래된 메시지를 요약 블록으로 요약, 그 다음 Hermes Agent와 OpenRouter의 중간 압축에서 볼 수 있듯이 처음 N개의 메시지와 새로운 꼬리를 보호하면서 중간을 압축합니다. 가장 새로운 접근 방식은 저장된 기록을 작업 컨텍스트에서 분리합니다. 전체 기록은 외부(예: 파일)에 보관되고, 모델 호출은 새로운 꼬리와 요약이 포함된 뷰를 받으며, 에이전트에는 전체 기록에서 세부 정보를 검색하기 위한 read_file 또는 grep과 같은 도구가 제공됩니다. LangChain의 Deep Agents 라이브러리는 SummarizationMiddleware에서 이를 구현하지만, 이름이 기본 미들웨어와 혼동스럽게 공유됩니다. 이러한 진화는 에이전트가 아는 것(전체 기록, 도구 결과, 스킬)과 다음 모델 호출에 포함되는 것을 구분하는 컨텍스트 엔지니어링의 더 넓은 추세의 일부입니다.
출처: Habr — хаб ИИ —
원문
