
Semaphore UI 2.21, yapay zekâ kodlama ajanlarını çalıştırır. İki yeni uygulama, Claude Code Agent ve Codex Agent, ajanın komut satırı aracını bir depoda başlatır ve ona bir istem verir. Ajan kendi başına çalışır ve yaptıklarını görev günlüğüne bildirir. İstem, değişken gruplarından ve anket değişkenlerinden değer alabilir, ajan MCP sunucularının araçlarını çağırabilir ve günlük, ajanın çalışmasını bir döküm olarak gösterir.
Semaphore 2.21 geliştirme aşamasındadır. Henüz yayımlanmadı: bu sayfa, geliştirme dalında hâlihazırda bulunanları anlatır ve sürüm çıkana kadar genişleyecektir. Ayrıntılar değişebilir.
Öne Çıkanlar
- Claude Code Agent ve Codex Agent şablonları: ajan, diğerleri gibi bir şablondur. Elle, bir zamanlamayla, bir entegrasyonla veya bir iş akışının adımı olarak başlatın.
- İstem ifadeleri:
${{ vars.extra.NAME }},${{ vars.env.NAME }},${{ secrets.extra.NAME }}ve${{ secrets.env.NAME }}, GitHub Actions’taki gibi, değişken gruplarının ve anket değişkenlerinin değerlerini isteme yerleştirir. - Görevin istemi: bir şablon, görevi başlatan kişinin istemi tek bir çalıştırma için değiştirmesine izin verebilir.
- MCP envanteri: ajanın araçlarını çağırabildiği uzak MCP sunucularını içeren yeni bir envanter türü. Belirteçler şifrelenmiş olarak saklanır.
- Ajan görev günlüğü: ajanın metni, araç çağrıları, alt ajanlar ve token sayısı ile maliyeti içeren bir özet; ajan çalışırken güncellenir.
- Yalıtım: her görev, ajanın kendine ait, boş bir yapılandırma dizinini alır. Belirteçler ve isteme yerleştirilen gizli anahtarlar günlükte maskelenir.
Yapay zekâ ajanı şablonları

