Tekoälypohjaisen tehtävänhallinnan blogi yksinyrittäjille ja pienille tiimeille

Tekoälyagenttien tehtävienhallinta: varaussilmukka sopimuksena, ei kehotteena

Näin hallitset tekoälyagenttien tehtäviä palvelimen valvomalla varaussilmukalla: leaset, sykkeet, kysymykset, kuitit ja raja ihmisen huomiolle.

Weft on tekoälyn tehtävänhallinta yksinyrittäjille ja pienille tiimeille.

Kaikki artikkelit

Kirjoittanut Andrei Finogeev ·

Tekoälyagenttien tehtävienhallinta toimii, kun silmukan omistaa taulu eikä kehote: agentti kysyy, mitä tehdä, varaa yhden tehtävän leasella, joka raukeaa, jos agentti hiljenee, kysyy ihmiseltä vain tälle kuuluvia päätöksiä ja lopettaa kuittiin, jonka joku voi tarkistaa. Weftissä jokainen näistä vaiheista on MCP-työkalu, jonka palvelin tarkistaa, joten vaiheen ohittava agentti saa kieltävän vastauksen tai menettää tehtävän sen sijaan, että se ajautuisi hiljaa epätahtiin.

Me teemme Weftiä. Muita tuotteita koskevat tiedot ovat niiden virallisilta sivuilta, tarkistettu 27.10.2026.

Miksi keskusteluun liitetty tehtävälista lakkaa toimimasta?

Tehtävien liittäminen keskusteluun on ensimmäinen asia, jota kaikki kokeilevat, ja se toimii iltapäivän. Sitten keskustelu päättyy, ja tila päättyy sen mukana. Agentti tiesi, minkä kohdan se oli saanut valmiiksi, minkä se jätti kesken ja mistä se oli epävarma. Nyt sitä ei tiedä kukaan.

Listan liittäneestä ihmisestä tulee välittäjä, joka kopioi tuloksia takaisin oikealle taululle ja tekee uudelleen työtä, jonka toinen istunto otti, koska mikään ei kertonut sen olevan varattu.

Pääsy tauluun korjaa tilannekuvaongelman, ei muuta. Jos ainoat työkalut ovat ”siirrä korttia” ja ”lisää kommentti”, silmukka riippuu yhä siitä, noudattaako agentti ohjeisiinsa kirjoitettua käytäntöä. Käytännöt pettävät juuri silloin, kun jokin menee pieleen: agentti kaatuu kesken ajon tai kaksi agenttia aloittaa samalla hetkellä.

Miltä varaussilmukka näyttää sopimuksena?

Weftissä silmukassa on viisi vaihetta, ja jokainen on erillinen työkalu yhdessä MCP-päätepisteessä, https://letsweft.com/api/mcp. Palvelin pitää tilan vaiheiden välillä, joten silmukka selviää minkä tahansa keskustelun päättymisestä.

  1. get_my_work: kysy ennen kuin valitset. Vastaus kattaa sen, mitä tällä asiakkaalla jo on, mikä odottaa ihmistä, mikä on myöhässä tai erääntymässä ja onko ylipäätään tilaa aloittaa mitään.
  2. start_task: varaa leasella. Varaus kestää 20 minuuttia ja siirtää tehtävän Doingiin. Vastauksessa on runId, leaseToken ja renewEverySeconds: 300. Toinen asiakas, joka yrittää samaa tehtävää, saa vastauksen already_claimed ja vihjeen olla tekemättä työtä päällekkäin.
  3. report_progress: syke. Jokainen kutsu ajon id:llä ja lease-tunnuksella uusii leasen. Jos agentti kuolee, sykkeet lakkaavat, ja 20 minuuttia myöhemmin ajo merkitään vanhentuneeksi ja tehtävä palaa osoittamattomaksi kenen tahansa otettavaksi. Menetetty lease vastaa lease_lost, joten agentti tietää, ettei työ ole enää sen.
  4. request_input: vain ihmiselle kuuluviin päätöksiin. Enintään 500 merkin kysymys ja enintään 10 vaihtoehtoa. Varaus säilyy agentin odottaessa.
  5. complete_task: lopeta kuittiin. outcome, artifacts (todisteet, kuten URL, commit tai tiedoston tiiviste), notDone, unknowns ja nextStep.

