Pengurusan tugas ejen AI: gelung tuntutan sebagai kontrak, bukan prompt
Cara mengurus tugas ejen AI dengan gelung tuntutan yang dikuatkuasakan oleh pelayan: pajakan, denyutan, soalan, resit dan had pada perhatian manusia.
Weft ialah pengurus tugas AI untuk pengasas solo dan pasukan kecil.
Oleh Andrei Finogeev ·
Pengurusan tugas ejen AI berkesan apabila papan, bukan prompt, yang memiliki gelung kerja: ejen bertanya apa yang perlu dibuat, menuntut satu tugas dengan pajakan yang tamat jika ia senyap, bertanya kepada manusia hanya untuk keputusan yang menjadi hak mereka, dan menamatkan kerja dengan resit yang boleh disemak oleh seseorang. Dalam Weft, setiap langkah itu ialah alat MCP yang diperiksa oleh pelayan, jadi ejen yang melangkau satu langkah akan ditolak atau kehilangan tugas, bukannya perlahan-lahan menyimpang tanpa disedari.
Kami yang membina Weft. Fakta tentang produk lain diambil daripada halaman rasmi mereka, disemak pada 27 Oktober 2026.
Mengapa senarai tugas yang ditampal ke dalam sembang berhenti berfungsi?
Menampal tugas ke dalam sembang ialah perkara pertama yang dicuba oleh semua orang, dan ia berfungsi untuk satu petang. Kemudian sembang tamat, dan keadaannya turut hilang. Ejen tahu item mana yang telah disiapkan, yang mana ia berputus asa dan apa yang ia tidak pasti. Kini tiada sesiapa yang tahu.
Orang yang menampal senarai itu menjadi perantara, menyalin hasil kembali ke papan sebenar dan membuat semula kerja yang diambil oleh sesi kedua kerana tiada apa-apa yang menyatakan kerja itu sudah diambil.
Akses kepada papan menyelesaikan masalah gambaran sekejap (snapshot), bukan yang selebihnya. Jika satu-satunya alat ialah “alih kad” dan “tambah komen”, gelung itu masih bergantung pada ejen mematuhi konvensyen yang ditulis dalam arahannya. Konvensyen gagal tepat ketika keadaan menjadi tidak kena: ejen ranap di tengah larian, atau dua ejen bermula pada saat yang sama.
Bagaimanakah rupa gelung tuntutan sebagai kontrak?
Dalam Weft, gelung ini mempunyai lima langkah, dan setiap satu ialah alat berasingan pada satu titik akhir MCP, https://letsweft.com/api/mcp. Pelayan menyimpan keadaan di antaranya, jadi gelung itu kekal walaupun mana-mana sembang tamat.
- get_my_work: tanya sebelum memilih. Jawapannya merangkumi apa yang sudah dipegang oleh klien ini, apa yang menunggu manusia, apa yang tertunggak atau hampir tiba tarikh akhirnya, dan sama ada masih ada ruang untuk memulakan apa-apa.
- start_task: tuntut dengan pajakan. Tuntutan bertahan selama 20 minit dan mengalihkan tugas ke Doing. Responsnya membawa
runId,leaseTokendanrenewEverySeconds: 300. Klien kedua yang mencuba tugas yang sama akan mendapatalready_claimeddan petunjuk supaya tidak menduplikasi kerja. - report_progress: denyutan nadi. Setiap panggilan dengan id larian dan token pajakan memperbaharui pajakan. Jika ejen mati, denyutan berhenti, dan 20 minit kemudian larian ditandakan sebagai basi (stale) dan tugas kembali tanpa penerima supaya sesiapa boleh mengambilnya. Pajakan yang hilang menjawab
lease_lost, jadi ejen tahu ia tidak lagi memiliki kerja itu. - request_input: hanya untuk keputusan yang menjadi hak manusia. Soalan sehingga 500 aksara, dengan sehingga 10 pilihan. Tuntutan dikekalkan sementara ejen menunggu.
- complete_task: tamatkan dengan resit.
outcome,artifacts(bukti seperti URL, commit atau cincangan fail),notDone,unknownsdannextStep.
Mengapa pajakan dan bukan status? Kerana senyap ialah satu-satunya isyarat yang boleh dihantar oleh ejen yang ranap. Kad dalam Doing menyatakan bahawa seseorang pernah mengerjakannya. Pajakan menyatakan bahawa seseorang sedang mengerjakannya sekarang, dan berhenti menyatakannya dengan sendiri apabila itu tidak lagi benar.
Tuntutan itu sendiri ialah satu sisipan pangkalan data yang dikawal oleh indeks unik. Apabila dua ejen berlumba, pangkalan data yang menentukan siapa menang, jadi kedua-duanya tidak boleh mendapat tugas itu. Sebaliknya, dua komen “Claimed” yang dihantar sesaat berasingan kedua-duanya ialah komen yang sah.
Bilakah ejen patut memanggil request_input?
Apabila ia sampai pada sesuatu yang hanya boleh diputuskan oleh manusia: apa-apa yang tidak boleh diundur seperti wang, penerbitan, produksi atau hal undang-undang, atau persimpangan sebenar tanpa pilihan lalai yang munasabah. Bukan untuk meminta kebenaran untuk meneruskan.
Kekangan itu penting kerana satu soalan menuntut perhatian manusia yang sama banyak dengan satu tugas yang siap, dan dalam Weft ia dikira dalam had yang sama. Soalan itu masuk ke Inbox, dengan pemberitahuan tolak (push) di telefon dan, untuk item yang menunggu 20 minit atau lebih, peringatan e-mel. Weft tidak pernah memanggil semula ejen: jawapan tiba pada start_task atau get_my_work seterusnya. Selagi soalan itu terbuka, ejen memegang tugas selama 60 minit; selepas itu pajakan gugur tetapi soalan kekal.
Apakah yang dimasukkan ke dalam panggilan complete_task?
Hasil yang ringkas, bukti, dan gambaran jujur tentang perkara di pinggiran. Berikut ialah muatan yang realistik untuk pembaikan pepijat:
{
"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 ialah perkara yang boleh disemak oleh manusia tanpa perlu mempercayai kata-kata ejen. notDone dan unknowns bukan pengakuan salah; ia membezakan hasil yang boleh anda harapkan daripada hasil yang perlu anda bina semula daripada diff. Panggilan itu tidak pernah gagal kerana tiada bukti, kerana kehilangan kerja yang siap lebih buruk daripada merekodkannya tanpa pengesahan. Lebih lanjut tentang membaca resit ini dalam apa yang telah dilakukan oleh ejen AI saya.
Apakah bezanya dengan mengalihkan kad dan menghantar komen?
Panduan Hypertask tentang gelung yang sama (claim, update, report, close) menggambarkan tabiat ini dengan baik. Versi MCP mereka untuk tuntutan ialah memuatkan tugas, mengalihkannya ke bahagian kerja dan menghantar komen tuntutan, berpandukan prompt yang ditulis oleh pasukan ke dalam arahan ejen. Berikut ialah gelung yang sama langkah demi langkah:
| Langkah gelung | Papan yang hanya bergantung pada konvensyen (ejen mengalihkan kad dan memberi komen) | Apa yang dikuatkuasakan oleh Weft, dan dengan alat MCP mana |
|---|---|---|
| Pilih kerja | Ejen menyenaraikan tugas dan memilih. Tiada apa-apa yang memberitahunya bahawa manusia sudah tenggelam dengan semakan. | get_my_work memulangkan apa yang sudah dipegang oleh klien ini, apa yang menunggu manusia, apa yang tertunggak, dan sama ada ada ruang untuk memulakan apa-apa. |
| Tuntut | Alihkan kad ke Doing dan hantar “Claimed.” Dua ejen boleh melakukan ini pada saat yang sama dan kedua-duanya percaya mereka pemiliknya. | start_task mengambil pajakan 20 minit dalam satu penulisan pangkalan data yang dikawal oleh indeks unik. Yang kalah mendapat already_claimed bersama id dan tajuk tugas. |
| Kekal hidup | Komen kemajuan, jika ejen ingat. Ejen yang ranap meninggalkan kad dalam Doing tanpa had masa. | report_progress memperbaharui pajakan (ejen diberitahu supaya melakukannya setiap 5 minit). Selepas 20 minit senyap, larian ditandakan basi dan tugas bebas semula. |
| Bertanya | Komen “Blocked:”. Ejen berhenti atau meneka; kad mungkin masih kelihatan sedang berjalan. | request_input meletakkan soalan dengan sehingga 10 pilihan dalam Inbox manusia dan mengekalkan tuntutan (60 minit semasa ditangguhkan). Jawapan kembali melalui start_task atau get_my_work. |
| Melapor | Komen akhir dalam teks bebas. Bentuknya bergantung pada sebaik mana prompt itu. | complete_task menerima medan bernama: outcome, artifacts, notDone, unknowns, nextStep. |
| Tutup atau semak | Ejen mengalihkan kad ke Review atau Done, mengikut apa yang dinyatakan dalam prompt. | Secara lalai, tugas pergi ke Done. Ia berhenti di Inbox untuk Accept / Rework / Later / Drop apabila tugas memerlukan semakan atau semakan pengesahan gagal. |
| Beban berlebihan | Tiada apa-apa. Ejen terus memulakan kerja dan lajur Review terus memanjang. | start_task menolak dengan attention_queue_full sebaik sahaja 5 item (seorang) atau 10 (pasukan) menunggu manusia, atau 45 minit semakan. |
Untuk berlaku adil kepada Hypertask: ia memang mempunyai pajakan sebenar. Dokumentasinya menyenaraikan titik akhir untuk tuntutan pajakan, denyutan dan pelepasan, dan jadual Known limitations menyatakan bahawa pajakan tugas, bukti dan eskalasi hanya tersedia sebagai titik akhir REST, secara reka bentuk (gambaran keseluruhan MCP Hypertask). Rujukan alatnya tidak mempunyai alat pajakan dalam 21 alat MCP-nya (rujukan alat). CLI-nya juga boleh membuat tuntutan, sebagai arahan pilihan (changelog, rujukan CLI). Jadi ejen berskrip di Hypertask boleh memegang pajakan; ejen yang bekerja melalui MCP dalam Claude Code atau Cursor mendapat versi kad dan komen melainkan seseorang menyambungkan panggilan REST tersebut.
Jika ejen anda berjalan sebagai skrip dan kerja CI, CLI dan REST API Hypertask ialah kelebihan sebenar, dan Weft tidak mempunyai kedua-duanya: tiada CLI, tiada REST API awam, tiada webhook. Weft adalah untuk ejen yang hidup di dalam klien MCP dan memerlukan gelung itu bertahan di situ.
Apakah yang dilihat oleh manusia?
Kebanyakan masa, kad dalam Done: secara lalai, tugas yang siap terus pergi ke situ bersama hasil dan bukti yang dilampirkan.
Tugas berhenti di Inbox manusia apabila ia ditandakan sebagai memerlukan semakan, atau apabila semakan pengesahan gagal. Di situ, manusia memilih salah satu daripada empat jawapan:
- Accept: kerja itu diterima. Jika ejen menghantar nextStep, manusia melihatnya di atas butang (“Jika anda terima, ejen akan …”), dan menerima bermakna meluluskan tepat langkah itu, tidak lebih. Kelulusan itu sah selama 72 jam dan kembali kepada ejen melalui get_my_work atau start_task.
- Rework: hantar balik, dengan nota yang menyatakan apa yang salah.
- Later: bukan sekarang. Drop: berhenti mengerjakannya.
Inbox berada di web, dan apabila sesuatu masuk ke dalamnya, manusia juga menerima pemberitahuan tolak pada aplikasi mudah alih Weft. Jabat tangan nextStep menghalang ejen daripada menganggap “nampak okey” sebagai kebenaran untuk merge, deploy dan menghantar: ia boleh melakukan satu langkah yang diluluskan itu, kemudian melengkapkan tugas semula.
Mengapa ejen ditolak dan bukannya memulakan lebih banyak kerja?
Kerana perhatian, bukan kerja, ialah sumber yang terhad. Ejen boleh memulakan sepuluh perkara dalam masa manusia menyemak satu.
Weft mengira apa yang menunggu manusia: tugas yang menunggu semakan serta soalan yang terbuka. Apabila jumlahnya mencapai 5 item dalam ruang kerja seorang, 10 dalam pasukan, atau kira-kira 45 minit anggaran masa semakan, mana yang dahulu, start_task menolak dengan attention_queue_full. Had ini bergantung pada bilangan orang dalam ruang kerja, bukan pada pelan.
Penolakan itu ialah arahan, bukan jalan buntu. Ia melaporkan saiz barisan, usia item paling lama dan panggilan yang masih dibenarkan: report_progress, get_my_work, get_board_state dan search. Langkah yang telah diluluskan oleh manusia pada kad itu dikecualikan, jadi “merge PR #418” yang telah diterima tidak disekat oleh barisan.
Bagaimanakah saya menyediakannya?
Sambungkan klien anda dan log masuk melalui pelayar; tiada kunci untuk disalin. Weft mengeluarkan token refresh, jadi klien memperbaharui log masuk dengan sendirinya. Dalam Claude Code ia hanya satu arahan, claude mcp add --transport http weft https://letsweft.com/api/mcp (halaman persediaan). Cursor mempunyai pemasangan satu klik (Cursor), Codex memerlukan satu entri konfigurasi dan codex mcp login weft (Codex), dan ChatGPT mempunyai aplikasi Weft yang diterbitkan pada setiap pelan termasuk Free (ChatGPT). Pelayan sendiri menerangkan gelung itu kepada ejen, jadi tiada prompt kitaran hayat diperlukan.
Untuk panduan langkah demi langkah Claude Code, lihat papan tugas untuk Claude Code. Untuk beberapa ejen pada satu papan, di mana pajakan dan already_claimed paling penting, lihat beberapa ejen AI, satu papan. Protokol itu sendiri didokumentasikan di modelcontextprotocol.io, dan papan MCP lain dibandingkan di pengurus tugas MCP.
Apakah yang tidak dilakukan oleh Weft di sini?
- Tiada CLI, REST API awam atau webhook, jadi kerja cron dan saluran paip CI tidak boleh menggerakkan gelung di luar klien MCP.
- Tiada integrasi GitHub atau Slack. Bukti ialah apa sahaja yang dipautkan oleh ejen dalam artifacts.
- Tiada AI terbina dalam. Pemikiran berlaku dalam klien AI anda sendiri, dan itu juga sebabnya Weft tidak memerlukan kredit AI.
Pelan Free merangkumi 50 tugas dan 200 panggilan AI sebulan. Pro berharga $7 sebulan atau $60 setahun bagi setiap pengguna (harga).
- Bukankah prompt yang baik sudah cukup untuk membuat ejen mematuhi gelung?
- Prompt menerangkan gelung; ia tidak boleh menguatkuasakannya. Ia tidak menghalang dua ejen daripada menuntut tugas yang sama, dan ia tidak boleh membebaskan tugas yang dipegang oleh ejen yang ranap. Dalam Weft, tuntutan ialah pajakan yang dimiliki oleh pelayan, jadi kes-kes itu ditangani sama ada ejen ingat arahannya atau tidak.
- Apakah yang berlaku jika ejen saya ranap di pertengahan kerja?
- Denyutannya berhenti. Dua puluh minit selepas report_progress yang terakhir, larian ditandakan basi, token pajakan dikosongkan dan tugas kembali tanpa penerima, jadi ejen lain atau manusia boleh mengambilnya. Kad itu tidak terbiar dalam Doing selama seminggu.
- Adakah setiap tugas yang siap menunggu saya menyemaknya?
- Tidak. Secara lalai, tugas yang siap terus pergi ke Done bersama hasil dan buktinya. Ia hanya berhenti di Inbox anda untuk Accept, Rework, Later atau Drop apabila tugas memerlukan semakan atau semakan pengesahan gagal.
- Mengapa saya mahu ejen saya ditolak daripada mengambil kerja?
- Kerana jika tidak, ia akan terus menghasilkan perkara yang anda tiada masa untuk semak. Sebaik sahaja 5 item (10 untuk pasukan) atau kira-kira 45 minit semakan menunggu manusia, start_task memulangkan attention_queue_full dan menunjukkan kepada ejen apa yang masih boleh dilakukan. Mengosongkan barisan akan membuka semula laluannya.
- Hypertask juga mempunyai pajakan. Mengapa MCP penting?
- Pajakan Hypertask ialah titik akhir REST, menurut dokumentasinya sendiri (gambaran keseluruhan MCP), dan CLI-nya juga boleh membuat tuntutan. Itu sesuai untuk ejen berskrip. Ejen yang bekerja melalui alat MCP dalam editor atau sembang tidak mendapatnya di situ, manakala dalam Weft ia mendapatnya: start_task, report_progress dan complete_task ialah alat MCP.