Weft
EL
Ιστολόγιο

Διαχείριση εργασιών πρακτόρων AI: ο κύκλος ανάληψης ως συμβόλαιο, όχι ως prompt

Πώς να διαχειρίζεστε τις εργασίες πρακτόρων AI με έναν κύκλο ανάληψης που επιβάλλει ο server: leases, σήματα ζωής, ερωτήσεις, αποδείξεις και όριο στην ανθρώπινη προσοχή.

Το Weft είναι η διαχείριση εργασιών με AI για solo founders και μικρές ομάδες.

Όλα τα άρθρα

Από Andrei Finogeev ·

Η διαχείριση εργασιών πρακτόρων AI δουλεύει όταν τον κύκλο τον κατέχει ο πίνακας και όχι το prompt: ο πράκτορας ρωτά τι να κάνει, αναλαμβάνει μία εργασία με ένα lease που λήγει αν σωπάσει, ρωτά τον άνθρωπο μόνο για αποφάσεις που είναι δικές του και τελειώνει με μια απόδειξη που μπορεί να ελέγξει κάποιος. Στο Weft κάθε ένα από αυτά τα βήματα είναι ένα εργαλείο MCP που ελέγχει ο server, οπότε ένας πράκτορας που παραλείπει ένα βήμα απορρίπτεται ή χάνει την εργασία, αντί να ξεσυγχρονίζεται αθόρυβα.

Εμείς φτιάχνουμε το Weft. Τα στοιχεία για τα άλλα προϊόντα προέρχονται από τις επίσημες σελίδες τους και ελέγχθηκαν στις 27 Οκτωβρίου 2026.

Γιατί μια λίστα εργασιών επικολλημένη στη συνομιλία σταματά να δουλεύει;

Η επικόλληση εργασιών σε μια συνομιλία είναι το πρώτο που δοκιμάζουν όλοι, και δουλεύει για ένα απόγευμα. Μετά η συνομιλία τελειώνει, και η κατάσταση τελειώνει μαζί της. Ο πράκτορας ήξερε ποιο στοιχείο είχε τελειώσει, ποιο είχε παρατήσει και για τι δεν ήταν σίγουρος. Τώρα δεν το ξέρει κανείς.

Ο άνθρωπος που επικόλλησε τη λίστα γίνεται ο αναμεταδότης: αντιγράφει τα αποτελέσματα πίσω στον πραγματικό πίνακα και ξανακάνει δουλειά που έπιασε μια δεύτερη συνεδρία, επειδή τίποτα δεν έλεγε ότι ήταν πιασμένη.

Η πρόσβαση στον πίνακα λύνει το πρόβλημα του στιγμιότυπου, όχι τα υπόλοιπα. Αν τα μόνα εργαλεία είναι «μετακίνηση κάρτας» και «προσθήκη σχολίου», ο κύκλος εξακολουθεί να εξαρτάται από το αν ο πράκτορας ακολουθεί μια σύμβαση γραμμένη στις οδηγίες του. Οι συμβάσεις σπάνε ακριβώς όταν τα πράγματα πάνε στραβά: ο πράκτορας κρασάρει στη μέση της εκτέλεσης ή δύο πράκτορες ξεκινούν την ίδια στιγμή.

Πώς μοιάζει ο κύκλος ανάληψης ως συμβόλαιο;

Στο Weft ο κύκλος έχει πέντε βήματα, και καθένα είναι ξεχωριστό εργαλείο σε ένα endpoint MCP, το https://letsweft.com/api/mcp. Ο server κρατά την κατάσταση ανάμεσά τους, οπότε ο κύκλος επιβιώνει από το τέλος οποιασδήποτε συνομιλίας.

  1. get_my_work: ρώτα πριν διαλέξεις. Η απάντηση καλύπτει τι κρατά ήδη αυτός ο client, τι περιμένει τον άνθρωπο, τι έχει καθυστερήσει ή λήγει σύντομα και αν υπάρχει καν χώρος να ξεκινήσει κάτι.
  2. start_task: ανάληψη με lease. Η ανάληψη διαρκεί 20 λεπτά και μετακινεί την εργασία στο Doing. Η απάντηση περιέχει ένα runId, ένα leaseToken και renewEverySeconds: 300. Ένας δεύτερος client που δοκιμάζει την ίδια εργασία παίρνει already_claimed και μια υπόδειξη να μη διπλασιάσει τη δουλειά.
  3. report_progress: το σήμα ζωής. Κάθε κλήση με το id της εκτέλεσης και το lease token ανανεώνει το lease. Αν ο πράκτορας «πεθάνει», τα σήματα σταματούν, και 20 λεπτά αργότερα η εκτέλεση σημειώνεται ως ληγμένη και η εργασία επιστρέφει χωρίς ανάθεση, για να την πιάσει οποιοσδήποτε. Ένα χαμένο lease απαντά lease_lost, ώστε ο πράκτορας να ξέρει ότι η δουλειά δεν είναι πια δική του.
  4. request_input: μόνο για αποφάσεις που ανήκουν στον άνθρωπο. Μια ερώτηση έως 500 χαρακτήρων, με έως 10 επιλογές. Η ανάληψη διατηρείται όσο περιμένει ο πράκτορας.
  5. complete_task: ολοκλήρωση με απόδειξη. outcome, artifacts (αποδείξεις όπως ένα URL, ένα commit ή ένα hash αρχείου), notDone, unknowns και nextStep.

