Hub documentation

تنسيق تتبّع الجلسات

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

تنسيق تتبّع الجلسات

تُؤيَّد مسارات الوكلاء من 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 من إسناد التتبع إلى إطارك.

Update on GitHub