Miksi lease eikä tila? Koska hiljaisuus on ainoa signaali, jonka kaatunut agentti voi lähettää. Doingissa oleva kortti kertoo, että joku työskenteli sen parissa joskus. Lease kertoo, että joku työskentelee sen parissa nyt — ja lakkaa kertomasta sitä itsestään, kun se ei enää pidä paikkaansa.

Itse varaus on yksi tietokantalisäys, jota suojaa yksilöllinen indeksi. Kun kaksi agenttia kilpailee, tietokanta ratkaisee voittajan, joten molemmat eivät voi saada tehtävää. Kaksi sekunnin välein lähetettyä ”Varattu”-kommenttia sen sijaan ovat molemmat kelvollisia kommentteja.

Milloin agentin kannattaa kutsua request_input?

Kun se tulee asiaan, jonka vain ihminen voi ratkaista: mikä tahansa peruuttamaton, kuten raha, julkaiseminen, tuotanto tai juridiikka, tai aito haarautuma ilman järkevää oletusta. Ei luvan kysymiseen jatkamiselle.

Pidättyvyys on tärkeää, koska kysymys maksaa ihmiselle saman verran huomiota kuin valmis tehtävä, ja Weftissä se lasketaan samaan rajaan. Kysymys saapuu Saapuneisiin mobiili-ilmoituksen kera, ja vähintään 20 minuuttia odottaneista kohdista lähtee sähköpostimuistutus. Weft ei koskaan kutsu agenttia takaisin: vastaus saapuu sen seuraavassa start_task- tai get_my_work-kutsussa. Kysymyksen ollessa auki agentti pitää tehtävää 60 minuuttia; sen jälkeen lease raukeaa, mutta kysymys jää.

Mitä complete_task-kutsuun kuuluu?

Lyhyt lopputulos, todisteet ja rehellinen selonteko reunoista. Tässä realistinen kutsun sisältö bugikorjaukselle:

{
  "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"
}

Artefaktit ovat asioita, jotka ihminen voi tarkistaa ottamatta agentin sanaa todesta. notDone ja unknowns eivät ole tunnustuksia; ne erottavat tuloksen, johon voi luottaa, tuloksesta, joka on rakennettava uudelleen diffistä. Kutsu ei koskaan epäonnistu puuttuvien todisteiden takia, koska valmiin työn menettäminen on pahempaa kuin sen kirjaaminen varmistamattomana. Lisää kuittien lukemisesta kirjoituksessa mitä tekoälyagenttini teki.

Miten tämä eroaa kortin siirtämisestä ja kommentin lisäämisestä?

Hypertaskin opas samaan silmukkaan (varaa, päivitä, raportoi, sulje) kuvaa tottumuksen hyvin. Sen MCP-versio varauksesta on tehtävän lataaminen, sen siirtäminen työn alla -osioon ja varauskommentin lisääminen — tiimin agentin ohjeisiin kirjoittaman kehotteen ohjaamana. Tässä sama silmukka vaihe vaiheelta:

Silmukan vaihePelkkään käytäntöön nojaava taulu (agentti siirtää korttia ja kommentoi)Mitä Weft valvoo, ja millä MCP-työkalulla
Työn valintaAgentti listaa tehtävät ja valitsee. Mikään ei kerro sille, että ihminen on jo hukkumassa katselmointeihin.get_my_work palauttaa sen, mitä tällä asiakkaalla jo on, mikä odottaa ihmistä, mikä on myöhässä ja onko tilaa aloittaa mitään.
VarausSiirrä kortti Doingiin ja kirjoita ”Varattu”. Kaksi agenttia voi tehdä tämän samalla hetkellä, ja molemmat uskovat omistavansa sen.start_task ottaa 20 minuutin leasen yhdellä tietokantakirjoituksella, jota suojaa yksilöllinen indeksi. Häviäjä saa vastauksen already_claimed tehtävän id:n ja otsikon kera.
Hengissä pysyminenEdistymiskommentit, jos agentti muistaa. Kaatunut agentti jättää kortin Doingiin loputtomiin.report_progress uusii leasen (agenttia neuvotaan tekemään se 5 minuutin välein). 20 hiljaisen minuutin jälkeen ajo merkitään vanhentuneeksi ja tehtävä on taas vapaa.
Kysyminen”Jumissa:”-kommentti. Agentti pysähtyy tai arvaa; kortti voi yhä näyttää olevan työn alla.request_input vie kysymyksen enintään 10 vaihtoehdolla ihmisen Saapuneisiin ja pitää varauksen (60 minuuttia odotustilassa). Vastaus palaa start_task- tai get_my_work-kutsun kautta.
RaportointiVapaamuotoinen loppukommentti. Sen muoto riippuu siitä, kuinka hyvä kehote oli.complete_task ottaa nimetyt kentät: outcome, artifacts, notDone, unknowns, nextStep.
Sulkeminen tai katselmointiAgentti siirtää kortin Reviewiin tai Doneen sen mukaan, mitä kehote sanoi.Oletuksena tehtävä menee Doneen. Se pysähtyy Saapuneisiin (Hyväksy / Korjattavaksi / Myöhemmin / Hylkää), kun tehtävä vaatii katselmointia tai tarkistus epäonnistuu.
YlikuormaEi mitään. Agentit aloittavat yhä uutta työtä, ja Review-sarake kasvaa.start_task kieltäytyy vastauksella attention_queue_full, kun 5 kohtaa (yksi ihminen) tai 10 (tiimi) odottaa ihmisiä, tai 45 minuuttia katselmointia.