Bir ajan şablonu, Claude Code veya Codex aracını bir deponun bir dizininde başlatır ve ona bir istem verir. Aksi hâlde bir meslektaşınıza anlatacağınız işler için kullanın: son commit’i gözden geçirmek, başarısız bir testi bulup düzeltmek, bir bağımlılığı güncelleyip bir pull request açmak.
Oluşturmak için Görev Şablonları sayfasına gidin, Yeni Şablon düğmesine ve ardından Claude Code Agent veya Codex Agent öğesine tıklayın.
| Alan | Açıklama |
|---|---|
| Depo | Ajanın içinde çalıştığı depo. Semaphore, diğer tüm şablonlarda olduğu gibi, görevden önce depoyu klonlar veya günceller. |
| Alt dizin yolu | İsteğe bağlı. Ajanın başlatıldığı depo dizini. |
| MCP sunucuları | İsteğe bağlı. Ajanın araçlarını çağırabildiği sunucuları içeren bir MCP envanteri. |
| Değişken Grupları | Ajan için değişkenler ve gizli anahtarlar: API anahtarı, istem ifadelerinin değerleri, ajan sürecinin ortam değişkenleri. |
| İstem | Ajanın çalıştırıldığı talimat. |
| CLI argümanları | Ajanın komutu için ek argümanlar: model, sınırlar, izinler. |
| Anket Değişkenleri | Görev başlatılırken sorulan sorular. Yanıtlar isteme yerleştirilebilir. |
Gerekenler. Ajanın komut satırı aracı, görevleri yürüten makinede, yani Semaphore sunucusunda veya runner’da kurulu olmalıdır:
| Uygulama | Komut | Kurulum |
|---|---|---|
| Claude Code Agent | claude |
npm install -g @anthropic-ai/claude-code |
| Codex Agent | codex |
npm install -g @openai/codex |
Semaphore, başlangıçta komutunu PATH içinde bulduğunda bir uygulamayı etkinleştirir. Bir yönetici
de Uygulamalar sayfasında uygulamayı etkinleştirebilir ve çalıştırılabilir dosyanın yolunu
belirleyebilir.
Ajan nasıl çalışır. Semaphore, ajanı depo dizininde, istemi standart girdisine vererek başlatır; böylece istem süreç listesinde görünmez:
| Uygulama | Komut |
|---|---|
| Claude Code Agent | claude -p --output-format=stream-json --verbose --include-partial-messages --mcp-config=<file> --strict-mcp-config --no-session-persistence <CLI args> |
| Codex Agent | codex exec --json --skip-git-repo-check <CLI args> - |
- Görevler arasında hiçbir şey saklanmaz. Her çalıştırma, ajanın yeni bir oturumudur. Bir çalıştırmadan sonra kalması gereken şeyin yeri depodur: bir commit, bir pull request, bir dosya.
- Docker ve Kubernetes runner’larında ajan bir konteynerde çalışır; bu nedenle yürütücü imajı
claudeveyacodexkomutunu içermelidir.
API anahtarı
Ajan, API anahtarını bir ortam değişkeninden alır. Anahtarı, şablonun bir değişken grubuna gizli ortam değişkeni olarak ekleyin:
| Uygulama | Değişken | Ayrıca kabul edilir |
|---|---|---|
| Claude Code Agent | ANTHROPIC_API_KEY |
CLAUDE_CODE_OAUTH_TOKEN |
| Codex Agent | OPENAI_API_KEY |
CODEX_API_KEY |
Semaphore’u çalıştıran kullanıcının oturumu kullanılmaz: ajanın yapılandırma dizini görev için oluşturulur ve boştur; bu nedenle kimlik doğrulamanın tek yolu bir değişken grubundaki anahtardır. Değişkenlerin hiçbiri ayarlanmamışsa, görev günlüğü hangisinin eklenmesi gerektiğini belirtir.
İstem ifadeleri
Bir şablonun istemi, şablonun değişken gruplarından değer alabilir. GitHub Actions’taki gibi çift süslü parantez içinde bir ifade yazın; Semaphore, görev başladığında ifadeyi değeriyle değiştirir:
| İfade | Değer |
|---|---|
${{ vars.extra.NAME }} |
Bir değişken grubunun ek değişkeni. |
${{ vars.env.NAME }} |
Bir değişken grubunun ortam değişkeni. |
${{ secrets.extra.NAME }} |
Bir değişken grubunun gizli ek değişkeni. |
${{ secrets.env.NAME }} |
Bir değişken grubunun gizli ortam değişkeni. |
Find the flaky tests in services/api and fix them.
Open a pull request against ${{ vars.extra.base_branch }} and post its link
to ${{ vars.env.TRACKER_URL }} with the token ${{ secrets.env.TRACKER_TOKEN }}.
- Anket değişkenleri ek değişkenlerdir:
versionanket değişkeninin yanıtı${{ vars.extra.version }}, gizli olanınki ise${{ secrets.extra.NAME }}ifadesidir. Ortam değişkeni olarak iletilen bir anket değişkeni bunun yerineenvaltındadır. Yanıtsız bırakılan bir anket değişkeni boş bir dize verir. - Var olmayan bir değişken görevi başarısız kılar: ajan başlamadan önce, ifadenin adını veren bir iletiyle. Semaphore, isteminde boşluk olan bir ajanı çalıştırmaz.
- Yanlış yazılmış bir ifade, şablon kaydedilirken reddedilir:
${{ secrets.TOKEN }}ifadesindeextraveyaenvyoktur. - Diğer ifadeler olduğu gibi bırakılır. Yalnızca
vars.…vesecrets.…Semaphore’a aittir; dolayısıyla bir istem, ajandan içinde${{ github.sha }}bulunan bir iş akışı yazmasını isteyebilir. Birvarsveyasecretsifadesini metin olarak korumak için önüne bir dolar işareti daha koyun:$${{ secrets.env.NAME }}. - Değer olduğu gibi yerleştirilir. Bir dize yazıldığı gibi, bir liste veya nesne JSON olarak kullanılır. Değerin içinde yeniden ifade aranmaz.
- İsteme yerleştirilen bir gizli anahtar, ajan onu nerede yinelerse yinelesin, görev günlüğünde maskelenir.
İstemdeki bir gizli anahtar, istemin geri kalanıyla birlikte model sağlayıcısına gönderilir. Gizli anahtarı ajanın araçlarına vermeyi tercih edin: bir değişken grubunun gizli ortam değişkeni olarak veya bir MCP sunucusunun belirteci olarak.
Görevin istemi
Şablonda İstem onay kutusu etkinleştirildiğinde, görev formu şablonun istemini gösterir ve onu tek bir çalıştırma için değiştirmenize izin verir. Bir zamanlama, bir entegrasyon veya bir iş akışı adımı da aynı şekilde kendi istemini tutabilir. API üzerinden, istemi görev parametrelerinde gönderin:
{
"template_id": 12,
"params": {
"prompt": "Review the changes of the last release and list the risky ones."
}
}
Bir görevin verdiği istem tam olarak yazıldığı gibi kullanılır: istem ifadeleri yalnızca şablonda saklanan istemde değiştirilir. Bu, projenin değişkenlerini ve gizli anahtarlarını yalnızca görev çalıştırabilen kişilerden uzak tutar. Şablon buna izin vermiyorsa, istem getiren bir görev reddedilir.
MCP sunucuları

