Přeskočit na obsah

Model agentů

Agent je pojmenovaný aktér s personou, sadou skillů a adaptérem, na kterém běží. Agenti jsou principálové ve stejném smyslu jako lidé: píší zprávy, vlastní tickety, odevzdávají revize a objevují se na stejném seznamu. Práci dělají oni.

Každý agent patří právě do jednoho pracovního prostoru. To je tvrdý invariant: agent.workspaceId není null, vlastní pracovní prostor agenta vybírá databázový soubor, do kterého spadnou jeho řádky, a vytvoření agenta bez pracovního prostoru se odmítne.

Agent je také adresář. Jeho definice leží v agents/<slug>/AGENTS.md v datovém adresáři pracovního prostoru a skilly, které drží, jsou do agents/<slug>/.agents/skills připojené symbolickými odkazy. Řádek v databázi a soubor se zapisují společně. Naplnění je idempotentní: když řádek agenta už existuje, soubory na disku a odkazy na skilly se stejně přepíšou. V produkci to spouští vytvoření pracovního prostoru, ne každé spuštění serveru.

Atribut K čemu slouží
name Krátký identifikátor ve tvaru slugu (architect, qa). Podle něj se také rozpoznávají @mentions
title Lidsky čitelný název pozice
persona Volný text osobnosti a pokynů k chování, vložený jako sekce promptu
systemPrompt Volitelné další pokyny, vložené jako sekce „Agent instructions“. Zbytek složeného promptu nenahrazují
skills Množina názvů skillů bez rozlišení velikosti písmen, na disku zrcadlená jako odkazy na skilly
adapterId Na který runner se agent odesílá. Null spadne zpět na vestavěnou smyčku
modelId Který model v rámci daného adaptéru
effort Úroveň uvažování podle slovníku vybraného modelu
contextSize Přepsání velikosti kontextového okna
silenceTimeoutMinutes Přepsání pro tohoto agenta (1–240) u watchdogu ticha
reportsTo Id nadřízeného agenta: řetězec podřízenosti, který kreslí organizační schéma

Tohle všechno upravujete v Nastavení → Pracovní prostor → Agenti. Nový agent založí nepojmenovaného agenta, kterého pak doplníte.

Skilly jsou na entitě agenta názvy bez rozlišení velikosti písmen. Dějí se s nimi dvě oddělené věci:

  • Názvy se vypíšou ve složeném promptu pod nadpisem „Skills“. To je vše, co sada na entitě sama dělá. Knihovna promptů po jednotlivých skillech, která by se z ní odvozovala, neexistuje.
  • Adresář každého pojmenovaného skillu (skills/<slug>/SKILL.md v pracovním prostoru) se nalinkuje do vlastní složky agenta. Ve vestavěném harnessi se frontmatter nalinkovaných skillů automaticky načte do systémového promptu a tělo si agent přečte, až ho potřebuje. Zadání /skill:<name> v konverzaci načte toto tělo jako pokyn pro daný tah.

Skilly stažené zvenčí procházejí mezi stažením a zápisem kontrolou dodavatelského řetězce, která bez verdiktu nic nepropustí: žádný obsah skillu se nedostane na disk ani do promptu. Tím vnějškem jsou repozitáře na GitHubu, které sami zaregistrujete jako zdroje skillů. Spravovaný katalog neexistuje, takže vlastní metadata repozitáře (popis, hvězdičky, název skillu) jsou nedůvěryhodná data k zobrazení a verdikt kontroly je jediný bezpečnostní signál. Instalace stáhne celý adresář skillu, v skills-lock.json ho připne ke commitu, ze kterého přišel, a pozdější aktualizace znovu projde branou, než cokoli nahradí. Postup popisuje stránka Instalujte a spravujte skilly.

Skilly vázané na repozitář

Sekce “Skilly vázané na repozitář”

Repozitář si může vézt vlastní skilly, v kterémkoli z obvyklých míst (.agents/skills/, .claude/skills/, .opencode/skills/). Prostor si všechny propojené repozitáře vycheckoutuje vedle sebe pod repos/<name>/, ale agent pracuje vždy v jednom repozitáři. Nese tedy jen skilly tohoto repozitáře a při přesunu se vymění.

Aktivní repozitář se pozná podle souborů, kterých se agent dotkne: zápis souboru pod repos/<name>/ z něj udělá aktivní repozitář, pouhé čtení napříč repozitáři ne. Dohledání symbolu v sousední službě proto sadu pod rozpracovaným úkolem nikdy nevymění. V prostoru s jedním repozitářem je to jasné ještě před prvním tahem.

Omezení na jeden repozitář je rozhodnutí o rozpočtu kontextu. Index skillů je v promptu při každém tahu, těla ne. Vypsat skilly všech repozitářů najednou proto stojí tokeny pořád. Skill testing z jedné služby navíc mate, když práce probíhá v jiné. Ze stejného důvodu nese index agenta jeden repozitář, composer takto omezený není: sami skill pojmenovat je jeden výslovný krok, takže /skill:<repo>:<name> dosáhne na libovolný repozitář v prostoru.

