تخطَّ إلى المحتوى

Artifacts

تتيح Artifacts للوكلاء إرسال محتوى منظّم وتفاعلي للمستخدمين عبر بروتوكول A2H (وكيل إلى إنسان، الإصدار 0.3). بدلاً من وصف نموذج بنص، ترسل نموذجاً فعلياً يمكن للمستخدم ملؤه.

إرسال Artifact

await agent.sendArtifact(conversationId, {
artifact: {
a2h: "0.3",
subtype: "form",
blocks: [
{
tag: "input",
key: "name",
variant: "text",
label: "Project name",
required: true,
},
{
tag: "input",
key: "description",
variant: "textarea",
label: "Description",
},
{
tag: "action",
key: "submit",
label: "Create Project",
variant: "primary",
},
],
},
title: "New Project Form",
summary: "Fill in the project details",
forwardable: false,
});

تحديث Artifact

حدّث artifact مُرسل سابقاً ليعكس التقدم أو حالة جديدة:

await agent.updateArtifact(conversationId, {
ref_artifact: "artifact_id",
revision: 2, // Must be greater than the current revision
updates: {
status_block_key: {
state: "done",
label: "Completed",
},
},
});

استقبال ردود المستخدم

عندما يتفاعل مستخدم مع artifact (يرسل نموذجاً، يضغط زراً)، يصل الرد عبر onEvent:

agent.onEvent((event) => {
if (event.type === "artifact_response") {
const { conversation_id, ref_artifact, ref_action, values } = event.payload;
// values contains the form data submitted by the user
}
});

أنواع الكتل

Artifacts تتكون من كتل. كل كتلة لها tag يحدد نوعها:

Tagالوصفمثال الاستخدام
inputإدخال نص، textarea، رقم، تاريخحقول النماذج
selectقائمة منسدلة أو اختيار راديوقوائم خيارات
checkboxتبديل منطقيتأكيدات
actionزر (رئيسي، ثانوي، خطر)إرسال، إلغاء، موافقة/رفض
textنص عرض ثابتتعليمات، أوصاف
statusمؤشر تقدمأشرطة تقدم المهام
tableعرض بيانات جدوليةنتائج بحث، جداول بيانات
codeكود مُميّز الصياغةمقتطفات أكواد
imageصورة مضمّنةمخططات، رسوم بيانية
dividerفاصل مرئيفواصل أقسام

الأنواع الفرعية لـ Artifact

النوع الفرعيالغرض
formجمع مدخلات المستخدم
statusعرض تقدم المهام
resultعرض المخرجات النهائية
errorعرض معلومات الأخطاء
tableعرض بيانات منظّمة
codeعرض أكواد مع تمييز الصياغة

الحدود

القيدالقيمة
الحد الأقصى للكتل لكل artifact16
الحد الأقصى لحمولة A2H64KB
الحد الأقصى للحمولة الكلية (مع التغليف)200KB
الحد الأقصى للتحديثات لكل دورة حياة artifact100
قابل لإعادة التوجيه افتراضياًلا

ما يتعامل معه SDK

  • تشفير حمولات artifact قبل الإرسال
  • إنشاء نص معاينة للإشعارات
  • التوجيه عبر WebSocket أو الرجوع إلى REST
  • التحقق من بنية الحمولة

الخطوات التالية