Otopilotlar
Tekrarlayan işi agent'lara otomatik olarak devredin — bir zamanlamayla veya bir webhook'tan.
Otopilotlar, tekrar tekrar gerçekleşen işi çalıştırır — günlük bir ilerleme özeti, periyodik bir bağımlılık kontrolü veya harici bir sistemden gelen bir olayla başlatılan bir agent.
Her Otopilot bir Runbook, bir atanan ve bir veya daha fazla tetikleyici saklar. Tetiklendiğinde Multica bir iş oluşturur veya agent'ı doğrudan çalıştırır, ve her çalıştırmanın kaydını tutar.
Bir Otopilot oluşturma
Kenar çubuğunda Otopilot'u açın, bir şablon seçin veya sıfırdan başlayın, ardından şunları yapılandırın:
- Ad: bu Otopilotun neden sorumlu olduğu;
- Runbook: agent'ın her çalıştırmada okuduğu hedef, arka plan, kısıtlamalar ve adımlar;
- Atanan: bir agent veya bir Ekip;
- Proje: isteğe bağlı; otomatik oluşturulan işleri belirli bir projeye koyar;
- Çalıştırma modu: bir iş oluştur, ya da yalnızca çalıştır;
- Aboneler: bir iş otomatik oluşturulduktan sonra bilgilendirilecek üyeler;
- Tetikleyiciler: bir zamanlama veya bir webhook.
Bir Otopilot kaydedildikten sonra varsayılan olarak etkindir; Şimdi çalıştır, tam akışı istediğiniz zaman elle bir kez yürütür.
Bir çalıştırma modu seçme
| Mod | Davranış | En uygun olduğu durum |
|---|---|---|
| İş oluştur | Her tetikleyici önce bir iş oluşturur, sonra onu atanana atar; tartışma, durum ve çalıştırma kayıtlarının tümü işte yer alır. | Takımın gözden geçirmesi, onaylaması veya takip etmesi gereken iş. |
| Yalnızca çalıştır | İş olmadan doğrudan bir çalıştırma oluşturur; sonuçlar yalnızca Otopilotun çalıştırma geçmişinde görünür. | İşbirliği kaydı gerektirmeyen arka plan çalıştırmaları. |
İş oluştur modu, normal işlerle aynı çalıştırma kuyruğunu kullanır: runtime çevrimdışıyken iş yine de oluşturulur ve çalıştırma, runtime'ın çevrimiçi olmasını bekler.
Yalnızca çalıştır, tetikleme anında runtime'ın kullanılabilir olmasını gerektirir; aksi halde çalıştırma atlandı olarak görünür ve geride bekleyen bir iş kalmaz.
Bir zamanlamada çalıştırma
Zamanlama düzenleyicisi, çalıştırma saatini, tekrar günlerini, zaman penceresini ve saat dilimini seçmenizi sağlar ve yaklaşan çalıştırma zamanlarını önizler. Bir Otopilotun birden fazla zamanlaması olabilir; tek bir tetikleyiciyi etkinleştirmek veya devre dışı bırakmak CLI'ın autopilot trigger-update komutuyla yapılır — parametreler için CLI'ı kullanma'ya bakın.
Daha karmaşık kurallara ihtiyacınız olduğunda, standart 5 alanlı cron'u doğrudan düzenleyin:
minute hour day month weekdayÖrneğin:
| Cron | Saat dilimi | Anlamı |
|---|---|---|
0 9 * * 1-5 | Asia/Shanghai | Hafta içi 9:00 |
*/30 * * * * | UTC | Her 30 dakikada bir |
0 3 * * * | UTC | Her gün 3:00'te |
Cron'un saniye alanı yoktur ve saat dilimleri Asia/Shanghai gibi IANA adlarını kullanır. Kaydetmeden önce sonucu sayfada gösterilen "sonraki çalıştırmalar" zamanlarıyla karşılaştırın.