Reiluuden nimissä Hypertaskia kohtaan: siinä on oikeat leaset. Sen dokumentaatio listaa leasen varaus-, syke- ja vapautuspäätepisteet, ja sen tunnettujen rajoitusten taulukko kertoo tehtävien leasejen, todisteiden ja eskaloinnin olevan vain REST-päätepisteitä, tarkoituksella (Hypertaskin MCP-yleiskatsaus). Sen työkaluviitteessä ei ole lease-työkalua sen 21 MCP-työkalun joukossa (työkaluviite). Sen CLI osaa myös varata valinnaisella komennolla (muutosloki, CLI-viite). Hypertaskin skriptattu agentti voi siis pitää leasea; agentti, joka työskentelee MCP:n kautta Claude Codessa tai Cursorissa, saa kortti ja kommentti -version, ellei joku kytke REST-kutsuja mukaan.

Jos agenttisi ajetaan skripteinä ja CI-ajoina, Hypertaskin CLI ja REST API ovat todellinen etu, eikä Weftissä ole kumpaakaan: ei CLI:tä, ei julkista REST API:a, ei webhookeja. Weft on agenteille, jotka elävät MCP-asiakkaan sisällä ja tarvitsevat silmukan pitävän siellä.

Mitä ihminen näkee?

Useimmiten kortin Donessa: oletuksena valmistunut tehtävä menee suoraan sinne lopputuloksineen ja todisteineen.

Tehtävä pysähtyy ihmisen Saapuneisiin, kun se on merkitty katselmointia vaativaksi tai kun tarkistus epäonnistuu. Siellä ihminen valitsee yhden neljästä vastauksesta:

  • Hyväksy: työ kelpaa. Jos agentti antoi nextStepin, ihminen näkee sen painikkeen yläpuolella (”Jos hyväksyt, agentti …”), ja hyväksyminen hyväksyy täsmälleen sen vaiheen, ei mitään laajempaa. Hyväksyntä on voimassa 72 tuntia ja palaa agentille get_my_work- tai start_task-kutsun kautta.
  • Korjattavaksi: palauta työ ja kerro muistiinpanossa, mikä on vialla.
  • Myöhemmin: ei nyt. Hylkää: lopeta sen parissa työskentely.

Saapuneet on verkossa, ja kun sinne tulee jotain, ihminen saa myös push-ilmoituksen Weftin mobiilisovellukseen. nextStep-kättely estää agenttia pitämästä ”näyttää hyvältä” lupana mergetä, julkaista ja lähettää: se saa tehdä sen yhden hyväksytyn vaiheen ja sitten sulkea tehtävän uudelleen.

Miksi agentti saa kieltävän vastauksen sen sijaan, että aloittaisi lisää työtä?

Koska niukka resurssi on huomio, ei työ. Agentti ehtii aloittaa kymmenen asiaa siinä ajassa, kun ihminen katselmoi yhden.

Weft laskee, mikä odottaa ihmisiä: katselmointia odottavat tehtävät plus avoimet kysymykset. Kun määrä nousee 5 kohtaan yhden hengen työtilassa, 10 kohtaan tiimissä tai noin 45 minuuttiin arvioitua katselmointiaikaa, kumpi tahansa tulee ensin, start_task kieltäytyy vastauksella attention_queue_full. Raja riippuu työtilan ihmisten määrästä, ei tilauksesta.

