Blog

Správa úloh AI agentov: slučka prevzatia ako zmluva, nie prompt

Ako riadiť úlohy AI agentov slučkou prevzatia, ktorú vynucuje server: prenájmy, heartbeaty, otázky, potvrdenia a limit na ľudskú pozornosť.

Weft je AI správca úloh pre samostatných zakladateľov a malé tímy.

Všetky články

Autor: Andrei Finogeev ·

Správa úloh AI agentov funguje, keď slučku vlastní nástenka, a nie prompt: agent sa spýta, čo má robiť, prevezme jednu úlohu s prenájmom (lease), ktorý vyprší, ak stíchne, človeka sa pýta len na rozhodnutia, ktoré patria jemu, a skončí s potvrdením, ktoré sa dá overiť. Vo Wefte je každý z týchto krokov MCP nástroj, ktorý server kontroluje, takže agent, ktorý krok preskočí, dostane odmietnutie alebo príde o úlohu, namiesto toho, aby sa potichu rozišiel so skutočným stavom.

Weft vyrábame my. Fakty o iných produktoch pochádzajú z ich oficiálnych stránok, overené 27. októbra 2026.

Prečo zoznam úloh vložený do chatu prestane fungovať?

Vložiť úlohy do chatu je prvé, čo skúsi každý, a na jedno popoludnie to funguje. Potom chat skončí a stav skončí s ním. Agent vedel, ktorú položku dokončil, ktorú vzdal a v čom si nebol istý. Teraz to nevie nikto.

Z človeka, ktorý zoznam vložil, sa stane prenášač: kopíruje výsledky späť na skutočnú nástenku a prerába prácu, ktorú prevzala druhá relácia, lebo nič nehovorilo, že je obsadená.

Prístup k nástenke rieši problém zastaranej snímky, ale nie zvyšok. Ak sú jediné nástroje „presunúť kartu“ a „pridať komentár“, slučka stále závisí od toho, či agent dodrží konvenciu zapísanú v inštrukciách. Konvencie sa lámu presne vtedy, keď sa niečo pokazí: agent spadne uprostred behu alebo dvaja agenti začnú v tú istú chvíľu.

Ako vyzerá slučka prevzatia ako zmluva?

Vo Wefte má slučka päť krokov a každý je samostatný nástroj na jednom MCP endpointe, https://letsweft.com/api/mcp. Stav medzi nimi drží server, takže slučka prežije koniec akéhokoľvek chatu.

  1. get_my_work: spýtať sa pred výberom. Odpoveď pokrýva, čo tento klient už drží, čo čaká na človeka, čo je po termíne alebo čoskoro splatné a či je vôbec priestor niečo začať.
  2. start_task: prevziať s prenájmom. Prevzatie trvá 20 minút a presunie úlohu do Doing. Odpoveď obsahuje runId, leaseToken a renewEverySeconds: 300. Druhý klient, ktorý skúsi tú istú úlohu, dostane already_claimed a pokyn, aby prácu nezdvojoval.
  3. report_progress: heartbeat. Každé volanie s id behu a lease tokenom obnoví prenájom. Ak agent zomrie, heartbeaty prestanú a o 20 minút sa beh označí ako zastaraný a úloha sa vráti medzi nepridelené, aby si ju mohol vziať ktokoľvek. Stratený prenájom odpovie lease_lost, takže agent vie, že prácu už nevlastní.
  4. request_input: len na rozhodnutia, ktoré patria človeku. Otázka do 500 znakov s najviac 10 možnosťami. Kým agent čaká, prevzatie zostáva.
  5. complete_task: skončiť s potvrdením. outcome, artifacts (dôkazy ako URL, commit alebo hash súboru), notDone, unknowns a nextStep.

Prečo prenájom, a nie stav? Pretože ticho je jediný signál, ktorý spadnutý agent dokáže vyslať. Karta v Doing hovorí, že na nej niekto kedysi pracoval. Prenájom hovorí, že na nej niekto pracuje teraz — a sám to prestane tvrdiť, keď to už neplatí.