Bir webhook'tan çalıştırma
Bir webhook tetikleyicisi ekledikten sonra Multica benzersiz bir URL üretir. Otopilotu tetiklemek için ona bir JSON nesnesi veya dizisi gönderin:
curl -X POST "$MULTICA_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: demo-001" \
-d '{"event":"build.completed","eventPayload":{"status":"success"}}'Yük, teslimat ve çalıştırma kayıtlarına kaydedilir ve agent'a verilir. İş oluştur modunda ayrıca iş açıklamasına eklenir.
Webhook istekleri üzerindeki kısıtlamalar:
- gövde, 256 KiB'ye kadar geçerli bir JSON nesnesi veya dizisi olmalıdır;
Idempotency-Key, gönderen yeniden denediğinde yinelenen çalıştırmaları önler; GitHub teslimatlarıX-GitHub-Deliveryile de tekilleştirilir;- kararlı bir idempotency anahtarı olmadan, Multica tekrarlanan isteklerin yalnızca bir kez çalışacağını garanti edemez;
- tetikleyici devre dışıysa veya olay eşleşmiyorsa, teslimat yok sayıldı olarak kaydedilir ve hiçbir çalıştırma oluşturulmaz.
Olayları filtreleme
Bir kaynak birden fazla olay türü gönderdiğinde, tetikleyiciye olay filtreleri ekleyin. Her satır bir olay adı ve isteğe bağlı bir eylemler listesi tutar; herhangi bir satır eşleşirse bir çalıştırma tetiklenir, tüm satırları boş bırakmak her olayı kabul eder.
Örneğin, olay adı olarak workflow_run ve eylemler olarak completed, failed ile yalnızca bu iki tür workflow_run sonucu kabul edilir. Multica, olayı ve eylemi GitHub'ın X-GitHub-Event başlığı ve gövdedeki action alanı dahil, yaygın istek başlıklarından ve yük alanlarından tanır.
Webhook URL'sini koruma
Webhook URL'sindeki token, çağıran kimlik bilgisidir. Tam URL'yi herkese açık depolara, işlere veya ekran görüntülerine koymayın. URL sızarsa, yanındaki URL'yi yenile düğmesine tıklayın ve göndereni hemen güncelleyin; eski URL hemen çalışmayı durdurur.
Tam URL'yi yalnızca Otopilotun oluşturucusu, çalışma alanı ownerları/adminleri ve erişim verilmiş işbirlikçiler görüntüleyebilir. Arayüz varsayılan olarak URL'deki token'ı gizler ve kopyalamak onu göstermeyi gerektirmez; tam adresi görüntülemek için URL'ye veya göz simgesine tıklayın.
Webhook yanıt referansı
Bir göndereni hata ayıklarken, Multica'nın yanıtlarını yorumlamak için bu tabloyu kullanın:
| HTTP durumu | Yanıt durumu | Anlamı |
|---|---|---|
| 200 | accepted | Kabul edildi ve bir çalıştırma oluşturuldu; teslimat ve çalıştırma ID'lerini döner. |
| 200 | skipped | Kabul edildi, ama bu çalıştırma atlandı (örneğin yalnızca-çalıştır modunda runtime çevrimdışı); nedeni içerir. |
| 200 | ignored | Hiçbir çalıştırma oluşturulmadı: tetikleyici devre dışı, Otopilot duraklatılmış veya arşivlenmiş, ya da olay filtrelendi; reason alanı nedenini açıklar. |
| 200 | duplicate | Idempotency anahtarı mevcut bir teslimatla eşleşti; orijinal teslimat ID'sini döner ve tekrar çalışmaz. |
| 400 | Hata mesajı | Gövde boş, geçerli JSON değil veya bir JSON nesnesi/dizisi değil. |
| 401 | rejected | Tetikleyicide bir imzalama sırrı yapılandırılmış, ama istekte imza eksik veya imza eşleşmiyor. |
| 404 | Hata mesajı | URL'deki token geçersiz veya yenilenmiş. |
| 413 | Hata mesajı | Gövde 256 KiB'yi aşıyor. |
| 429 | Hata mesajı | Çok fazla istek; Retry-After yanıt başlığına göre daha sonra tekrar deneyin. |
| 500 | Hata mesajı | Multica iç hatası; gönderen daha sonra tekrar deneyebilir. |
İş mantığı düzeyindeki yok saymalar — duraklatma, arşivleme ve olay filtreleme — 4xx yerine 200 döner, böylece gönderenler sonsuza kadar yeniden denemez.
Olay ve eylem çıkarım sırası:
- gövdede bir dize
eventalanı varsa doğrudan kullanılır; - yoksa
X-GitHub-Eventistek başlığı, gövdeninaction'ıyla birleştirilerekgithub.<event>.<action>olur; - ardından
X-Gitlab-Eventistek başlığı; - ardından
X-Event-Typeistek başlığı; - ardından gövdenin
event,typeveactionalanları; - hepsi eksikse, olay
webhook.receivedolarak kaydedilir.
Çalıştırmaları ve teslimatları görüntüleme
Çalıştırma geçmişi; tetikleyici kaynağını, zamanı, durumu, bağlı işi veya çalıştırmayı ve bir başarısızlık ya da atlamanın nedenini gösterir. Webhook tetikleyicileri ayrıca ayrıştırılan olayı, yanıtı, tekilleştirme bilgisini ve başarısızlık nedenini içeren ayrı teslimat kayıtları tutar.
Tamamen işlenmiş bir webhook teslimatı, detay görünümünden yeniden oynatılabilir. Bir yeniden oynatma, orijinal kaydı yeniden yazmadan yeni bir teslimat ve çalıştırma oluşturur; imza doğrulaması başarısız olan veya hâlâ kuyrukta olan teslimatlar yeniden oynatılamaz ve yeniden oynatmalar tekilleştirmeye katılmaz.
Başarısızlıklar, duraklatma ve silme
Yalnızca-çalıştır modunda başarısız olan bir çalıştırma otomatik olarak yeniden denenmez; bir sonraki zamanlama yine de planlandığı gibi ateşlenir. İş oluştur modu normal iş çalıştırmaları üretir ve altyapı kaynaklı başarısızlıklar Çalıştırmalar'daki kurallara uyar.
Multica periyodik olarak son çalıştırmaların başarısız olmaya devam edip etmediğini kontrol eder: son 7 günde en az 50 tamamlanmış veya başarısız çalıştırma varsa ve başarısızlık oranı %90 ise, sistem Otopilotu duraklatır ve oluşturucusuna bildirir; nedeni düzeltin, ardından elle devam ettirin.
Elle duraklatmak zamanlamaları, webhook'ları ve Şimdi çalıştır'ı durdurur. Silme aslında arşivlemektir: gelecekteki tetikleyiciler durur, çalıştırma ve teslimat geçmişi korunur.
İzinler
- Herhangi bir çalışma alanı üyesi Otopilot oluşturabilir;
- oluşturucu ve çalışma alanı
ownerları/adminleri düzenleyebilir, çalıştırabilir, silebilir ve tetikleyicileri yönetebilir; - oluşturucu ve
ownerlar/adminler, yönetim erişimine işbirlikçi ekleyebilir; - işbirlikçiler düzenleyebilir, çalıştırabilir ve tetikleyicileri yönetebilir, ama başkalarına erişim veremez;
- bir Otopilotu yönetebilmek, onun agent'ını çalıştırabilmeyi garanti etmez — agent Erişimi yine geçerlidir.
CLI'ı kullanma
multica autopilot get <autopilot-id> --output json
multica autopilot trigger <autopilot-id>
multica autopilot runs <autopilot-id>
multica autopilot trigger-rotate-url <autopilot-id> <trigger-id>autopilot get, varsayılan olarak webhook_token, webhook_path ve webhook_url'i null yapar ve bunun yerine has_webhook_token ile webhook_token_hint döner. Yalnızca canlı kimlik bilgisine kasıtlı olarak ihtiyaç duyduğunuzda --show-secrets ekleyin; CLI, borulanmış JSON'un geçerli kalması için stderr'e bir uyarı yazdırır.
Tam parametreler için CLI'ı kullanma'ya bakın.
Sonraki adımlar
- İşleri agent'lara atama — atama ve onay penceresi.
- Gelen kutusu ve abonelikler — çalıştırma bildirimlerinin nereye geldiği.
- Çalıştırmalar — çalıştırma durumları ve başarısızlık yönetimi.
Agent'larla sohbet
Herhangi bir işin dışında, bir agent'la birebir ve tamamen özel bir konuşma. Agent hiçbir iş bağlamı olmadan başlar ve kendiliğinden iş oluşturmaz — ama açıkça istediğinizde çalışma alanı erişiminizle hareket eder.
Gelen kutusu ve abonelikler
Takip etmeniz gereken atamalar, bahsetmeler, yorumlar ve agent başarısızlıkları için tek bir yer.