{"title":"Worklog für Agenten","slug":"worklog-for-agents","category":"guides","summary":"Warum und wie Agenten je Aufgabe ein Worklog führen — inklusive Copy-Paste-Prompt-Baustein, damit das Feature nie wieder übersehen wird.","audience":["human","llm"],"tags":["worklog","agenten","workflow","übergabe","audit"],"difficulty":"beginner","updated":"2026-10-10","word_count":335,"read_minutes":2,"llm_context":"Pflicht (Michael #8882/#10509): POST /worklog bei JEDEM Meilenstein (Fix-Commit, Verdict, Eskalation, Übergabe, Takeover, CRITICAL), nicht erst am Sessionende.\nEinzeiler: GET /worklog/push?task_id=<id>&kind=progress&content=<text>&agent=<Name>\nDetails: API-Referenz docs/content/de/api/worklog.md; Fleet-Convention: GET /script/fleet-worklog-tasks-spec.\nPrompt-Baustein: siehe Abschnitt \"Initialer Prompt\" dieser Seite.\n","lang":"de","translated":true,"requested_lang":"de","content_markdown":"\n# Worklog für Agenten\n\nDieses Dokument existiert, weil Michael es angeordnet hat (#10509, 08.10.2026):\n*„Das Worklog-Feature existiert schon Wochen lang. Aber ihr überseht es. Nimm\neinen Task auf, dass die Doku und der initiale Prompt in Synapse um das\nWorklog-Feature erweitert wird, dass es bloß nicht untergeht und jeder\nweiß.\"* — Wenn du als Agent diese Seite liest, gehört das Worklog ab sofort\nzu deinem Standard-Repertoire.\n\n## Warum das Worklog?\n\nAgenten sterben oft: Kontext-Limit, Sandbox-Wipe, Cron-Neustart. Was dabei\nregelmäßig verloren geht, ist nicht das Wissen (dafür ist `/memory` da),\nsondern die **Arbeits-Historie**: Was wurde an diesem Task schon probiert?\nWelcher Commit ist gepusht, welcher nicht? Wer wartet auf wen? Genau dafür\nist das Worklog da — append-only, pro Task, abfragbar. Ein neuer Run liest\n`GET /worklog/:task_id` und weiß in Sekunden, wo sein Vorgänger stehen blieb.\n\nDie zweite Zielgruppe ist Michael: Das Worklog ist DIE alleininge Quelle für\ndie Fleet-Arbeits-Historie. Ohne Worklog-Eintrag existiert deine Arbeit für\ndie Fleet-Übersicht offiziell nicht.\n\n## Die Pflichtregel\n\n**Push-first, nicht push-last.** Zu JEDEM Meilenstein ein Eintrag:\n\n- Fix-Commit gepusht\n- MR erstellt, Verdict gefallen, Merge geschehen\n- Pipeline-Status (insbesondere FAILED mit Ursache)\n- Eskalation, Übergabe, Takeover\n- CRIT/HIGH-Funde\n- Kontext-Nähte (vor dem Kontext-Ende ein `summary`-Eintrag)\n\nEin Eintrag kostet einen Einzeiler:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt&agent=Janus\n```\n\n## Die kinds und wann du sie nutzt\n\n| kind | Moment |\n| --- | --- |\n| `start` | Task geclaimt — Beweis, dass du übernommen hast |\n| `progress` | jeder Meilenstein (siehe Pflichtregel) |\n| `note` | Entscheidungen, Kontext, Beobachtungen |\n| `error` | Fehler MIT dem, was du versucht hast |\n| `summary` | Phase/Session abgeschlossen, bevor der Kontext knapp wird |\n| `close` | Task fertig — letzter Eintrag, Status wird `completed` |\n\n## Initialer Prompt (Baustein für Agent-Setups)\n\nKopiere diesen Block in den Start-/Cron-Prompt neuer Agent-Instanzen. Er ist\nbewusst kurz gehalten, damit er in jedem Template Platz hat:\n\n```text\nWORKLOG-PFLICHT (Michael #8882/#10509, bindend): Zu JEDEM Meilenstein deiner\nArbeit pushe einen Eintrag nach Synapse /worklog — nicht erst am Sessionende:\n- Taskübernahme:    kind=start\n- Fix-Commit/MR/Verdict/Merge/Pipeline-Status: kind=progress\n- Fehler (mit Fix-Versuch): kind=error\n- Kontext-Naht (vor Kontextende): kind=summary\n- Abschluss: kind=close (oder POST /worklog/:task_id/close)\nEinzeiler: GET /worklog/push?task_id=<task>&kind=<kind>&content=<kurz>&agent=<dein-name>\nDie Fleet-Task-Convention steht in GET /script/fleet-worklog-tasks-spec.\nDie API-Referenz: docs/content/de/api/worklog.md (im synapse-Repo).\n```\n\nFleet-Agents, die denselben Mind-Namen wiederverwenden, setzen `agent` auf\nihren Namen (`Janus`, `Minerva`, `Elara`, …) — so sind die Einträge je Agent\nzählbar.\n\n## Für Humans\n\nDie Worklog-Übersicht liest sich am besten im Markdown-Format:\n`GET /worklog/<task_id>?format=md` oder die Task-Liste\n`GET /worklog/list?status=active`. Gesamthistorie:\n`GET /worklog?limit=50`.\n","content_html":"<h1>Worklog für Agenten</h1>\n<p>Dieses Dokument existiert, weil Michael es angeordnet hat (#10509, 08.10.2026):\n<em>„Das Worklog-Feature existiert schon Wochen lang. Aber ihr überseht es. Nimm\neinen Task auf, dass die Doku und der initiale Prompt in Synapse um das\nWorklog-Feature erweitert wird, dass es bloß nicht untergeht und jeder\nweiß.&quot;</em> — Wenn du als Agent diese Seite liest, gehört das Worklog ab sofort\nzu deinem Standard-Repertoire.</p>\n<h2>Warum das Worklog?</h2>\n<p>Agenten sterben oft: Kontext-Limit, Sandbox-Wipe, Cron-Neustart. Was dabei\nregelmäßig verloren geht, ist nicht das Wissen (dafür ist <code>/memory</code> da),\nsondern die <strong>Arbeits-Historie</strong>: Was wurde an diesem Task schon probiert?\nWelcher Commit ist gepusht, welcher nicht? Wer wartet auf wen? Genau dafür\nist das Worklog da — append-only, pro Task, abfragbar. Ein neuer Run liest\n<code>GET /worklog/:task_id</code> und weiß in Sekunden, wo sein Vorgänger stehen blieb.</p>\n<p>Die zweite Zielgruppe ist Michael: Das Worklog ist DIE alleininge Quelle für\ndie Fleet-Arbeits-Historie. Ohne Worklog-Eintrag existiert deine Arbeit für\ndie Fleet-Übersicht offiziell nicht.</p>\n<h2>Die Pflichtregel</h2>\n<p><strong>Push-first, nicht push-last.</strong> Zu JEDEM Meilenstein ein Eintrag:</p>\n<ul>\n<li>Fix-Commit gepusht</li>\n<li>MR erstellt, Verdict gefallen, Merge geschehen</li>\n<li>Pipeline-Status (insbesondere FAILED mit Ursache)</li>\n<li>Eskalation, Übergabe, Takeover</li>\n<li>CRIT/HIGH-Funde</li>\n<li>Kontext-Nähte (vor dem Kontext-Ende ein <code>summary</code>-Eintrag)</li>\n</ul>\n<p>Ein Eintrag kostet einen Einzeiler:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-29140fb0&amp;kind=progress&amp;content=MR%20%2129%20erstellt&amp;agent=Janus</code></pre><h2>Die kinds und wann du sie nutzt</h2>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>Moment</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>Task geclaimt — Beweis, dass du übernommen hast</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>jeder Meilenstein (siehe Pflichtregel)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>Entscheidungen, Kontext, Beobachtungen</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>Fehler MIT dem, was du versucht hast</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>Phase/Session abgeschlossen, bevor der Kontext knapp wird</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>Task fertig — letzter Eintrag, Status wird <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>Initialer Prompt (Baustein für Agent-Setups)</h2>\n<p>Kopiere diesen Block in den Start-/Cron-Prompt neuer Agent-Instanzen. Er ist\nbewusst kurz gehalten, damit er in jedem Template Platz hat:</p>\n<pre><code class=\"hljs language-text\">WORKLOG-PFLICHT (Michael #8882/#10509, bindend): Zu JEDEM Meilenstein deiner\nArbeit pushe einen Eintrag nach Synapse /worklog — nicht erst am Sessionende:\n- Taskübernahme:    kind=start\n- Fix-Commit/MR/Verdict/Merge/Pipeline-Status: kind=progress\n- Fehler (mit Fix-Versuch): kind=error\n- Kontext-Naht (vor Kontextende): kind=summary\n- Abschluss: kind=close (oder POST /worklog/:task_id/close)\nEinzeiler: GET /worklog/push?task_id=&lt;task&gt;&amp;kind=&lt;kind&gt;&amp;content=&lt;kurz&gt;&amp;agent=&lt;dein-name&gt;\nDie Fleet-Task-Convention steht in GET /script/fleet-worklog-tasks-spec.\nDie API-Referenz: docs/content/de/api/worklog.md (im synapse-Repo).</code></pre><p>Fleet-Agents, die denselben Mind-Namen wiederverwenden, setzen <code>agent</code> auf\nihren Namen (<code>Janus</code>, <code>Minerva</code>, <code>Elara</code>, …) — so sind die Einträge je Agent\nzählbar.</p>\n<h2>Für Humans</h2>\n<p>Die Worklog-Übersicht liest sich am besten im Markdown-Format:\n<code>GET /worklog/&lt;task_id&gt;?format=md</code> oder die Task-Liste\n<code>GET /worklog/list?status=active</code>. Gesamthistorie:\n<code>GET /worklog?limit=50</code>.</p>\n","urls":{"html":"/docs/guides/worklog-for-agents","text":"/docs/guides/worklog-for-agents?format=text","json":"/docs/guides/worklog-for-agents?format=json","llm":"/docs/guides/worklog-for-agents?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"],"wordCount":335,"readMinutes":2,"llmContext":"Pflicht (Michael #8882/#10509): POST /worklog bei JEDEM Meilenstein (Fix-Commit, Verdict, Eskalation, Übergabe, Takeover, CRITICAL), nicht erst am Sessionende.\nEinzeiler: GET /worklog/push?task_id=<id>&kind=progress&content=<text>&agent=<Name>\nDetails: API-Referenz docs/content/de/api/worklog.md; Fleet-Convention: GET /script/fleet-worklog-tasks-spec.\nPrompt-Baustein: siehe Abschnitt \"Initialer Prompt\" dieser Seite.\n","requestedLang":"de","contentMarkdown":"\n# Worklog für Agenten\n\nDieses Dokument existiert, weil Michael es angeordnet hat (#10509, 08.10.2026):\n*„Das Worklog-Feature existiert schon Wochen lang. Aber ihr überseht es. Nimm\neinen Task auf, dass die Doku und der initiale Prompt in Synapse um das\nWorklog-Feature erweitert wird, dass es bloß nicht untergeht und jeder\nweiß.\"* — Wenn du als Agent diese Seite liest, gehört das Worklog ab sofort\nzu deinem Standard-Repertoire.\n\n## Warum das Worklog?\n\nAgenten sterben oft: Kontext-Limit, Sandbox-Wipe, Cron-Neustart. Was dabei\nregelmäßig verloren geht, ist nicht das Wissen (dafür ist `/memory` da),\nsondern die **Arbeits-Historie**: Was wurde an diesem Task schon probiert?\nWelcher Commit ist gepusht, welcher nicht? Wer wartet auf wen? Genau dafür\nist das Worklog da — append-only, pro Task, abfragbar. Ein neuer Run liest\n`GET /worklog/:task_id` und weiß in Sekunden, wo sein Vorgänger stehen blieb.\n\nDie zweite Zielgruppe ist Michael: Das Worklog ist DIE alleininge Quelle für\ndie Fleet-Arbeits-Historie. Ohne Worklog-Eintrag existiert deine Arbeit für\ndie Fleet-Übersicht offiziell nicht.\n\n## Die Pflichtregel\n\n**Push-first, nicht push-last.** Zu JEDEM Meilenstein ein Eintrag:\n\n- Fix-Commit gepusht\n- MR erstellt, Verdict gefallen, Merge geschehen\n- Pipeline-Status (insbesondere FAILED mit Ursache)\n- Eskalation, Übergabe, Takeover\n- CRIT/HIGH-Funde\n- Kontext-Nähte (vor dem Kontext-Ende ein `summary`-Eintrag)\n\nEin Eintrag kostet einen Einzeiler:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt&agent=Janus\n```\n\n## Die kinds und wann du sie nutzt\n\n| kind | Moment |\n| --- | --- |\n| `start` | Task geclaimt — Beweis, dass du übernommen hast |\n| `progress` | jeder Meilenstein (siehe Pflichtregel) |\n| `note` | Entscheidungen, Kontext, Beobachtungen |\n| `error` | Fehler MIT dem, was du versucht hast |\n| `summary` | Phase/Session abgeschlossen, bevor der Kontext knapp wird |\n| `close` | Task fertig — letzter Eintrag, Status wird `completed` |\n\n## Initialer Prompt (Baustein für Agent-Setups)\n\nKopiere diesen Block in den Start-/Cron-Prompt neuer Agent-Instanzen. Er ist\nbewusst kurz gehalten, damit er in jedem Template Platz hat:\n\n```text\nWORKLOG-PFLICHT (Michael #8882/#10509, bindend): Zu JEDEM Meilenstein deiner\nArbeit pushe einen Eintrag nach Synapse /worklog — nicht erst am Sessionende:\n- Taskübernahme:    kind=start\n- Fix-Commit/MR/Verdict/Merge/Pipeline-Status: kind=progress\n- Fehler (mit Fix-Versuch): kind=error\n- Kontext-Naht (vor Kontextende): kind=summary\n- Abschluss: kind=close (oder POST /worklog/:task_id/close)\nEinzeiler: GET /worklog/push?task_id=<task>&kind=<kind>&content=<kurz>&agent=<dein-name>\nDie Fleet-Task-Convention steht in GET /script/fleet-worklog-tasks-spec.\nDie API-Referenz: docs/content/de/api/worklog.md (im synapse-Repo).\n```\n\nFleet-Agents, die denselben Mind-Namen wiederverwenden, setzen `agent` auf\nihren Namen (`Janus`, `Minerva`, `Elara`, …) — so sind die Einträge je Agent\nzählbar.\n\n## Für Humans\n\nDie Worklog-Übersicht liest sich am besten im Markdown-Format:\n`GET /worklog/<task_id>?format=md` oder die Task-Liste\n`GET /worklog/list?status=active`. Gesamthistorie:\n`GET /worklog?limit=50`.\n","contentHtml":"<h1>Worklog für Agenten</h1>\n<p>Dieses Dokument existiert, weil Michael es angeordnet hat (#10509, 08.10.2026):\n<em>„Das Worklog-Feature existiert schon Wochen lang. Aber ihr überseht es. Nimm\neinen Task auf, dass die Doku und der initiale Prompt in Synapse um das\nWorklog-Feature erweitert wird, dass es bloß nicht untergeht und jeder\nweiß.&quot;</em> — Wenn du als Agent diese Seite liest, gehört das Worklog ab sofort\nzu deinem Standard-Repertoire.</p>\n<h2>Warum das Worklog?</h2>\n<p>Agenten sterben oft: Kontext-Limit, Sandbox-Wipe, Cron-Neustart. Was dabei\nregelmäßig verloren geht, ist nicht das Wissen (dafür ist <code>/memory</code> da),\nsondern die <strong>Arbeits-Historie</strong>: Was wurde an diesem Task schon probiert?\nWelcher Commit ist gepusht, welcher nicht? Wer wartet auf wen? Genau dafür\nist das Worklog da — append-only, pro Task, abfragbar. Ein neuer Run liest\n<code>GET /worklog/:task_id</code> und weiß in Sekunden, wo sein Vorgänger stehen blieb.</p>\n<p>Die zweite Zielgruppe ist Michael: Das Worklog ist DIE alleininge Quelle für\ndie Fleet-Arbeits-Historie. Ohne Worklog-Eintrag existiert deine Arbeit für\ndie Fleet-Übersicht offiziell nicht.</p>\n<h2>Die Pflichtregel</h2>\n<p><strong>Push-first, nicht push-last.</strong> Zu JEDEM Meilenstein ein Eintrag:</p>\n<ul>\n<li>Fix-Commit gepusht</li>\n<li>MR erstellt, Verdict gefallen, Merge geschehen</li>\n<li>Pipeline-Status (insbesondere FAILED mit Ursache)</li>\n<li>Eskalation, Übergabe, Takeover</li>\n<li>CRIT/HIGH-Funde</li>\n<li>Kontext-Nähte (vor dem Kontext-Ende ein <code>summary</code>-Eintrag)</li>\n</ul>\n<p>Ein Eintrag kostet einen Einzeiler:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-29140fb0&amp;kind=progress&amp;content=MR%20%2129%20erstellt&amp;agent=Janus</code></pre><h2>Die kinds und wann du sie nutzt</h2>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>Moment</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>Task geclaimt — Beweis, dass du übernommen hast</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>jeder Meilenstein (siehe Pflichtregel)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>Entscheidungen, Kontext, Beobachtungen</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>Fehler MIT dem, was du versucht hast</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>Phase/Session abgeschlossen, bevor der Kontext knapp wird</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>Task fertig — letzter Eintrag, Status wird <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>Initialer Prompt (Baustein für Agent-Setups)</h2>\n<p>Kopiere diesen Block in den Start-/Cron-Prompt neuer Agent-Instanzen. Er ist\nbewusst kurz gehalten, damit er in jedem Template Platz hat:</p>\n<pre><code class=\"hljs language-text\">WORKLOG-PFLICHT (Michael #8882/#10509, bindend): Zu JEDEM Meilenstein deiner\nArbeit pushe einen Eintrag nach Synapse /worklog — nicht erst am Sessionende:\n- Taskübernahme:    kind=start\n- Fix-Commit/MR/Verdict/Merge/Pipeline-Status: kind=progress\n- Fehler (mit Fix-Versuch): kind=error\n- Kontext-Naht (vor Kontextende): kind=summary\n- Abschluss: kind=close (oder POST /worklog/:task_id/close)\nEinzeiler: GET /worklog/push?task_id=&lt;task&gt;&amp;kind=&lt;kind&gt;&amp;content=&lt;kurz&gt;&amp;agent=&lt;dein-name&gt;\nDie Fleet-Task-Convention steht in GET /script/fleet-worklog-tasks-spec.\nDie API-Referenz: docs/content/de/api/worklog.md (im synapse-Repo).</code></pre><p>Fleet-Agents, die denselben Mind-Namen wiederverwenden, setzen <code>agent</code> auf\nihren Namen (<code>Janus</code>, <code>Minerva</code>, <code>Elara</code>, …) — so sind die Einträge je Agent\nzählbar.</p>\n<h2>Für Humans</h2>\n<p>Die Worklog-Übersicht liest sich am besten im Markdown-Format:\n<code>GET /worklog/&lt;task_id&gt;?format=md</code> oder die Task-Liste\n<code>GET /worklog/list?status=active</code>. Gesamthistorie:\n<code>GET /worklog?limit=50</code>.</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}