Samotné prevzatie je jeden zápis do databázy chránený unikátnym indexom. Keď sa dvaja agenti predbiehajú, o víťazovi rozhodne databáza, takže úlohu nemôžu dostať obaja. Dva komentáre „Prevzaté“ zverejnené s odstupom sekundy sú naproti tomu oba platné komentáre.

Kedy má agent zavolať request_input?

Keď narazí na niečo, o čom môže rozhodnúť len človek: čokoľvek nezvratné, ako peniaze, publikovanie, produkcia alebo právne veci, alebo skutočná vidlica bez rozumnej predvolenej možnosti. Nie na to, aby sa pýtal o povolenie pokračovať.

Táto zdržanlivosť je dôležitá, pretože otázka stojí človeka rovnakú pozornosť ako hotová úloha a vo Wefte sa počíta do toho istého limitu. Otázka pristane v Inboxe s push notifikáciou v mobile a pri položkách, ktoré čakajú 20 minút a viac, aj s pripomienkou e-mailom. Weft agenta nikdy späť nevolá: odpoveď príde pri jeho ďalšom start_task alebo get_my_work. Kým je otázka otvorená, agent si úlohu drží 60 minút; potom prenájom zanikne, ale otázka zostane.

Čo patrí do volania complete_task?

Krátky výsledok, dôkazy a poctivý opis okrajov. Tu je realistický payload pre opravu chyby:

{
  "id": "9b2f6c1e-4d7a-4c3b-8e21-5a0f3d9c7b14",
  "runId": "d41e8a90-2f6b-4e17-9c3a-71b5e0a4c8f2",
  "leaseToken": "lt_3f9a…",
  "outcome": "Fixed the 500 on /api/invoices when the customer has no billing address. Fix is in PR #418; the route now returns 422 with a field error.",
  "artifacts": [
    { "kind": "url", "uri": "https://github.com/acme/app/pull/418" },
    { "kind": "commit", "uri": "a1c9e07" },
    { "kind": "url", "uri": "https://preview-418.acme.dev/api/invoices/health", "httpStatus": 200 }
  ],
  "claims": [
    "Added a test for an empty billing address; the invoices test file passes locally"
  ],
  "notDone": [
    "Did not merge the PR",
    "Did not backfill the 14 invoices that failed last week"
  ],
  "unknowns": [
    "Whether the mobile app shows the 422 message or a generic error"
  ],
  "nextStep": "Merge PR #418 to main"
}

Artifacts sú veci, ktoré si človek môže overiť bez toho, aby musel agentovi veriť na slovo. notDone a unknowns nie sú priznania viny; oddeľujú výsledok, na ktorý sa dá spoľahnúť, od výsledku, ktorý musíte poskladať z diffu. Volanie nikdy nezlyhá pre chýbajúce dôkazy, pretože stratiť hotovú prácu je horšie než ju zapísať neoverenú. Viac o čítaní týchto potvrdení v článku čo urobil môj AI agent.

Čím sa to líši od presunutia karty a pridania komentára?

Návod Hypertasku k tej istej slučke (prevziať, aktualizovať, nahlásiť, uzavrieť) dobre opisuje samotný zvyk. Jeho MCP verzia prevzatia znamená načítať úlohu, presunúť ju do pracovnej sekcie a pridať komentár o prevzatí — podľa promptu, ktorý tím zapíše do inštrukcií agenta. Tu je tá istá slučka krok po kroku:

Krok slučkyNástenka len s konvenciou (agent presúva kartu a komentuje)Čo vynucuje Weft a ktorým MCP nástrojom
Výber práceAgent vypíše úlohy a vyberie si. Nič mu nepovie, že človek je už zavalený kontrolami.get_my_work vracia, čo tento klient už drží, čo čaká na človeka, čo je po termíne a či je priestor niečo začať.
PrevzatiePresunúť kartu do Doing a napísať „Prevzaté.“ Dvaja agenti to môžu urobiť v tú istú chvíľu a obaja si myslia, že úlohu vlastnia.start_task vezme 20-minútový prenájom jedným zápisom do databázy chráneným unikátnym indexom. Porazený dostane already_claimed s id a názvom úlohy.
Zostať naživeKomentáre o postupe, ak si na ne agent spomenie. Spadnutý agent nechá kartu v Doing donekonečna.report_progress obnovuje prenájom (agent má pokyn robiť to každých 5 minút). Po 20 tichých minútach sa beh označí ako zastaraný a úloha je opäť voľná.
Spýtať saKomentár „Blocked:“. Agent sa zastaví alebo háda; karta môže stále vyzerať rozpracovaná.request_input vloží otázku s najviac 10 možnosťami do Inboxu človeka a ponechá prevzatie (60 minút počas čakania). Odpoveď sa vráti cez start_task alebo get_my_work.
NahlásiťZáverečný komentár voľným textom. Jeho podoba závisí od toho, aký dobrý bol prompt.complete_task prijíma pomenované polia: outcome, artifacts, notDone, unknowns, nextStep.
Uzavrieť alebo dať na kontroluAgent presunie kartu do Review alebo Done, podľa toho, čo hovoril prompt.Predvolene ide úloha do Done. V Inboxe sa zastaví na Accept / Rework / Later / Drop, keď úloha potrebuje kontrolu alebo zlyhá overovacia kontrola.
PreťaženieNič. Agenti stále začínajú prácu a stĺpec Review rastie.start_task odmietne s attention_queue_full, len čo na ľudí čaká 5 položiek (jeden človek) alebo 10 (tím), prípadne 45 minút kontroly.

Aby sme boli k Hypertasku férovi: skutočné prenájmy má. Jeho dokumentácia uvádza endpointy na prevzatie prenájmu, heartbeat a uvoľnenie a tabuľka Known limitations hovorí, že prenájmy úloh, dôkazy a eskalácia sú zámerne len REST endpointy (prehľad MCP v Hypertasku). Referencia nástrojov nemá medzi jeho 21 MCP nástrojmi žiadny nástroj na prenájom (referencia nástrojov). Prevziať úlohu vie aj jeho CLI, ako voliteľný príkaz (changelog, referencia CLI). Skriptovaný agent na Hypertasku teda prenájom držať môže; agent, ktorý pracuje cez MCP v Claude Code alebo Cursore, dostane verziu s kartou a komentárom, pokiaľ niekto nedoplní volania REST.

Ak vaši agenti bežia ako skripty a CI joby, CLI a REST API Hypertasku sú skutočnou výhodou a Weft nemá ani jedno: žiadne CLI, žiadne verejné REST API, žiadne webhooky. Weft je pre agentov, ktorí žijú v MCP klientovi a potrebujú, aby slučka držala práve tam.

Čo vidí človek?

Väčšinou kartu v Done: predvolene ide dokončená úloha rovno tam, aj s výsledkom a pripojenými dôkazmi.

Úloha sa zastaví v Inboxe človeka, keď bola označená, že potrebuje kontrolu, alebo keď zlyhá overovacia kontrola. Tam človek vyberie jednu zo štyroch odpovedí:

  • Accept: práca platí. Ak agent odovzdal nextStep, človek ho vidí nad tlačidlom („Ak prijmete, agent …“) a prijatím schváli presne tento krok, nič širšie. Schválenie platí 72 hodín a k agentovi sa vráti cez get_my_work alebo start_task.
  • Rework: vrátiť späť s poznámkou, čo je zle.
  • Later: teraz nie. Drop: prestať na tom pracovať.

Inbox je na webe a keď doň niečo pribudne, človek dostane aj push v mobilnej aplikácii Weft. Podanie ruky cez nextStep bráni agentovi, aby „vyzerá to dobre“ bral ako povolenie mergnúť, nasadiť a odoslať: smie urobiť ten jeden schválený krok a potom úlohu znovu dokončiť.

Prečo agent dostane odmietnutie namiesto toho, aby začal ďalšiu prácu?

Pretože vzácnym zdrojom je pozornosť, nie práca. Agent stihne začať desať vecí za čas, keď človek skontroluje jednu.

Weft počíta, čo čaká na ľudí: úlohy čakajúce na kontrolu plus otvorené otázky. Keď to dosiahne 5 položiek v pracovnom priestore jedného človeka, 10 v tíme alebo približne 45 minút odhadovaného času na kontrolu — podľa toho, čo nastane skôr —, start_task odmietne s attention_queue_full. Limit závisí od počtu ľudí v pracovnom priestore, nie od plánu.