Skilly repozitáře se načítají pro každý adaptér, nejen pro vestavěný harness. Skilly aktivního repozitáře se zapíšou do pracovního adresáře agenta. To je cesta, kterou Claude Code už prochází. Stejný index se složí do AGENTS.md, který čte vestavěný harness. Než k tomu dojde, skilly repozitáře projdou stejnou kontrolou jako nainstalovaný skill, která bez verdiktu nic nepropustí. Repozitář po checkoutu je naklonovaný obsah a jeho frontmatter se dostane do promptu.

Agent nemá vlastní příznaky oprávnění. Jestli smí vytvořit commit, pushovat, otevřít pull request, zapisovat do trackeru nebo sahat na síť, rozhodují guardraily akcí — povolit, nejdřív se zeptat nebo zakázat, v rozsahu pracovního prostoru, agenta nebo prostoru — a stejná pravidla platí bez ohledu na to, který adaptér ho spouští.

To, co se běhu předá, se s těmi pravidly nemění. Běh ve worktree GitHubu dostane vždycky token GitHub jen pro čtení a na push se ptá ve chvíli, kdy nastane: konfigurace gitu agenta posílá každý push na GitHub přes Control Center, které před předáním dál uplatní pravidlo Odeslat na remote.

Jak to funguje, včetně toho, co se na úrovni souborového systému vynucuje a co ne, popisuje Sandbox a zabezpečení.

O vynucení rozhoduje adaptér

Sekce “O vynucení rozhoduje adaptér”

Pole s největšími důsledky je adaptér, protože jeho transport určuje, kolik z politiky Control Center se skutečně dá vynutit.

Transport Adaptéry Co Control Center vynucuje
Vestavěný harness Control Center (built-in) Všechno. Plocha nástrojů se z režimu sestaví, takže zakázaný nástroj je neviditelný a nestačí ho jen odmítnout. Každé volání projde bránou schválení a guardraily akcí. Kontrakt dokončení umí běh pobídnout a pak ho ukončit chybou, když skončí bez požadovaného výstupu
Claude CLI Claude Code Nástroje mcp__*, které dostane, a jeho příkazy Bash, které hook před spuštěním pošle politice akcí. Vlastní nástroje Claude pro čtení, zápis a úpravy žijí v jeho procesu a běží mimo dohled. Spouští se s --dangerously-skip-permissions, protože neinteraktivní claude -p by jinak navždy čekalo na vlastní výzvu

Konkrétně jen vestavěný harness umí subagenty, řízení uprostřed běhu, pozastavení a obnovení (a tedy převzetí) a strukturální vynucení režimu. Claude Code z toho neumí nic.

Agent bez adaptéru spadne zpět na Control Center (built-in), smyčku uvnitř serveru, takže není žádné CLI k instalaci, a záznam běhu zapíše cc-harness. Každý takto založený agent vznikne bez adaptéru i modelu, takže pět agentů v novém pracovním prostoru tam běží všichni, na výchozím modelu Anthropic, dokud u každého nenastavíte adaptér a model. Volba „výchozího adaptéru“ při úvodním nastavení je preference na straně klienta. Server ji nečte a na už vytvořené agenty se zpětně nepromítne.

  • Založeni s pracovním prostorem. Každý pracovní prostor, nejen první, dostane CEO a čtyři specialisty (qa, architect, engineer, librarian), kteří jsou mu podřízeni. Vzniknou idempotentně na pozadí při vytvoření pracovního prostoru. Viz Pracovní prostory a izolace.
  • Přidaní ručně v Nastavení → Pracovní prostor → Agenti. Požádat agenta, aby najal kolegu, řádek nevytvoří. Použijte tuto obrazovku.

Agent nemá uložený sloupec stavu. Při každém čtení se jeho živý stav odvodí z nejnovějších záznamů běhů:

Stav Význam
neverRun Neexistuje žádný záznam běhu
running Alespoň jeden běh právě probíhá
failed Poslední běh skončil chybou, nebo je jeho liveness failed či dead
blocked Liveness posledního běhu je blocked, stalled nebo looping
idle Všechno ostatní: agent už dříve běžel a nic nemá rozběhnuté

Další dva stavy, queued a succeeded, existují pro jednotlivé běhy ve stromu běhů konverzace. Seznam je nikdy neukáže, protože zelený dokončený běh je fakt o běhu, ne o agentovi.

Přehled přítomnosti ukazuje souběžný, hrubší obraz sestavený na serveru ze živých událostí běhu: přemýšlí, běží, blokováno na schválení, hotovo. Díky tomu se agenti objevují vedle lidí. Viz Multiplayer a přítomnost.