- Planning tool
- Context와 장기 메모리를 저장하기 위한 filesystem
- Subagent를 생성하는 기능
create_deep_agent로 deep agent를 생성하면, TodoListMiddleware, FilesystemMiddleware, SubAgentMiddleware가 자동으로 agent에 연결됩니다.
Middleware는 조합 가능합니다—필요에 따라 agent에 원하는 만큼의 middleware를 추가하거나 제거할 수 있습니다. 모든 middleware를 독립적으로 사용할 수 있습니다.
다음 섹션에서는 각 middleware가 제공하는 기능을 설명합니다.
Planning middleware
Planning은 복잡한 문제를 해결하는 데 필수적입니다. 최근 Claude Code를 사용해보셨다면, 복잡한 다단계 작업을 처리하기 전에 할 일 목록을 작성하는 것을 보셨을 것입니다. 또한 더 많은 정보가 들어오면 이 할 일 목록을 즉석에서 조정하고 업데이트할 수 있다는 것도 알 수 있습니다.TodoListMiddleware는 agent에게 이 할 일 목록을 업데이트하기 위한 전용 tool을 제공합니다. 다단계 작업을 실행하기 전과 실행하는 동안, agent는 write_todos tool을 사용하여 현재 수행 중인 작업과 아직 완료해야 할 작업을 추적하도록 프롬프트됩니다.
Filesystem middleware
Context engineering은 효과적인 agent를 구축하는 데 있어 주요 과제입니다. 특히 가변 길이 결과를 반환하는 tool(예: web_search 및 rag)을 사용할 때 어렵습니다. 긴 tool 결과가 context window를 빠르게 채울 수 있기 때문입니다.FilesystemMiddleware는 단기 및 장기 메모리와 상호작용하기 위한 네 가지 tool을 제공합니다:
- ls: Filesystem의 파일 목록 조회
- read_file: 파일 전체 또는 파일의 특정 줄 수 읽기
- write_file: Filesystem에 새 파일 작성
- edit_file: Filesystem의 기존 파일 편집
단기 vs. 장기 filesystem
기본적으로 이러한 tool은 graph state의 로컬 “filesystem”에 작성합니다. Agent runtime에Store 객체를 제공하면 장기 메모리에 저장할 수도 있으며, 이는 agent의 서로 다른 thread 간에 지속됩니다.
use_longterm_memory=True를 활성화하고 agent runtime에 Store를 제공하면, /memories/ 접두사가 붙은 모든 파일이 장기 메모리 store에 저장됩니다. LangGraph Platform에 배포된 모든 agent는 자동으로 장기 메모리 store가 제공됩니다.
Subagent middleware
Subagent에게 작업을 위임하면 context가 격리되어, 작업을 깊이 있게 처리하면서도 메인(supervisor) agent의 context window를 깨끗하게 유지할 수 있습니다. Subagent middleware를 사용하면task tool을 통해 subagent를 제공할 수 있습니다.
general-purpose subagent에 접근할 수 있습니다. 이 subagent는 메인 agent와 동일한 instruction을 가지며 메인 agent가 접근할 수 있는 모든 tool을 사용할 수 있습니다. general-purpose subagent의 주요 목적은 context 격리입니다—메인 agent는 복잡한 작업을 이 subagent에게 위임하고 중간 tool 호출로 인한 부담 없이 간결한 답변을 받을 수 있습니다.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.