Γιατί lease και όχι κατάσταση; Επειδή η σιωπή είναι το μόνο σήμα που μπορεί να στείλει ένας πράκτορας που κράσαρε. Μια κάρτα στο Doing λέει ότι κάποιος δούλευε πάνω της κάποτε. Ένα lease λέει ότι κάποιος δουλεύει πάνω της τώρα, και παύει να το λέει μόνο του όταν αυτό δεν ισχύει πια.

Η ίδια η ανάληψη είναι μία εισαγωγή στη βάση δεδομένων που προστατεύεται από μοναδικό ευρετήριο. Όταν δύο πράκτορες τρέχουν ταυτόχρονα, η βάση αποφασίζει ποιος κερδίζει, οπότε δεν μπορούν να πάρουν και οι δύο την εργασία. Αντίθετα, δύο σχόλια «Αναλήφθηκε» με ένα δευτερόλεπτο διαφορά είναι και τα δύο έγκυρα σχόλια.

Πότε πρέπει ο πράκτορας να καλεί το request_input;

Όταν φτάνει σε κάτι που μόνο ο άνθρωπος μπορεί να αποφασίσει: οτιδήποτε μη αναστρέψιμο, όπως χρήματα, δημοσίευση, παραγωγή ή νομικά, ή ένα πραγματικό δίλημμα χωρίς λογική προεπιλογή. Όχι για να ζητήσει άδεια να συνεχίσει.

Αυτή η αυτοσυγκράτηση μετράει γιατί μια ερώτηση κοστίζει στον άνθρωπο την ίδια προσοχή με μια ολοκληρωμένη εργασία, και στο Weft μετράει στο ίδιο όριο. Η ερώτηση φτάνει στο Inbox, με push στο κινητό και, για στοιχεία που περιμένουν 20 λεπτά ή περισσότερο, με υπενθύμιση μέσω email. Το Weft δεν καλεί ποτέ πίσω τον πράκτορα: η απάντηση φτάνει στο επόμενο start_task ή get_my_work του. Όσο η ερώτηση είναι ανοιχτή, ο πράκτορας κρατά την εργασία για 60 λεπτά· μετά το lease πέφτει, αλλά η ερώτηση μένει.

Τι μπαίνει σε μια κλήση complete_task;

Ένα σύντομο αποτέλεσμα, αποδείξεις και μια τίμια περιγραφή των ορίων. Ορίστε ένα ρεαλιστικό payload για τη διόρθωση ενός σφάλματος:

