정보
이 스킬은 기계적 서브에이전트 작업을 저렴한 모델로 라우팅하면서 주된 고가 모델은 오케스트레이션과 검토에 활용함으로써 비용을 최적화합니다. 코드베이스 중심이거나 다중 에이전트를 포함하는 토큰 집약적 워크플로우를 위해 설계되었습니다. 시스템은 라우팅 효과를 측정하는 "ax" 그래프를 통한 검증을 포함하며, 결정론적 디스패치 훅과 연동됩니다.
빠른 설치
Claude Code
추천npx skills add Necmttn/ax -a claude-code/plugin add https://github.com/Necmttn/axgit clone https://github.com/Necmttn/ax.git ~/.claude/skills/efficient-dispatchClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
efficient-dispatch - routed, measured, verified
The main model is the orchestrator and Q&A reviewer. Mechanical work runs on cheaper models - and unlike guidance-only approaches, every claim here is checkable against your own ax graph.
The split
Two axes. First, main model vs subagent: the main model orchestrates and reviews; mechanical work goes to subagents. Second, and the one that actually controls spend - the tier of each subagent dispatch:
- Implementer subagents (well-specified plan tasks, mechanical edits, search,
bulk transforms) → dispatch with
model: sonnet(or haiku for pure search/locate, per the table). - Reviewer / judgment subagents (quality / PR / final / adversarial / code
review, design, audit, architect, critique, judge) → keep the strong model:
inherit the main model, or set
model: opus/fableexplicitly. Review is the catch-rate gate; a cheap reviewer misses real bugs.
Get this backwards and you pay twice: in one ax session implementers ran on the
expensive inherited model while reviewers were sent to a cheap one - ~$130 over,
weaker catch rate, three fix rounds (memory feedback-review-gets-strong-model).
The default-inherit trap is implementers, not reviewers: a forgotten model: on
an implement … dispatch silently runs expensive. Set it.
Main model keeps (never dispatched at all): decomposition, architecture and product tradeoffs, plan synthesis, judging conflicting subagent reports, final integration, taste-heavy design/copy.
Isolate heavy context (the second reason to dispatch)
Cost-tier is one reason to dispatch. The other is context isolation - and it applies even when the work needs the strong model. A large input read into the main thread does not cost once: it sits in the context window and is re-sent as input on every later turn. A 0.5 MB screenshot Read on turn 5 of a 40-turn session is re-billed ~35 times and crowds out earlier reasoning.
The biggest offender is images. Reading screenshots for visual judgment (does this match the spec? rate this design, find the visual bug) floods the main context with vision tokens that persist for the rest of the session. Route it:
- Dispatch a subagent that returns the judgment as text. The subagent pays the vision tokens in its own short-lived context and returns a verdict; the main thread keeps the cheap text, never the image bytes. Use the strong model for the subagent if the judgment is hard - the win here is isolation, not tier.
- When to route: the image (or any large output) would otherwise persist across many later main-thread turns AND the question is a returnable verdict.
- When NOT to: tightly iterative visual exploration (look, tweak, look again interleaved with main reasoning - the round-trips cost more than they save), read-once-then-done short sessions (no persistence tail), or when you cannot state the judgment criteria up front (the text verdict is lossy).
Same logic applies to any bulky tool output you only need a conclusion from: giant logs, large query dumps, full-file reads for one fact. If you need the answer, not the bytes, dispatch for it.
Routing table
Source of truth: ~/.ax/hooks/routing-table.json (regenerate with
ax dispatches compile-routing). Consult it when present; these built-ins
mirror it:
| class | description pattern | model |
|---|---|---|
| spec-review | ^spec review | sonnet |
| search-locate | ^(pattern-find|locate|find|map|sweep|grep) | haiku |
| research | ^(research|investigate docs|study) | sonnet |
| well-specified-impl | ^implement | sonnet |
| bulk-mechanical | ^(write announcements|regenerate|standardize|merge main) | sonnet |
| task-N-impl | ^Task \d+: | sonnet |
| bug-fix | ^Fix\s | sonnet |
| feature-add | ^Add\s | sonnet |
| agent types | Explore, codebase-locator, codebase-pattern-finder → haiku; codebase-analyzer → sonnet |
Anything unmatched: leave the model unset only if the work genuinely needs main-model judgment - otherwise pick sonnet.
Dispatch discipline
- Decompose into independent slices BEFORE reading everything yourself; run slices as parallel subagents in isolated worktrees when they edit files.
- Every brief is self-contained: repo path, exact objective, in/out of scope, evidence format to return (files, line refs, commands, diffs, failures), verification commands, stop conditions.
- Set
model:explicitly on every mechanical dispatch. The route-dispatch hook is quota-aware and ADVISORY (Claude Code hooks cannot enforce model on subagent dispatches - they can only inject context via additionalContext): in conserve mode it advises re-dispatching a forgotten mechanical dispatch withmodel:<cheaper>; near a 7d quota reset (splurge) it stays quiet so work runs on the strong inherited model; it advises when judgment work (review/design/audit) is sent on a cheap model. Real enforcement is your discipline + settingmodel:explicitly on every dispatch. Treat the advisory as a re-dispatch signal, not noise. - Workflow scripts (
.claude/workflows/*.js) run sandboxed and cannot import ax code. Setmodel:on everyagent(...)call by hand, perax routing show: mechanical stages →model: 'sonnet'; judgment/review stages → keep the strong model.routing-tune.workflow.jsis the reference. In-tree Effect/axctl code that dispatches should callresolveDispatchModel(from@ax/hooks-sdk) instead of hardcoding. - Treat subagent reports as leads. Before acting on a high-impact finding or declaring done, reopen the cited files and re-run the key verification yourself. Expect to find one real bug per delegated phase.
Measure (what guidance-only skills can't do)
ax dispatches --days=7- your inherit rate (target: explicit model on all mechanical classes)ax dispatches --candidates- missed routings + est savings, repriced from real token bucketsax cost split --days=7- main vs subagent spend by model; the dominant cost is usually main-loop cache reads, so move tool-heavy loops (build/test cycles, browser QA) into subagents entirelyax cost images --days=7- image-read context per session, main vs subagent. High main-thread MB = screenshots persisting in the main window; route that visual judgment to a subagent (see "Isolate heavy context" above)ax improve recommend- surfaces a routing proposal automatically when missed savings accumulate
Verify
After adopting this skill, compare windows: ax cost split + inherit rate
before vs after. If the inherit rate doesn't drop, the routing isn't
happening - check ax hooks backtest ~/.ax/hooks/route-dispatch.ts --days=7
and whether dispatches are bypassing the table.
GitHub 저장소
자주 묻는 질문
efficient-dispatch Skill이란 무엇인가요?
efficient-dispatch은(는) Necmttn이(가) 만든 Claude Skill입니다. Skill은 Claude가 필요할 때 불러오는 지침과 리소스를 묶어 추가 프롬프트 없이 efficient-dispatch 관련 작업을 수행할 수 있게 합니다.
efficient-dispatch은(는) 어떻게 설치하나요?
이 페이지의 설치 명령을 사용하세요. efficient-dispatch을(를) Claude Code 플러그인으로 추가하거나 저장소를 skills 디렉터리에 복제한 다음 Claude를 다시 시작해 Skill을 불러옵니다.
efficient-dispatch은(는) 어떤 카테고리에 속하나요?
efficient-dispatch은(는) 개발 카테고리에 속합니다.
efficient-dispatch은(는) 무료로 사용할 수 있나요?
네. efficient-dispatch은(는) AIMCP에 등록되어 있으며 무료로 설치할 수 있습니다.
연관 스킬
qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.
이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.
mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.
이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.
