Semaphore UI'daki yenilikler 2.21

CTO ve Kurucu
Geliştiriliyor

Yapay zekâ kodlama ajanları çalıştıran Claude Code Agent ve Codex Agent şablonlarını, istem ifadelerini, bir MCP envanterini ve döküm biçiminde bir görev günlüğünü ekler.

Bu sürümü yapay zekâ ile tartışın

Bir Claude Code Agent şablonunun düzenleyicisi

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ı

Claude Code Agent ve Codex Agent öğelerini içeren Yeni Şablon menüsü

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ı claude veya codex komutunu 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: version anket 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 yerine env altı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 }} ifadesinde extra veya env yoktur.
  • Diğer ifadeler olduğu gibi bırakılır. Yalnızca vars.… ve secrets.… Semaphore’a aittir; dolayısıyla bir istem, ajandan içinde ${{ github.sha }} bulunan bir iş akışı yazmasını isteyebilir. Bir vars veya secrets ifadesini 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ı

Üç sunucu içeren bir MCP envanterinin formu

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üğü

Bir Claude Code görevinin günlüğü: model, araç çağrıları, bir alt ajan, özet

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ı.