Hub documentation
تنسيق تتبّع الجلسات
تنسيق تتبّع الجلسات
تُؤيَّد مسارات الوكلاء من Claude Code وCodex وPi وHermes Agent وFactory Droid بشكل افتراضي (انظر مسارات الوكلاء). إذا قمت ببناء إطار عمل خاص بك، يمكنك جعل جلساته تُعرض في العارض نفسه من خلال كتابتها وفق تنسيق مسار الجلسة البسيط (STS-Format) الموضح أدناه.
يُعدّ تنسيق التتبع البسيط للجلسات (STS-Format) ملفًا بصيغة JSONL (كائن JSON واحد في كل سطر) يكتشفه Hugging Face Hub ويعرضه في عارض التتبع الخاص به. يلتقط هذا التنسيق جلسة وكيل/دردشة واحدة على شكل سطر ترويسة يليه أسطر الرسائل.
1. ترويسة الجلسة (السطر الأول)
{ "type": "session", "harness": "my-agent", "id": "b1a2c3", "name": "Implementing a new API" }| حقل | مطلوب | ملاحظات |
|---|---|---|
type | نعم | يجب أن يكون "session" |
harness | نعم | معرّف الإطار الذي أنتج التتبع |
id | نعم | معرّف جلسة فريد |
name | لا | عنوان قابل للقراءة البشرية |
| … | لا | يُسمح بأي بيانات وصفية إضافية وتُتجاهل |
harness هو الحقل الأساسي: فهو معرّف الهارنس، ويُخبر Hub أي مُصيِّر وأيقونة وتسمية يجب استخدامها للجلسة. المعرّفات المعروفة حاليًا: llama.app. من السهل جدًا إضافة معرّف هارنس جديد هنا.
هل تبني إطار عمل خاصاً بك؟ تواصل معنا وسنضيف أيقونة وتسمية له حتى تُعرض جلساتك بهويتك البصرية.
2. الرسائل (كل سطر تالٍ)
كل سطر يمثل رسالة واحدة داخل مظروف:
{ "type": "message", "message": { "role": "assistant", "content": "…" } }كائن message:
| حقل | مطلوب | ملاحظات |
|---|---|---|
role | نعم | "user" · "assistant" · "system" · "tool" |
content | نعم | نص (قد يكون فارغًا) |
reasoningContent | لا | استدلال النموذج، المعروض كتفكير منفصل |
toolCalls | لا | استدعاءات أدوات المساعد: [{ "id", "function": { "name", "arguments" } }] (حيث أن arguments هو نص JSON) |
toolCallId | لا | في رسالة role: "tool"، يربط النتيجة بـ toolCalls[].id الذي يجيب عنه |
timestamp | لا | مللي ثانية الإصدار |
model | لا | اسم النموذج |
نتائج الأدوات هي رسائل بدور role: "tool" تحمل toolCallId؛ يقوم العارض بوضع كل نتيجة بجوار الاستدعاء الذي أنتجها.
مثال
{"type":"session","harness":"my-agent","id":"abc123","name":"what time is it"}
{"type":"message","message":{"role":"user","content":"what time is it?"}}
{"type":"message","message":{"role":"assistant","content":"","toolCalls":[{"id":"t1","function":{"name":"get_time","arguments":"{}"}}]}}
{"type":"message","message":{"role":"tool","toolCallId":"t1","content":"2026-07-01T15:00:00Z"}}
{"type":"message","message":{"role":"assistant","content":"it is 15:00 UTC"}}ارفع الملف الناتج .jsonl إلى Dataset أو Storage Bucket لفتحه في عارض التتبع.
بديل: صيغة جلسة Pi
إذا كنت تفضّل عدم اعتماد الشكل أعلاه، يمكنك إصدار تنسيق جلسات Pi (session-format.md)، وهو ما يدعمه Hub بالفعل. في هذه الحالة، أضف حقل harness: "..." إلى سطر ترويسة جلسة Pi أيضًا، حتى يتمكن Hub من إسناد التتبع إلى إطارك.