A2A: دع وكلاء الذكاء الاصطناعي يستدعون موقعك
نُشر:
قام وكيل ذكاء اصطناعي بالتحقق من هذا الموقع دون فتح متصفح أو النقر على زر أو استخراج صفحة — بل قرأ ملف JSON صغيراً، وأرسل طلباً واحداً محدد النوع، وحصل على نتيجة منظَّمة. هذا التبادل هو A2A، وبإمكان أي موقع تقديمه.
ما هو A2A
A2A (Agent2Agent) بروتوكول مفتوح — يخضع الآن لإشراف Linux Foundation — يتيح لوكلاء الذكاء الاصطناعي اكتشاف بعضهم البعض واستدعاء بعضهم عبر HTTP العادي. فكّر فيه باعتباره المقابل الوكيل-إلى-وكيل للـ API العام: بدلاً من أن يقرأ إنسان توثيقك ويكتب تكاملاً، يقرأ وكيل آخر وصفاً آليّاً لما تقدّمه خدمتك ويستدعيه مباشرةً.
يتألف من جزأين: مستند اكتشاف (ما يُعرف بـ agent card) ونقطة نهاية قابلة للاستدعاء (ما يُعرف بـ skill).
1. بطاقة الوكيل — الاكتشاف
تنشر ملف JSON على /.well-known/agent-card.json يصف هويّتك وما تستطيع فعله. الحقول المطلوبة هي name وdescription وversion وurl (نقطة نهاية A2A الخاصة بك) ومهارة واحدة على الأقل ضمن skill:
{
"protocolVersion": "0.3.0",
"name": "llms.txt Validator",
"description": "Validate a website's llms.txt and return a score with findings.",
"url": "https://llms-txt-validator.dev/a2a",
"skills": [{ "id": "validate_llms_txt", "name": "Validate llms.txt",
"description": "Given a domain or URL, fetch and validate its llms.txt." }]
}
2. نقطة النهاية — مهارة قابلة للاستدعاء
تشير url في البطاقة إلى نقطة نهاية JSON-RPC 2.0. يستدعي وكيل ما طريقة message/send برسالة؛ تُنجز أنت العمل وتُعيد Task. إليك استدعاءً حقيقياً لوكيلنا:
POST /a2a
{ "jsonrpc": "2.0", "id": "1", "method": "message/send",
"params": { "message": { "role": "user",
"parts": [{ "kind": "text", "text": "validate llmstxt.org" }] } } }
…والرد — مهمة مكتملة تحمل ملخصاً قابلاً للقراءة البشرية وبيانات منظَّمة:
{ "result": { "kind": "task", "status": { "state": "completed" },
"artifacts": [{ "parts": [
{ "kind": "text", "text": "Validated llmstxt.org: score 100/100..." },
{ "kind": "data", "data": { "ok": true, "report": { "scores": { "overall": 100 } } } }
] }] } }
لا متصفح ولا تحليل HTML — يحصل الوكيل على البيانات التي طلبها تحديداً.
A2A مقابل WebMCP مقابل MCP
- A2A — وكلاء شبكيون يستدعون خدمتك عبر HTTP (المنسِّقون، والوكلاء الآخرون). هذه الصفحة.
- WebMCP — وكيل يعمل داخل المتصفح ويستدعي أدوات على صفحتك المفتوحة.
- MCP — ربط الأدوات بنموذج أو تطبيق واحد، عادةً بشكل محلي.
إنها متكاملة: يصل A2A إلى الوكلاء الشبكيين، ويصل WebMCP إلى الوكلاء داخل المتصفح. انظر كيف تتكامل الثلاثة معاً.
كيف يمكن لأي موقع إضافة واحدة
لا تحتاج إلى البروتوكول بأكمله للبدء — اختر شيئاً واحداً حقيقياً تقوم به خدمتك:
- تقديم بطاقة وكيل صالحة على
/.well-known/agent-card.jsonبمهارة واحدة. - تطبيق طريقة
message/sendالمتزامنة التي تغلّف تلك الإمكانية، وإعادةTaskمكتملة مع النتيجة كعنصر artifact. - البث، وسجل المهام، وإشعارات الدفع — كلها اختيارية. اضبط
capabilities.streamingعلى false وأضفها فقط عند الحاجة.
القاعدة الوحيدة: ادعم البطاقة بنقطة نهاية حقيقية
البطاقة عقد, وليست وسماً تعريفياً. إن نشرت بطاقة لا تستجيب url فيها فعلياً لـ message/send، فإن كل وكيل يثق بها يصطدم بطريق مسدود. لا تُتح A2A إلا للقدرات التي تستطيع تقديمها فعلاً — هكذا بنينا وكيلنا، ولهذا يُشير تقريرنا إلى وجود الإشارة فقط حين تدعمها نقطة نهاية عاملة. أتريد رؤيتها مباشرةً؟ جلِّب بطاقة وكيلنا.