TL;DR
Leviath는 모델·도구·컨텍스트 예산을 stage마다 다르게 배정하는 28 MB Rust 기반 agent runtime으로, 한 프로세스에서 최대 10,000개 에이전트를 실행한다. task와 plan은 pinned 영역으로 유지하고 conversation은 sliding window로 압축하며, Run journal은 중단된 작업에서 완료된 도구 호출을 재실행하지 않도록 상태를 기록한다. 컨텍스트 윈도 스트레스 실험에서 structured agent는 32k·64k·128k 조건 모두 10회 중 10회 보고서를 완성했지만 single-model loop는 모두 0회였고, 128k 검증 실험에서는 조작 수치가 8개에서 0개로 줄었다. 다만 자체 제작한 극한 조건의 실험이며, 자료가 한 윈도에 충분히 들어가는 작업에는 단일 loop를 우선하라는 결론이다.
섹션별 상세




[stages.plan] ← Stages
mode = "interactive_points" ← Live steering
model = { models = [{ provider = "anthropic", model = "claude-sonnet-5" }] }
available_tools = ["read_file", "ask_user_choice", "edit_document"]
max_iterations = 20
[stages.implement]
model = { models = [{ provider = "anthropic", model = "claude-opus-5" }] }
available_tools = ["write_file", "edit_file", "bash"]
max_iterations = 50
[stages.implement.transitions.reassess] ← Stages
condition = "stuck"
stuck_after_iterations = 20
stuck_after_minutes = 15
stuck_after_same_file_edits = 5
hint = "No forward progress - step back and reassess"
[context.regions] ← Context regions
task = { kind = "pinned", budget = "2%" }
plan = { kind = "pinned", budget = "5%" }
conversation = { kind = "sliding_window", max_items = 40, budget = "20%" }plan과 implement stage의 모델·도구·반복 한도를 지정하고, 반복 정체 조건과 Context regions의 보존 예산을 설정하는 Leviath 에이전트 파일이다.


용어 해설
- Context regions
- — 에이전트가 장시간 작업에서 정보를 보존하는 이름 있는 컨텍스트 영역이다. task와 plan처럼 계속 유지하는 영역, conversation처럼 sliding window로 압축하는 영역을 분리해 각기 다른 예산과 보존 규칙을 적용한다. 전체 대화를 한 번에 요약하는 방식보다 핵심 상태와 최근 상호작용을 독립적으로 관리할 수 있다는 점이 중요하다.
- Sliding window
- — 최근 항목만 컨텍스트에 남기고 오래된 항목을 밀어내는 메모리 관리 방식이다. Leviath에서는 conversation 영역에 max_items와 예산을 지정하고, task·plan·codebase 같은 고정 영역은 별도로 보존한다. 긴 작업에서 전체 기록을 하나의 손실성 요약으로 압축하는 문제를 줄이는 데 쓰인다.
- Run journal
- — 에이전트가 수행한 도구 호출과 결과를 실행 중 기록하는 журнал이다. 호출이 시작될 때와 완료될 때 상태를 남기므로 프로세스가 중단된 뒤 daemon이 완료된 작업은 재실행하지 않고, 진행 중이던 작업만 확인 대상으로 돌릴 수 있다. 마이그레이션이나 브랜치 push처럼 반복 실행이 위험한 작업의 복구에 의미가 있다.
- 여러 에이전트의 모델 추론 요청을 함께 처리하는 고정 크기 실행 풀이다. 글의 부하 테스트에서는 풀 크기를 128, 256, 512, 1,024로 바꾸면서 동시에 처리하는 작업 수와 메모리·CPU·완료 시간을 측정했다. 풀을 넓히면 같은 1,000개 작업을 더 빨리 끝내지만 실행 중 메모리 사용량은 높아진다.(Inference pool)
- — 여러 에이전트의 모델 추론 요청을 함께 처리하는 고정 크기 실행 풀이다. 글의 부하 테스트에서는 풀 크기를 128, 256, 512, 1,024로 바꾸면서 동시에 처리하는 작업 수와 메모리·CPU·완료 시간을 측정했다. 풀을 넓히면 같은 1,000개 작업을 더 빨리 끝내지만 실행 중 메모리 사용량은 높아진다.
- 하나의 긴 루프 대신 여러 stage와 컨텍스트 예산, 전환 조건으로 작업 흐름을 나눈 에이전트다. 각 stage가 모델·도구·반복 횟수를 따로 선택하고, stuck 조건이 충족되면 reassess stage로 이동해 작업을 다시 판단한다. 자료가 한 번의 컨텍스트 윈도에 들어가지 않거나 결과 검증이 필요한 작업에서 단일 루프보다 안정적인 형태로 쓰인다.(Structured agent)
- — 하나의 긴 루프 대신 여러 stage와 컨텍스트 예산, 전환 조건으로 작업 흐름을 나눈 에이전트다. 각 stage가 모델·도구·반복 횟수를 따로 선택하고, stuck 조건이 충족되면 reassess stage로 이동해 작업을 다시 판단한다. 자료가 한 번의 컨텍스트 윈도에 들어가지 않거나 결과 검증이 필요한 작업에서 단일 루프보다 안정적인 형태로 쓰인다.
기술
- Leviath
- Rust
- The Lair
- claude-sonnet-5
- claude-opus-5
- lev dash
- MCP tool servers
- REST API
- WebSocket API
- OpenTelemetry tracing
- sandboxing
- taint tracking
활용 사례
- 코딩 agent의 계획·구현·검토 workflow
- 대규모 battery technology research
- 자료가 컨텍스트 윈도보다 큰 조사 보고서 작성
- 원문 대조가 필요한 수치 검증
- rate limiting을 포함한 API 코드 변경
- sub-agents와 fan-out을 사용하는 병렬 작업
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.