Šta je novo u Semaphore UI-ju 2.21

CTO i osnivač
U razvoju

Dodaje šablone Claude Code Agent i Codex Agent za pokretanje AI agenata za programiranje, izraze u promptu, MCP inventar i dnevnik zadatka u obliku transkripta.

Razgovarajte o izdanju sa AI

Uređivač šablona Claude Code Agent

Semaphore UI 2.21 pokreće AI agente za programiranje. Dve nove aplikacije, Claude Code Agent i Codex Agent, pokreću alat komandne linije agenta u repozitorijumu i daju mu prompt. Agent radi samostalno i u dnevnik zadatka izveštava šta radi. Prompt može da preuzme vrednosti iz grupa promenljivih i promenljivih upitnika, agent može da poziva alate MCP servera, a dnevnik prikazuje njegov rad kao transkript.

Semaphore 2.21 je u razvoju. Još nije objavljen: ova stranica opisuje ono što se već nalazi u razvojnoj grani i dopunjavaće se do izdanja. Detalji se još mogu promeniti.

Istaknuto

  • Šabloni Claude Code Agent i Codex Agent: agent je šablon kao i svaki drugi. Pokrenite ga ručno, po rasporedu, integracijom ili kao korak toka posla.
  • Izrazi u promptu: ${{ vars.extra.NAME }}, ${{ vars.env.NAME }}, ${{ secrets.extra.NAME }} i ${{ secrets.env.NAME }} ubacuju vrednosti grupa promenljivih i promenljivih upitnika u prompt, kao u GitHub Actions.
  • Prompt zadatka: šablon može da dozvoli onome ko pokreće zadatak da zameni prompt za jedno pokretanje.
  • MCP inventar: novi tip inventara sa udaljenim MCP serverima čije alate agent može da poziva. Tokeni se čuvaju šifrovani.
  • Dnevnik zadatka agenta: tekst agenta, pozivi alata, podagenti i rezime sa tokenima i troškom, ažuriran dok agent radi.
  • Izolacija: svaki zadatak dobija sopstveni, prazan konfiguracioni direktorijum agenta. Tokeni i tajne ubačene u prompt maskiraju se u dnevniku.

Šabloni AI agenata

Meni Novi šablon sa stavkama Claude Code Agent i Codex Agent

Šablon agenta pokreće Claude Code ili Codex u direktorijumu repozitorijuma i daje mu prompt. Koristite ga za posao koji biste inače opisali kolegi: pregled poslednjeg commit-a, pronalaženje i ispravku testa koji ne prolazi, ažuriranje zavisnosti i otvaranje pull request-a.

Da biste ga napravili, idite na Šabloni zadataka, kliknite na Novi šablon, a zatim na Claude Code Agent ili Codex Agent.

Polje Opis
Repozitorijum Repozitorijum u kojem agent radi. Semaphore ga klonira ili ažurira pre zadatka, kao i za svaki drugi šablon.
Putanja poddirektorijuma Opciono. Direktorijum repozitorijuma u kojem se agent pokreće.
MCP serveri Opciono. MCP inventar sa serverima čije alate agent može da poziva.
Grupe promenljivih Promenljive i tajne za agenta: API ključ, vrednosti za izraze u promptu, promenljive okruženja procesa agenta.
Prompt Uputstvo sa kojim se agent pokreće.
CLI argumenti Dodatni argumenti za komandu agenta: model, ograničenja, dozvole.
Promenljive upitnika Pitanja koja se postavljaju pri pokretanju zadatka. Odgovori se mogu ubaciti u prompt.

Šta vam je potrebno. Alat komandne linije agenta mora biti instaliran na mašini koja izvršava zadatke, na Semaphore serveru ili na runner-u:

Aplikacija Komanda Instalacija
Claude Code Agent claude npm install -g @anthropic-ai/claude-code
Codex Agent codex npm install -g @openai/codex

Semaphore omogućava aplikaciju kada pri pokretanju pronađe njenu komandu u PATH. Administrator je takođe može omogućiti i zadati putanju do izvršnog fajla na stranici Aplikacije.

