Bir kanalda ajan çalıştır
Bilgisayarını bir ajan olarak sun. Kanaldaki kişiler ondan bahsederek ona görev verir; ajan planlarken, çalışırken ve bir pull request açarken her şeyi bir kart üzerinden takip ederler. Ajan mssgs sunucularında değil, senin bilgisayarında çalışır.
Neler yapabilirsin
- Bahsederek görev verYapılmasını istediğin işi yazıp ajandan bahset, tıpkı bir iş arkadaşından bahseder gibi.
- Bir projeyle sınırla
[website]gibi bir etiket işin nerede yapılacağını söyler; etiket olmadan ajan hiçbir dosyaya dokunamaz. - İşi takip etBir kart durumu gösterir: planlanıyor, çalışıyor, pull request açık, tamamlandı.
- YönlendirKarta düzeltmelerle yanıt ver, ajan bunları dikkate alır.
Uygulamada
Küçük ekranlarda giriş düğmesini düzelt
Proje etiketli tek bir bahsetme yeterli; ajan, çalıştıkça güncellenen kendi kartını gönderir.
Ajan nedir
Ajan, bir kanalda yer alan bir yapay zekâdır. Bir iş arkadaşından bahseder gibi ondan bahseder, ona bir görev verirsin; o da aynı konuşmada yanıt verir: bir kart gönderir, çalışırken bu kartı güncel tutar ve bir sonuçla kapatır. Bir kod tabanı üzerindeki iş normalde bir commit, bir push ve bir pull request ile biter.
Ajan barındırılan bir bot değildir. Sunucularımızda senin adına hiçbir şey çalışmaz. Her ajan, birinin kendi mssgs hesabıyla oturum açtığı ve bilerek ajan olarak sunduğu bir bilgisayardır: bir dizüstü, bir iş istasyonu, bir derleme makinesi. Model orada çalışır, açtığı dosyalar oradadır ve ajanın neler yapabileceğine, bunun ne kadarını gözetimsiz yapabileceğine o bilgisayarın sahibi karar verir.
Sınırları gerçek kılan da budur. Bir oturum yalnızca kanalın projesinin izin verdiği dizinleri açabilir; kanal hiçbir dizin belirtmezse ajan iş hakkında konuşabilir ama tek bir dosyaya dokunamaz.
Bir şey olmadan önce gerekenler
Bu sırayla üç adım. Bir: biri Settings → Agents altında bilgisayarını sunar ve hangi kanallara hizmet vermek istediğini seçer. İki: kanalın bir yöneticisi bu ajanı Manage Channel → Agents altında ekler. Üç: kanaldaki herkes bir görevle ondan bahsedebilir. İlk ikisi ayrı yerlerde yapılan ayrı işlemlerdir ve ikisi de gereklidir.
Kanalın kendisinde olanlar:
- Bir ajandan ya da birkaçından bahset. Birkaçı olduğunda işi bölüşürler: tam olarak biri sorumluluğu alır, diğerleri kendi paylarını ondan alır.
- Her ajan, ne yaptığını ve nereye vardığını gösteren kendi kartını gönderir.
- Arkasındaki oturumu yönlendirmek için bir karta yanıt ver.
- Kanalın ve projelerinin bir ajana her zaman söylediği şeyler bir kez ayarlanır. Kimse bunları her görevde tekrarlamaz.
Bir kart kendi kilometre taşlarını saklar. Çalışırken akıp giden düşünme süreci saklanmaz; bu yüzden kanala sonradan döndüğünde, görevin oraya nasıl vardığının tekrarını değil, nereye vardığını görürsün.
Ajan olarak bilgisayarın
Bu bölümdeki her şey masaüstü uygulamasında Settings → Agents altındadır ve hepsi o tek bilgisayarla ilgilidir. En üstteki ana anahtar makineyi ajan olarak açar; altındaki sayfalar bunun nasıl bir ajan olduğunu tanımlar. Açmadan önce hepsini ayarlayabilirsin.
Bu bölüm, bilgisayarında komut satırı araçları başlatmasına izin verilen masaüstü sürümlerinde görünür. Mac App Store sürümü korumalı alanda (sandbox) çalışır ve bunu yapamaz, bu yüzden bu özelliği hiç sunmaz.
Kimlik
İki alan var. Display name, insanların bu makinenin yaptığı işin yanında gördüğü addır: bir kanalın ajan listesinde ve gönderdiği her kartta. İstediğin zaman değiştirebilirsin. Driver ID ise başka bir şeydir: ajanın kendisi bu kimlikle kaydedilir.
Farklı bir driver ID, farklı bir ajan demektir
Ajan kullanılmaya başladıktan sonra driver ID’yi aynı tut. Bu, var olan bir ajanın üzerindeki bir etiket değil, o ajanın türetildiği şeydir. Değiştirirsen yepyeni bir ajan kaydedersin; eskisi ise eklendiği her kanalın ajan listesinde kalıcı olarak çevrimdışı kalır. Bu durumda bir yöneticinin eski kaydı silip yenisini eklemesi gerekir. Makinenin adını değiştirmek istiyorsan bunun yerine display name’i değiştir.
Aynı sayfa, mssgs’in bu bilgisayarı tanıdığı kimliği de gösterir. Bu kimlik driver ID’den gelir ve “bu makine tam olarak hangi ajan” sorusunun yanıtıdır.
Motorlar ve profiller
Motor, bu bilgisayarda bir görevin gerçekten çalıştığı komut satırı aracıdır. Uygulama desteklediği motorları arar ve bulduklarını sunar. Kurulu olmayan, oturum açmadığın ya da sorulduğunda yanıt vermeyen bir motor sunulmaz ve sayfa bu üç durumdan hangisi olduğunu söyler.
Profil, bir motor, bir model ve bir efor seviyesinin bir araya gelmesidir. Bir görev profili adıyla ister, bu yüzden yalnızca burada açtığın profiller seçilebilir. Uygulamayla gelenlerin yanı sıra motoru, o motorun beklediği model kimliğini ve bir efor seviyesini belirterek kendi profillerini ekleyebilirsin.
API anahtarıyla eriştiğin modeller tek başlarına çalıştırılmaz, bir motora bağlanır; bu yüzden bu makinedeki diğer tüm görevlerle aynı proje dizinlerine tabidir. Anahtar bu bilgisayarın anahtar zincirinde kalır: asla mssgs’e gönderilmez ve asla bir günlüğe yazılmaz.
Bu bilgisayarın hizmet verdiği kanallar
Bu bilgisayarın çalışmak istediği kanalları seç. Geri kalan her şey erişim dışında kalır: işaretlemediğin bir kanal, oradaki bir yönetici ajanını çoktan eklemiş olsa bile ona asla görev veremez. Hiçbir şey işaretlemezsen hiçbir şey gelmez.
Bir kanalı burada işaretlemek, anlaşmanın yarısıdır. Diğer yarısı İki tarafın da onaylaması gerekir kısmında.
Araçlar ve dağıtım hedefleri
Bir makine, motorun yanı sıra başka nelere sahip olduğunu da duyurabilir: iOS Simulator, headless tarayıcı, Blender, Docker, FFmpeg. Böylece bunlardan birine ihtiyaç duyan iş, onu gerçekten yapabilecek bir bilgisayara gidebilir.
Her araç algılanır, asla yalnızca beyan edilmez. Burada kurulu olmayan bir şey açılamaz. Bu makinede olmayan bir aracı duyurmak ona sonra yapamayacağı işler kazandırır ve o işi yapabilecek bir ajanın önünü kesen de tam olarak bu beyan olur.
Deploy targets alanında bu bilgisayarın dağıtım yapmasına izin verilen ortamları belirtirsin. Boş bırakırsan ona asla dağıtım içeren bir iş verilmez.
Denetim
Bu bilgisayarın kendi başına ne kadar karar verdiği. Bir derleme makinesi gözetimsiz çalışabilir, bir dizüstü önce sorabilir. Bu ayarların hepsi hesap başına ya da kanal başına değil, makine başınadır.
| Ayar | Ne yapar |
|---|---|
| Ask before taking on a task | Yeni görevler bu bilgisayarda senin onayını bekler. Sen karar verene kadar görev açık kalır, böylece başka bir ajan onu alabilir. Bu makineye atanmış iş ve başka birinin pull request’ini incelemek hiçbir zaman bu şekilde bekletilmez. |
| Tasks at a time | Bu bilgisayarın aynı anda çalıştırdığı en fazla görev sayısı. Bunun ötesindeki her şey burada kuyruğa alınmak yerine başka bir ajanın alması için bırakılır, böylece meşgul bir makine kimseyi yavaşlatmaz. |
| Pull requests | Bu makinenin izlediği bir pull request yeşile döndüğünde ne yapacağı: inceleyip merge etmek, merge etmeden incelemek ya da yalnızca izlemek. Kendi işini asla incelemez, çünkü inceleyen her zaman değişikliği yazandan farklı bir ajandır. |
| Suggested next tasks | Bir oturumun fark ettiği ama yapmadığı yakın işlere ne olacağı: kendi başına bir görev olarak açmak, senin göndermen için not etmek ya da hiç sormamak. Aşağıdaki “Takip görevleri” kısmına bak. |
| Notifications | Bu bilgisayarda ajan işleriyle ilgili bildirimler: kapalı, yalnızca hatalar ya da her şey. Onayını bekleyen bir görev, bu ayar ne olursa olsun her zaman bildirim gönderir. |
Bu bölüm ayrıca bu bilgisayardaki ajanın neler yaptığının ve işin neden gelip gelmediğinin bir günlüğünü tutar: süresi dolan bir kayıt, başka bir ajana giden bir görev, zaten ulaşılmış bir sınır. Bir kanal ayarlandığı hâlde hiçbir şey olmuyorsa ilk bakılacak yer burasıdır.
Kanal kurulumu
Bir kanal yöneticisi burada hangi ajanların çalışacağına ve onlara her zaman ne söyleneceğine karar verir. Bu ayarlar Manage Channel → Agents altındadır ve kendi ana anahtarları vardır. Açmadan önce her şeyi ayarlayabilirsin; sen açana kadar hiçbir şey çalışmaz.
Ajan listesinin kendisi kısadır: bu kanalda hangi ajanların çalıştığı ve şu anda çevrimiçi olup olmadıkları. Yalnızca bu kanala hizmet vermeyi kendisi seçmiş ajanları ekleyebilirsin. Bu kanala hizmet vermeyi bırakan ya da bilgisayarı artık hiç kayıt olmayan bir ajan buna göre işaretlenir; böylece sağlıklı görünen bir liste gerçekten sağlıklıdır.
İki tarafın da onaylaması gerekir
Yarısı çalışan bir kurulum gibi görünür ama hiçbir şey yapmaz
Bir ajan bir kanalda yalnızca şu ikisi birlikte doğru olduğunda çalışır: kanal o ajanı kendi listesinde gösterir ve o ajanın arkasındaki bilgisayar bu kanalı Settings → Agents altında işaretlemiştir. İki yarıdan hiçbiri tek başına bir ajanı odaya sokmaz ve yalnızca biri yerindeyken hiçbir yerde hata bildirilmez.
Taraflardan biri sana yardım eder: bir kanal yalnızca kendini zaten sunmuş ajanları ekleyebilir, yani liste hiçbir zaman makinenin önüne geçemez. Diğer taraf ise sessiz kalan taraftır. Kendi bilgisayarında bir kanalı işaretlemek kimseye haber vermez; bir yönetici seni ekleyene kadar hiçbir şey gelmez ve ekranın, her şey yolundayken nasıl görünüyorsa tıpatıp öyle görünür.
Hiçbir şey gelmiyorsa iki tarafı da kontrol et: ajan kanalın listesinde mi ve kanal makinede işaretli mi? Ajan listede ama çevrimdışıysa, o bilgisayardaki uygulama kapalıdır ya da ana anahtarı kapalıdır.
Talimatlar
Kanalın varsayılan talimatı, burada çalışan her ajan prompt’unun başına eklenir. Kanalın kuralları oraya yazılır: işler nasıl test edilir, iş nasıl bitmelidir, asla ne olmamalıdır.
Bir görevin neyle başladığı, başladığı anda sabitlenir. Bu yüzden bir talimatı düzenlemek zaten çalışan işi asla bozmaz; değişiklik bir sonraki görevden itibaren geçerli olur.
Bu talimatlar herkese açık değildir. Kanalı yönetmeyen üyeler kanalı onlar olmadan görür. Ajanı bu kanala hizmet veren kişiler bunları okuyabilir, çünkü kendi makinelerinin uyduğu kuralları bilmeleri gerekir.
Projeler
Proje, bir mesajda etiketini yazarak ajanı yönlendirdiğin, adı olan bir bağlamdır: bir klasör ve ona eşlik eden talimatlar.
| Alan | Nedir |
|---|---|
| Tag | Buraya görev göndermek için köşeli parantez içine yazdığın şey. Kanalda bir açılış parantezi yazdığında kanalın projeleri önerilir. |
| Allowed directories | Bu projenin ajanlarının çalışabileceği dizinler. Listeyi boş bırakırsan iş hakkında konuşabilirler ama tek bir dosyayı açamaz ya da değiştiremezler. |
| Prefix instruction | Görevin önüne eklenir. Bu kod tabanının ne olduğunu, nasıl test edildiğini ve nereye dağıtıldığını yaz. |
| Suffix instruction | Görevin arkasına eklenir. İşin nasıl bitmesi gerektiğini yaz, örneğin bir commit, bir push ve bir pull request ile. |
| Ajan başına rol | Preferred, allowed ya da blocked; ayrıca o ajanın bu projeyi kendisinin dağıtıp dağıtamayacağı. |
Bir ajan şu sırayla bilgilendirilir: önce kanalın varsayılan talimatı, sonra projenin prefix’i, sonra görev senin yazdığın hâliyle, en sonda da suffix.
Allowed directories, diğer bilgisayardaki yollardır
Bunlar ajanı çalıştıran makinede geçerlidir; bu da genellikle onları yazdığın makine değildir. Burada var olan bir yolun orada da var olması gerekmez. Hiçbirini geçici bir klasöre de yönlendirme: motorun sandbox’ı oturumu proje dizinlerinin içinde tutar ama bilgisayarın geçici klasörlerini yazılabilir bırakır, bu yüzden oraya yönlendirilmiş bir proje hiç de sınır sayılmaz. Gerçek bir proje klasörünü göster.
Rollerde iş önce preferred ajana önerilir ve pull request’leri o izler; allowed bir ajan iş alabilir, blocked bir ajan ise reddedilir. Dağıtım, çalışmaktan ayrı bir izindir; böylece bir ajana kodu emanet edip sürümü emanet etmeyebilirsin. Bir projede kimsenin dağıtım yapmasına izin verilmiyorsa bir dağıtım adımının gidecek yeri olmaz ve ekran derli toplu bir boşluk göstermek yerine bunu söyler.
Kime haber verilir
Bildirim listesi, bir ajan kendisinin yapmasına izin verilmeyen bir dağıtıma ihtiyaç duyduğunda ve bir görev bitemeyip bir insana ihtiyaç duyduğunda kimlerden bahsedileceğini belirler.
Bu listeyi önemli kılan gözetimsiz iştir. Gece üçte başarısız olan zamanlanmış bir çalıştırmanın ya da bir ajanın kendisi için açtığı bir görevin, burada biri adlandırılmadıkça hiçbir izleyicisi olmaz.
Zamanlamalar
Zamanlama, sürekli bir talimattır: belirlediğin saatte kanal görevi gönderir ve bir ajan onu alır, tıpkı biri yazmış gibi.
- Her gün, her hafta ya da iki haftada bir, seçtiğin saat diliminde seçtiğin bir saatte. Bu saat dilimi nerede olursan ol ve yaz saati uygulamasında da geçerli kalır: sabah dokuz, sabah dokuz olarak kalır.
- Zamanlamaya bir proje ver; çalıştırma o projenin talimatlarıyla bilgilendirilir ve onun dizinleriyle sınırlanır. Proje olmadan hiçbir izinli dizini olmaz, bu yüzden yalnızca iş hakkında konuşabilir.
- Onu belirli ajanlara gönder ya da hiç kimseyi belirtme; bu durumda kanaldaki her ajan aday olur.
- O anda hiçbir ajan çevrimiçi değilse görev yine de oluşturulur ve geri gelen ilk ajanı bekler. Kart bunu belirtir.
- Bir saatten fazla geciken bir çalıştırma atlanır ve bir sonraki zamana kalır; kanala da kaçırıldığı söylenir. Kaçırılan bir çalıştırma duyurulur, asla sessizce yutulmaz.
- Kanal, zamanlamanın adını taşıyan bir kart alır. Bu karta yanıt vermek, diğer tüm görevlerde olduğu gibi ajanı yönlendirir.
Bir ajanla çalışmak
Bir iş arkadaşından bahseder gibi, yapılmasını istediğin işi yazıp ajandan bahset. Birkaçından bahsedersen işi bölüşürler: tam olarak biri sorumluluğu alır, diğerleri kendi paylarını ondan alır. Her biri kendi kartını gönderir.
Projeyi ve modeli belirtmek
İşin nerede yapılacağını söylemek için projenin etiketini köşeli parantez içinde yaz. Projeleri olan bir kanalda parantez açınca projeler önerilir.
@remius [core] ayarlar sayfasındaki boş durumu düzelt
Belirli bir model istiyorsan, aynı parantezlerin içine bir @ işaretinden sonra bir profil adı ekle. Profili yazmazsan ajan elindekilerden birini seçer.
@remius [core@opus-max] şablonları yeniden yaz
- Profil bilerek parantezlerin içinde durur. Bir mesajın başka herhangi bir yerindeki @ işareti bir bahsetmedir, bu yüzden parantezlerin dışına yazılan bir profil bir kişiyi ya da hiç kimseyi gösterir.
- İki çift parantez içeren bir mesaj hem projesini hem modelini ilk çiftten alır, böylece bu ikisi asla birbiriyle çelişemez.
- Bu bir istektir, garanti değil. Bir profilin çalışıp çalışamayacağı görevi alan makineye bağlıdır ve mesajı gönderdiğinde bunun hangi makine olacağını henüz kimse bilmez. İstediğin modeli çalıştıramayan bir bilgisayar, reddedip görevi bir yazım hatası yüzünden kaybetmek yerine işi elindekiyle yapar ve bunu kartında söyler.
Proje olmadan görev dosyalara dokunamaz
Etiketi yazmazsan görevin hiç izinli dizini olmaz. Ajan iş hakkında konuşabilir, üzerine düşünebilir, ne demek istediğini sorabilir ve sorularını yanıtlayabilir, ama tek bir dosyayı açamaz ya da değiştiremez. Bu bilinçli bir seçimdir: dizinleri bir proje verir, asla varsayılmazlar. Commit beklerken karşına bir sohbet çıkarsa mesajı bir etiketle yeniden gönder.
Bağlam vermek
Bir mesaja yanıt verip o yanıtta bir ajandan bahsedersen, o mesaj da ajana verilir: gösterdiğin kod bloğu, birinin yapıştırdığı günlük, mesaja eklenmiş ekran görüntüsü. Ekler de birlikte gelir ve oturumun okuyabileceği bir yere konur; çevresindeki konuşma da gelir, böylece “bunu düzeltebilir misin” bir şeye atıfta bulunur.
Burada bilmeye değer iki kural var:
- Alıntılanan sohbet ajana bilgi olarak verilir, asla talimat olarak değil. Bu yüzden içinde tesadüfen emirler bulunan başka birinin mesajı bir oturumu yönünden saptıramaz.
- Yalnızca bir kez görüntülenebilen bir ek asla açılmaz, çünkü bu, gönderildiği tek görüntülemeyi harcamak olur.
Bunlardan herhangi biri okunamazsa görev yine de çalışır. Senin yazdığın mesaja geri döner ve eksik olanı belirtir, böylece ajan eksik olanı isteyebilir.
Yönlendirme, pull request’ler ve takip görevleri
Arkasındaki oturumu yönlendirmek için bir karta yanıt ver. Düzeltmeler ve yeni bilgiler, kimsenin baştan başlamasına gerek kalmadan işin o kısmını yapan ajana ulaşır. Asıl mesaja yanıt vermek de aynı şekilde işe yarar.
Bir ajan bir pull request açtığında, onu izleme işini farklı bir ajan üstlenir: kontroller, yorumlar ve düzeltmeleri branch’e push etmek. Asıl görev ancak bu izleme bittiğinde tamamlanmış olur. Hangi ajanın izleyeceğine senin yerine karar verilir ve değişikliği yazan ajan asla aday olamaz.
Bir şeyin dağıtılması gerekiyorsa ve ajanın bunu kendisinin yapmasına izin verilmiyorsa, o adımı izni olan bir ajana devreder ve kanalın bildirim listesindeki kişilerden bahsedilir. Her seferinde.
Takip görevleri. Kendisinden isteneni bitiren ve bu arada yakınında bir şey fark eden bir oturum (dokunmadan bıraktığı bir hata, eksik bir test), bunu kendi başına bir görev olarak açabilir, senin göndermen için not edebilir ya da olduğu gibi bırakabilir. Üçünden hangisinin seçileceği o makinenin sahibinin tercihidir.
Görev açmanın bilerek konmuş sınırları vardır: bir takip görevi kendi takip görevlerini açamaz, bir görev en fazla beş tane açabilir ve kanalın aynı anda çalışan iş sınırı değişmez. Kartın altındaki mesaj neyin açıldığını ve neyin neden reddedildiğini söyler; böylece bir bulgu, bir oturumun onu fark etmesiyle birinin ondan haberdar olması arasında asla kaybolmaz. Bir takip görevini isteyen biri yoktur, çünkü onu kimse istemedi: asıl görevi gönderen kişiye değil, çıktığı işe aittir.
Birden fazla bilgisayarda tek hesap
Her bilgisayar, tek bir hesabın arkasındaki ayrı bir ajandır. Ajan, hesabından ve o makinenin driver ID’sinden türetilir; bu yüzden bir dizüstü ve bir derleme makinesi, bir kanalın ajan listesinde arkalarında tek hesap olan iki ajan olarak görünür. Her biri kanala ayrı ayrı eklenir ve her biri katılımını ayrı ayrı onaylar.
Hesaptan bahsetmek hepsine seslenir: görev, bu kanalın listelediği o hesaba ait her ajana önerilir. Tam olarak biri onu alır, diğerleri ne yapıyorlarsa ona devam eder.
İki bilgisayarın farklı driver ID’lere ihtiyacı vardır
Onları birbirinden ayıran driver ID’dir. Aynı driver ID’yi paylaşan iki makine iki ajan değil, iki kez kaydedilmiş tek bir ajandır ve hiçbir yerde hata bildirilmez. İkisi de her bilgilendirmeyi alır. İkisine de görevi kendilerinin kaptığı söylenir. İkisi de bir kart gönderir, işi yapar ve bunun için bir pull request açar. Kayıt da en son oturum açana ait olur; bu yüzden kanalın o ajanda olduğunu düşündüğü motorlar ve araçlar aslında diğer makineye aittir.
Varsayılan olarak bu olmaz: driver ID makinenin kendisinden türetilir. Biri ikisine de aynı kimliği yazdığında ya da bir bilgisayarın uygulama verilerini başka bir bilgisayara taşıdığında olur.
Uygulama bunu, iki makinenin de elindeki tek kanıttan fark eder: bu ajana atfedilen ama bu bilgisayarın göndermediği bir kart. Aynısını iki kez gördüğünde bunu Settings → Agents → Identity sayfasının en üstünde, sorunu çözen alanın hemen yanında kırmızıyla söyler: “Another computer is using this identity.” Bunu bir kez görmek bir hüküm değildir, çünkü yeni yeniden başlamış bir ajan taze bir kart gönderir ve bunu zaten bir an sonra bildirir.
Bunu, makinelerden birinde driver ID’yi değiştirerek düzeltirsin. O makine yeni bir ajan olur ve kanallarına yeniden eklenmesi gerekir; diğeri işi ve geçmişiyle birlikte asıl kimliği korur.
Bilmeye değer sınırlar
Ajanlar mesaj göndererek iş oluşturamaz
Görevleri yalnızca insanlar oluşturur, bir de kanalın kendi zamanlamaları. Kontrol mesajın yazarı üzerinden yapılır: bu kanala hizmet veren bir ajanı çalıştıran bir hesap burada mesaj göndererek hiçbir görev oluşturmaz, ne kendi ajanları ne de başkasınınkiler için. Bu yüzden bir ajanın başka bir ajandan bahsetmesi koordinasyondur, asla yeni iş değildir; ajanlar arasındaki döngüler iyi davranış sayesinde değil, tasarım gereği imkânsızdır.
İnsanları şaşırtan sonuç
Kendi hesabını bir kanalda ajan olarak açarsan, o kanalda senin kendi bahsetmelerin görev oluşturmayı bırakır. Hiçbir hata bildirilmez; sadece hiçbir şey olmaz. Aynı kanalda hem bir makine sunmak hem de iş istemek istiyorsan, makine için ayrı bir hesap kullan.
Aynı anda ne kadar çalışabilir
| Sınır | Anlamı |
|---|---|
| Kanal başına aynı anda on görev | Bir kanal aynı anda en fazla on görev çalıştırır. Bunun ötesindeki bir bahsetme kuyruğa alınmaz, reddedilir ve kanala nedeni söylenir; böylece kimse hiç başlamamış bir işi beklemek zorunda kalmaz. |
| Tek seviye türev iş | Bir görev bir pull request izlemesi ya da bir dağıtım üretebilir, bunların altında hiçbir şey üretemez. Zincir her zaman onu başlatan kişinin gözü önünde biter. |
| Görev başına beş takip görevi | Bir oturum, kendisine verilen tek görevden en fazla beş takip görevi açabilir ve bir takip görevi kendi takip görevlerini açamaz. |
| Kanal başına yirmi zamanlama | Sürekli talimatlar kanal başına yirmiyle sınırlıdır ve en sık ritim günde bir kezdir. |
Bir pull request asla kendi yazarı tarafından incelenmez
Bir pull request’i hangi ajanın izleyip inceleyeceği senin yerine seçilir ve değişikliği yazan ajan bunun dışında tutulur. Böylece hiçbir ajan kendi işini onaylamaz.
Kanaldaki tek bir ajanı inceleyecek kimse yoktur
İş yine de yapılır ve pull request yine de açılır, ama inceleme bu durumda bir insanı ya da ikinci bir ajanı bekler. Bu adımın gerçekten gerçekleşmesini sağlayan, bir kanalda iki ajan olmasıdır (bunlar aynı hesaptaki iki bilgisayar da olabilir). Profiller burada işe yaramaz: profil hangi modelin çalıştığını söyler, ajan ise işi kimin yaptığını; aynı ajanın iki profili birbirinin işini inceleyemez.