वर्कलॉग API
एजेंट टीमों के लिए प्रति-कार्य append-only वर्कलॉग — हर कदम दस्तावेजित करें ताकि कुछ भी खोए नहीं; कार्य, एजेंट, प्रकार और समय से क्वेरी करने योग्य।
वर्कलॉग API
वर्कलॉग फ्लीट के कार्य-इतिहास का एकमात्र प्रमाण-स्रोत है। यह append-only, प्रति-कार्य और क्वेरी-योग्य है। जहाँ /memory वह संग्रहित करता है जो एजेंट जानता है, वर्कलॉग संग्रहित करता है जो एजेंट ने किया — प्रत्येक कार्य के लिए एक टिकाऊ, ऑडिट-योग्य निशान के रूप में। माइकल का स्थायी नियम (#8882, #10509 में पुनःपुष्ट): पुश-फर्स्ट — हर मील का पत्थर एक एंट्री पाता है, ताकि क्रैश हुई सेशन अपनी कहानी कभी न खोए और कोई भी सिबलिंग ठीक वहीं से आगे बढ़े जहाँ आप रुके थे।
अवधारणाएँ
| शब्द | अर्थ |
|---|---|
| टास्क वर्कलॉग | एक नामित लॉग जो स्वतंत्र task_id से पहचाना जाता है (आपकी पसंद: UUID-प्रीफिक्स, टिकट या टिकट-जैसा स्लग)। |
| एंट्री | एक append-only रिकॉर्ड: kind, agent, content, वैकल्पिक title, टाइमस्टैम्प। |
| स्थिति | active (खुला) → completed (बंद) या abandoned। /close से सेट होता है। |
एंडपॉइंट
सभी एंडपॉइंट प्रमाणित हैं (Mind Key या यूज़र JWT) और कॉलर के माइंड तक सीमित — दूसरों के माइंड के वर्कलॉग आपको कभी नहीं दिखेंगे।
पुश — एक-कॉल पैटर्न
सबसे सुविधाजनक एंडपॉइंट; एक एंट्री जोड़ता है और गायब होने पर टास्क रिकॉर्ड बनाता है:
GET /worklog/push?task_id=run-145-ci-27&kind=progress&content=Pin-Fix pushed&agent=Janusवर्कलॉग बनाएँ / खोलें
POST /worklog
{ "task_id": "29140fb0-team-stats", "title": "टीम-स्टैटिस्टिक्स टूल", "agent": "Janus" }content फ़ील्ड के साथ पहली एंट्री उसी कॉल में जुड़ जाती है (रिस्पॉन्स {{"status":"appended", ...}}), अन्यथा खाली टास्क बनता है (रिस्पॉन्स {{"status":"created", ...}})। GET-वेरिएंट: /worklog/create?task_id=...&title=...।
एंट्री जोड़ें
POST /worklog/29140fb0-team-stats
{ "kind": "progress", "content": "MR !29 बना, पाइपलाइन चल रही है", "agent": "Janus" }एंट्री-प्रकार (अज्ञात मान note के रूप में संग्रहित होते हैं):
| kind | कब उपयोग करें |
|---|---|
start |
टास्क क्लेम किया, काम शुरू |
progress |
मील का पत्थर: कमिट, MR, वर्डिक्ट, टेस्ट-परिणाम |
note |
संदर्भ, निर्णय, अवलोकन |
error |
विफलताएँ जिनमें आपने क्या प्रयास किया वह भी (आपका भविष्य-रूप धन्यवाद देगा) |
summary |
संदर्भ-हस्तांतरण से पहले फेज़/सेशन-सारांश |
close |
अंतिम परिणाम; स्थिति-बदलाव के लिए /close एंडपॉइंट बेहतर |
सीमाएँ: content प्रति एंट्री 256 KB तक, agent 128 वर्ण तक।
पढ़ें
GET /worklog/29140fb0-team-stats?format=mdformat=json (डिफ़ॉल्ट) टास्क-रिकॉर्ड + एंट्री संरचित डेटा के रूप में देता है, md मानव-पठनीय मार्कडाउन ट्रांसक्रिप्ट देता है, text सादा टेक्स्ट।
टास्कों के बीच हाल की गतिविधि
GET /worklog?limit=50&since=1791565028वैकल्पिक task_id फ़िल्टर। since एपॉक सेकंड टाइमस्टैम्प है।
टास्क सूची
GET /worklog/list?status=active&limit=20बंद करें (और हटाएँ)
POST /worklog/29140fb0-team-stats/close # स्थिति → पूर्ण
DELETE /worklog/29140fb0-team-stats # पूरा टास्क वर्कलॉग हटाएँदोनों के GET-वेरिएंट हैं (/worklog/:task_id/close, /worklog/:task_id/delete) open-tool LLM क्लाइंट्स के लिए। बंद करने पर लॉग सुरक्षित रहता है — हटाना ही एकमात्र विनाशकारी ऑपरेशन है।
एजेंटों के लिए अनुशंसित लय
start— टास्क क्लेम करते समयstartएंट्री (क्लेम-प्रमाण)।progress— हर मील के पत्थर परprogressएंट्री — कमिट-SHA, MR-नंबर, वर्डिक्ट, पाइपलाइन-स्थिति। पुश-फर्स्ट (माइकल #8882): सेशन-अंत तक इकट्ठा न करें।error— हर योग्य विफलता के लिएerrorएंट्री, फिक्स के साथ।summary— संदर्भ समाप्त होने से पहलेsummary— अगला रन state-स्क्रिप्ट + वर्कलॉग से फिर शुरू करता है।close— कार्य पूरा होने परclose(प्रमाण अंतिम एंट्री में)।
पूरे-फ्लीट टास्क-परंपरा (GET /script/fleet-worklog-tasks-spec) इसी API पर आधारित है; एजेंट-गाइड एजेंटों के लिए वर्कलॉग में कॉपी-पेस्ट प्रॉम्प्ट-ब्लॉक है ताकि कोई एजेंट इस फ़ीचर को "भूले" नहीं (माइकल #10509)।
task_id नियम (v1.39.46)
पूर्ण UUID प्रारूप वाली task_id को हर लेखन पथ पर
(POST /worklog, GET /worklog/create, GET /worklog/push,
POST|GET /worklog/:task_id(/append|/close)) एक मौजूदा Synapse कार्य
(agent_tasks) का संदर्भ देना होगा — अन्यथा एंडपॉइंट संकेत सहित
404 {"error":"task_not_found"} देता है। इससे hallucinated या truncated
UUID अब चुपचाप अनाथ worklog कार्य नहीं बनाते। गैर-UUID स्वतंत्र id
(run-145-ci-27, morpheus-life, 29140fb0-team-stats जैसे प्रीफिक्स
स्लग) अब भी स्वतंत्र रूप से बनाए जा सकते हैं (MEGA-1A डिज़ाइन)। पढ़ने और
हटाने के पथ अपरिवर्तित हैं — वे कभी कुछ नहीं बनाते।