Kako se agent pokreće. Semaphore pokreće agenta u direktorijumu repozitorijuma sa promptom na standardnom ulazu, tako da se prompt ne pojavljuje u listi procesa:

Aplikacija Komanda
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> -
  • Ništa se ne čuva između zadataka. Svako pokretanje je nova sesija agenta. Ono što treba da nadživi pokretanje pripada repozitorijumu: commit, pull request, fajl.
  • Na Docker i Kubernetes runner-ima agent radi u kontejneru, pa slika izvršioca mora da sadrži komandu claude ili codex.

API ključ

Agent uzima svoj API ključ iz promenljive okruženja. Dodajte ključ u grupu promenljivih šablona kao tajnu promenljivu okruženja:

Aplikacija Promenljiva Takođe se prihvata
Claude Code Agent ANTHROPIC_API_KEY CLAUDE_CODE_OAUTH_TOKEN
Codex Agent OPENAI_API_KEY CODEX_API_KEY

Prijava korisnika pod kojim radi Semaphore se ne koristi: konfiguracioni direktorijum agenta se pravi za zadatak i prazan je, pa je ključ iz grupe promenljivih jedini način autentifikacije. Ako nijedna od promenljivih nije zadata, dnevnik zadatka navodi koju treba dodati.

Izrazi u promptu

Prompt šablona može da preuzme vrednosti iz grupa promenljivih šablona. Napišite izraz u dvostrukim vitičastim zagradama, kao u GitHub Actions, i Semaphore ga zamenjuje kada zadatak počne:

Izraz Vrednost
${{ vars.extra.NAME }} Dodatna promenljiva grupe promenljivih.
${{ vars.env.NAME }} Promenljiva okruženja grupe promenljivih.
${{ secrets.extra.NAME }} Tajna dodatna promenljiva grupe promenljivih.
${{ secrets.env.NAME }} Tajna promenljiva okruženja grupe promenljivih.
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 }}.
  • Promenljive upitnika su dodatne promenljive: odgovor na promenljivu upitnika version je ${{ vars.extra.version }}, a tajna je ${{ secrets.extra.NAME }}. Promenljiva upitnika koja se isporučuje kao promenljiva okruženja nalazi se pod env. Promenljiva upitnika ostavljena bez odgovora daje prazan string.
  • Promenljiva koja ne postoji obara zadatak pre nego što se agent pokrene, uz poruku koja navodi izraz. Semaphore ne pokreće agenta sa rupom u promptu.
  • Pogrešno napisan izraz se odbija pri čuvanju šablona: ${{ secrets.TOKEN }} nema extra ni env.
  • Ostali izrazi ostaju kakvi jesu. Samo vars.… i secrets.… pripadaju Semaphore-u, pa prompt može da zatraži od agenta da napiše tok posla sa ${{ github.sha }} u njemu. Da biste izraz vars ili secrets zadržali kao tekst, stavite još jedan znak dolara ispred njega: $${{ secrets.env.NAME }}.
  • Vrednost se ubacuje takva kakva jeste. String se koristi kako je napisan, lista ili objekat kao JSON. U vrednosti se izrazi ne traže ponovo.
  • Tajna ubačena u prompt se maskira u dnevniku zadatka, gde god je agent ponovi.

Tajna u promptu šalje se dobavljaču modela zajedno sa ostatkom prompta. Bolje je tajnu dati alatima agenta: kao tajnu promenljivu okruženja grupe promenljivih ili kao token MCP servera.

Prompt zadatka

Kada je u šablonu uključeno polje za potvrdu Prompt, forma zadatka prikazuje prompt šablona i dozvoljava da ga promenite za jedno pokretanje. Raspored, integracija ili korak toka posla mogu na isti način da čuvaju sopstveni prompt. Preko API-ja ga pošaljite u parametrima zadatka:

{
  "template_id": 12,
  "params": {
    "prompt": "Review the changes of the last release and list the risky ones."
  }
}

