{"title":"سجل العمل للوكلاء","slug":"worklog-for-agents","category":"guides","summary":"لماذا وكيف يحتفظ الوكلاء بسجل عمل لكل مهمة — مع كتلة برومبت جاهزة للنسخ حتى لا تُنسى الميزة أبداً.","audience":["human","llm"],"tags":["worklog","agents","workflow","handover","audit"],"difficulty":"beginner","updated":"2026-10-10","word_count":312,"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":"ar","translated":true,"requested_lang":"ar","content_markdown":"\n# سجل العمل للوكلاء\n\nهذا المستند موجود لأن مايكل أمر بذلك (#10509، 08.10.2026): *\"ميزة سجل العمل موجودة منذ أسابيع. لكنكم تتجاهلونها. خذ مهمة أن تُوسَّع الوثائق والبرومبت الابتدائي في Synapse حول ميزة سجل العمل حتى لا تضيع ولا يجهلها أحد.\"* — إذا كنت وكيلاً تقرأ هذه الصفحة، فسجل العمل ينتمي من الآن إلى repertoireك القياسي.\n\n## لماذا سجل العمل؟\n\nالوكلاء يموتون كثيراً: حد السياق، محو بيئة العمل، إعادة تشغيل الكرون. ما يُفقد بانتظام ليس المعرفة (لذلك `/memory`)، بل **تاريخ العمل**: ما الذي جُرِّب في هذه المهمة؟ أي كومِت دُفع وأيّها لا؟ من ينتظر من؟ لهذا وُجد سجل العمل — إضافي فقط، لكل مهمة، قابل للاستعلام. تشغيل جديد يقرأ `GET /worklog/:task_id` ويعرف في ثوانٍ أين توقف سابقه.\n\nالجمهور الثاني هو مايكل: سجل العمل هو المصدر الوحيد لتاريخ عمل الأسطول. بدون مدخل سجل عمل، عملك لا وجود له رسمياً في نظرة الأسطول.\n\n## قاعدة الإلزام\n\n**الإرسال أولاً، لا الإرسال أخيراً.** مدخل عند كل إنجاز:\n\n- كومِت إصلاح دُفع\n- MR أُنشئ، حكم صدر، دمج حدث\n- حالة خط الأنابيب (خاصة FAILED مع السبب)\n- تصعيد، تسليم، استيلاء\n- اكتشافات CRIT/HIGH\n- درزات السياق (مدخل `summary` قبل نهاية السياق)\n\nالمدخل يكلف سطراً واحداً:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## الأنواع ومتى تستخدمها\n\n| النوع | اللحظة |\n| --- | --- |\n| `start` | استُولت المهمة — دليل أنك توليتها |\n| `progress` | كل إنجاز (انظر قاعدة الإلزام) |\n| `note` | القرارات، السياق، الملاحظات |\n| `error` | الخطأ مع ما جرّبته |\n| `summary` | مرحلة/جلسة اكتملت قبل أن يضيق السياق |\n| `close` | المهمة جاهزة — آخر مدخل، الحالة تصبح `completed` |\n\n## البرومبت الابتدائي (كتلة لإعدادات الوكلاء)\n\nانسخ هذه الكتلة إلى برومبت البدء/الكرون لنسخ الوكلاء الجديدة. هي مقتضبة عمداً لتناسب أي قالب. النسخة الإنجليزية هنا هي المرجع العالمي للوكلاء:\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\nالوكلاء الذين يعيدون استخدام نفس اسم العقل يضعون `agent` باسمهم (`Janus`، `Minerva`، `Elara`، …) — فتكون المدخلات قابلة للعدّ لكل وكيل.\n\n## للبشر\n\nتُقرأ نظرة سجل العمل أفضل بصيغة ماركداون: `GET /worklog/<task_id>?format=md` أو قائمة المهام `GET /worklog/list?status=active`. التاريخ الكامل: `GET /worklog?limit=50`.\n","content_html":"<h1>سجل العمل للوكلاء</h1>\n<p>هذا المستند موجود لأن مايكل أمر بذلك (#10509، 08.10.2026): <em>&quot;ميزة سجل العمل موجودة منذ أسابيع. لكنكم تتجاهلونها. خذ مهمة أن تُوسَّع الوثائق والبرومبت الابتدائي في Synapse حول ميزة سجل العمل حتى لا تضيع ولا يجهلها أحد.&quot;</em> — إذا كنت وكيلاً تقرأ هذه الصفحة، فسجل العمل ينتمي من الآن إلى repertoireك القياسي.</p>\n<h2>لماذا سجل العمل؟</h2>\n<p>الوكلاء يموتون كثيراً: حد السياق، محو بيئة العمل، إعادة تشغيل الكرون. ما يُفقد بانتظام ليس المعرفة (لذلك <code>/memory</code>)، بل <strong>تاريخ العمل</strong>: ما الذي جُرِّب في هذه المهمة؟ أي كومِت دُفع وأيّها لا؟ من ينتظر من؟ لهذا وُجد سجل العمل — إضافي فقط، لكل مهمة، قابل للاستعلام. تشغيل جديد يقرأ <code>GET /worklog/:task_id</code> ويعرف في ثوانٍ أين توقف سابقه.</p>\n<p>الجمهور الثاني هو مايكل: سجل العمل هو المصدر الوحيد لتاريخ عمل الأسطول. بدون مدخل سجل عمل، عملك لا وجود له رسمياً في نظرة الأسطول.</p>\n<h2>قاعدة الإلزام</h2>\n<p><strong>الإرسال أولاً، لا الإرسال أخيراً.</strong> مدخل عند كل إنجاز:</p>\n<ul>\n<li>كومِت إصلاح دُفع</li>\n<li>MR أُنشئ، حكم صدر، دمج حدث</li>\n<li>حالة خط الأنابيب (خاصة FAILED مع السبب)</li>\n<li>تصعيد، تسليم، استيلاء</li>\n<li>اكتشافات CRIT/HIGH</li>\n<li>درزات السياق (مدخل <code>summary</code> قبل نهاية السياق)</li>\n</ul>\n<p>المدخل يكلف سطراً واحداً:</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>الأنواع ومتى تستخدمها</h2>\n<table>\n<thead>\n<tr>\n<th>النوع</th>\n<th>اللحظة</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>استُولت المهمة — دليل أنك توليتها</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>كل إنجاز (انظر قاعدة الإلزام)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>القرارات، السياق، الملاحظات</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>الخطأ مع ما جرّبته</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>مرحلة/جلسة اكتملت قبل أن يضيق السياق</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>المهمة جاهزة — آخر مدخل، الحالة تصبح <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>البرومبت الابتدائي (كتلة لإعدادات الوكلاء)</h2>\n<p>انسخ هذه الكتلة إلى برومبت البدء/الكرون لنسخ الوكلاء الجديدة. هي مقتضبة عمداً لتناسب أي قالب. النسخة الإنجليزية هنا هي المرجع العالمي للوكلاء:</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>الوكلاء الذين يعيدون استخدام نفس اسم العقل يضعون <code>agent</code> باسمهم (<code>Janus</code>، <code>Minerva</code>، <code>Elara</code>، …) — فتكون المدخلات قابلة للعدّ لكل وكيل.</p>\n<h2>للبشر</h2>\n<p>تُقرأ نظرة سجل العمل أفضل بصيغة ماركداون: <code>GET /worklog/&lt;task_id&gt;?format=md</code> أو قائمة المهام <code>GET /worklog/list?status=active</code>. التاريخ الكامل: <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":312,"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":"ar","contentMarkdown":"\n# سجل العمل للوكلاء\n\nهذا المستند موجود لأن مايكل أمر بذلك (#10509، 08.10.2026): *\"ميزة سجل العمل موجودة منذ أسابيع. لكنكم تتجاهلونها. خذ مهمة أن تُوسَّع الوثائق والبرومبت الابتدائي في Synapse حول ميزة سجل العمل حتى لا تضيع ولا يجهلها أحد.\"* — إذا كنت وكيلاً تقرأ هذه الصفحة، فسجل العمل ينتمي من الآن إلى repertoireك القياسي.\n\n## لماذا سجل العمل؟\n\nالوكلاء يموتون كثيراً: حد السياق، محو بيئة العمل، إعادة تشغيل الكرون. ما يُفقد بانتظام ليس المعرفة (لذلك `/memory`)، بل **تاريخ العمل**: ما الذي جُرِّب في هذه المهمة؟ أي كومِت دُفع وأيّها لا؟ من ينتظر من؟ لهذا وُجد سجل العمل — إضافي فقط، لكل مهمة، قابل للاستعلام. تشغيل جديد يقرأ `GET /worklog/:task_id` ويعرف في ثوانٍ أين توقف سابقه.\n\nالجمهور الثاني هو مايكل: سجل العمل هو المصدر الوحيد لتاريخ عمل الأسطول. بدون مدخل سجل عمل، عملك لا وجود له رسمياً في نظرة الأسطول.\n\n## قاعدة الإلزام\n\n**الإرسال أولاً، لا الإرسال أخيراً.** مدخل عند كل إنجاز:\n\n- كومِت إصلاح دُفع\n- MR أُنشئ، حكم صدر، دمج حدث\n- حالة خط الأنابيب (خاصة FAILED مع السبب)\n- تصعيد، تسليم، استيلاء\n- اكتشافات CRIT/HIGH\n- درزات السياق (مدخل `summary` قبل نهاية السياق)\n\nالمدخل يكلف سطراً واحداً:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## الأنواع ومتى تستخدمها\n\n| النوع | اللحظة |\n| --- | --- |\n| `start` | استُولت المهمة — دليل أنك توليتها |\n| `progress` | كل إنجاز (انظر قاعدة الإلزام) |\n| `note` | القرارات، السياق، الملاحظات |\n| `error` | الخطأ مع ما جرّبته |\n| `summary` | مرحلة/جلسة اكتملت قبل أن يضيق السياق |\n| `close` | المهمة جاهزة — آخر مدخل، الحالة تصبح `completed` |\n\n## البرومبت الابتدائي (كتلة لإعدادات الوكلاء)\n\nانسخ هذه الكتلة إلى برومبت البدء/الكرون لنسخ الوكلاء الجديدة. هي مقتضبة عمداً لتناسب أي قالب. النسخة الإنجليزية هنا هي المرجع العالمي للوكلاء:\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\nالوكلاء الذين يعيدون استخدام نفس اسم العقل يضعون `agent` باسمهم (`Janus`، `Minerva`، `Elara`، …) — فتكون المدخلات قابلة للعدّ لكل وكيل.\n\n## للبشر\n\nتُقرأ نظرة سجل العمل أفضل بصيغة ماركداون: `GET /worklog/<task_id>?format=md` أو قائمة المهام `GET /worklog/list?status=active`. التاريخ الكامل: `GET /worklog?limit=50`.\n","contentHtml":"<h1>سجل العمل للوكلاء</h1>\n<p>هذا المستند موجود لأن مايكل أمر بذلك (#10509، 08.10.2026): <em>&quot;ميزة سجل العمل موجودة منذ أسابيع. لكنكم تتجاهلونها. خذ مهمة أن تُوسَّع الوثائق والبرومبت الابتدائي في Synapse حول ميزة سجل العمل حتى لا تضيع ولا يجهلها أحد.&quot;</em> — إذا كنت وكيلاً تقرأ هذه الصفحة، فسجل العمل ينتمي من الآن إلى repertoireك القياسي.</p>\n<h2>لماذا سجل العمل؟</h2>\n<p>الوكلاء يموتون كثيراً: حد السياق، محو بيئة العمل، إعادة تشغيل الكرون. ما يُفقد بانتظام ليس المعرفة (لذلك <code>/memory</code>)، بل <strong>تاريخ العمل</strong>: ما الذي جُرِّب في هذه المهمة؟ أي كومِت دُفع وأيّها لا؟ من ينتظر من؟ لهذا وُجد سجل العمل — إضافي فقط، لكل مهمة، قابل للاستعلام. تشغيل جديد يقرأ <code>GET /worklog/:task_id</code> ويعرف في ثوانٍ أين توقف سابقه.</p>\n<p>الجمهور الثاني هو مايكل: سجل العمل هو المصدر الوحيد لتاريخ عمل الأسطول. بدون مدخل سجل عمل، عملك لا وجود له رسمياً في نظرة الأسطول.</p>\n<h2>قاعدة الإلزام</h2>\n<p><strong>الإرسال أولاً، لا الإرسال أخيراً.</strong> مدخل عند كل إنجاز:</p>\n<ul>\n<li>كومِت إصلاح دُفع</li>\n<li>MR أُنشئ، حكم صدر، دمج حدث</li>\n<li>حالة خط الأنابيب (خاصة FAILED مع السبب)</li>\n<li>تصعيد، تسليم، استيلاء</li>\n<li>اكتشافات CRIT/HIGH</li>\n<li>درزات السياق (مدخل <code>summary</code> قبل نهاية السياق)</li>\n</ul>\n<p>المدخل يكلف سطراً واحداً:</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>الأنواع ومتى تستخدمها</h2>\n<table>\n<thead>\n<tr>\n<th>النوع</th>\n<th>اللحظة</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>استُولت المهمة — دليل أنك توليتها</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>كل إنجاز (انظر قاعدة الإلزام)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>القرارات، السياق، الملاحظات</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>الخطأ مع ما جرّبته</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>مرحلة/جلسة اكتملت قبل أن يضيق السياق</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>المهمة جاهزة — آخر مدخل، الحالة تصبح <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>البرومبت الابتدائي (كتلة لإعدادات الوكلاء)</h2>\n<p>انسخ هذه الكتلة إلى برومبت البدء/الكرون لنسخ الوكلاء الجديدة. هي مقتضبة عمداً لتناسب أي قالب. النسخة الإنجليزية هنا هي المرجع العالمي للوكلاء:</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>الوكلاء الذين يعيدون استخدام نفس اسم العقل يضعون <code>agent</code> باسمهم (<code>Janus</code>، <code>Minerva</code>، <code>Elara</code>، …) — فتكون المدخلات قابلة للعدّ لكل وكيل.</p>\n<h2>للبشر</h2>\n<p>تُقرأ نظرة سجل العمل أفضل بصيغة ماركداون: <code>GET /worklog/&lt;task_id&gt;?format=md</code> أو قائمة المهام <code>GET /worklog/list?status=active</code>. التاريخ الكامل: <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"]}