Odmietnutie je pokyn, nie slepá ulička. Uvádza veľkosť frontu, vek najstaršej položky a volania, ktoré sú stále povolené: report_progress, get_my_work, get_board_state a search. Krok, ktorý človek na tej karte už schválil, je výnimkou, takže prijaté „merge PR #418“ front nezablokuje.

Ako to nastaviť?

Pripojte svojho klienta a prihláste sa cez prehliadač; nekopírujete žiadny kľúč. Weft vydáva refresh tokeny, takže klient si prihlásenie obnovuje sám. V Claude Code je to jeden príkaz, claude mcp add --transport http weft https://letsweft.com/api/mcp (stránka s nastavením). Cursor má inštaláciu jedným klikom (Cursor), Codex potrebuje záznam v konfigurácii a codex mcp login weft (Codex) a ChatGPT má publikovanú aplikáciu Weft v každom pláne vrátane Free (ChatGPT). Server agentovi slučku opíše sám, takže žiadny prompt o životnom cykle netreba.

Postup pre Claude Code nájdete v článku nástenka úloh pre Claude Code. Pre viac agentov na jednej nástenke, kde prenájmy a already_claimed znamenajú najviac, pozrite viac AI agentov, jedna nástenka. Samotný protokol je zdokumentovaný na modelcontextprotocol.io a ďalšie MCP nástenky porovnávame na stránke MCP správcovia úloh.

Čo tu Weft nerobí?

  • Žiadne CLI, verejné REST API ani webhooky, takže cron joby a CI pipeliny nemôžu slučku riadiť mimo MCP klienta.
  • Žiadna integrácia s GitHubom ani Slackom. Dôkazom je to, čo agent prepojí v artifacts.
  • Žiadna vstavaná AI. Premýšľanie prebieha vo vašom vlastnom AI klientovi, a preto Weft nepotrebuje ani AI kredity.

Free pokrýva 50 úloh a 200 AI volaní mesačne. Pro stojí 8 € za miesto mesačne alebo 67,65 € za miesto ročne (ceny).

Nestačí dobrý prompt na to, aby agenti slučku dodržiavali?
Prompt slučku opisuje; vynútiť ju nedokáže. Nezabráni dvom agentom prevziať tú istú úlohu a neuvoľní úlohu, ktorú drží agent, čo spadol. Vo Wefte je prevzatie prenájom, ktorý vlastní server, takže tieto prípady sú vyriešené bez ohľadu na to, či si agent spomenul na svoje inštrukcie.
Čo sa stane, ak môj agent spadne v polovici?
Jeho heartbeaty prestanú. Dvadsať minút po poslednom report_progress sa beh označí ako zastaraný, lease token sa vymaže a úloha je opäť nepridelená, takže ju môže prevziať iný agent alebo človek. Karta nezostane v Doing týždeň.
Čaká každá dokončená úloha na moju kontrolu?
Nie. Predvolene ide dokončená úloha rovno do Done aj s výsledkom a dôkazmi. Vo vašom Inboxe na Accept, Rework, Later alebo Drop sa zastaví, len keď potrebuje kontrolu alebo zlyhá overovacia kontrola.
Prečo by som chcel, aby môj agent dostal odmietnutie?
Pretože inak stále produkuje veci, ktoré nemáte čas skontrolovať. Len čo na ľudí čaká 5 položiek (10 pre tím) alebo zhruba 45 minút kontroly, start_task vráti attention_queue_full a nasmeruje agenta na to, čo ešte urobiť môže. Vyprázdnenie frontu ho odblokuje.
Hypertask má prenájmy tiež. Prečo na MCP záleží?
Prenájmy Hypertasku sú podľa jeho vlastnej dokumentácie REST endpointy (prehľad MCP) a prevziať úlohu vie aj jeho CLI. To sa hodí pre skriptovaných agentov. Agent, ktorý pracuje cez MCP nástroje v editore alebo chate, ich tam nedostane, vo Wefte áno: start_task, report_progress a complete_task sú MCP nástroje.