Claude Code'da Workflows: Çoklu Ajan Orkestrasyonu Rehberi
Subagent rehberimde anlattığım gibi, Claude Code bir işi kendi bağlam penceresinde yürüten alt ajanlara devredebilir. Ama devretme kararını hâlâ Claude verir -- turdan tura, konuşma sürerken. Elli dosyayı tarayacak, iki yüz endpoint'i denetleyecek veya bir bulguyu üç farklı açıdan doğrulatacak bir görevde bu model tıkanır: Claude'un bağlamı, hangi ajanı ne zaman başlatacağını takip etmekle dolar. Workflows, Anthropic'in bu soruna verdiği yanıt: orkestrasyon planının kendisini bir JavaScript script'ine taşıyıp arka planda çalıştıran bir çalışma zamanı. Script döngüyü, dallanmayı ve ara sonuçları kendi değişkenlerinde tutar; Claude'un bağlamına yalnızca nihai sonuç ulaşır. Bu yazıda Workflows'un ne olduğunu, ne zaman kullanılması gerektiğini, script API'sini (agent(), parallel(), pipeline()), izin akışını, kaydetmeyi, devam ettirmeyi (resume) ve maliyet kontrolünü -- tamamen resmi Claude Code dokümantasyonuna (code.claude.com/docs) dayanarak -- adım adım işliyorum.
Workflows Nedir?
Bir dinamik workflow (dynamic workflow), subagent'ları ölçekte orkestre eden bir JavaScript script'idir. Claude, tarif ettiğiniz görev için bu script'i yazar; bir çalışma zamanı script'i arka planda çalıştırırken siz oturumda çalışmaya devam edebilirsiniz. Resmi dokümantasyona göre bir workflow şu türden görevlerde devreye girer: kod tabanı genelinde bir hata taraması, beş yüz dosyalık bir migrasyon, kaynakların birbirine karşı çapraz kontrol edilmesi gereken bir araştırma sorusu veya taahhüt etmeden önce birkaç bağımsız açıdan taslak hâline getirilmesi gereken zor bir plan.
Dinamik workflows, Claude Code v2.1.154 ve sonrasını gerektirir; tüm ücretli planlarda (Pro, Max, Team, Enterprise), Anthropic API erişiminde ve Amazon Bedrock, Google Cloud'un Agent Platform'u ile Microsoft Foundry üzerinde kullanılabilir. Pro planında özelliği /config içindeki "Dynamic workflows" satırından açmanız gerekir.
Ne Zaman Workflow Kullanılır?
Subagent'lar, skill'ler, agent team'ler ve workflow'ların hepsi çok adımlı bir görevi yürütebilir. Aradaki fark, planı kimin elinde tuttuğudur:
| Subagent | Skill | Agent team | Workflow | |
|---|---|---|---|---|
| Nedir | Claude'un başlattığı bir işçi | Claude'un izlediği talimatlar | Eş oturumları denetleyen bir lider ajan | Çalışma zamanının yürüttüğü bir script |
| Sırada ne çalışacağına kim karar verir | Claude, turdan tura | Claude, promptu izleyerek | Lider ajan, turdan tura | Script |
| Ara sonuçlar nerede kalır | Claude'un bağlam penceresi | Claude'un bağlam penceresi | Paylaşılan bir görev listesi | Script değişkenleri |
| Ölçek | Tur başına birkaç devredilmiş görev | Subagent'lardaki gibi | Birkaç uzun süreli eş | Koşu başına onlarca-yüzlerce ajan |
| Kesinti | Turu yeniden başlatır | Turu yeniden başlatır | Takım arkadaşları çalışmaya devam eder | Aynı oturumda devam ettirilebilir |
Bir workflow, planı koda taşır. Subagent, skill ve agent team'lerde orkestratör Claude'dur: sırada neyi başlatacağına ya da neyi devredeceğine tur tur karar verir, her sonuç bir bağlam penceresine düşer. Bir workflow script'i ise döngüyü, dallanmayı ve ara sonuçları kendisi tutar, Claude'un bağlamına yalnızca nihai cevap ulaşır. Planı koda taşımak yalnızca daha fazla ajan çalıştırmayı değil, tekrarlanabilir bir kalite deseni uygulamayı da mümkün kılar: bulgular raporlanmadan önce bağımsız ajanların birbirlerinin bulgusunu düşmanca (adversarial) incelemesi ya da bir planın birkaç açıdan taslak hâline getirilip birbirine karşı tartılması gibi.
Hazır Bir Workflow'u Çalıştırmak: /deep-research
Bir workflow'u iş başında görmenin en hızlı yolu, Claude Code'un birlikte geldiği bundled workflow'u çalıştırmaktır: /deep-research. Bu komut bir soruyu birçok kaynak üzerinden araştırır ve WebSearch aracının mevcut olmasını gerektirir.
/deep-research What changed in the Node.js permission model between v20 and v22?
Adımlar şöyle işler:
- Claude Code, workflow'a izin verip vermeyeceğinizi sorar. İzin modunuza göre soru farklı görünebilir.
- Koşu arka planda başlar.
/workflowskomutunu çalıştırıp ok tuşlarıyla koşuyu seçip Enter'a basarak ilerleme görünümünü açabilirsiniz; giriş kutusunun altındaki görev panelinden de tek satırlık bir özet takip edilebilir. - Koşu bittiğinde rapor oturumunuza düşer: her iddia hangi kaynaktan geldiğini belirtir, çapraz kontrolü geçemeyen iddialar rapora hiç girmez.
v2.1.196'dan itibaren doğrulayıcı ajanlar bir iddiayı kontrol edemediğinde (örneğin bir hız sınırı veya API hatası sonrası), rapor o iddiayı çürütülmüş değil, doğrulanamamış olarak listeler. v2.1.218'den itibaren /deep-research yalnızca siz çağırdığınızda çalışır; öncesinde Claude bunu kendiliğinden de başlatabiliyordu.
Bir Workflow'u Başlatmanın Üç Yolu
1. Promptunuzda İsteyin: ultracode Anahtar Kelimesi
Oturumun çaba seviyesini değiştirmeden tek bir görevi workflow olarak çalıştırmak için promptunuza ultracode anahtar kelimesini eklersiniz. Kendi cümlenizle "bunun için bir workflow kullan" ya da "run a workflow" demek de aynı şekilde çalışır -- Claude doğrudan isteği aynı opt-in olarak değerlendirir.
ultracode: audit every API endpoint under src/routes/ for missing auth checks
Claude Code, girdinizdeki anahtar kelimeyi vurgular ve Claude, işi tur tur işlemek yerine görev için bir workflow script'i yazar. Anahtar kelime yalnızca işin nasıl yapılandırılacağını seçer: bu şekilde başlatılan bir workflow, oturumun mevcut izin modu içinde çalışır ve ajanlarının araç çağrıları, oturumdaki herhangi bir araç çağrısıyla aynı izin kontrollerinden ve sandbox'lamadan geçer. v2.1.160 öncesinde tetikleyici kelime tam olarak workflow idi; doğal dille istek her iki sürümde de çalışır.
Yanlışlıkla tetiklediyseniz macOS'ta Option+W, Windows/Linux'ta Alt+W ile bu promptaki vurguyu kaldırabilir, ya da imleç vurgulanan kelimenin hemen sonundayken backspace tuşlayabilirsiniz. Anahtar kelimenin hiç tetiklenmemesi için /config içinde "Ultracode keyword trigger" ayarını kapatabilirsiniz.
Bu anahtar kelime yalnızca kendi yazdığınız bir promptta bir opt-in'dir: etkileşimli komut satırında, bir IDE eklentisi panelinde, Remote Control istemcisinde veya insan girdisini { kind: "human" } olarak işaretleyen bir Agent SDK uygulamasında çalışır. Konuşmaya başka bir yoldan ulaştığında workflow başlatmaz:
-pile geçirilen bir prompt- Bir Agent SDK uygulamasının insan girdisi olarak işaretlemeden gönderdiği bir prompt
- Zamanlanmış bir görev promptu
- Konuşmaya yansıtılan bir webhook payload'u veya pull request yorumu
v2.1.210 öncesinde anahtar kelime bu yollardan gelen içerikte de -- webhook payload'u ve pull request yorumu dahil -- workflow başlatıyordu; bu davranış sonradan kapatıldı.
2. Kararı Claude'a Bırakın: ultracode Efor Modu
Ultracode aynı zamanda xhigh reasoning effort ile otomatik workflow orkestrasyonunu birleştiren bir Claude Code ayarıdır. Açıldığında Claude, sizin istemenizi beklemeden her önemli görev için bir workflow planlar:
/effort ultracode
Oturumu doğrudan ultracode açık başlatmak için claude --effort ultracode kullanılır; bu, Claude Code v2.1.203 ve sonrasını gerektirir. Ultracode açıkken tek bir istek art arda birkaç workflow'a dönüşebilir: biri kodu anlamak, biri değişikliği yapmak, biri de doğrulamak için. Bu, oturumdaki her göreve uygulanır -- yani her istek daha fazla token harcar ve daha uzun sürer. Ultracode yalnızca mevcut oturum için geçerlidir, yeni bir oturumla sıfırlanır; rutin işe döndüğünüzde /effort high ile geri düşebilirsiniz. Yalnızca xhigh efor seviyesini destekleyen modellerde kullanılabilir; desteklemeyen modellerde /effort menüsünde bu seçenek görünmez.
3. Hazır Bir Komutu Çalıştırın
Var olan bir workflow komutunu doğrudan çalıştırabilirsiniz: bundled /deep-research ya da aşağıda anlatacağım şekilde kaydettiğiniz bir komut.
Koşu Başlamadan Önce Onay
CLI'da, koşu başına gösterilen prompt planlanan aşamaları ve şu seçenekleri listeler: Yes, run it (başlat), Yes, and don't ask again for <name> in <path> (başlat ve bu proje için bu workflow'a bir daha sorma), View raw script (script'i çalıştırmadan önce oku) ve No (iptal). Ctrl+G script'i editörünüzde açar, Tab ise başlamadan önce promptu düzenlemenizi sağlar.
Bu promptu görüp görmeyeceğiniz izin modunuza bağlıdır:
| İzin modu | Ne zaman sorulur |
|---|---|
| Default, accept edits | O proje için "Yes, and don't ask again" seçilmediyse her koşuda |
| Auto | Yalnızca ilk açılışta; herhangi bir "Yes" kullanıcı ayarlarınıza onay kaydeder, sonraki açılışlar sormadan başlar. Ultracode açıkken tamamen atlanır |
Bypass permissions, claude -p, Agent SDK |
Hiçbir zaman -- koşu hemen başlar |
İzin modunuz yalnızca yukarıdaki başlatma promptunu kontrol eder. Workflow'un başlattığı subagent'lar her zaman acceptEdits modunda çalışır ve oturumunuzun araç izin listesini devralır -- oturumunuzun modu ne olursa olsun. Dosya düzenlemeleri otomatik onaylanır. İzin listenizde olmayan kabuk komutları, web fetch'leri ve MCP araçları koşu sırasında yine de sizden onay isteyebilir; uzun bir koşuda bunu önlemek için ajanların ihtiyaç duyacağı komutları başlamadan önce izin listenize ekleyin.
Script API: agent(), parallel(), pipeline()
Bir workflow script'i düz JavaScript'tir, üst düzey await içerir ve şu birincil fonksiyonları kullanır:
| Fonksiyon | Ne yapar |
|---|---|
agent(prompt, opts?) |
Bir subagent başlatır; opts.schema verilirse sonucu doğrulanmış bir JSON nesnesi olarak döner |
parallel(thunks) |
Birden fazla görevi eşzamanlı çalıştırır; hepsi bitene kadar bekleyen bir bariyerdir |
pipeline(items, ...stages) |
Her öğeyi aşamalar arasında bariyer olmadan tüm aşamalardan geçirir; bir öğe ileri aşamadayken diğeri geride olabilir |
log(message) |
Kullanıcıya ilerleme mesajı gösterir |
phase(title) |
Sonraki agent() çağrılarını ilerleme görünümünde bir başlık altında gruplar |
args |
Workflow çağrılırken geçirilen girdi; kaydedilmiş bir komuta parametre iletmek için kullanılır |
workflow(name, args?) |
Başka bir workflow'u alt adım olarak çalıştırıp sonucunu döner (iç içe geçme yalnızca bir katman) |
Kaydedilmiş bir workflow dosyasının başında her zaman bir meta bloğu bulunur (en az name ve description), ardından script gövdesi gelir. Resmi dokümantasyondaki örnek, küçük bir workflow'un şeklini gösteriyor:
export const meta = {
name: 'audit-routes',
description: 'Audit every route handler for missing auth checks',
}
const found = await agent('List every .ts file under src/routes/.', {
schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },
})
const audits = await pipeline(found.files, file =>
agent(`Audit ${file} for missing authentication checks.`, { label: file }),
)
return audits.filter(Boolean)
Bu script önce bir ajanla denetlenecek dosyaların listesini çıkarır, sonra pipeline() ile her dosyayı ayrı bir ajana denetletir -- her dosya kendi bağımsız zincirinde ilerler, aralarında bariyer yoktur. agent() tek bir subagent başlatıp sonucunu döner; pipeline() bir liste üzerinde bunu tekrarlar. Script'i elle düzenlemek isterseniz Claude'dan değişikliği anlatmasını isteyebilir, ya da Agent SDK referansındaki Workflow tool girdisinde tüm seçenek kümesini görebilirsiniz.
Gerçek Dünya Örneği: Değişen Dosyaları Denetleyip Tek Rapor Üretmek
Resmi dokümantasyonun örnek prompt listesindeki bir senaryoyu ele alalım: bir PR'daki her değişen dosyayı doğruluk sorunları için incelemek, sonra bulguları tek bir sıralı özette birleştirmek. Bunu Claude'a şu şekilde isteyebilirsiniz:
use a workflow to review every file changed in this PR for correctness
issues, then merge the per-file findings into one ranked summary
Claude'un üreteceği script'in mantığı şu aşamalardan oluşur: önce git diff ile değişen dosyaların listesini bir ajana çıkarttırır; pipeline() ile her dosyayı ayrı bir inceleme ajanına gönderir (her dosya kendi zincirinde ilerlediği için bir dosyanın incelemesi biterken diğeri hâlâ sürebilir); tüm bulgular toplandıktan sonra -- burada gerçek bir bariyer gerekir, çünkü sıralama ve tekilleştirme tüm sonuçların bir arada olmasını ister -- parallel() ile toplanan bulgular tek bir sentezleyici ajana verilir ve öncelik sırasına göre tekilleştirilmiş bir rapor döner. Diğer örnek prompt kalıpları da benzer şekillerde çalışır: "npx tsc --noEmit çalıştır, tip kontrolü geçene ya da iki tur art arda ilerleme kaydetmeyene kadar bulunan hataları düzelt" bir kontrol-düzelt döngüsü kurar; "src/components/ altındaki her bileşeni styled-components'ten Tailwind'e, her dosyayı izole bir kopyada çalışarak taşı" bir migrasyon işini dosya başına izole worktree'lerde paralelleştirir; "üç rakibimizin hız sınırlamasını nasıl ele aldığını araştır: dokümanlarını ve son changelog kayıtlarını paralel oku, sonra yaklaşımları karşılaştır" çok kaynaklı bir araştırmayı fanlaştırıp sentezler.
Çalışma Zamanı Sınırları
Çalışma zamanı script'i konuşmanızdan ayrı, izole bir ortamda yürütür. Ara sonuçlar Claude'un bağlamına değil script değişkenlerine düşer. Her koşu, script'ini ~/.claude/projects/ altındaki oturum dizininizde bir dosyaya yazar; Claude koşu başladığında bu yolu alır, isterseniz sorup dosyayı okuyabilir, önceki bir koşunun script'iyle diff'leyebilir veya elle düzenleyip düzenlenmiş sürümden yeniden başlatmasını isteyebilirsiniz.
| Kısıt | Neden |
|---|---|
| Koşu sırasında kullanıcı girdisi alınmaz | Yalnızca ajan izin istemleri koşuyu duraklatabilir; aşamalar arası onay gerekiyorsa her aşamayı ayrı bir workflow olarak çalıştırın |
| Workflow'un kendisinden doğrudan dosya sistemi veya kabuk erişimi yok | Okuma, yazma ve komut çalıştırma ajanlar üzerinden olur; script yalnızca ajanları koordine eder |
| En fazla 16 eşzamanlı ajan (kısıtlı CPU çekirdekli makinelerde daha az) | Yerel kaynak kullanımını sınırlar |
| Koşu başına toplam 1000 ajan | Kaçak döngüleri önler |
Koşuyu İzlemek
Bir koşu başladıktan sonra /workflows görünümünden veya giriş kutusunun altındaki görev panelindeki ilerleme satırını genişleterek yönetirsiniz:
| Tuş | Eylem |
|---|---|
↑ / ↓ |
Bir aşamayı veya ajanı seç |
Enter veya → |
Seçili aşamaya, sonra bir ajana inip promptunu, son araç çağrılarını ve sonucunu oku |
Esc veya ← |
Bir seviye geri çık |
j / k |
Ajan detayı taştığında içinde kaydır |
f |
Seçili aşamadaki ajan listesini duruma göre filtrele; tekrar basınca döngüler |
p |
Koşuyu duraklat veya devam ettir |
x |
Seçili ajanı, odak koşudaysa tüm workflow'u durdur |
r |
Seçili çalışan ajanı yeniden başlat |
s |
Koşunun script'ini bir komut olarak kaydet |
Yeniden Kullanım İçin Kaydetme
Claude tekrar edeceğiniz bir görev için workflow yazdığında, o koşunun script'ini bir komut olarak kaydedebilirsiniz -- her branch'te çalıştırdığınız bir inceleme gibi bir süreç, o zaman aynı orkestrasyonu her seferinde yeniden çalıştırır. /workflows çalıştırıp saklamak istediğiniz koşuyu seçin ve s tuşlayın. Kaydetme diyaloğunda Tab iki konum arasında geçiş yapar:
.claude/workflows/(proje içinde): depoyu klonlayan herkesle paylaşılır~/.claude/workflows/(ev dizininizde): her projede kullanılabilir, yalnızca sizin görebileceğiniz şekilde.CLAUDE_CONFIG_DIRayarladıysanız bu konum o yolun altındakiworkflows/dizinidir
Enter'a basmak kaydeder; workflow, sonraki oturumlarda her iki konumdan da /<isim> olarak çalışır. v2.1.216'dan itibaren Claude Code kaydetmeden önce hedef konumu symlink'e karşı kontrol eder ve bir symlink üzerinden yazmak yerine hata gösterir. v2.1.178'den itibaren birden fazla .claude/ dizini içeren bir monorepo'da, proje konumuna kaydetmek çalışma dizininizle depo kökü arasında zaten var olan en yakın .claude/workflows/ dizinine yazar; aynı isimde birden fazla tanım varsa Claude Code çalışma dizinine en yakın olanı çalıştırır. Bir proje workflow'u ile kişisel bir workflow aynı ismi paylaşıyorsa proje olanı çalışır.
Bir workflow'u ekipler veya depolar arasında paylaşmak için bir plugin içine dahil edebilirsiniz: script'i plugin kökündeki bir workflows/ dizinine koyarsınız. Plugin workflow'ları plugin adıyla ad alanına (namespace) alınır -- acme-tools adlı bir plugin içindeki meta.name'i release-audit olan bir script, /acme-tools:release-audit olarak çalışır.
Kaydedilmiş bir workflow, args parametresiyle girdi kabul edebilir; script bunu args adlı global bir değişken olarak okur. Bir araştırma sorusunu, hedef yol listesini veya bir yapılandırma nesnesini script'i her çalıştırmada düzenlemek yerine çağırma anında geçirmek için kullanılır:
Run /triage-issues on issues 1024, 1025, and 1030
Claude listeyi yapılandırılmış veri olarak geçirir, yani script args üzerinde önce ayrıştırma yapmadan doğrudan dizi ve nesne metotları çağırabilir. args geçirilmezse script içindeki global undefined olur.
Duraklatılmış Bir Koşuyu Devam Ettirmek
Bir koşuyu durdurursanız devam ettirebilirsiniz. Zaten tamamlanmış ajanlar genellikle önbelleğe alınmış sonuçlarını döner, kalanı canlı çalışır. Ancak hangi sonuçların hayatta kaldığını iki kural belirler: durdurduğunuzda hâlâ çalışan bir ajan kaydedilmez, yeniden baştan başlar; yeniden oynatma ajanların başlama sırasını izler, önbellekten dönen sonuçlar tamamlanmamış ilk ajanda durur ve ondan sonra başlamış her ajan -- tamamlanmış olsa bile -- yeniden çalışır.
Bu ikinci kural, fan-out ortasında durdurmayı pahalı kılan şeydir. Diyelim ki bir script sırayla A, B, C ve D ajanlarını başlatıyor ve siz B hâlâ sürerken koşuyu durdurdunuz. Devam ettirdiğinizde A önbellekten döner. B hiç bitmediği için yeniden çalışır. C ve D de, ikisi de siz durdurmadan önce tamamlanmış olsa bile, B'den sonra başladıkları için yeniden çalışır. İşi çok sayıda küçük ajana bölen bir workflow, bu yüzden tek bir uzun ajana göre durdurma sonrası daha fazla ilerlemeyi korur. Devam ettirme yalnızca aynı Claude Code oturumu içinde çalışır; workflow koşarken Claude Code'dan çıkarsanız bir sonraki oturum workflow'u sıfırdan başlatır. Duraklatılmış bir koşuyu /workflows içinden seçip p tuşlayarak veya Claude'dan aynı script'i yeniden başlatmasını isteyerek devam ettirebilirsiniz.
Maliyet Yönetimi
Bir workflow çok sayıda ajan başlattığı için, tek bir koşu aynı işi konuşma içinde yapmaktan belirgin ölçüde daha fazla token tüketebilir. Koşular planınızın kullanım ve hız sınırlarına diğer oturumlar gibi sayılır. Büyük bir işe girişmeden önce harcamayı ölçmek için workflow'u önce küçük bir dilimde çalıştırın: tüm depo yerine tek bir dizin, geniş bir soru yerine dar bir soru. /workflows görünümü her ajanın token kullanımını koşu ilerledikçe gösterir; koşuyu istediğiniz an, genellikle tamamlanmış işi kaybetmeden, durdurabilirsiniz.
Claude Code, alışılmadık büyüklükte bir koşuyu da işaretler. Bir workflow 25'ten fazla ajan planladığında veya projeksiyonu 1,5 milyon token'ı geçtiğinde, giriş kutusunun altındaki görev panelindeki ilerleme satırı bir "Large workflow" uyarısı gösterir (v2.1.203 ve sonrası gerekir). Bu uyarı tavsiye niteliğindedir; koşuyu duraklatmaz veya sınırlamaz. Bir boyut kılavuzu seçerseniz onun ajan sayısı 25 eşiğinin yerini alır; ultracode açık oturumlarda bu uyarı hiç gösterilmez, çünkü ultracode'u açmak zaten büyük koşulara onay vermek anlamına gelir. Bir workflow'daki her ajan, script bir aşamayı farklı bir modele yönlendirmedikçe veya CLAUDE_CODE_SUBAGENT_MODEL ortam değişkeni ayarlanmadıkça oturumunuzun modelini kullanır; bu değişken her ikisini de geçersiz kılar.
Boyut Kılavuzu Ayarlamak
Bir boyut kılavuzu (size guideline), Claude'a dinamik bir workflow yazarken kaç ajanı hedeflemesi gerektiğini söyler. Claude Code bu kılavuzu bir tavsiye olarak iletir, zorunlu bir üst sınır değil -- farklı bir ölçek gerektiren bir prompt yine de bunu geçersiz kılar. v2.1.202 ve sonrasını gerektirir.
| Değer | Hedeflenen ajan sayısı |
|---|---|
unrestricted |
Kılavuz yok: Claude işi göreve göre boyutlandırır |
small |
5'ten az ajan |
medium |
15'ten az ajan |
large |
50'den az ajan |
v2.1.219'dan itibaren varsayılan değer medium'dur; siz bir değer seçene kadar /config satırı "medium (default)" gösterir. v2.1.219 öncesinde varsayılan unrestricted idi. Kılavuzu değiştirmek için /config içinde "Dynamic workflow size" ayarını seçin ya da /config workflowSizeGuideline=small çalıştırın. v2.1.219 ve sonrasında, herhangi bir ayar dosyasında workflowSizeGuideline anahtarını da ayarlayabilirsiniz; bu değer /config'den önceliklidir ve bir ayar dosyası bir değer sağladığında Claude Code /config satırını gizler. Değişiklikler bir sonraki promptta etkili olur; çalışma zamanı ajan üst sınırları ayardan bağımsız olarak yine geçerlidir.
Workflows'u Kapatmak
Workflows; CLI, Desktop uygulaması, IDE eklentileri, claude -p ile çalışan headless mod ve Agent SDK üzerinde kullanılabilir; aynı kapatma ayarları her yüzeyde geçerlidir. Kendiniz için kapatmak isterseniz: /config içinde "Dynamic workflows"u kapatın (oturumlar arası kalıcıdır); ~/.claude/settings.json içine "disableWorkflows": true ekleyin (kalıcıdır); veya başlangıçta okunan CLAUDE_CODE_DISABLE_WORKFLOWS=1 ortam değişkenini ayarlayın. Organizasyon geneli kapatmak için yönetilen ayarlarda "disableWorkflows": true kullanın ya da claude.ai/admin-settings/claude-code sayfasındaki anahtarı kapatın. Workflows kapalıyken bundled workflow komutları kullanılamaz, ultracode anahtar kelimesi artık koşu tetiklemez ve ultracode, /effort menüsünden kaldırılır.
Sık Karşılaşılan Sorunlar
| Belirti | Olası neden ve çözüm |
|---|---|
Promptta ultracode yazdım ama workflow başlamadı |
Kelime yalnızca kendi yazdığınız bir prompt için opt-in'dir; -p bayrağıyla, insan girdisi olarak işaretlenmemiş bir SDK isteğinde, zamanlanmış görevlerde veya webhook/PR yorumu üzerinden gelen içerikte tetiklenmez. |
| Koşu beklenenden çok daha uzun sürdü / çok token harcadı | Önce küçük bir dilimde deneyin, /workflows ile token kullanımını izleyin, gerekirse "Large workflow" uyarısı çıktığında koşuyu durdurun; boyut kılavuzunu small veya medium yaparak Claude'un planladığı ajan sayısını sınırlayın. |
| Duraklatılan koşuyu devam ettirdim ama ajanlar yeniden çalıştı | Beklenen davranış: durdurulduğunda hâlâ süren ilk ajandan itibaren, ondan sonra başlamış her ajan -- tamamlanmış olsa bile -- yeniden çalışır. |
| Koşu sırasında sürekli izin isteği çıkıyor | İzin listenizde olmayan kabuk komutları, web fetch'leri ve MCP araçları koşu sırasında yine de sizden onay ister. Ajanların ihtiyaç duyacağı komutları önceden izin listenize ekleyin. |
| Kaydettiğim workflow başka bir projede çalışmıyor | .claude/workflows/ yalnızca o proje içindir. Tüm projelerinizde kullanmak için kaydederken Tab ile ~/.claude/workflows/ konumuna geçin. |
Sıkça Sorulan Sorular
Workflow nedir, subagent kullanmaktan farkı ne?
Bir subagent'ta hangi işin ne zaman yapılacağına Claude, konuşma boyunca turdan tura karar verir ve her ara sonuç Claude'un bağlam penceresine döner. Workflow'da ise orkestrasyon planı bir JavaScript script'i olarak koda taşınır: script döngüyü, dallanmayı ve ara sonuçları kendi değişkenlerinde tutar, Claude'un bağlamına yalnızca nihai sonuç ulaşır. Bu da workflow'ları bir konuşmanın koordine edebileceğinden çok daha fazla ajana (onlarca, yüzlerce) ölçeklendirmeyi ve aynı orkestrasyonu tekrar tekrar çalıştırılabilir kılmayı mümkün kılar.
Bir workflow'u nasıl başlatırım?
Üç yol vardır: promptunuza ultracode anahtar kelimesini eklemek veya kendi cümlenizle "bunun için bir workflow kullan" demek; /effort ultracode ile oturumun tamamını, her önemli görev için otomatik workflow planlayan bir moda almak; ya da hazır gelen /deep-research gibi bundled bir workflow komutunu veya /workflows üzerinden kaydettiğiniz bir komutu doğrudan çalıştırmak.
ultracode anahtar kelimesi her yerde çalışır mı?
Hayır. Resmi dokümantasyona göre bu anahtar kelime yalnızca kendi yazdığınız bir promptta bir opt-in'dir: etkileşimli komut satırında, bir IDE eklentisi panelinde, Remote Control istemcisinde veya insan girdisi olarak işaretlenmiş bir Agent SDK uygulamasında çalışır. -p bayrağıyla geçirilen bir promptta, insan girdisi olarak işaretlenmemiş bir SDK isteğinde, zamanlanmış bir görev promptunda veya bir webhook/pull request yorumundan gelen içerikte workflow tetiklemez.
Workflow script'i içinde agent(), parallel() ve pipeline() ne işe yarar?
agent() tek bir subagent başlatıp sonucunu döner. parallel() bir dizi görevi eşzamanlı çalıştırır ve hepsinin bitmesini bekleyen bir bariyerdir. pipeline() ise bir öğe listesindeki her öğeyi birden fazla aşamadan, aşamalar arasında bariyer olmadan geçirir; bu sayede bir öğe üçüncü aşamadayken başka bir öğe hâlâ birinci aşamada olabilir ve toplam süre en yavaş tek zincirin süresine iner, aşama sürelerinin toplamına değil.
Bir workflow çalışırken durdurup sonra devam ettirebilir miyim?
Evet, aynı Claude Code oturumu içinde. Tamamlanmış ajanların sonuçları önbellekten döner, geri kalanı canlı çalışır. Ancak yeniden oynatma ajanların başlama sırasını izler: hâlâ çalışırken durdurulan ilk ajandan itibaren, ondan sonra başlamış her ajan -- tamamlanmış olsa bile -- yeniden çalışır. Bu yüzden işi çok sayıda küçük ajana bölen bir script, tek uzun bir ajana göre durdurma sonrası daha fazla ilerlemeyi korur.
Bir workflow en fazla kaç ajan çalıştırabilir, kapatabilir miyim?
Çalışma zamanı bir koşuda en fazla 16 eşzamanlı ajana (CPU çekirdeği kısıtlı makinelerde daha az) ve toplamda 1000 ajana izin verir; bu üst sınır kaçak döngülere karşı bir emniyet mekanizmasıdır. Workflows'u /config üzerinden kapatabilir, ~/.claude/settings.json içine "disableWorkflows": true ekleyebilir veya CLAUDE_CODE_DISABLE_WORKFLOWS=1 ortam değişkenini ayarlayabilirsiniz; organizasyon geneli için yönetilen ayarlar veya Claude Code admin ayarları sayfası kullanılır.
Özet
Workflows, Claude Code'u tur tur karar veren bir asistandan, planı koda yazıp arka planda yürüten bir orkestrasyon motoruna dönüştürür. ultracode anahtar kelimesiyle tek bir görevi, /effort ultracode ile tüm oturumu workflow moduna alabilir; agent(), parallel() ve pipeline() ile onlarca ajanı fanlaştırıp sonuçlarını tek bir bariyerde ya da bariyersiz bir hat üzerinde toplayabilirsiniz. 16 eşzamanlı, 1000 toplam ajan üst sınırı ve boyut kılavuzu maliyeti kontrol altında tutarken, /workflows görünümü ilerlemeyi izlemenizi, koşuyu durdurup devam ettirmenizi ve işe yarayan bir script'i .claude/workflows/ altına kaydederek yeniden kullanılabilir bir komuta dönüştürmenizi sağlar. Bu, tekil subagent'ların doğal bir devamıdır -- iş, tek bir konuşmanın taşıyabileceğinden büyüdüğünde devreye giren katman.
Workflows'u Claude Code'un diğer otomasyon katmanlarıyla -- örneğin özel subagent tanımlarıyla ya da skill'ler ve slash komutlarıyla -- birleştirdiğinizde, tek bir asistan yerine göreve göre ölçeklenen, tekrar çalıştırılabilir bir ajan filosu elde edersiniz. Subagent'ların temel mantığına henüz aşina değilseniz subagent rehberimden başlayabilirsiniz.
Bu yazı Ahmet Bilgiç tarafından ahmetbilgic.com için yazılmıştır. Diğer yazılar için: medium.com/@ahmet_bilgic07