effort-auto
Tek bir effort ayarı bir session'ın tamamına hiç uymaz: max bir "teşekkürler"e dakikalar ve token'lar harcar, low ise bir mimari sorusunu aceleye getirir. Bu mod her prompt'unun ne kadar zor olduğunu küçük bir modele puanlatır ve o turn'ü, başlattığı subagent'larla birlikte, uygun effort'la çalıştırır. Puanlanan bir turn'ün çalışabileceği seviyeleri sınırlayabilirsin. Sonraki turn yine session'ın kendi effort'undan başlar, yani hiçbir şeyi geri ayarlaman gerekmez.
Ne yapar
Session boştayken yazdığın her prompt önce en düşük effort'taki haiku'ya tek bir soruyla gider: bu istek ne kadar düşünme gerektiriyor? Haiku tek kelimeyle cevap verir:
low,medium,high,xhighya damax. Prompt'un ilk 4.000 karakterini okur. 2.1.284'te ölçüldü: cevap yaklaşık 0,6 saniyede geliyor.Bir seviyeyi o seviyenin kendi kelimesiyle isteyen prompt, puan yerine o seviyeyi alır; cümlenin geri kalanı hangi dilde olursa olsun: "bunu max ile çöz", "use high effort", "effort: low". Bir seviyeyi yalnız beş seviye kelimesi adlandırır. İşi zor ya da kolay diye anlatan, dikkatli düşünmeyi isteyen ya da "yüksek effort" veya "maximum effort" diyen bir prompt puanlanır. Haiku
namedve seviyeyi söyler; mod bu cevabı yalnız prompt o seviyenin kelimesini taşıyorsa kabul eder, çünkü haiku yalnız işi zor diye anlatan prompt'lara danameddedi. 2.1.284'te her prompt için üç denemeyle ölçüldü: seviye adlandıran sekiz prompt 24 denemenin 24'ünde o seviyeyi aldı; işi zor ya da kolay diye anlatan ya da bir seviye kelimesini başka anlamda kullanan sekiz prompt ("a medium sized image", "the max value of the counter") 24 denemenin 24'ünde puanlandı. Haiku "yüksek effort" ve "maximum effort" için 6 denemenin 6'sındanameddedi; kelime denetimi bu cevapları puan olarak okudu./effort-auto levels low medium max, puanlanan bir turn'ün çalışabileceği seviyeleri sınırlar. Bunların dışındaki bir puan en yakın izinli seviyeye taşınır, eşit uzaklıktaki iki seviyeden üsttekine:low medium maxilehighpuanımedium,xhighpuanımaxile çalışır. Prompt'un adlandırdığı seviye izinli olmasa da çalışır. Haiku yine bütün skalayı puanlar ve izinli seviyeleri bilmez: yalnızlowvemediumsöylendiğinde "the max value of the counter overflows at high load; find why" için 3 denemenin 3'ündenamed maxdedi, bütün skalayla aynı prompt'u 6 denemenin 6'sında puanladı./effort-auto levels allsınırı kaldırır; varsayılan budur.O turn'deki her ana loop model request'i, session'ın kendi effort'unun altında da olsa üstünde de olsa o seviyeyle gider.
Puanlanan bir turn'ün başlattığı subagent, turn bittikten sonra arka planda sürse de bütün çalışması boyunca turn'ün seviyesiyle çalışır; onun başlattığı subagent da öyle. 2.1.284'te ölçüldü: yalnız ana loop'un request'leri değiştirildiğinde bir subagent'ın request'leri hâlâ session'ın effort'unu taşıdı. İlk request'i session'ınkinden başka bir effort taşıyan subagent'ın tanımında kendi effort'u vardır; o subagent kendi effort'unu korur.
Session'ın ayarlarına hiçbir şey yazılmaz. Turn bitince, kendi prompt'u puanlanmadıkça bir sonraki turn yine session'ın effort'undan başlar.
Bir task bildirimi, bir plugin'in prompt'u ya da çalışan bir turn'ün üstüne yazdığın bir prompt puanlanmaz; onun turn'ü ve subagent'ları session'ın effort'uyla çalışır.
Haiku 8 saniye içinde cevap vermezse ya da seviye olmayan bir şey söylerse turn session'ın effort'uyla çalışır ve bunu söyleyen tek bir satır düşer.
Puanlanan her turn'ün seviyesini ve izinli seviyeleri görürsün. sidebar açıksa bu, session boyunca duran iki satırlık bir section'dır. Seviye
lowiçin soluk,mediumiçin yeşil,highiçin sarı,xhighvemaxiçin kırmızıdır; session-watch'ın effort'a verdiği renklerin aynısı. Bir turn çalışırken ilk satır o turn'ün effort'unu session'ınkinin yanında gösterir; turn'ler arasında da son biten turn'ün effort'unu. İkinci satır izinli seviyeleri gösterir:this turn high · session low allowed low · medium · high · xhigh · max last turn max (named) · session low allowed low · mediumPrompt'un adlandırdığı seviyenin arkasında soluk bir
(named)durur; puanlanmayan bir turn session'ın effort'unu arkasında soluk bir(session)ile gösterir./effort-auto offsection'ı kaldırır. Sidebar kapalıysa puanlanan bir turn başlarken transcript'e tek bir satır yazar:effort-auto: this turn max (named) · session low
Sonnet 5.5 üzerindeki canlı denemede levels low medium ayarlıyken ve session low iken, işi zor diye anlatıp bir Explore subagent'ı isteyen prompt medium ile çalıştı; subagent'ın request'leri de öyle. Bir general-purpose subagent'ı isteyen "bunu max ile çöz" max ile çalıştı; subagent'ın request'leri de öyle.
Yalnız prompt cache'in korunduğu yerde
Bir effort değişikliği bütün prompt cache'i yeniden yazdırabilir ve uzun bir konuşmayı yeniden yazmak turn'ün kazandırdığından pahalıya gelir. Bu yüzden mod effort'u yalnız effort değişikliğinde cache'i koruyan modellerde değiştirir: Opus 5.5, Sonnet 5.5 ve Fable 5.1. Diğer modellerde hiçbir şeyi değiştirmez; session'ın ilk request'i böyle bir modeli söyleyince de artık hiçbir prompt puanlanmaz. Bir subagent'ın request'i de kendi modeline göre aynı yolla denetlenir. Sonnet 5 üzerindeki bir canlı denemede, subagent'ınkiler de dahil, her request session'ın effort'uyla gitti.
Claude Code 2.1.283'te, aynı konuşma ve bir turn'den diğerine effort değişikliğiyle ölçüldü:
Opus 5.5 high → low, low → max cache read 58,408 each time, as at the same effort
Sonnet 5 high → low, low → max cache read 0, the whole conversation of about 73,700 tokens written again
Claude Code 2.1.284'te aynı yolla, kontrol olarak önce aynı effort'ta bir turn ile ölçüldü:
Sonnet 5.5 medium → high, high → low cache read 58,417 each time and about 5,500 written, as at the same effort
Sonnet 5 medium → high cache read 0, about 73,700 tokens written again
Canlı denemede bir selamlaşma low, bir tasarım sorusu max puan aldı. max turn'ü low turn'ünün yazdığı cache'i okudu (74.079 token), yeniden low'a dönen sonraki turn de 91.755 okudu.
Komut
/effort-auto açık mı kapalı mı ve izinli seviyeler
/effort-auto on | off varsayılan açık
/effort-auto levels izinli seviyeler
/effort-auto levels <level ...> yalnız bunlara izin ver, sıra fark etmez: levels low medium max
/effort-auto levels all her seviyeye izin ver; varsayılan budur
Kurulum
claude plugin marketplace add KilimcininKorOglu/claude-code-mods
claude plugin install effort-auto@kilimcininkoroglu-mods
Function hook'lar henüz early access aşamasında. Claude Code 2.1.288 ve üzerinde varsayılan olarak yüklenir, açılacak bir ayar yok.
Kurulumdan sonra
- Claude Code'u yeniden başlat.
Nereye uzanır
Claude Code 2.1.284 üzerinde claude plugin validate ile doğrulandı:
❯ ./register.ts hooks: session.start, command.run{command=effort-auto}, prompt.submit, turn.step, agent.spawn, turn.complete
❯ ./register.ts calls: $.command.register, $.model.complete (via rate), $.sidebar.clear (via dropLine), $.sidebar.set (via toPerson), $.store.get (via readSettings), $.store.set (via setLevels, switchTo), $.ui.log (via rate, toPerson)
Reach L3: prompt başına bir model request'i.
1. Okur: yazdığın her prompt'un metnini, subagent'larınki de dahil her model request'inin modelini ve effort'unu
2. Çalıştırır: hiçbir şey
3. Gönderir: yazdığın her prompt'un ilk 4.000 karakterini, Claude Code'un kendi API bağlantısı üzerinden haiku'ya
4. Saklar: $.store içinde açık/kapalı ayarını ve izinli seviyeleri; turn'ün ve her subagent'ın seviyesi turn ya da subagent bitene kadar bellekte durur
5. Düşman girdi: prompt haiku'ya bir <request> bloğunun içinde ulaşır; cevaptan yalnız beş seviye kelimesinden biri alınır, bir "named" cevabı da yalnız prompt o kelimeyi taşıyorsa kabul edilir; yani başka bir şey söyleyen cevap hiçbir şeyi değiştirmez
Sınırlar
- Puanlama prompt başına bir haiku request'ine mal olur ve turn'ü yaklaşık 0,6 saniye geciktirir. 2.1.284'te mod'un kendi çağrısıyla, dokuz çağrıda ölçüldü: 0,59 ile 0,92 saniye; kısa bir prompt 378 input token ve 4 output token tuttu, tek harfli kelimelerden oluşan ve 4.000 karakterde kesilen 6.000 karakterlik bir prompt 2.382 input token; hiç cache okunmadı ya da yazılmadı. Haiku 4.5'in milyon input token başına $1 ve milyon output token başına $5 fiyatıyla bu, kısa bir prompt için yaklaşık $0,0004 eder, yani 1.000 kısa prompt için yaklaşık $0,40; o kesilen prompt için de yaklaşık $0,0024. Claude aboneliğinde bu request bunun yerine kullanım limitlerinden düşer.
- Haiku yalnız prompt'a bakarak karar verir, konuşmaya değil; bu yüzden "devam et" gibi kısa bir cevap, zor bir işin ortasında da
lowalır. - Başka bir kelimeyle adlandırılan seviye ("yüksek", "maximum", "extra high") her prompt gibi puanlanır; izinli seviyelerin dışındaki bir puan da onların içine taşınır.
- Kelime denetimi, başka anlamda kullanılan bir seviye kelimesini adlandırılmış bir seviyeden ayıramaz; bu kararı haiku verir. Bütün skalayla haiku böyle iki prompt'u 6 denemenin 6'sında puanladı.
- Kendi effort'u session'ınkine eşit olan bir subagent, kendi effort'u olmayan bir subagent'tan ayırt edilemez; bu yüzden turn'ün seviyesiyle çalışır.
- Bir
maxturn'ü çok daha uzun düşünür ve daha pahalıya gelir. Canlı denemede beş maddelik bir tasarım özeti 7 dakika ve 42.683 output token sürdü. - Cache kontrolü yalnız model adına bakar. Amazon Bedrock'ta, Google Cloud'da, bir Claude apps gateway'inde ya da
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASile, Claude Code belgeleri bir effort değişikliğinin her modelde cache'i hâlâ yeniden yazdırdığını söyler.
Geliştirme
make install # eslint, typescript-eslint, typescript
make lint # complexity sınırı 10; aşılırsa build kırılır
make typecheck # /plugin-types çıktısı olan .claude/types/ gerekir
make validate
make test # claude plugin test