Prompt koji zadaje zadatak koristi se tačno onako kako je napisan: izrazi u promptu zamenjuju se samo u promptu sačuvanom u šablonu. Tako promenljive i tajne projekta ostaju nedostupne onima koji smeju samo da pokreću zadatke. Ako šablon to ne dozvoljava, zadatak koji donosi prompt se odbija.

MCP serveri

Forma MCP inventara sa tri servera

Agent može da poziva alate udaljenih MCP servera: sistem za praćenje zahteva, pretragu dokumentacije, vaš sopstveni servis. Serveri se čuvaju u inventaru novog tipa MCP inventar, a jedan inventar služi i Claude Code i Codex šablonima.

Polje Opis
Prekidač Isključen server ostaje u listi i ne daje se agentu.
Naziv Naziv pod kojim agent poznaje server: do 64 slova, cifre, - i _.
URL http ili https adresa servera koji koristi MCP preko HTTP-a ili SSE-a. Korisničko ime ili lozinka u URL-u se ne prihvataju.
Token Opciono. Agent ga šalje u zaglavlju Authorization kao bearer token.
  • Sačuvani token se čuva šifrovan i više se ne prikazuje: unesite novi da biste ga zamenili, ili ga uklonite.
  • Token stiže do agenta kao promenljiva okruženja njegovog procesa. Ne upisuje se u konfiguracioni fajl agenta, u komandnu liniju niti u dnevnik zadatka.
  • Agent dobija tačno ove servere. Njihovi alati su unapred odobreni, jer nema nikoga da potvrdi poziv, a MCP serveri konfigurisani za korisnika pod kojim radi Semaphore se ne koriste.

Dnevnik zadatka

Dnevnik Claude Code zadatka: model, pozivi alata, podagent, rezime

Dnevnik zadatka prikazuje rad agenta dok se odvija, kao transkript, a ne kao JSON događaje koje ispisuje alat komandne linije:

  • Tekst agenta, red po red. Codex ispisuje poruku kada je završena.
  • Pozivi alata, svaki u jednom redu: stanje, MCP server i alat, argumenti. Kliknite na red da biste videli argumente i rezultat. Neuspeli poziv je otvoren od početka.
  • Podagenti: redovi podagenta označeni su njegovim nazivom.
  • Prvi red Claude Code pokretanja navodi model i MCP servere, a oni koji se nisu povezali prikazani su crvenom bojom.
  • Rezime na kraju: broj koraka, trajanje, tokeni i trošak, u meri u kojoj ih agent prijavljuje.

Sirovi dnevnik prikazuje isti dnevnik kao običan tekst.

Bezbednost

  • Agent izvršava komande. U okviru dozvola koje mu daje njegov alat komandne linije, agent može da čita i menja direktorijum repozitorijuma, pokreće programe kao korisnik koji izvršava zadatke i poziva alate svojih MCP servera. Šablonu agenta dajte repozitorijum i tokene sa najužim pravima koja su dovoljna za posao, a za posao koji želite da držite odvojeno od servera poseban runner.
  • Svaki zadatak ima sopstveni konfiguracioni direktorijum agenta (CLAUDE_CONFIG_DIR, CODEX_HOME), koji se pravi za zadatak i uklanja posle njega. Podešavanja, prijave i MCP serveri korisnika pod kojim radi Semaphore ne stižu do agenta, a promenljiva grupe promenljivih ne može da preusmeri direktorijum.
  • Prompt i ono što agent čita idu dobavljaču modela: fajlovi repozitorijuma, izlaz komandi, rezultati alata.
  • Repozitorijum može da daje uputstva agentu. Tekst u fajlovima koje agent čita, u issue-u ili u rezultatu alata može da promeni ono što agent radi. Ne usmeravajte agenta sa moćnim tokenima na sadržaj koji ne kontrolišete.
  • Tokeni i tajne se maskiraju u dnevniku zadatka: tokeni MCP servera i tajne ubačene u prompt zamenjuju se sa ********.
  • Promenljive i tajne ne dospevaju u komandnu liniju agenta, gde bi ih lista procesa prikazala.

Dokumentacija

Korisničko uputstvo ima stranicu sa svakim poljem i pravilom: AI agenti.