값싼 필터가 먼저, 비싼 검증은 그다음.
Boxdawn은 트레이스를 그래프로 읽어 2단 캐스케이드로 실행합니다. 구조 패스는 마이크로초 단위로 후보를 걸러내고, 의미 패스는 살아남은 것만 봅니다. 전체를 훑지 않습니다.
trace.json ─▶ ┌────────────────────────────┐
│ 1. STRUCTURAL PASS │
│ (byte-exact, O(n)) │
│ provable duplicate │
└──────────┬─────────────────┘
│
┌──────────▼─────────────────┐
│ 2. CONTEXT RESEND │
│ (chunk-level match) │
│ input-side accounting │
└──────────┬─────────────────┘
│
┌──────────▼─────────────────┐
│ 3. REDUNDANT READ │
│ (file re-read events) │
└──────────┬─────────────────┘
│
┌──────────▼─────────────────┐
│ 4. LLM-JUDGE (opt-in) │
│ (semantic paraphrase) │
│ API key required │
└──────────┬─────────────────┘
▼
report.md같은 에이전트가 같은 입력으로 다시 실행됩니다. 그 사이에 새로 유입된 정보는 없습니다.
두 에이전트가 새로운 상태를 만들지 않고 서로에게 계속 넘깁니다.
구현됨, 실제 트레이스에서는 아직 관측되지 않음
매 API 호출마다 대화 전체가 다시 전송됩니다. 긴 에이전트 세션에서는 input 토큰의 약 97%가 재전송 컨텍스트(byte-exact 청크 매칭)로 누적됩니다.
같은 파일이 사이에 쓰기 없이 여러 번 Read 됩니다. 컨텍스트에 이미 있는 것을 잊는 코딩 에이전트에서 흔합니다.
바이트는 다르지만 의미가 같은 두 메시지 청크(paraphrased 재전송). opt-in LLM-judge 층이 감지 · 기본 비활성 · API 키 필요.
Opt-in 전용 · ANTHROPIC_API_KEY 필요
pingpong은 실제 멀티에이전트 트레이스가 있어야 나타납니다. 단일 에이전트 코딩 세션이나 Toolathlon에서는 발생하지 않습니다.
참고: 네 번째 후보 패턴이었던 regen_handoff은(는) 사전 등록 기준을 통과하지 못해 제외되었습니다. Proven / Not Yet 섹션 참조.
Boxdawn이 아는 것.
- read_only
- side_effect
- payload_dependent
- declarative
- LangChain / LangGraph
- CrewAI
- LlamaIndex
- OpenAI Agents SDK
- AutoGen
- Smolagents
- find_repeat_candidates
- find_pingpong_candidates
- find_context_resend
- find_redundant_reads
- find_llm_judge_semantic_duplicates
- Boxdawn Trace JSON
- OTel SDK JSON
- Claude Code JSONL
- Toolathlon JSONL
- OpenInference nested
- RedundancyBench
version: 1
tools:
search_web: { category: read_only }
create_ticket: { category: side_effect, entity_id: response.ticket.id }
run_python: { category: payload_dependent }
finalize: { category: declarative }A real report.
# Boxdawn Waste Report - **trace_id**: `7f309fce-093f-412d-be64-cbd2860481f3` - **analyzed**: 2026-08-20T06:56:01Z - **detector params**: φ=0.514345, N=2, model=paraphrase-multilingual-MiniLM-L12-v2 ## Cost summary - **Total analyzed**: $2.524880 - **Total waste (detected)**: $1.665249 (66.0%) - **Cost accuracy**: `accurate` Breakdown by detector: - provable_duplicate: $0.000000 - context_resend: $1.665249 - redundant_read: $0.000000 ## Result - **Waste detection (tool cascade)**: no waste detected (wasteful=False). - **Context resend**: 1720 resent chunk(s), 2056739 of 2238628 input tokens (91.9%). See section below. - **Tool mapping coverage for this trace**: 3 of 8 tools recognized (37.5%). - **Unrecognized tools in this trace (top 5)**: TaskUpdate, TaskCreate, ScheduleWakeup, ToolSearch, mcp__claude_ai_Hugging_Face__hub_repo_details ## Context resend Message chunks that appear in the input of two or more LLM calls within this trace, byte-exact by sha256. System-role chunks are exempt. - **events**: 1720 resent chunk occurrence(s) - **resent input tokens**: 2056739 of 2238628 (91.9%) - **resent input cost**: $1.665249 of $1.931955 (86.2%) - **cost accuracy**: `accurate` ### Top offenders (by LLM call) - span `msg_01S2rTDtWwK9s5G15AiHu3Zf` — 22 resent chunks, 65715 tokens, $0.253172 - span `msg_01MwTSZsxhZnFzS2DHbWoe7k` — 68 resent chunks, 148485 tokens, $0.206537 - span `msg_01GmBJvkryprm1pCB6tMtdc5` — 123 resent chunks, 162168 tokens, $0.138267 - span `msg_011ZR8iNqiod3YbbDs4UCgUp` — 225 resent chunks, 211788 tokens, $0.133689 - span `msg_01K8wsAnXZ7RqcvVdkrsP3LX` — 117 resent chunks, 130004 tokens, $0.092611 --- _Note: detection thresholds are frozen at synthetic values (phi=0.514345, N=2); real-trace evaluation is ongoing._ _Cost is estimated saving potential, not measured — assumes the wasted output is re-consumed each subsequent turn (structural assumption)._
2026-08-20에 boxdawn 0.5.0으로 분석했고, 0.5.3(2026-08-27)에서 다시 확인해 소수점 여섯 자리까지 같았습니다. 출처: davanstrien/agent-race-traces 의 claude-code.jsonl 에 boxdawn analyze 실행. CC-BY-4.0으로 공개된 claude-opus-4-7 Claude Code 세션($2.524880 분석). 이 모델은 가격표에 있으므로 달러 수치는 대체 요율이 아닙니다. 트레이스가 공개되어 있어 위 수치는 전부 재현할 수 있습니다. Cost summary 와 Context resend 절을 보여줍니다. Redundant read 와 LLM-judge(선택형)는 이 트레이스에서는 빈 결과를 냅니다.
오픈소스입니다. 신뢰 자체가 곧 제품이니까요.
Boxdawn은 MIT 라이선스이며 기본값은 결정론입니다. 네 개의 디텍터(provable duplicate, context resend, redundant read, duplicate creation)가 로컬에서 실행됩니다. API 호출 없음, 가입 없음. 다섯 번째 층 semantic-duplicate LLM-judge는 opt-in 전용입니다: 기본 비활성이며, ANTHROPIC_API_KEY와 CLEW_ENABLE_LLM_JUDGE=1을 명시적으로 설정해야 활성화됩니다. 결정론 층은 같은 트레이스가 들어가면 매번 같은 리포트가 나옵니다.
$ pip install "boxdawn[detect]"$ boxdawn analyze your_trace.jsonOpenTelemetry SDK JSON과 OpenInference 트레이스 익스포트를 지원합니다: LangGraph, CrewAI, AutoGen, LlamaIndex. OTLP proto-JSON은 아직 지원하지 않습니다.
Where we are on the chain.
Boxdawn is a chain: monitor → detect → alert → auto-fix → auto-optimize + govern. Detection is the link that runs today, as a service and as a library. The rest is being built in that order, and this page is where you can check which is which.
- 호스팅 분석기, 계정 불필요
- 결정론적 탐지기 4종
- 실제 usage 필드에서 뽑은 비용
- 계정 + 프로젝트별 이력
- 일별 낭비율, 세션 날짜 기준
- CI·스크립트용 API 키
- 오픈소스 CLI, 오프라인 실행
- 선택형 의미 분석 패스
- 기준선 알림
- 실시간 모니터링
- 루프 탐지
- 세션 흐름 시각화
- 비용과 함께 지연시간
- 자동 수정
- 자동 최적화
- 정책·거버넌스