{
  "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 είναι πράγματα που ο άνθρωπος μπορεί να ελέγξει χωρίς να βασιστεί στον λόγο του πράκτορα. Τα notDone και unknowns δεν είναι ομολογίες· ξεχωρίζουν ένα αποτέλεσμα στο οποίο μπορείτε να βασιστείτε από ένα που ξαναχτίζετε από το diff. Η κλήση δεν αποτυγχάνει ποτέ λόγω έλλειψης αποδείξεων, γιατί το να χαθεί ολοκληρωμένη δουλειά είναι χειρότερο από το να καταγραφεί ανεπαλήθευτη. Περισσότερα για την ανάγνωση αυτών των αποδείξεων στο τι έκανε ο πράκτορας AI μου.

Σε τι διαφέρει αυτό από τη μετακίνηση μιας κάρτας και ένα σχόλιο;

Ο οδηγός του Hypertask για τον ίδιο κύκλο (ανάληψη, ενημέρωση, αναφορά, κλείσιμο) περιγράφει καλά τη συνήθεια. Η εκδοχή MCP μιας ανάληψης εκεί είναι να φορτωθεί η εργασία, να μετακινηθεί στην ενότητα εργασίας και να γραφτεί ένα σχόλιο ανάληψης, με οδηγό ένα prompt που γράφει η ομάδα στις οδηγίες του πράκτορα. Ορίστε ο ίδιος κύκλος βήμα προς βήμα:

Βήμα του κύκλουΠίνακας μόνο με συμβάσεις (ο πράκτορας μετακινεί μια κάρτα και σχολιάζει)Τι επιβάλλει το Weft, και με ποιο εργαλείο MCP
Επιλογή δουλειάςΟ πράκτορας εμφανίζει τις εργασίες και διαλέγει. Τίποτα δεν του λέει ότι ο άνθρωπος είναι ήδη θαμμένος σε ελέγχους.Το get_my_work επιστρέφει τι κρατά ήδη αυτός ο client, τι περιμένει τον άνθρωπο, τι έχει καθυστερήσει και αν υπάρχει χώρος να ξεκινήσει κάτι.
ΑνάληψηΜετακίνηση της κάρτας στο Doing και σχόλιο «Αναλήφθηκε». Δύο πράκτορες μπορούν να το κάνουν την ίδια στιγμή και να πιστεύουν και οι δύο ότι την κατέχουν.Το start_task παίρνει lease 20 λεπτών με μία εγγραφή στη βάση που προστατεύεται από μοναδικό ευρετήριο. Αυτός που χάνει παίρνει already_claimed με το id και τον τίτλο της εργασίας.
Σήμα ζωήςΣχόλια προόδου, αν τα θυμηθεί ο πράκτορας. Ένας πράκτορας που κράσαρε αφήνει μια κάρτα στο Doing επ’ αόριστον.Το report_progress ανανεώνει το lease (ο πράκτορας έχει οδηγία να το κάνει κάθε 5 λεπτά). Μετά από 20 λεπτά σιωπής η εκτέλεση σημειώνεται ως ληγμένη και η εργασία είναι ξανά ελεύθερη.
ΕρώτησηΈνα σχόλιο «Μπλοκαρισμένο:». Ο πράκτορας σταματά ή μαντεύει· η κάρτα μπορεί ακόμη να φαίνεται σε εξέλιξη.Το request_input βάζει μια ερώτηση με έως 10 επιλογές στο Inbox του ανθρώπου και κρατά την ανάληψη (60 λεπτά όσο είναι σε αναμονή). Η απάντηση επιστρέφει μέσω του start_task ή του get_my_work.
ΑναφοράΈνα τελικό σχόλιο σε ελεύθερο κείμενο. Η μορφή του εξαρτάται από το πόσο καλό ήταν το prompt.Το complete_task δέχεται ονομασμένα πεδία: outcome, artifacts, notDone, unknowns, nextStep.
Κλείσιμο ή έλεγχοςΟ πράκτορας μετακινεί την κάρτα στο Review ή στο Done, ό,τι έλεγε το prompt.Από προεπιλογή η εργασία πηγαίνει στο Done. Σταματά στο Inbox για Αποδοχή / Επανεπεξεργασία / Αργότερα / Απόρριψη όταν η εργασία χρειάζεται έλεγχο ή αποτυγχάνει ένας έλεγχος επαλήθευσης.
ΥπερφόρτωσηΤίποτα. Οι πράκτορες συνεχίζουν να ξεκινούν δουλειά και η στήλη Review μεγαλώνει.Το start_task αρνείται με attention_queue_full μόλις 5 στοιχεία (ένα άτομο) ή 10 (ομάδα) περιμένουν ανθρώπους, ή 45 λεπτά ελέγχου.

Για να είμαστε δίκαιοι με το Hypertask: έχει πραγματικά leases. Η τεκμηρίωσή του αναφέρει endpoints για ανάληψη lease, σήμα ζωής και απελευθέρωση, και ο πίνακας γνωστών περιορισμών του λέει ότι τα leases εργασιών, οι αποδείξεις και η κλιμάκωση είναι μόνο REST endpoints, σκόπιμα (επισκόπηση MCP του Hypertask). Η αναφορά εργαλείων του δεν έχει εργαλείο lease ανάμεσα στα 21 εργαλεία MCP (αναφορά εργαλείων). Και το CLI του μπορεί να αναλάβει, ως προαιρετική εντολή (changelog, αναφορά CLI). Άρα ένας πράκτορας με scripts στο Hypertask μπορεί να κρατά lease· ένας πράκτορας που δουλεύει μέσω MCP στο Claude Code ή στο Cursor παίρνει την εκδοχή «κάρτα και σχόλιο», εκτός αν κάποιος συνδέσει τις κλήσεις REST.

Αν οι πράκτορές σας τρέχουν ως scripts και εργασίες CI, το CLI και το REST API του Hypertask είναι πραγματικό πλεονέκτημα, και το Weft δεν έχει κανένα από τα δύο: ούτε CLI, ούτε δημόσιο REST API, ούτε webhooks. Το Weft είναι για πράκτορες που ζουν μέσα σε έναν client MCP και χρειάζονται τον κύκλο να κρατάει εκεί.

Τι βλέπει ο άνθρωπος;

Τις περισσότερες φορές, μια κάρτα στο Done: από προεπιλογή μια ολοκληρωμένη εργασία πηγαίνει κατευθείαν εκεί, με το αποτέλεσμα και τις αποδείξεις συνημμένα.

Μια εργασία σταματά στο Inbox του ανθρώπου όταν έχει σημειωθεί ότι χρειάζεται έλεγχο ή όταν αποτυγχάνει ένας έλεγχος επαλήθευσης. Εκεί ο άνθρωπος διαλέγει μία από τέσσερις απαντήσεις:

  • Αποδοχή: η δουλειά μένει. Αν ο πράκτορας έδωσε ένα nextStep, ο άνθρωπος το βλέπει πάνω από το κουμπί («Αν αποδεχτείτε, ο πράκτορας θα …»), και η αποδοχή εγκρίνει ακριβώς αυτό το βήμα, τίποτα ευρύτερο. Η έγκριση ισχύει για 72 ώρες και επιστρέφει στον πράκτορα μέσω του get_my_work ή του start_task.
  • Επανεπεξεργασία: την στέλνετε πίσω, με μια σημείωση για το τι είναι λάθος.
  • Αργότερα: όχι τώρα. Απόρριψη: σταματά η δουλειά πάνω της.

Το Inbox είναι στο web, και όταν μπαίνει κάτι σε αυτό ο άνθρωπος παίρνει επίσης push στην εφαρμογή κινητού του Weft. Η χειραψία του nextStep εμποδίζει έναν πράκτορα να εκλάβει το «φαίνεται εντάξει» ως άδεια για merge, deploy και αποστολή: μπορεί να κάνει το ένα εγκεκριμένο βήμα και μετά να ολοκληρώσει ξανά την εργασία.

Γιατί ο πράκτορας απορρίπτεται αντί να ξεκινήσει περισσότερη δουλειά;

Επειδή ο σπάνιος πόρος είναι η προσοχή, όχι η δουλειά. Ένας πράκτορας μπορεί να ξεκινήσει δέκα πράγματα στον χρόνο που ένας άνθρωπος ελέγχει ένα.

Το Weft μετρά ό,τι περιμένει ανθρώπους: εργασίες που περιμένουν έλεγχο συν ανοιχτές ερωτήσεις. Όταν αυτό φτάσει τα 5 στοιχεία σε χώρο εργασίας ενός ατόμου, τα 10 σε ομάδα, ή περίπου 45 λεπτά εκτιμώμενου χρόνου ελέγχου, όποιο έρθει πρώτο, το start_task αρνείται με attention_queue_full. Το όριο εξαρτάται από το πόσοι άνθρωποι είναι στον χώρο εργασίας, όχι από το πρόγραμμα.

Η άρνηση είναι οδηγία, όχι αδιέξοδο. Αναφέρει το μέγεθος της ουράς, την ηλικία του παλαιότερου στοιχείου και τις κλήσεις που επιτρέπονται ακόμη: report_progress, get_my_work, get_board_state και search. Ένα βήμα που ο άνθρωπος έχει ήδη εγκρίνει σε αυτή την κάρτα εξαιρείται, οπότε ένα αποδεκτό «merge του PR #418» δεν μπλοκάρεται από την ουρά.

Πώς το ρυθμίζω;

Συνδέστε τον client σας και συνδεθείτε μέσω του browser· δεν υπάρχει κλειδί για αντιγραφή. Το Weft εκδίδει refresh tokens, οπότε ο client ανανεώνει μόνος του τη σύνδεση. Στο Claude Code είναι μία εντολή, claude mcp add --transport http weft https://letsweft.com/api/mcp (σελίδα ρύθμισης). Το Cursor έχει εγκατάσταση με ένα κλικ (Cursor), το Codex χρειάζεται μια καταχώριση ρυθμίσεων και codex mcp login weft (Codex), και το ChatGPT έχει δημοσιευμένη εφαρμογή Weft σε κάθε πρόγραμμα, και στο δωρεάν (ChatGPT). Ο server περιγράφει μόνος του τον κύκλο στον πράκτορα, οπότε δεν χρειάζεται prompt για τον κύκλο ζωής.

Για έναν οδηγό με το Claude Code δείτε το πίνακας εργασιών για το Claude Code. Για πολλούς πράκτορες σε έναν πίνακα, όπου τα leases και το already_claimed μετράνε περισσότερο, δείτε το πολλοί πράκτορες AI, ένας πίνακας. Το ίδιο το πρωτόκολλο τεκμηριώνεται στο modelcontextprotocol.io, και άλλοι πίνακες MCP συγκρίνονται στο διαχειριστές εργασιών MCP.

Τι δεν κάνει το Weft εδώ;

  • Δεν έχει CLI, δημόσιο REST API ούτε webhooks, οπότε cron jobs και pipelines CI δεν μπορούν να οδηγήσουν τον κύκλο έξω από έναν client MCP.
  • Δεν έχει ενσωμάτωση με GitHub ή Slack. Αποδείξεις είναι ό,τι συνδέει ο πράκτορας στα artifacts.
  • Δεν έχει ενσωματωμένο AI. Η σκέψη γίνεται στον δικό σας AI client, γι’ αυτό και το Weft δεν χρειάζεται μονάδες AI.

Το δωρεάν πρόγραμμα καλύπτει 50 εργασίες και 200 κλήσεις AI τον μήνα. Το Pro κοστίζει 8,06 € ανά θέση τον μήνα (με ΦΠΑ) ή 68,20 € ανά θέση τον χρόνο (τιμές).

Δεν αρκεί ένα καλό prompt για να ακολουθούν οι πράκτορες τον κύκλο;
Ένα prompt περιγράφει τον κύκλο· δεν μπορεί να τον επιβάλει. Δεν εμποδίζει δύο πράκτορες να αναλάβουν την ίδια εργασία, και δεν μπορεί να ελευθερώσει μια εργασία που κρατά ένας πράκτορας που κράσαρε. Στο Weft η ανάληψη είναι ένα lease που ανήκει στον server, οπότε αυτές οι περιπτώσεις αντιμετωπίζονται είτε ο πράκτορας θυμήθηκε τις οδηγίες του είτε όχι.
Τι γίνεται αν ο πράκτοράς μου κρασάρει στη μέση;
Τα σήματα ζωής του σταματούν. Είκοσι λεπτά μετά το τελευταίο report_progress η εκτέλεση σημειώνεται ως ληγμένη, το lease token διαγράφεται και η εργασία μένει ξανά χωρίς ανάθεση, ώστε να μπορεί να την πιάσει άλλος πράκτορας ή άνθρωπος. Η κάρτα δεν κάθεται μια εβδομάδα στο Doing.
Περιμένει κάθε ολοκληρωμένη εργασία να την ελέγξω;
Όχι. Από προεπιλογή μια ολοκληρωμένη εργασία πηγαίνει κατευθείαν στο Done με το αποτέλεσμα και τις αποδείξεις της. Σταματά στο Inbox σας για Αποδοχή, Επανεπεξεργασία, Αργότερα ή Απόρριψη μόνο όταν η εργασία χρειάζεται έλεγχο ή αποτυγχάνει ένας έλεγχος επαλήθευσης.
Γιατί να θέλω να απορρίπτεται ο πράκτοράς μου;
Γιατί αλλιώς συνεχίζει να παράγει πράγματα που δεν έχετε χρόνο να ελέγξετε. Μόλις 5 στοιχεία (10 για ομάδα) ή περίπου 45 λεπτά ελέγχου περιμένουν ανθρώπους, το start_task επιστρέφει attention_queue_full και δείχνει στον πράκτορα τι μπορεί ακόμη να κάνει. Όταν αδειάσει η ουρά, ξεμπλοκάρει.
Και το Hypertask έχει leases. Γιατί μετράει το MCP;
Τα leases του Hypertask είναι REST endpoints, σύμφωνα με την ίδια του την τεκμηρίωση (επισκόπηση MCP), και μπορεί να αναλάβει και το CLI του. Αυτό ταιριάζει σε πράκτορες με scripts. Ένας πράκτορας που δουλεύει με εργαλεία MCP σε έναν editor ή σε μια συνομιλία δεν τα παίρνει εκεί, ενώ στο Weft τα παίρνει: τα start_task, report_progress και complete_task είναι εργαλεία MCP.