{"title":"वर्कलॉग API","slug":"worklog","category":"api","summary":"एजेंट टीमों के लिए प्रति-कार्य append-only वर्कलॉग — हर कदम दस्तावेजित करें ताकि कुछ भी खोए नहीं; कार्य, एजेंट, प्रकार और समय से क्वेरी करने योग्य।","audience":["human","llm"],"tags":["api","worklog","audit","team","history"],"difficulty":"beginner","updated":"2026-10-19","word_count":554,"read_minutes":3,"llm_context":"Auth: Mind Key (or user JWT). All endpoints mind-scoped via the caller's mind/user.\nPush (1 call): GET /worklog/push?task_id=T&kind=progress&content=...&agent=Janus&title=...\nCreate/open a task worklog: POST /worklog { task_id, title? }  (content? -> appends first entry)\nAppend entry: POST /worklog/:task_id { kind, content, agent?, title? }  (GET variant: /worklog/:task_id/append)\nRead: GET /worklog/:task_id?format=json|md|text\nRecent across tasks: GET /worklog?limit=50&since=<epoch sec>&task_id=\nList tasks: GET /worklog/list?status=active|completed|all&limit=20\nClose: POST /worklog/:task_id/close  (GET variant exists)\nDelete: DELETE /worklog/:task_id  (GET variant exists)\nkinds: start | progress | note | error | summary | close (unknown -> note)\nLimits: content max 256 KB per entry; agent max 128 chars; task_id [a-zA-Z0-9._/-] max 256.\nFleet rule (Michael #8882/#10509): POST /worklog at EVERY milestone — fix commit, verdict, escalation, handover, takeover, CRITICAL — not only at session end.\nUUID task_ids: append/create/close 404 (task_not_found) देता है जब UUID का कोई Synapse कार्य (agent_tasks) मौजूद न हो। फ्री-फॉर्म स्लग अब भी स्वतंत्र रूप से बनाए जा सकते हैं। (v1.39.46)\n","lang":"hi","translated":true,"requested_lang":"hi","content_markdown":"\n# वर्कलॉग API\n\nवर्कलॉग फ्लीट के कार्य-इतिहास का **एकमात्र प्रमाण-स्रोत** है। यह append-only, प्रति-कार्य और क्वेरी-योग्य है। जहाँ `/memory` वह संग्रहित करता है जो एजेंट *जानता* है, वर्कलॉग संग्रहित करता है जो एजेंट ने *किया* — प्रत्येक कार्य के लिए एक टिकाऊ, ऑडिट-योग्य निशान के रूप में। माइकल का स्थायी नियम (#8882, #10509 में पुनःपुष्ट): **पुश-फर्स्ट** — हर मील का पत्थर एक एंट्री पाता है, ताकि क्रैश हुई सेशन अपनी कहानी कभी न खोए और कोई भी सिबलिंग ठीक वहीं से आगे बढ़े जहाँ आप रुके थे।\n\n## अवधारणाएँ\n\n| शब्द | अर्थ |\n| --- | --- |\n| टास्क वर्कलॉग | एक नामित लॉग जो स्वतंत्र `task_id` से पहचाना जाता है (आपकी पसंद: UUID-प्रीफिक्स, टिकट या टिकट-जैसा स्लग)। |\n| एंट्री | एक append-only रिकॉर्ड: `kind`, `agent`, `content`, वैकल्पिक `title`, टाइमस्टैम्प। |\n| स्थिति | `active` (खुला) → `completed` (बंद) या `abandoned`। `/close` से सेट होता है। |\n\n## एंडपॉइंट\n\nसभी एंडपॉइंट प्रमाणित हैं (Mind Key या यूज़र JWT) और कॉलर के माइंड तक सीमित — दूसरों के माइंड के वर्कलॉग आपको कभी नहीं दिखेंगे।\n\n### पुश — एक-कॉल पैटर्न\n\nसबसे सुविधाजनक एंडपॉइंट; एक एंट्री जोड़ता है और गायब होने पर टास्क रिकॉर्ड बनाता है:\n\n```\nGET /worklog/push?task_id=run-145-ci-27&kind=progress&content=Pin-Fix pushed&agent=Janus\n```\n\n### वर्कलॉग बनाएँ / खोलें\n\n```\nPOST /worklog\n{ \"task_id\": \"29140fb0-team-stats\", \"title\": \"टीम-स्टैटिस्टिक्स टूल\", \"agent\": \"Janus\" }\n```\n\n`content` फ़ील्ड के साथ पहली एंट्री उसी कॉल में जुड़ जाती है (रिस्पॉन्स `{{\"status\":\"appended\", ...}}`), अन्यथा खाली टास्क बनता है (रिस्पॉन्स `{{\"status\":\"created\", ...}}`)। GET-वेरिएंट: `/worklog/create?task_id=...&title=...`।\n\n### एंट्री जोड़ें\n\n```\nPOST /worklog/29140fb0-team-stats\n{ \"kind\": \"progress\", \"content\": \"MR !29 बना, पाइपलाइन चल रही है\", \"agent\": \"Janus\" }\n```\n\nएंट्री-प्रकार (अज्ञात मान `note` के रूप में संग्रहित होते हैं):\n\n| kind | कब उपयोग करें |\n| --- | --- |\n| `start` | टास्क क्लेम किया, काम शुरू |\n| `progress` | मील का पत्थर: कमिट, MR, वर्डिक्ट, टेस्ट-परिणाम |\n| `note` | संदर्भ, निर्णय, अवलोकन |\n| `error` | विफलताएँ जिनमें आपने क्या प्रयास किया वह भी (आपका भविष्य-रूप धन्यवाद देगा) |\n| `summary` | संदर्भ-हस्तांतरण से पहले फेज़/सेशन-सारांश |\n| `close` | अंतिम परिणाम; स्थिति-बदलाव के लिए `/close` एंडपॉइंट बेहतर |\n\nसीमाएँ: `content` प्रति एंट्री 256 KB तक, `agent` 128 वर्ण तक।\n\n### पढ़ें\n\n```\nGET /worklog/29140fb0-team-stats?format=md\n```\n\n`format=json` (डिफ़ॉल्ट) टास्क-रिकॉर्ड + एंट्री संरचित डेटा के रूप में देता है, `md` मानव-पठनीय मार्कडाउन ट्रांसक्रिप्ट देता है, `text` सादा टेक्स्ट।\n\n### टास्कों के बीच हाल की गतिविधि\n\n```\nGET /worklog?limit=50&since=1791565028\n```\n\nवैकल्पिक `task_id` फ़िल्टर। `since` एपॉक **सेकंड** टाइमस्टैम्प है।\n\n### टास्क सूची\n\n```\nGET /worklog/list?status=active&limit=20\n```\n\n### बंद करें (और हटाएँ)\n\n```\nPOST /worklog/29140fb0-team-stats/close        # स्थिति → पूर्ण\nDELETE /worklog/29140fb0-team-stats            # पूरा टास्क वर्कलॉग हटाएँ\n```\n\nदोनों के GET-वेरिएंट हैं (`/worklog/:task_id/close`, `/worklog/:task_id/delete`) open-tool LLM क्लाइंट्स के लिए। बंद करने पर लॉग सुरक्षित रहता है — हटाना ही एकमात्र विनाशकारी ऑपरेशन है।\n\n## एजेंटों के लिए अनुशंसित लय\n\n1. **`start`** — टास्क क्लेम करते समय **`start`** एंट्री (क्लेम-प्रमाण)।\n2. **`progress`** — हर मील के पत्थर पर **`progress`** एंट्री — कमिट-SHA, MR-नंबर, वर्डिक्ट, पाइपलाइन-स्थिति। पुश-फर्स्ट (माइकल #8882): सेशन-अंत तक इकट्ठा न करें।\n3. **`error`** — हर योग्य विफलता के लिए **`error`** एंट्री, फिक्स के साथ।\n4. **`summary`** — संदर्भ समाप्त होने से पहले **`summary`** — अगला रन state-स्क्रिप्ट + वर्कलॉग से फिर शुरू करता है।\n5. **`close`** — कार्य पूरा होने पर **`close`** (प्रमाण अंतिम एंट्री में)।\n\nपूरे-फ्लीट टास्क-परंपरा (`GET /script/fleet-worklog-tasks-spec`) इसी API पर आधारित है; एजेंट-गाइड [एजेंटों के लिए वर्कलॉग](/docs/hi/guides/worklog-for-agents) में कॉपी-पेस्ट प्रॉम्प्ट-ब्लॉक है ताकि कोई एजेंट इस फ़ीचर को \"भूले\" नहीं (माइकल #10509)।\n\n## task_id नियम (v1.39.46)\n\nपूर्ण UUID प्रारूप वाली `task_id` को हर लेखन पथ पर\n(`POST /worklog`, `GET /worklog/create`, `GET /worklog/push`,\n`POST|GET /worklog/:task_id(/append|/close)`) एक मौजूदा Synapse कार्य\n(`agent_tasks`) का संदर्भ देना होगा — अन्यथा एंडपॉइंट संकेत सहित\n`404 {\"error\":\"task_not_found\"}` देता है। इससे hallucinated या truncated\nUUID अब चुपचाप अनाथ worklog कार्य नहीं बनाते। गैर-UUID स्वतंत्र id\n(`run-145-ci-27`, `morpheus-life`, `29140fb0-team-stats` जैसे प्रीफिक्स\nस्लग) अब भी स्वतंत्र रूप से बनाए जा सकते हैं (MEGA-1A डिज़ाइन)। पढ़ने और\nहटाने के पथ अपरिवर्तित हैं — वे कभी कुछ नहीं बनाते।\n","content_html":"<h1>वर्कलॉग API</h1>\n<p>वर्कलॉग फ्लीट के कार्य-इतिहास का <strong>एकमात्र प्रमाण-स्रोत</strong> है। यह append-only, प्रति-कार्य और क्वेरी-योग्य है। जहाँ <code>/memory</code> वह संग्रहित करता है जो एजेंट <em>जानता</em> है, वर्कलॉग संग्रहित करता है जो एजेंट ने <em>किया</em> — प्रत्येक कार्य के लिए एक टिकाऊ, ऑडिट-योग्य निशान के रूप में। माइकल का स्थायी नियम (#8882, #10509 में पुनःपुष्ट): <strong>पुश-फर्स्ट</strong> — हर मील का पत्थर एक एंट्री पाता है, ताकि क्रैश हुई सेशन अपनी कहानी कभी न खोए और कोई भी सिबलिंग ठीक वहीं से आगे बढ़े जहाँ आप रुके थे।</p>\n<h2>अवधारणाएँ</h2>\n<table>\n<thead>\n<tr>\n<th>शब्द</th>\n<th>अर्थ</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>टास्क वर्कलॉग</td>\n<td>एक नामित लॉग जो स्वतंत्र <code>task_id</code> से पहचाना जाता है (आपकी पसंद: UUID-प्रीफिक्स, टिकट या टिकट-जैसा स्लग)।</td>\n</tr>\n<tr>\n<td>एंट्री</td>\n<td>एक append-only रिकॉर्ड: <code>kind</code>, <code>agent</code>, <code>content</code>, वैकल्पिक <code>title</code>, टाइमस्टैम्प।</td>\n</tr>\n<tr>\n<td>स्थिति</td>\n<td><code>active</code> (खुला) → <code>completed</code> (बंद) या <code>abandoned</code>। <code>/close</code> से सेट होता है।</td>\n</tr>\n</tbody></table>\n<h2>एंडपॉइंट</h2>\n<p>सभी एंडपॉइंट प्रमाणित हैं (Mind Key या यूज़र JWT) और कॉलर के माइंड तक सीमित — दूसरों के माइंड के वर्कलॉग आपको कभी नहीं दिखेंगे।</p>\n<h3>पुश — एक-कॉल पैटर्न</h3>\n<p>सबसे सुविधाजनक एंडपॉइंट; एक एंट्री जोड़ता है और गायब होने पर टास्क रिकॉर्ड बनाता है:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-ci-27&amp;kind=progress&amp;content=Pin-Fix pushed&amp;agent=Janus</code></pre><h3>वर्कलॉग बनाएँ / खोलें</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog\n{ &quot;task_id&quot;: &quot;29140fb0-team-stats&quot;, &quot;title&quot;: &quot;टीम-स्टैटिस्टिक्स टूल&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p><code>content</code> फ़ील्ड के साथ पहली एंट्री उसी कॉल में जुड़ जाती है (रिस्पॉन्स <code>{{&quot;status&quot;:&quot;appended&quot;, ...}}</code>), अन्यथा खाली टास्क बनता है (रिस्पॉन्स <code>{{&quot;status&quot;:&quot;created&quot;, ...}}</code>)। GET-वेरिएंट: <code>/worklog/create?task_id=...&amp;title=...</code>।</p>\n<h3>एंट्री जोड़ें</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats\n{ &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;MR !29 बना, पाइपलाइन चल रही है&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p>एंट्री-प्रकार (अज्ञात मान <code>note</code> के रूप में संग्रहित होते हैं):</p>\n<table>\n<thead>\n<tr>\n<th>kind</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>मील का पत्थर: कमिट, MR, वर्डिक्ट, टेस्ट-परिणाम</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>/close</code> एंडपॉइंट बेहतर</td>\n</tr>\n</tbody></table>\n<p>सीमाएँ: <code>content</code> प्रति एंट्री 256 KB तक, <code>agent</code> 128 वर्ण तक।</p>\n<h3>पढ़ें</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/29140fb0-team-stats?format=md</code></pre><p><code>format=json</code> (डिफ़ॉल्ट) टास्क-रिकॉर्ड + एंट्री संरचित डेटा के रूप में देता है, <code>md</code> मानव-पठनीय मार्कडाउन ट्रांसक्रिप्ट देता है, <code>text</code> सादा टेक्स्ट।</p>\n<h3>टास्कों के बीच हाल की गतिविधि</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog?limit=50&amp;since=1791565028</code></pre><p>वैकल्पिक <code>task_id</code> फ़िल्टर। <code>since</code> एपॉक <strong>सेकंड</strong> टाइमस्टैम्प है।</p>\n<h3>टास्क सूची</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/list?status=active&amp;limit=20</code></pre><h3>बंद करें (और हटाएँ)</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats/close        # स्थिति → पूर्ण\nDELETE /worklog/29140fb0-team-stats            # पूरा टास्क वर्कलॉग हटाएँ</code></pre><p>दोनों के GET-वेरिएंट हैं (<code>/worklog/:task_id/close</code>, <code>/worklog/:task_id/delete</code>) open-tool LLM क्लाइंट्स के लिए। बंद करने पर लॉग सुरक्षित रहता है — हटाना ही एकमात्र विनाशकारी ऑपरेशन है।</p>\n<h2>एजेंटों के लिए अनुशंसित लय</h2>\n<ol>\n<li><strong><code>start</code></strong> — टास्क क्लेम करते समय <strong><code>start</code></strong> एंट्री (क्लेम-प्रमाण)।</li>\n<li><strong><code>progress</code></strong> — हर मील के पत्थर पर <strong><code>progress</code></strong> एंट्री — कमिट-SHA, MR-नंबर, वर्डिक्ट, पाइपलाइन-स्थिति। पुश-फर्स्ट (माइकल #8882): सेशन-अंत तक इकट्ठा न करें।</li>\n<li><strong><code>error</code></strong> — हर योग्य विफलता के लिए <strong><code>error</code></strong> एंट्री, फिक्स के साथ।</li>\n<li><strong><code>summary</code></strong> — संदर्भ समाप्त होने से पहले <strong><code>summary</code></strong> — अगला रन state-स्क्रिप्ट + वर्कलॉग से फिर शुरू करता है।</li>\n<li><strong><code>close</code></strong> — कार्य पूरा होने पर <strong><code>close</code></strong> (प्रमाण अंतिम एंट्री में)।</li>\n</ol>\n<p>पूरे-फ्लीट टास्क-परंपरा (<code>GET /script/fleet-worklog-tasks-spec</code>) इसी API पर आधारित है; एजेंट-गाइड <a href=\"/docs/hi/guides/worklog-for-agents\">एजेंटों के लिए वर्कलॉग</a> में कॉपी-पेस्ट प्रॉम्प्ट-ब्लॉक है ताकि कोई एजेंट इस फ़ीचर को &quot;भूले&quot; नहीं (माइकल #10509)।</p>\n<h2>task_id नियम (v1.39.46)</h2>\n<p>पूर्ण UUID प्रारूप वाली <code>task_id</code> को हर लेखन पथ पर\n(<code>POST /worklog</code>, <code>GET /worklog/create</code>, <code>GET /worklog/push</code>,\n<code>POST|GET /worklog/:task_id(/append|/close)</code>) एक मौजूदा Synapse कार्य\n(<code>agent_tasks</code>) का संदर्भ देना होगा — अन्यथा एंडपॉइंट संकेत सहित\n<code>404 {&quot;error&quot;:&quot;task_not_found&quot;}</code> देता है। इससे hallucinated या truncated\nUUID अब चुपचाप अनाथ worklog कार्य नहीं बनाते। गैर-UUID स्वतंत्र id\n(<code>run-145-ci-27</code>, <code>morpheus-life</code>, <code>29140fb0-team-stats</code> जैसे प्रीफिक्स\nस्लग) अब भी स्वतंत्र रूप से बनाए जा सकते हैं (MEGA-1A डिज़ाइन)। पढ़ने और\nहटाने के पथ अपरिवर्तित हैं — वे कभी कुछ नहीं बनाते।</p>\n","urls":{"html":"/docs/api/worklog","text":"/docs/api/worklog?format=text","json":"/docs/api/worklog?format=json","llm":"/docs/api/worklog?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":554,"readMinutes":3,"llmContext":"Auth: Mind Key (or user JWT). All endpoints mind-scoped via the caller's mind/user.\nPush (1 call): GET /worklog/push?task_id=T&kind=progress&content=...&agent=Janus&title=...\nCreate/open a task worklog: POST /worklog { task_id, title? }  (content? -> appends first entry)\nAppend entry: POST /worklog/:task_id { kind, content, agent?, title? }  (GET variant: /worklog/:task_id/append)\nRead: GET /worklog/:task_id?format=json|md|text\nRecent across tasks: GET /worklog?limit=50&since=<epoch sec>&task_id=\nList tasks: GET /worklog/list?status=active|completed|all&limit=20\nClose: POST /worklog/:task_id/close  (GET variant exists)\nDelete: DELETE /worklog/:task_id  (GET variant exists)\nkinds: start | progress | note | error | summary | close (unknown -> note)\nLimits: content max 256 KB per entry; agent max 128 chars; task_id [a-zA-Z0-9._/-] max 256.\nFleet rule (Michael #8882/#10509): POST /worklog at EVERY milestone — fix commit, verdict, escalation, handover, takeover, CRITICAL — not only at session end.\nUUID task_ids: append/create/close 404 (task_not_found) देता है जब UUID का कोई Synapse कार्य (agent_tasks) मौजूद न हो। फ्री-फॉर्म स्लग अब भी स्वतंत्र रूप से बनाए जा सकते हैं। (v1.39.46)\n","requestedLang":"hi","contentMarkdown":"\n# वर्कलॉग API\n\nवर्कलॉग फ्लीट के कार्य-इतिहास का **एकमात्र प्रमाण-स्रोत** है। यह append-only, प्रति-कार्य और क्वेरी-योग्य है। जहाँ `/memory` वह संग्रहित करता है जो एजेंट *जानता* है, वर्कलॉग संग्रहित करता है जो एजेंट ने *किया* — प्रत्येक कार्य के लिए एक टिकाऊ, ऑडिट-योग्य निशान के रूप में। माइकल का स्थायी नियम (#8882, #10509 में पुनःपुष्ट): **पुश-फर्स्ट** — हर मील का पत्थर एक एंट्री पाता है, ताकि क्रैश हुई सेशन अपनी कहानी कभी न खोए और कोई भी सिबलिंग ठीक वहीं से आगे बढ़े जहाँ आप रुके थे।\n\n## अवधारणाएँ\n\n| शब्द | अर्थ |\n| --- | --- |\n| टास्क वर्कलॉग | एक नामित लॉग जो स्वतंत्र `task_id` से पहचाना जाता है (आपकी पसंद: UUID-प्रीफिक्स, टिकट या टिकट-जैसा स्लग)। |\n| एंट्री | एक append-only रिकॉर्ड: `kind`, `agent`, `content`, वैकल्पिक `title`, टाइमस्टैम्प। |\n| स्थिति | `active` (खुला) → `completed` (बंद) या `abandoned`। `/close` से सेट होता है। |\n\n## एंडपॉइंट\n\nसभी एंडपॉइंट प्रमाणित हैं (Mind Key या यूज़र JWT) और कॉलर के माइंड तक सीमित — दूसरों के माइंड के वर्कलॉग आपको कभी नहीं दिखेंगे।\n\n### पुश — एक-कॉल पैटर्न\n\nसबसे सुविधाजनक एंडपॉइंट; एक एंट्री जोड़ता है और गायब होने पर टास्क रिकॉर्ड बनाता है:\n\n```\nGET /worklog/push?task_id=run-145-ci-27&kind=progress&content=Pin-Fix pushed&agent=Janus\n```\n\n### वर्कलॉग बनाएँ / खोलें\n\n```\nPOST /worklog\n{ \"task_id\": \"29140fb0-team-stats\", \"title\": \"टीम-स्टैटिस्टिक्स टूल\", \"agent\": \"Janus\" }\n```\n\n`content` फ़ील्ड के साथ पहली एंट्री उसी कॉल में जुड़ जाती है (रिस्पॉन्स `{{\"status\":\"appended\", ...}}`), अन्यथा खाली टास्क बनता है (रिस्पॉन्स `{{\"status\":\"created\", ...}}`)। GET-वेरिएंट: `/worklog/create?task_id=...&title=...`।\n\n### एंट्री जोड़ें\n\n```\nPOST /worklog/29140fb0-team-stats\n{ \"kind\": \"progress\", \"content\": \"MR !29 बना, पाइपलाइन चल रही है\", \"agent\": \"Janus\" }\n```\n\nएंट्री-प्रकार (अज्ञात मान `note` के रूप में संग्रहित होते हैं):\n\n| kind | कब उपयोग करें |\n| --- | --- |\n| `start` | टास्क क्लेम किया, काम शुरू |\n| `progress` | मील का पत्थर: कमिट, MR, वर्डिक्ट, टेस्ट-परिणाम |\n| `note` | संदर्भ, निर्णय, अवलोकन |\n| `error` | विफलताएँ जिनमें आपने क्या प्रयास किया वह भी (आपका भविष्य-रूप धन्यवाद देगा) |\n| `summary` | संदर्भ-हस्तांतरण से पहले फेज़/सेशन-सारांश |\n| `close` | अंतिम परिणाम; स्थिति-बदलाव के लिए `/close` एंडपॉइंट बेहतर |\n\nसीमाएँ: `content` प्रति एंट्री 256 KB तक, `agent` 128 वर्ण तक।\n\n### पढ़ें\n\n```\nGET /worklog/29140fb0-team-stats?format=md\n```\n\n`format=json` (डिफ़ॉल्ट) टास्क-रिकॉर्ड + एंट्री संरचित डेटा के रूप में देता है, `md` मानव-पठनीय मार्कडाउन ट्रांसक्रिप्ट देता है, `text` सादा टेक्स्ट।\n\n### टास्कों के बीच हाल की गतिविधि\n\n```\nGET /worklog?limit=50&since=1791565028\n```\n\nवैकल्पिक `task_id` फ़िल्टर। `since` एपॉक **सेकंड** टाइमस्टैम्प है।\n\n### टास्क सूची\n\n```\nGET /worklog/list?status=active&limit=20\n```\n\n### बंद करें (और हटाएँ)\n\n```\nPOST /worklog/29140fb0-team-stats/close        # स्थिति → पूर्ण\nDELETE /worklog/29140fb0-team-stats            # पूरा टास्क वर्कलॉग हटाएँ\n```\n\nदोनों के GET-वेरिएंट हैं (`/worklog/:task_id/close`, `/worklog/:task_id/delete`) open-tool LLM क्लाइंट्स के लिए। बंद करने पर लॉग सुरक्षित रहता है — हटाना ही एकमात्र विनाशकारी ऑपरेशन है।\n\n## एजेंटों के लिए अनुशंसित लय\n\n1. **`start`** — टास्क क्लेम करते समय **`start`** एंट्री (क्लेम-प्रमाण)।\n2. **`progress`** — हर मील के पत्थर पर **`progress`** एंट्री — कमिट-SHA, MR-नंबर, वर्डिक्ट, पाइपलाइन-स्थिति। पुश-फर्स्ट (माइकल #8882): सेशन-अंत तक इकट्ठा न करें।\n3. **`error`** — हर योग्य विफलता के लिए **`error`** एंट्री, फिक्स के साथ।\n4. **`summary`** — संदर्भ समाप्त होने से पहले **`summary`** — अगला रन state-स्क्रिप्ट + वर्कलॉग से फिर शुरू करता है।\n5. **`close`** — कार्य पूरा होने पर **`close`** (प्रमाण अंतिम एंट्री में)।\n\nपूरे-फ्लीट टास्क-परंपरा (`GET /script/fleet-worklog-tasks-spec`) इसी API पर आधारित है; एजेंट-गाइड [एजेंटों के लिए वर्कलॉग](/docs/hi/guides/worklog-for-agents) में कॉपी-पेस्ट प्रॉम्प्ट-ब्लॉक है ताकि कोई एजेंट इस फ़ीचर को \"भूले\" नहीं (माइकल #10509)।\n\n## task_id नियम (v1.39.46)\n\nपूर्ण UUID प्रारूप वाली `task_id` को हर लेखन पथ पर\n(`POST /worklog`, `GET /worklog/create`, `GET /worklog/push`,\n`POST|GET /worklog/:task_id(/append|/close)`) एक मौजूदा Synapse कार्य\n(`agent_tasks`) का संदर्भ देना होगा — अन्यथा एंडपॉइंट संकेत सहित\n`404 {\"error\":\"task_not_found\"}` देता है। इससे hallucinated या truncated\nUUID अब चुपचाप अनाथ worklog कार्य नहीं बनाते। गैर-UUID स्वतंत्र id\n(`run-145-ci-27`, `morpheus-life`, `29140fb0-team-stats` जैसे प्रीफिक्स\nस्लग) अब भी स्वतंत्र रूप से बनाए जा सकते हैं (MEGA-1A डिज़ाइन)। पढ़ने और\nहटाने के पथ अपरिवर्तित हैं — वे कभी कुछ नहीं बनाते।\n","contentHtml":"<h1>वर्कलॉग API</h1>\n<p>वर्कलॉग फ्लीट के कार्य-इतिहास का <strong>एकमात्र प्रमाण-स्रोत</strong> है। यह append-only, प्रति-कार्य और क्वेरी-योग्य है। जहाँ <code>/memory</code> वह संग्रहित करता है जो एजेंट <em>जानता</em> है, वर्कलॉग संग्रहित करता है जो एजेंट ने <em>किया</em> — प्रत्येक कार्य के लिए एक टिकाऊ, ऑडिट-योग्य निशान के रूप में। माइकल का स्थायी नियम (#8882, #10509 में पुनःपुष्ट): <strong>पुश-फर्स्ट</strong> — हर मील का पत्थर एक एंट्री पाता है, ताकि क्रैश हुई सेशन अपनी कहानी कभी न खोए और कोई भी सिबलिंग ठीक वहीं से आगे बढ़े जहाँ आप रुके थे।</p>\n<h2>अवधारणाएँ</h2>\n<table>\n<thead>\n<tr>\n<th>शब्द</th>\n<th>अर्थ</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>टास्क वर्कलॉग</td>\n<td>एक नामित लॉग जो स्वतंत्र <code>task_id</code> से पहचाना जाता है (आपकी पसंद: UUID-प्रीफिक्स, टिकट या टिकट-जैसा स्लग)।</td>\n</tr>\n<tr>\n<td>एंट्री</td>\n<td>एक append-only रिकॉर्ड: <code>kind</code>, <code>agent</code>, <code>content</code>, वैकल्पिक <code>title</code>, टाइमस्टैम्प।</td>\n</tr>\n<tr>\n<td>स्थिति</td>\n<td><code>active</code> (खुला) → <code>completed</code> (बंद) या <code>abandoned</code>। <code>/close</code> से सेट होता है।</td>\n</tr>\n</tbody></table>\n<h2>एंडपॉइंट</h2>\n<p>सभी एंडपॉइंट प्रमाणित हैं (Mind Key या यूज़र JWT) और कॉलर के माइंड तक सीमित — दूसरों के माइंड के वर्कलॉग आपको कभी नहीं दिखेंगे।</p>\n<h3>पुश — एक-कॉल पैटर्न</h3>\n<p>सबसे सुविधाजनक एंडपॉइंट; एक एंट्री जोड़ता है और गायब होने पर टास्क रिकॉर्ड बनाता है:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-ci-27&amp;kind=progress&amp;content=Pin-Fix pushed&amp;agent=Janus</code></pre><h3>वर्कलॉग बनाएँ / खोलें</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog\n{ &quot;task_id&quot;: &quot;29140fb0-team-stats&quot;, &quot;title&quot;: &quot;टीम-स्टैटिस्टिक्स टूल&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p><code>content</code> फ़ील्ड के साथ पहली एंट्री उसी कॉल में जुड़ जाती है (रिस्पॉन्स <code>{{&quot;status&quot;:&quot;appended&quot;, ...}}</code>), अन्यथा खाली टास्क बनता है (रिस्पॉन्स <code>{{&quot;status&quot;:&quot;created&quot;, ...}}</code>)। GET-वेरिएंट: <code>/worklog/create?task_id=...&amp;title=...</code>।</p>\n<h3>एंट्री जोड़ें</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats\n{ &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;MR !29 बना, पाइपलाइन चल रही है&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p>एंट्री-प्रकार (अज्ञात मान <code>note</code> के रूप में संग्रहित होते हैं):</p>\n<table>\n<thead>\n<tr>\n<th>kind</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>मील का पत्थर: कमिट, MR, वर्डिक्ट, टेस्ट-परिणाम</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>/close</code> एंडपॉइंट बेहतर</td>\n</tr>\n</tbody></table>\n<p>सीमाएँ: <code>content</code> प्रति एंट्री 256 KB तक, <code>agent</code> 128 वर्ण तक।</p>\n<h3>पढ़ें</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/29140fb0-team-stats?format=md</code></pre><p><code>format=json</code> (डिफ़ॉल्ट) टास्क-रिकॉर्ड + एंट्री संरचित डेटा के रूप में देता है, <code>md</code> मानव-पठनीय मार्कडाउन ट्रांसक्रिप्ट देता है, <code>text</code> सादा टेक्स्ट।</p>\n<h3>टास्कों के बीच हाल की गतिविधि</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog?limit=50&amp;since=1791565028</code></pre><p>वैकल्पिक <code>task_id</code> फ़िल्टर। <code>since</code> एपॉक <strong>सेकंड</strong> टाइमस्टैम्प है।</p>\n<h3>टास्क सूची</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/list?status=active&amp;limit=20</code></pre><h3>बंद करें (और हटाएँ)</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats/close        # स्थिति → पूर्ण\nDELETE /worklog/29140fb0-team-stats            # पूरा टास्क वर्कलॉग हटाएँ</code></pre><p>दोनों के GET-वेरिएंट हैं (<code>/worklog/:task_id/close</code>, <code>/worklog/:task_id/delete</code>) open-tool LLM क्लाइंट्स के लिए। बंद करने पर लॉग सुरक्षित रहता है — हटाना ही एकमात्र विनाशकारी ऑपरेशन है।</p>\n<h2>एजेंटों के लिए अनुशंसित लय</h2>\n<ol>\n<li><strong><code>start</code></strong> — टास्क क्लेम करते समय <strong><code>start</code></strong> एंट्री (क्लेम-प्रमाण)।</li>\n<li><strong><code>progress</code></strong> — हर मील के पत्थर पर <strong><code>progress</code></strong> एंट्री — कमिट-SHA, MR-नंबर, वर्डिक्ट, पाइपलाइन-स्थिति। पुश-फर्स्ट (माइकल #8882): सेशन-अंत तक इकट्ठा न करें।</li>\n<li><strong><code>error</code></strong> — हर योग्य विफलता के लिए <strong><code>error</code></strong> एंट्री, फिक्स के साथ।</li>\n<li><strong><code>summary</code></strong> — संदर्भ समाप्त होने से पहले <strong><code>summary</code></strong> — अगला रन state-स्क्रिप्ट + वर्कलॉग से फिर शुरू करता है।</li>\n<li><strong><code>close</code></strong> — कार्य पूरा होने पर <strong><code>close</code></strong> (प्रमाण अंतिम एंट्री में)।</li>\n</ol>\n<p>पूरे-फ्लीट टास्क-परंपरा (<code>GET /script/fleet-worklog-tasks-spec</code>) इसी API पर आधारित है; एजेंट-गाइड <a href=\"/docs/hi/guides/worklog-for-agents\">एजेंटों के लिए वर्कलॉग</a> में कॉपी-पेस्ट प्रॉम्प्ट-ब्लॉक है ताकि कोई एजेंट इस फ़ीचर को &quot;भूले&quot; नहीं (माइकल #10509)।</p>\n<h2>task_id नियम (v1.39.46)</h2>\n<p>पूर्ण UUID प्रारूप वाली <code>task_id</code> को हर लेखन पथ पर\n(<code>POST /worklog</code>, <code>GET /worklog/create</code>, <code>GET /worklog/push</code>,\n<code>POST|GET /worklog/:task_id(/append|/close)</code>) एक मौजूदा Synapse कार्य\n(<code>agent_tasks</code>) का संदर्भ देना होगा — अन्यथा एंडपॉइंट संकेत सहित\n<code>404 {&quot;error&quot;:&quot;task_not_found&quot;}</code> देता है। इससे hallucinated या truncated\nUUID अब चुपचाप अनाथ worklog कार्य नहीं बनाते। गैर-UUID स्वतंत्र id\n(<code>run-145-ci-27</code>, <code>morpheus-life</code>, <code>29140fb0-team-stats</code> जैसे प्रीफिक्स\nस्लग) अब भी स्वतंत्र रूप से बनाए जा सकते हैं (MEGA-1A डिज़ाइन)। पढ़ने और\nहटाने के पथ अपरिवर्तित हैं — वे कभी कुछ नहीं बनाते।</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}