Aufgabenverwaltung für KI-Agenten: der Übernahme-Kreislauf als Vertrag, nicht als Prompt
So verwaltest du Aufgaben von KI-Agenten mit einem Übernahme-Kreislauf, den der Server durchsetzt: Leases, Lebenszeichen, Fragen, Belege und eine Aufmerksamkeitsgrenze.
Weft ist die KI-Aufgabenverwaltung für Solo-Gründer und kleine Teams.
Von Andrei Finogeev ·
Aufgabenverwaltung für KI-Agenten funktioniert, wenn das Board den Kreislauf besitzt, nicht der Prompt: Der Agent fragt, was zu tun ist, übernimmt eine Aufgabe mit einem Lease, das abläuft, wenn er verstummt, fragt den Menschen nur bei Entscheidungen, die ihm zustehen, und schließt mit einem Beleg ab, den jemand prüfen kann. In Weft ist jeder dieser Schritte ein MCP-Tool, das der Server prüft. Ein Agent, der einen Schritt überspringt, wird also abgewiesen oder verliert die Aufgabe, statt still aus dem Takt zu geraten.
Wir entwickeln Weft. Angaben zu anderen Produkten stammen von deren offiziellen Seiten, geprüft am 27. Oktober 2026.
Warum funktioniert eine in den Chat kopierte Aufgabenliste irgendwann nicht mehr?
Aufgaben in einen Chat zu kopieren ist das Erste, was alle ausprobieren, und es funktioniert einen Nachmittag lang. Dann endet der Chat, und mit ihm der Zustand. Der Agent wusste, welchen Punkt er erledigt hatte, welchen er aufgegeben hat und wo er unsicher war. Jetzt weiß es niemand mehr.
Wer die Liste eingefügt hat, wird zum Boten: Er kopiert Ergebnisse zurück ins echte Board und macht Arbeit noch einmal, die eine zweite Sitzung aufgegriffen hat, weil nirgends stand, dass sie schon vergeben war.
Zugriff aufs Board löst das Problem mit dem Schnappschuss, aber nicht den Rest. Wenn die einzigen Tools „Karte verschieben“ und „Kommentar hinzufügen“ sind, hängt der Kreislauf weiter davon ab, dass der Agent einer Konvention aus seinen Anweisungen folgt. Konventionen brechen genau dann, wenn etwas schiefgeht: Der Agent stürzt mitten im Lauf ab, oder zwei Agenten starten im selben Moment.
Wie sieht der Übernahme-Kreislauf als Vertrag aus?
In Weft hat der Kreislauf fünf Schritte, und jeder ist ein eigenes Tool an einem MCP-Endpunkt, https://letsweft.com/api/mcp. Der Server hält den Zustand dazwischen fest, sodass der Kreislauf das Ende jedes Chats überlebt.
- get_my_work: fragen, bevor man wählt. Die Antwort umfasst, was dieser Client schon hält, was auf den Menschen wartet, was überfällig oder bald fällig ist und ob überhaupt Platz ist, etwas zu starten.
- start_task: mit Lease übernehmen. Die Übernahme gilt 20 Minuten und schiebt die Aufgabe nach Doing. Die Antwort enthält eine
runId, einleaseTokenundrenewEverySeconds: 300. Ein zweiter Client, der dieselbe Aufgabe versucht, bekommtalready_claimedund den Hinweis, die Arbeit nicht doppelt zu machen. - report_progress: das Lebenszeichen. Jeder Aufruf mit Lauf-ID und Lease-Token verlängert das Lease. Stirbt der Agent, hören die Lebenszeichen auf, und 20 Minuten später wird der Lauf als veraltet markiert und die Aufgabe ist wieder für alle frei. Ein verlorenes Lease beantwortet der Server mit
lease_lost, sodass der Agent weiß, dass ihm die Arbeit nicht mehr gehört. - request_input: nur für Entscheidungen, die dem Menschen zustehen. Eine Frage mit bis zu 500 Zeichen und bis zu 10 Optionen. Die Übernahme bleibt bestehen, während der Agent wartet.
- complete_task: mit Beleg abschließen.
outcome,artifacts(Belege wie eine URL, ein Commit oder ein Datei-Hash),notDone,unknownsundnextStep.
Warum ein Lease und kein Status? Weil Stille das einzige Signal ist, das ein abgestürzter Agent senden kann. Eine Karte in Doing sagt, dass irgendwann jemand daran gearbeitet hat. Ein Lease sagt, dass jetzt jemand daran arbeitet, und hört von selbst auf, das zu sagen, wenn es nicht mehr stimmt.
Die Übernahme selbst ist ein einziger Datenbank-Insert, abgesichert durch einen eindeutigen Index. Wenn zwei Agenten gleichzeitig zugreifen, entscheidet die Datenbank, wer gewinnt, also können nicht beide die Aufgabe bekommen. Zwei Kommentare „Übernommen“ im Abstand von einer Sekunde sind dagegen beide gültige Kommentare.
Wann sollte der Agent request_input aufrufen?
Wenn er an etwas kommt, das nur der Mensch entscheiden kann: alles Unumkehrbare wie Geld, Veröffentlichen, Produktion oder Rechtliches, oder eine echte Gabelung ohne vernünftige Voreinstellung. Nicht, um um Erlaubnis zum Weitermachen zu bitten.
Diese Zurückhaltung zählt, weil eine Frage den Menschen dieselbe Aufmerksamkeit kostet wie eine fertige Aufgabe, und in Weft zählt sie gegen dieselbe Grenze. Die Frage landet in der Inbox, mit einer Push-Nachricht aufs Handy und, bei Einträgen, die 20 Minuten oder länger warten, einer Erinnerung per E-Mail. Weft ruft den Agenten nie zurück: Die Antwort kommt bei seinem nächsten start_task oder get_my_work an. Solange die Frage offen ist, behält der Agent die Aufgabe 60 Minuten lang; danach fällt das Lease weg, aber die Frage bleibt.
Was gehört in einen complete_task-Aufruf?
Ein kurzes Ergebnis, Belege und eine ehrliche Auskunft über die Ränder. Hier ist eine realistische Nutzlast für eine Fehlerbehebung:
{
"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"
}Artefakte sind Dinge, die der Mensch prüfen kann, ohne dem Agenten aufs Wort zu glauben. notDone und unknowns sind keine Geständnisse; sie trennen ein Ergebnis, auf das du dich verlassen kannst, von einem, das du aus dem Diff rekonstruieren musst. Der Aufruf scheitert nie an fehlenden Belegen, denn fertige Arbeit zu verlieren ist schlimmer, als sie ungeprüft festzuhalten. Mehr dazu, wie du diese Belege liest, unter Was hat mein KI-Agent gemacht.
Was ist der Unterschied zu „Karte verschieben und kommentieren“?
Der Leitfaden von Hypertask zum selben Kreislauf (übernehmen, aktualisieren, berichten, schließen) beschreibt die Gewohnheit gut. Seine MCP-Variante einer Übernahme ist: die Aufgabe laden, in den Arbeitsbereich verschieben und einen Übernahme-Kommentar posten, gesteuert von einem Prompt, den das Team in die Anweisungen des Agenten schreibt. Hier ist derselbe Kreislauf Schritt für Schritt:
| Schritt im Kreislauf | Board nur mit Konvention (der Agent verschiebt eine Karte und kommentiert) | Was Weft durchsetzt, und mit welchem MCP-Tool |
|---|---|---|
| Arbeit wählen | Der Agent listet Aufgaben auf und wählt. Nichts sagt ihm, dass der Mensch schon unter Prüfungen begraben ist. | get_my_work liefert, was dieser Client schon hält, was auf den Menschen wartet, was überfällig ist und ob Platz ist, etwas zu starten. |
| Übernehmen | Karte nach Doing schieben und „Übernommen“ posten. Zwei Agenten können das im selben Moment tun und beide glauben, die Aufgabe gehöre ihnen. | start_task nimmt ein Lease von 20 Minuten in einem einzigen Datenbank-Schreibvorgang, abgesichert durch einen eindeutigen Index. Der Verlierer bekommt already_claimed mit id und Titel der Aufgabe. |
| Am Leben bleiben | Fortschrittskommentare, falls der Agent daran denkt. Ein abgestürzter Agent lässt eine Karte auf unbestimmte Zeit in Doing liegen. | report_progress verlängert das Lease (der Agent wird angewiesen, das alle 5 Minuten zu tun). Nach 20 stillen Minuten wird der Lauf als veraltet markiert und die Aufgabe ist wieder frei. |
| Fragen | Ein Kommentar „Blockiert:“. Der Agent hält an oder rät; die Karte sieht womöglich weiter nach laufender Arbeit aus. | request_input legt eine Frage mit bis zu 10 Optionen in die Inbox des Menschen und behält die Übernahme bei (60 Minuten, solange sie geparkt ist). Die Antwort kommt über start_task oder get_my_work zurück. |
| Berichten | Ein Abschlusskommentar in freiem Text. Seine Form hängt davon ab, wie gut der Prompt war. | complete_task nimmt benannte Felder: outcome, artifacts, notDone, unknowns, nextStep. |
| Schließen oder prüfen | Der Agent schiebt die Karte nach Review oder Done, je nachdem, was im Prompt stand. | Standardmäßig geht die Aufgabe nach Done. Sie hält in der Inbox zum Annehmen / Überarbeiten / Später / Verwerfen an, wenn die Aufgabe eine Prüfung braucht oder ein Verifizierungscheck fehlschlägt. |
| Überlastung | Nichts. Agenten fangen weiter Arbeit an, und die Review-Spalte wächst. | start_task lehnt mit attention_queue_full ab, sobald 5 Einträge (eine Person) oder 10 (Team) auf Menschen warten, oder 45 Minuten Prüfaufwand. |
Fairerweise: Hypertask hat echte Leases. Seine Dokumentation listet Endpunkte zum Übernehmen, für Lebenszeichen und zum Freigeben, und seine Tabelle der bekannten Einschränkungen sagt, dass Task-Leases, Belege und Eskalation bewusst nur REST-Endpunkte sind (MCP-Überblick von Hypertask). Seine Tool-Referenz enthält unter den 21 MCP-Tools kein Lease-Tool (Tool-Referenz). Seine CLI kann ebenfalls übernehmen, als optionaler Befehl (Changelog, CLI-Referenz). Ein per Skript gesteuerter Agent auf Hypertask kann also ein Lease halten; ein Agent, der über MCP in Claude Code oder Cursor arbeitet, bekommt die Variante mit Karte und Kommentar, solange niemand die REST-Aufrufe einbaut.
Wenn deine Agenten als Skripte und CI-Jobs laufen, sind CLI und REST-API von Hypertask ein echter Vorteil, und Weft hat keins von beiden: keine CLI, keine öffentliche REST-API, keine Webhooks. Weft ist für Agenten, die in einem MCP-Client leben und den Kreislauf dort brauchen.
Was sieht der Mensch?
Meistens eine Karte in Done: Standardmäßig geht eine abgeschlossene Aufgabe direkt dorthin, mit Ergebnis und Belegen.
Eine Aufgabe hält in der Inbox des Menschen an, wenn sie als prüfungsbedürftig markiert wurde oder ein Verifizierungscheck fehlschlägt. Dort wählt der Mensch eine von vier Antworten:
- Annehmen: Die Arbeit bleibt. Wenn der Agent einen nextStep mitgegeben hat, sieht der Mensch ihn über dem Button („Wenn du annimmst, wird der Agent …“), und Annehmen genehmigt genau diesen Schritt, nichts darüber hinaus. Die Genehmigung gilt 72 Stunden und kommt über get_my_work oder start_task zum Agenten zurück.
- Überarbeiten: zurückgeben, mit einer Notiz, was nicht stimmt.
- Später: nicht jetzt. Verwerfen: nicht weiter daran arbeiten.
Die Inbox gibt es im Web, und wenn etwas darin landet, bekommt der Mensch zusätzlich eine Push-Nachricht in der mobilen Weft-App. Der Handschlag über nextStep verhindert, dass ein Agent „sieht gut aus“ als Erlaubnis versteht, zu mergen, zu deployen und zu versenden: Er darf den einen genehmigten Schritt gehen und schließt die Aufgabe dann erneut ab.
Warum wird der Agent abgewiesen, statt mehr Arbeit anzufangen?
Weil Aufmerksamkeit knapp ist, nicht Arbeit. Ein Agent kann zehn Dinge anfangen, in der Zeit, in der ein Mensch eins prüft.
Weft zählt, was auf Menschen wartet: Aufgaben, die auf Prüfung warten, plus offene Fragen. Wenn das 5 Einträge in einem Ein-Personen-Workspace erreicht, 10 im Team oder etwa 45 Minuten geschätzte Prüfzeit, je nachdem, was zuerst eintritt, lehnt start_task mit attention_queue_full ab. Die Grenze hängt davon ab, wie viele Menschen im Workspace sind, nicht vom Tarif.
Die Ablehnung ist eine Anweisung, keine Sackgasse. Sie nennt die Größe der Warteschlange, das Alter des ältesten Eintrags und die Aufrufe, die noch erlaubt sind: report_progress, get_my_work, get_board_state und search. Ein Schritt, den der Mensch an dieser Karte schon genehmigt hat, ist ausgenommen, ein angenommenes „PR #418 mergen“ wird also nicht von der Warteschlange blockiert.
Wie richte ich das ein?
Verbinde deinen Client und melde dich im Browser an; es gibt keinen Schlüssel zu kopieren. Weft stellt Refresh-Tokens aus, der Client erneuert die Anmeldung also selbst. In Claude Code ist es ein Befehl, claude mcp add --transport http weft https://letsweft.com/api/mcp (Einrichtungsseite). Cursor hat eine Installation mit einem Klick (Cursor), Codex braucht einen Konfigurationseintrag und codex mcp login weft (Codex), und für ChatGPT gibt es eine veröffentlichte Weft-App in jedem Tarif einschließlich Free (ChatGPT). Der Server beschreibt dem Agenten den Kreislauf selbst, ein Prompt für den Ablauf ist also nicht nötig.
Eine Anleitung für Claude Code findest du unter Ein Aufgabenboard für Claude Code. Für mehrere Agenten auf einem Board, wo Leases und already_claimed am meisten zählen, siehe Mehrere KI-Agenten, ein Board. Das Protokoll selbst ist auf modelcontextprotocol.io dokumentiert, und andere MCP-Boards vergleichen wir unter MCP-Aufgabenmanager.
Was macht Weft hier nicht?
- Keine CLI, keine öffentliche REST-API und keine Webhooks, Cronjobs und CI-Pipelines können den Kreislauf außerhalb eines MCP-Clients also nicht steuern.
- Keine Integration mit GitHub oder Slack. Belege sind das, was der Agent in artifacts verlinkt.
- Keine eingebaute KI. Das Denken passiert in deinem eigenen KI-Client, und deshalb braucht Weft auch keine KI-Credits.
Free umfasst 50 Aufgaben und 200 KI-Aufrufe im Monat. Pro kostet € 7,74 pro Platz und Monat oder € 65,45 pro Platz und Jahr (Preise).
- Reicht nicht ein guter Prompt, damit Agenten dem Kreislauf folgen?
- Ein Prompt beschreibt den Kreislauf; durchsetzen kann er ihn nicht. Er verhindert nicht, dass zwei Agenten dieselbe Aufgabe übernehmen, und er kann keine Aufgabe freigeben, die ein abgestürzter Agent hält. In Weft ist die Übernahme ein Lease, das dem Server gehört, diese Fälle werden also abgefangen, ob sich der Agent an seine Anweisungen erinnert oder nicht.
- Was passiert, wenn mein Agent mittendrin abstürzt?
- Seine Lebenszeichen hören auf. Zwanzig Minuten nach dem letzten report_progress wird der Lauf als veraltet markiert, das Lease-Token gelöscht und die Aufgabe ist wieder niemandem zugewiesen, sodass ein anderer Agent oder ein Mensch sie nehmen kann. Die Karte liegt nicht eine Woche lang in Doing.
- Wartet jede fertige Aufgabe darauf, dass ich sie prüfe?
- Nein. Standardmäßig geht eine abgeschlossene Aufgabe mit Ergebnis und Belegen direkt nach Done. Sie hält nur dann in deiner Inbox zum Annehmen, Überarbeiten, Später oder Verwerfen an, wenn die Aufgabe eine Prüfung braucht oder ein Verifizierungscheck fehlschlägt.
- Warum sollte ich wollen, dass mein Agent abgewiesen wird?
- Weil er sonst immer weiter Dinge produziert, die du nicht prüfen kannst. Sobald 5 Einträge (10 im Team) oder etwa 45 Minuten Prüfaufwand auf Menschen warten, liefert start_task attention_queue_full und zeigt dem Agenten, was er noch tun kann. Wenn du die Warteschlange abarbeitest, geht es weiter.
- Hypertask hat auch Leases. Warum ist MCP wichtig?
- Die Leases von Hypertask sind laut eigener Dokumentation REST-Endpunkte (MCP-Überblick), und auch die CLI kann übernehmen. Das passt zu per Skript gesteuerten Agenten. Ein Agent, der über MCP-Tools in einem Editor oder Chat arbeitet, bekommt sie dort nicht, in Weft schon: start_task, report_progress und complete_task sind MCP-Tools.