Kieltäytyminen on ohje, ei umpikuja. Se kertoo jonon koon, vanhimman kohdan iän ja yhä sallitut kutsut: report_progress, get_my_work, get_board_state ja search. Vaihe, jonka ihminen on jo hyväksynyt kyseisellä kortilla, on poikkeus, joten hyväksyttyä ”merge PR #418” -vaihetta jono ei estä.

Miten otan tämän käyttöön?

Yhdistä asiakkaasi ja kirjaudu selaimessa; kopioitavaa avainta ei ole. Weft myöntää refresh-tunnukset, joten asiakas uusii kirjautumisen itse. Claude Codessa se on yksi komento, claude mcp add --transport http weft https://letsweft.com/api/mcp (asennussivu). Cursorissa on yhden klikkauksen asennus (Cursor), Codex tarvitsee asetusmerkinnän ja komennon codex mcp login weft (Codex), ja ChatGPT:ssä on julkaistu Weft-sovellus kaikilla tasoilla Free mukaan lukien (ChatGPT). Palvelin kuvaa silmukan agentille itse, joten elinkaarikehotetta ei tarvita.

Claude Coden läpikäynti on kirjoituksessa tehtävätaulu Claude Codelle. Useista agenteista yhdellä taululla, jossa leaset ja already_claimed ovat tärkeimmillään, kerrotaan kirjoituksessa useita tekoälyagentteja, yksi taulu. Itse protokolla on dokumentoitu osoitteessa modelcontextprotocol.io, ja muita MCP-tauluja vertaillaan sivulla MCP-tehtävienhallinnat.

Mitä Weft ei tässä tee?

  • Ei CLI:tä, julkista REST API:a eikä webhookeja, joten cron-ajot ja CI-putket eivät voi ohjata silmukkaa MCP-asiakkaan ulkopuolelta.
  • Ei GitHub- tai Slack-integraatiota. Todisteet ovat sitä, mitä agentti linkittää artefakteihin.
  • Ei sisäänrakennettua tekoälyä. Ajattelu tapahtuu omassa tekoälyasiakkaassasi, ja siksi Weft ei myöskään tarvitse tekoälykrediittejä.

Free kattaa 50 tehtävää ja 200 tekoälykutsua kuukaudessa. Pro maksaa 8,16 € paikalta kuukaudessa tai 69,03 € paikalta vuodessa, sis. alv (hinnoittelu).

Eikö hyvä kehote riitä saamaan agentit noudattamaan silmukkaa?
Kehote kuvaa silmukan; se ei voi valvoa sitä. Se ei estä kahta agenttia varaamasta samaa tehtävää, eikä se voi vapauttaa kaatuneen agentin pitämää tehtävää. Weftissä varaus on palvelimen omistama lease, joten nämä tapaukset hoituvat, muisti agentti ohjeensa tai ei.
Mitä tapahtuu, jos agenttini kaatuu kesken kaiken?
Sen sykkeet lakkaavat. Kaksikymmentä minuuttia viimeisen report_progress-kutsun jälkeen ajo merkitään vanhentuneeksi, lease-tunnus tyhjennetään ja tehtävä on taas osoittamaton, joten toinen agentti tai ihminen voi ottaa sen. Kortti ei jää Doingiin viikoksi.
Odottaako jokainen valmis tehtävä katselmointiani?
Ei. Oletuksena valmistunut tehtävä menee suoraan Doneen lopputuloksineen ja todisteineen. Se pysähtyy Saapuneisiisi (Hyväksy, Korjattavaksi, Myöhemmin tai Hylkää) vain, kun tehtävä vaatii katselmointia tai tarkistus epäonnistuu.
Miksi haluaisin, että agenttini saa kieltävän vastauksen?
Koska muuten se tuottaa jatkuvasti asioita, joita sinulla ei ole aikaa tarkistaa. Kun 5 kohtaa (tiimissä 10) tai noin 45 minuuttia katselmointia odottaa ihmisiä, start_task palauttaa attention_queue_full ja ohjaa agentin siihen, mitä se voi yhä tehdä. Jonon tyhjentäminen avaa tukoksen.
Hypertaskissakin on leaset. Miksi MCP:llä on väliä?
Hypertaskin leaset ovat sen oman dokumentaation mukaan REST-päätepisteitä (MCP-yleiskatsaus), ja sen CLI osaa myös varata. Se sopii skriptatuille agenteille. Editorissa tai keskustelussa MCP-työkalujen kautta työskentelevä agentti ei saa niitä sieltä, mutta Weftissä saa: start_task, report_progress ja complete_task ovat MCP-työkaluja.