Bir ajan, uzak MCP sunucularının araçlarını çağırabilir: bir sorun izleyici, bir belge araması, kendi servisiniz. Sunucular yeni MCP Envanteri türündeki bir envanterde tutulur ve tek bir envanter hem Claude Code hem de Codex şablonlarına hizmet eder.
| Alan | Açıklama |
|---|---|
| Anahtar | Kapatılan bir sunucu listede kalır ve ajana verilmez. |
| Ad | Ajanın sunucuyu tanıdığı ad: en fazla 64 harf, rakam, - ve _. |
| URL | MCP’yi HTTP veya SSE üzerinden konuşan bir sunucunun http veya https adresi. URL içinde kullanıcı adı veya parola kabul edilmez. |
| Belirteç | İsteğe bağlı. Ajan onu Authorization başlığında bearer belirteci olarak gönderir. |
- Kaydedilen bir belirteç şifrelenmiş olarak saklanır ve bir daha gösterilmez: değiştirmek için yenisini yazın veya belirteci kaldırın.
- Belirteç ajana, sürecinin bir ortam değişkeni olarak ulaşır. Ajanın yapılandırma dosyasına, komut satırına veya görev günlüğüne yazılmaz.
- Ajan tam olarak bu sunucuları alır. Bir çağrıyı onaylayacak kimse olmadığından araçları önceden onaylanır; Semaphore’u çalıştıran kullanıcı için yapılandırılmış MCP sunucuları ise kullanılmaz.
Görev günlüğü

Görev günlüğü, ajanın çalışmasını gerçekleştiği anda, komut satırı aracının yazdırdığı JSON olayları olarak değil, bir döküm olarak gösterir:
- Ajanın metni, satır satır. Codex bir iletiyi tamamlandığında yazdırır.
- Araç çağrıları, her biri tek satırda: durum, MCP sunucusu ve araç, argümanlar. Argümanları ve sonucu görmek için bir satıra tıklayın. Başarısız bir çağrı baştan açıktır.
- Alt ajanlar: bir alt ajanın satırları onun adıyla işaretlenir.
- Bir Claude Code çalıştırmasının ilk satırı modeli ve MCP sunucularını belirtir; bağlanamayanlar kırmızıyla gösterilir.
- Sondaki özet: tur sayısı, süre, token sayısı ve maliyet, ajanın bildirdiği ölçüde.
Ham günlük, aynı günlüğü düz metin olarak gösterir.
Güvenlik
- Ajan komut yürütür. Komut satırı aracının ona verdiği izinler dahilinde ajan, depo dizinini okuyabilir ve değiştirebilir, görevleri yürüten kullanıcı olarak program çalıştırabilir ve MCP sunucularının araçlarını çağırabilir. Bir ajan şablonuna, işi görmeye yeten en dar haklara sahip bir depo ve belirteçler, sunucudan ayrı tutmak istediğiniz işler için de ayrı bir runner verin.
- Her görevin, ajanın kendi yapılandırma dizini vardır (
CLAUDE_CONFIG_DIR,CODEX_HOME); dizin görev için oluşturulur ve görevden sonra kaldırılır. Semaphore’u çalıştıran kullanıcının ayarları, oturumları ve MCP sunucuları ajana ulaşmaz ve bir değişken grubunun değişkeni dizini başka yere yönlendiremez. - İstem ve ajanın okudukları model sağlayıcısına gider: deponun dosyaları, komutların çıktısı, araçların sonuçları.
- Bir depo ajana talimat verebilir. Ajanın okuduğu dosyalardaki, bir issue’daki veya bir aracın sonucundaki metin, ajanın yaptığını değiştirebilir. Güçlü belirteçlere sahip bir ajanı, denetlemediğiniz içeriğe yönlendirmeyin.
- Belirteçler ve gizli anahtarlar görev günlüğünde maskelenir: MCP sunucularının belirteçleri ve
isteme yerleştirilen gizli anahtarlar
********ile değiştirilir. - Değişkenler ve gizli anahtarlar, süreç listesinin onları göstereceği ajan komut satırının dışında kalır.
Belgeler
Kullanıcı kılavuzunda her alanı ve kuralı içeren bir sayfa vardır: Yapay zekâ ajanları.
