피드로 돌아가기
Dev.toAI/ML
원문 읽기
Context Compaction 한계를 극복한 File-based DAG 상태 관리 설계
Task System: A File-Based DAG That Survives Context Compaction
AI 요약
Context
Agent의 컨텍스트 윈도우 최적화를 위한 Compaction 전략 적용 시 대화 이력이 요약되며 세부 실행 계획이 소실되는 정보 손실 문제 발생. 메모리 내 상태 유지 방식으로는 장기 세션 및 복잡한 멀티스텝 태스크의 일관성 유지가 불가능한 구조적 한계 노출.
Technical Solution
- 컨텍스트 외부의 영속성 확보를 위해 .tasks/ 디렉터리를 기반으로 한 File-per-entity 저장소 설계
- 태스크 간 의존성을 blockedBy(Upstream)와 blocks(Downstream)로 정의한 Directed Acyclic Graph(DAG) 구조 구현
- 개별 JSON 파일 저장 방식을 채택하여 단일 파일 업데이트 시 발생하는 데이터 오염 및 파싱 오류 리스크 최소화
- 파일 시스템 스캔 기반의 Max ID 추출 로직을 통한 프로세스 재시작 후에도 유지되는 Auto-incrementing ID 체계 구축
- 태스크 완료 시 연결된 DAG 엣지를 추적하여 후속 태스크를 자동으로 활성화하는 Cascading Unblock 메커니즘 적용
- 휘발성 메모를 위한 TodoManager와 구조적 계획을 위한 TaskManager를 분리하여 목적에 따른 상태 저장 계층 차별화
실천 포인트
1. LLM 기반 워크플로우 설계 시 복잡한 상태 전이가 필요한 경우 In-context memory 대신 외부 DB/File 저장소 검토
2. 데이터 무결성 보장을 위해 대형 단일 상태 파일보다 엔티티별 개별 파일 저장 방식의 Trade-off 분석
3. 태스크 간 선후 관계가 명확한 경우 DAG 구조를 도입하여 상태 전이의 자동화 및 가시성 확보
4. 시스템 재시작 및 컨텍스트 초기화 상황을 가정한 상태 복구(Recovery) 로직 설계