A2A پروتکل عامل به عامل
Type: Learn + Build
Languages: Python (stdlib, http.server, json)
Prerequisites: Phase 16 · 04 (Primitive Model)
Time: ~75 minutes
مشکل
شما می توانید یک نقطه پایان HTTP را افشا کنید، یک طرح JSON سفارشی را تعریف کنید و امیدوار باشید که طرف دیگر آن را صحبت کند. هر جفت از عوامل تبدیل به یک ادغام سفارشی می شود.
A2A پروتکل تلگرام جهانی برای آن تماس است. کشف استاندارد، مدل کار استاندارد، حمل و نقل استاندارد، آثار هنری استاندارد. مانند HTTP+REST اما برای اجنتی ها به عنوان شهروندان درجه اول.
مفهوم
چهار عنصر
Agent Card.یک سند JSON در /.well-known/agent-card.jsonتوصیف عامل: نام، مهارت ها،supportedInterfaces(URL نقطه آخر، اتصال پروتکل، نسخه پروتکل) ، نوع رسانه های ورودی و خروجی پیش فرض و الزامات auth (securitySchemesو اضافهsecurityRequirementsکشف با خواندن کارت اتفاق می افتد.
httpGET /.well-known/agent-card.json HTTP/1.1
Host: agent.example.comjson{
"name": "code-review-agent",
"description": "Reviews Python and TypeScript code.",
"version": "1.0.0",
"supportedInterfaces": [
{
"url": "https: TOK0
"protocolBinding": "HTTP+JSON",
"protocolVersion": "1.0"
}
],
"capabilities": {"streaming": false, "pushNotifications": false},
"securitySchemes": {
"bearer": {"httpAuthSecurityScheme": {"scheme": "Bearer"}}
},
"securityRequirements": [{"schemes": {"bearer": {"list": []}}}],
"defaultInputModes": ["text/plain", "application/json"],
"defaultOutputModes": ["application/json"],
"skills": [
{
"id": "review-python",
"name": "Review Python",
"description": "Reviews Python code.",
"tags": ["code-review", "python"]
},
{
"id": "review-typescript",
"name": "Review TypeScript",
"description": "Reviews TypeScript code.",
"tags": ["code-review", "typescript"]
}
]
}Task.واحد کار، یک شی غیرمسلح و حالت دار با چرخه زندگی:TASK_STATE_SUBMITTED→ TASK_STATE_WORKING→ TASK_STATE_COMPLETED-TASK_STATE_FAILED-TASK_STATE_CANCELEDیک مشتری یک پیام می فرستد، سرور کار را ایجاد می کند و مشتری رای می دهد یا برای بروزرسانی ها اشتراک می گذارد.
Artifact.نوع نتیجه تولید شده توسط یک کار. متن، JSON ساختاری، تصویر، ویدیو، صوتی. آثار هنری تایپ می شوند: هر بخش دارای یک از text،raw،url، یاdataو مي تونم اسمش رو بزنمmediaType، پس روش های مختلف درجه اول هستند
Opaque lifecycle.A2A چگونه مامور راه دور کار را حل می کند را تجویز نمی کند. مشتری انتقال ها و آثار را می بیند؛ پیاده سازی آزاد است از هر چارچوبی استفاده کند.
تقسیم MCP/A2A
- MCP(درس 13): ابزار عامل . عامل از طریق JSON-RPC به یک سرور ابزار می خواند / می نویسد. بدون حالت به طور پیش فرض.
- A2A: عامل عامل. پروتکل همتایان؛ هر دو طرف عامل با استدلال های خود هستند.
سیستم های تولید چند عامل از هر دو استفاده می کنند. یک A2A همتایان به ابزار MCP در طرف خود می گویند. تقسیم این دو مسئله را تمیز نگه می دارد.
جریان کشف
sequenceDiagram
participant C as Client
participant S as Agent server
C->>S: GET /.well-known/agent-card.json
S-->>C: Agent Card JSON
C->>S: POST /message:send (returnImmediately)
S-->>C: task, TASK_STATE_SUBMITTED
C->>S: GET /tasks/{id}
S-->>C: TASK_STATE_WORKING
C->>S: GET /tasks/{id}
S-->>C: TASK_STATE_COMPLETED, artifactsاین ها مسیرهای اتصال HTTP+JSON هستند و هر درخواست دارای A2A-Version: 1.0. بطور پیش فرضSendMessageتا زمانی که کار به حالت پایانی یا قطع شده برسد، بلاک می شود، بنابراین یک مشتری رای گیری تنظیم می کند configuration.returnImmediatelyتا فوراً کار رو برگردونم
یا با پخش:POST /message:streamنمایشگرها را به سرور ارسال می کند (a taskاول، بعدشstatusUpdateوartifactUpdateرویدادها) و/tasks/{id}:subscribeجریان زمانی که وظیفه به حالت نهایی برسد بسته می شود؛ هیچ finalپرچم
نویسنده
A2A سه الگوی مشترک را پشتیبانی می کند:
- Bearer token: OAuth2 یا غیر شفاف (
httpAuthSecuritySchemeیاoauth2SecurityScheme) - mTLS: TLS متقابل؛ سازمان ها هویت خود را به یکدیگر ثابت می کنند (
mtlsSecurityScheme) - API key: یک کلید در یک سر، پارامتر جستجو یا کوکی (
apiKeySecurityScheme)
در کارت ماموريت ، ادويت اعلام شده:securitySchemesنام هر طرح وsecurityRequirementsميگه که مشتری بايد چه چيزها رو برآورده کنه
بیش از 150 سازمان تا آوریل 2026
پذیرش شرکت باعث افزایش مقیاس A2A شد. عنوان: A2A به راه سیستم های عامل شرکت تبدیل شد تا مرزهای اعتماد را عبور کنند. گوگل Cloud پشتیبانی از Vertex AI Agent Builder A2A را عرضه کرد؛ Microsoft Agent Framework آن را پشتیبانی می کند؛ اکثر چارچوب های اصلی (LangGraph، CrewAI، AutoGen) A2A را به کشتی می رساند.
جایی که A2A برنده می شود
- Cross-organization calls.مامور شرکت "آ" به مامور شرکت "ب" زنگ مي زند بدون "آ" و "آ" هر جفت قرارداد سفارشي است
- Heterogeneous frameworks.مامور لانگ گراف به مامور کروآئي زنگ مي زند مامور پايتون سفارشي A2A به طور معمولي عمل مي کنه
- Typed artifacts.نتیجه ویدیویی، JSON ساختاری، صوتی همه کلاس اول
- Long-running tasks.چرخه حیات نامشفق + نظرسنجی باعث می شود کارهای ساعت ها آسان تر شود.
جایی که A2A مبارزه می کند
- Latency-sensitive micro-calls.چرخه عمر A2A غیر هماهنگ است. فرقی از فرعی به فرعی در زیر میلی ثانیه نیست. از RPC مستقیم استفاده کنید.
- Tight-coupled in-process agents.اگر هر دو عامل در همان فرآیند پایتون اجرا شوند، سفر HTTP A2A به عقب بیش از حد است.
- Small teams.هزینه های عمومی مشخصه واقعی است؛ ممکن است عوامل داخلی فقط به رسمیت نیاز نداشته باشند.
A2A در مقابل ACP، ANP، NLIP
چندین مشخصات مرتبط در سال های 2024-2026 ظاهر شد:
- ACP(IBM/Linux Foundation) پیشگام A2A، دامنه کوچکتر.
- ANP(پروتوکول شبکه اجنتی) کشف همتایان سنگین، غیرمتمرکز اول.
- NLIP(پروتوکول تعامل زبان طبیعی ECMA، استاندارد شده دسامبر 2025) نوع محتوای زبان طبیعی.
A2A از آوریل 2026 به عنوان پروتکل همسال مورد استفاده قرار می گیرد. برای مقایسه، arXiv:2505.02279 (Liu و همکارانش، "یک بررسی پروتکل های تعامل با عوامل") را ببینید.
آن را بسازید
code/main.pyیک سرور و مشتری A2A حداقل را اجرا می کند که http.serverو JSON، در پیوند HTTP + JSON 1.0. سرور:
- افشا می کند
/.well-known/agent-card.json، - قبول مي کنه
POST /message:send، - وضعیت وظیفه را مدیریت می کند،
- آثار هنری را در تاریخ بازمی گرداند
GET /tasks/{id}. .
مشتری:
- کارت مامور رو ميگيره
- پيام مي فرستد با
returnImmediately، - انتخابات تا پایان،
- .آرتفاکت رو میخواد
راه رفتن:
python3 code/main.pyاسکریپت سرور را در یک موضوع پس زمینه شروع می کند، سپس مشتری را در مقابل آن اجرا می کند. شما جریان کامل را می بینید: کشف، ارسال، نظرسنجی، آثار.
ازش استفاده کن
outputs/skill-a2a-integrator.mdطراحی یک ادغام A2A: محتوای کارت عامل، طرح های کار، انتخاب نویسنده، پخش در مقابل نظرسنجی.
-باده
فهرست چک:
- Pin the spec version.A2A هنوز در حال تکامل است.
supportedInterfacesورود اعلام می کند کهprotocolVersion، و مشتریان ارسالA2A-Version: 1.0. . - Idempotent task creation.ارسال های تکراری (تجربه های شبکه) باید یک کار را ایجاد کنند.
messageId. . - Artifact schemas.اعلام کنید که عامل چه شکل هایی را باز می گرداند؛ مصرف کنندگان باید آنها را تأیید کنند.
- Rate limits + auth.A2A به صورت عمومی است؛ امنیت استاندارد وب را اعمال کنید.
- Dead-letter for failed tasks.با گذشت زمان الگوهای شکست های مکرر را بررسی کنید.
تمرینات
- فرار کن
code/main.py. تایید کن که مشتری سرور رو کشف کرده و دستاورده درست رو دریافت کرده - یک مهارت دوم را به سرور اضافه کنید (به عنوان مثال "جمع بندی کنید"). کارت عامل را به روز کنید. یک مشتری بنویسید که مهارت را بر اساس نوع کار انتخاب می کند. یک درخواست 1.0 دارای میدان مهارت نیست، بنابراین سرور مسیرهای بر روی بخش های پیام است.
- اجرا
POST /message:stream: پاسخ با Server-Sent Events (ataskاول، بعدشstatusUpdateدر واقع، این برنامه ها در حال انجام است. - مشخصات A2A را بخوانید (https://a2a-protocol.org/latest/specification/) سه چیز را مشخص کنید که این دستورات مشخصی اجرا نمی کنند.
- مقایسه A2A (Agent Card Discovery) با MCP (مجموعه قابلیت های طرف سرور از طریق
listTools) تفاوت بین عوامل خود توصیف و آزمون توانایی چیست؟
اصطلاحات کلیدی
| Term | What people say | What it actually means |
|---|---|---|
| A2A | "Agent-to-agent" | Peer protocol for agents to call other agents across systems. Google 2025. |
| Agent Card | "The agent's business card" | JSON at /.well-known/agent-card.json describing skills, supportedInterfaces, auth. |
| Task | "The unit of work" | Async stateful object with a lifecycle; artifacts produced on completion. |
| Artifact | "The result" | Typed output: text, structured JSON, image, video, audio. First-class media. |
| Opaque lifecycle | "How it's solved is the agent's business" | Client sees state transitions; server is free to choose framework/tools. |
| Discovery | "Finding the agent" | GET /.well-known/agent-card.json returns the card. |
| MCP vs A2A | "Tools vs peers" | MCP: vertical agent ↔ tool. A2A: horizontal agent ↔ agent. |
| ACP / ANP / NLIP | "Sibling protocols" | Adjacent specs; A2A is the most-adopted 2026. |
خواندن بیشتر
- A2A specification مشخصات کاینونیکی
- A2A v1.0.1 release: برچسب ها
docs/specification.mdوspecification/a2a.protoاین درس میخواد - Google Developers Blog — A2A announcement اپریل 2025
- A2A GitHub repo پیاده سازی های مرجع و SDK ها
- Liu et al. — A Survey of Agent Interoperability Protocols مقایسه MCP، ACP، A2A، ANP
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.