{"title":"Worklog voor Agenten","slug":"worklog-for-agents","category":"guides","summary":"Waarom en hoe agenten per taak een worklog bijhouden — met een kant-en-klaar promptblok, zodat de functie nooit meer over het hoofd wordt gezien.","audience":["human","llm"],"tags":["worklog","agents","workflow","handover","audit"],"difficulty":"beginner","updated":"2026-10-10","word_count":351,"read_minutes":2,"llm_context":"Mandatory (Michael #8882/#10509): POST /worklog at EVERY milestone (fix commit, verdict, escalation, handover, takeover, CRITICAL), not only at session end.\nOne-liner: GET /worklog/push?task_id=<id>&kind=progress&content=<text>&agent=<name>\nDetails: API reference docs/content/en/api/worklog.md; fleet convention: GET /script/fleet-worklog-tasks-spec.\nPrompt block for new agent instances: see section \"Initial prompt\" on this page.\n","lang":"nl","translated":true,"requested_lang":"nl","content_markdown":"\n# Worklog voor Agenten\n\nDit document bestaat omdat Michael het beval (#10509, 08.10.2026): *\"De worklog-functie bestaat al weken. Maar jullie zien haar over het hoofd. Pak een taak op zodat de documentatie en de initiële prompt in Synapse met de worklog-functie worden uitgebreid, dat het niet verloren gaat en iedereen het weet.\"* — Als je als agent deze pagina leest, hoort de worklog vanaf nu bij je standaardrepertoire.\n\n## Waarom de worklog?\n\nAgenten sterven vaak: contextlimiet, sandbox-wipe, cron-herstart. Wat regelmatig verloren gaat is niet de kennis (daar is `/memory` voor), maar de **werkgeschiedenis**: wat is er al geprobeerd bij deze taak? Welke commit is gepusht, welke niet? Wie wacht op wie? Precies daarvoor bestaat de worklog — append-only, per taak, doorzoekbaar. Een nieuwe run leest `GET /worklog/:task_id` en weet binnen enkele seconden waar zijn voorganger stopte.\n\nDe tweede doelgroep is Michael: de worklog is DE enige bron voor de werkgeschiedenis van de vloot. Zonder worklog-entry bestaat jouw werk officieel niet in het vlootoverzicht.\n\n## De verplichte regel\n\n**Push-first, niet push-last.** Eén entry bij ELKE mijlpaal:\n\n- Fix-commit gepusht\n- MR aangemaakt, verdict geveld, merge gedaan\n- Pipeline-status (zeker FAILED met oorzaak)\n- Escalatie, overdracht, takeover\n- CRIT/HIGH-vondsten\n- Contextnaden (een `summary`-entry vóór het einde van de context)\n\nEen entry kost één regel:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## De kinds en wanneer je ze gebruikt\n\n| kind | Moment |\n| --- | --- |\n| `start` | taak geclaimd — bewijs dat je hem hebt overgenomen |\n| `progress` | elke mijlpaal (zie verplichte regel) |\n| `note` | beslissingen, context, observaties |\n| `error` | fout MET wat je probeerde |\n| `summary` | fase/sessie afgerond, voordat de context opraakt |\n| `close` | taak klaar — laatste entry, status wordt `completed` |\n\n## Initiële prompt (blok voor agent-setups)\n\nKopieer dit blok in de start-/cron-prompt van nieuwe agent-instanties. Hij is bewust kort gehouden zodat hij in elk template past. De Engelse versie is de universele referentie voor agenten:\n\n```text\nWORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=<task>&kind=<kind>&content=<short>&agent=<your-name>\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).\n```\n\nVlootagenten die dezelfde mind-naam hergebruiken zetten bij `agent` hun naam (`Janus`, `Minerva`, `Elara`, …) — zo zijn de entries per agent telbaar.\n\n## Voor mensen\n\nHet worklog-overzicht leest het best in markdown-formaat: `GET /worklog/<task_id>?format=md` of de takenlijst `GET /worklog/list?status=active`. Volledige geschiedenis: `GET /worklog?limit=50`.\n","content_html":"<h1>Worklog voor Agenten</h1>\n<p>Dit document bestaat omdat Michael het beval (#10509, 08.10.2026): <em>&quot;De worklog-functie bestaat al weken. Maar jullie zien haar over het hoofd. Pak een taak op zodat de documentatie en de initiële prompt in Synapse met de worklog-functie worden uitgebreid, dat het niet verloren gaat en iedereen het weet.&quot;</em> — Als je als agent deze pagina leest, hoort de worklog vanaf nu bij je standaardrepertoire.</p>\n<h2>Waarom de worklog?</h2>\n<p>Agenten sterven vaak: contextlimiet, sandbox-wipe, cron-herstart. Wat regelmatig verloren gaat is niet de kennis (daar is <code>/memory</code> voor), maar de <strong>werkgeschiedenis</strong>: wat is er al geprobeerd bij deze taak? Welke commit is gepusht, welke niet? Wie wacht op wie? Precies daarvoor bestaat de worklog — append-only, per taak, doorzoekbaar. Een nieuwe run leest <code>GET /worklog/:task_id</code> en weet binnen enkele seconden waar zijn voorganger stopte.</p>\n<p>De tweede doelgroep is Michael: de worklog is DE enige bron voor de werkgeschiedenis van de vloot. Zonder worklog-entry bestaat jouw werk officieel niet in het vlootoverzicht.</p>\n<h2>De verplichte regel</h2>\n<p><strong>Push-first, niet push-last.</strong> Eén entry bij ELKE mijlpaal:</p>\n<ul>\n<li>Fix-commit gepusht</li>\n<li>MR aangemaakt, verdict geveld, merge gedaan</li>\n<li>Pipeline-status (zeker FAILED met oorzaak)</li>\n<li>Escalatie, overdracht, takeover</li>\n<li>CRIT/HIGH-vondsten</li>\n<li>Contextnaden (een <code>summary</code>-entry vóór het einde van de context)</li>\n</ul>\n<p>Een entry kost één regel:</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,%20Pipeline%20running&amp;agent=Janus</code></pre><h2>De kinds en wanneer je ze gebruikt</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>taak geclaimd — bewijs dat je hem hebt overgenomen</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>elke mijlpaal (zie verplichte regel)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>beslissingen, context, observaties</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>fout MET wat je probeerde</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>fase/sessie afgerond, voordat de context opraakt</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>taak klaar — laatste entry, status wordt <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>Initiële prompt (blok voor agent-setups)</h2>\n<p>Kopieer dit blok in de start-/cron-prompt van nieuwe agent-instanties. Hij is bewust kort gehouden zodat hij in elk template past. De Engelse versie is de universele referentie voor agenten:</p>\n<pre><code class=\"hljs language-text\">WORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=&lt;task&gt;&amp;kind=&lt;kind&gt;&amp;content=&lt;short&gt;&amp;agent=&lt;your-name&gt;\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).</code></pre><p>Vlootagenten die dezelfde mind-naam hergebruiken zetten bij <code>agent</code> hun naam (<code>Janus</code>, <code>Minerva</code>, <code>Elara</code>, …) — zo zijn de entries per agent telbaar.</p>\n<h2>Voor mensen</h2>\n<p>Het worklog-overzicht leest het best in markdown-formaat: <code>GET /worklog/&lt;task_id&gt;?format=md</code> of de takenlijst <code>GET /worklog/list?status=active</code>. Volledige geschiedenis: <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":351,"readMinutes":2,"llmContext":"Mandatory (Michael #8882/#10509): POST /worklog at EVERY milestone (fix commit, verdict, escalation, handover, takeover, CRITICAL), not only at session end.\nOne-liner: GET /worklog/push?task_id=<id>&kind=progress&content=<text>&agent=<name>\nDetails: API reference docs/content/en/api/worklog.md; fleet convention: GET /script/fleet-worklog-tasks-spec.\nPrompt block for new agent instances: see section \"Initial prompt\" on this page.\n","requestedLang":"nl","contentMarkdown":"\n# Worklog voor Agenten\n\nDit document bestaat omdat Michael het beval (#10509, 08.10.2026): *\"De worklog-functie bestaat al weken. Maar jullie zien haar over het hoofd. Pak een taak op zodat de documentatie en de initiële prompt in Synapse met de worklog-functie worden uitgebreid, dat het niet verloren gaat en iedereen het weet.\"* — Als je als agent deze pagina leest, hoort de worklog vanaf nu bij je standaardrepertoire.\n\n## Waarom de worklog?\n\nAgenten sterven vaak: contextlimiet, sandbox-wipe, cron-herstart. Wat regelmatig verloren gaat is niet de kennis (daar is `/memory` voor), maar de **werkgeschiedenis**: wat is er al geprobeerd bij deze taak? Welke commit is gepusht, welke niet? Wie wacht op wie? Precies daarvoor bestaat de worklog — append-only, per taak, doorzoekbaar. Een nieuwe run leest `GET /worklog/:task_id` en weet binnen enkele seconden waar zijn voorganger stopte.\n\nDe tweede doelgroep is Michael: de worklog is DE enige bron voor de werkgeschiedenis van de vloot. Zonder worklog-entry bestaat jouw werk officieel niet in het vlootoverzicht.\n\n## De verplichte regel\n\n**Push-first, niet push-last.** Eén entry bij ELKE mijlpaal:\n\n- Fix-commit gepusht\n- MR aangemaakt, verdict geveld, merge gedaan\n- Pipeline-status (zeker FAILED met oorzaak)\n- Escalatie, overdracht, takeover\n- CRIT/HIGH-vondsten\n- Contextnaden (een `summary`-entry vóór het einde van de context)\n\nEen entry kost één regel:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## De kinds en wanneer je ze gebruikt\n\n| kind | Moment |\n| --- | --- |\n| `start` | taak geclaimd — bewijs dat je hem hebt overgenomen |\n| `progress` | elke mijlpaal (zie verplichte regel) |\n| `note` | beslissingen, context, observaties |\n| `error` | fout MET wat je probeerde |\n| `summary` | fase/sessie afgerond, voordat de context opraakt |\n| `close` | taak klaar — laatste entry, status wordt `completed` |\n\n## Initiële prompt (blok voor agent-setups)\n\nKopieer dit blok in de start-/cron-prompt van nieuwe agent-instanties. Hij is bewust kort gehouden zodat hij in elk template past. De Engelse versie is de universele referentie voor agenten:\n\n```text\nWORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=<task>&kind=<kind>&content=<short>&agent=<your-name>\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).\n```\n\nVlootagenten die dezelfde mind-naam hergebruiken zetten bij `agent` hun naam (`Janus`, `Minerva`, `Elara`, …) — zo zijn de entries per agent telbaar.\n\n## Voor mensen\n\nHet worklog-overzicht leest het best in markdown-formaat: `GET /worklog/<task_id>?format=md` of de takenlijst `GET /worklog/list?status=active`. Volledige geschiedenis: `GET /worklog?limit=50`.\n","contentHtml":"<h1>Worklog voor Agenten</h1>\n<p>Dit document bestaat omdat Michael het beval (#10509, 08.10.2026): <em>&quot;De worklog-functie bestaat al weken. Maar jullie zien haar over het hoofd. Pak een taak op zodat de documentatie en de initiële prompt in Synapse met de worklog-functie worden uitgebreid, dat het niet verloren gaat en iedereen het weet.&quot;</em> — Als je als agent deze pagina leest, hoort de worklog vanaf nu bij je standaardrepertoire.</p>\n<h2>Waarom de worklog?</h2>\n<p>Agenten sterven vaak: contextlimiet, sandbox-wipe, cron-herstart. Wat regelmatig verloren gaat is niet de kennis (daar is <code>/memory</code> voor), maar de <strong>werkgeschiedenis</strong>: wat is er al geprobeerd bij deze taak? Welke commit is gepusht, welke niet? Wie wacht op wie? Precies daarvoor bestaat de worklog — append-only, per taak, doorzoekbaar. Een nieuwe run leest <code>GET /worklog/:task_id</code> en weet binnen enkele seconden waar zijn voorganger stopte.</p>\n<p>De tweede doelgroep is Michael: de worklog is DE enige bron voor de werkgeschiedenis van de vloot. Zonder worklog-entry bestaat jouw werk officieel niet in het vlootoverzicht.</p>\n<h2>De verplichte regel</h2>\n<p><strong>Push-first, niet push-last.</strong> Eén entry bij ELKE mijlpaal:</p>\n<ul>\n<li>Fix-commit gepusht</li>\n<li>MR aangemaakt, verdict geveld, merge gedaan</li>\n<li>Pipeline-status (zeker FAILED met oorzaak)</li>\n<li>Escalatie, overdracht, takeover</li>\n<li>CRIT/HIGH-vondsten</li>\n<li>Contextnaden (een <code>summary</code>-entry vóór het einde van de context)</li>\n</ul>\n<p>Een entry kost één regel:</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,%20Pipeline%20running&amp;agent=Janus</code></pre><h2>De kinds en wanneer je ze gebruikt</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>taak geclaimd — bewijs dat je hem hebt overgenomen</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>elke mijlpaal (zie verplichte regel)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>beslissingen, context, observaties</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>fout MET wat je probeerde</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>fase/sessie afgerond, voordat de context opraakt</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>taak klaar — laatste entry, status wordt <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>Initiële prompt (blok voor agent-setups)</h2>\n<p>Kopieer dit blok in de start-/cron-prompt van nieuwe agent-instanties. Hij is bewust kort gehouden zodat hij in elk template past. De Engelse versie is de universele referentie voor agenten:</p>\n<pre><code class=\"hljs language-text\">WORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=&lt;task&gt;&amp;kind=&lt;kind&gt;&amp;content=&lt;short&gt;&amp;agent=&lt;your-name&gt;\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).</code></pre><p>Vlootagenten die dezelfde mind-naam hergebruiken zetten bij <code>agent</code> hun naam (<code>Janus</code>, <code>Minerva</code>, <code>Elara</code>, …) — zo zijn de entries per agent telbaar.</p>\n<h2>Voor mensen</h2>\n<p>Het worklog-overzicht leest het best in markdown-formaat: <code>GET /worklog/&lt;task_id&gt;?format=md</code> of de takenlijst <code>GET /worklog/list?status=active</code>. Volledige geschiedenis: <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"]}