ระบบ AI ส่วนใหญ่ในปัจจุบันเป็นเอเจนต์เดี่ยว: หนึ่งโมเดล, หนึ่งลูปคำสั่ง, และหนึ่งชุดเครื่องมือ นั่นใช้ได้ผลจนกระทั่งงานใหญ่เกินกว่าที่เอเจนต์เดียวจะจัดการได้ หรือจนกว่าคุณจะต้องใช้เอเจนต์ที่สร้างโดยทีมอื่นเพื่อจัดการขั้นตอนที่เอเจนต์ของคุณทำไม่ได้ เมื่อถึงจุดนั้นคุณจะเจอทางตัน: ไม่มีวิธีมาตรฐานสำหรับเอเจนต์อิสระสองตัวที่จะค้นหากัน, แลกเปลี่ยนงาน, และรายงานผลลัพธ์ Agent2Agent (A2A) คือโปรโตคอลที่สร้างขึ้นมาเพื่อขจัดอุปสรรคนั้น
คู่มือนี้จะอธิบายว่า A2A คืออะไร, แก้ปัญหาอะไรได้บ้าง, ทำงานอย่างไร และแตกต่างจาก MCP อย่างไร หากคุณต้องการทดสอบเอเจนต์ A2A หลังจากอ่านเรื่องนี้ คู่มือ Apidog A2A Debugger จะเป็นส่วนที่ต่อเนื่องจากโพสต์นี้
Agent2Agent (A2A) คืออะไร?
Agent2Agent (A2A) คือโปรโตคอลแบบเปิดสำหรับการสื่อสารระหว่างเอเจนต์ AI ซึ่งกำหนดวิธีการที่เอเจนต์หนึ่งโฆษณาความสามารถของตน, วิธีการที่เอเจนต์อื่นเชื่อมต่อกับมัน, วิธีการที่ทั้งสองแลกเปลี่ยนข้อความและไฟล์, และวิธีการที่สถานะงานไหลกลับไปยังผู้เรียก

คำสำคัญคือ ระหว่าง A2A ไม่ใช่การให้เอเจนต์หนึ่งมีเครื่องมือมากขึ้น แต่เป็นการทำให้เอเจนต์ที่แยกจากกัน ซึ่งมักจะสร้างบนเฟรมเวิร์กที่แตกต่างกันโดยทีมที่แตกต่างกัน สามารถทำงานร่วมกันได้โดยที่ทั้งสองฝ่ายไม่จำเป็นต้องรู้รายละเอียดภายในของอีกฝ่าย
ลองนึกภาพว่าเป็น HTTP สำหรับการรับส่งข้อมูลของเอเจนต์ HTTP ช่วยให้เบราว์เซอร์สามารถพูดคุยกับเว็บเซิร์ฟเวอร์ใดก็ได้โดยไม่ต้องสนใจว่าเซิร์ฟเวอร์นั้นทำงานด้วยภาษาอะไร A2A ช่วยให้เอเจนต์ LangGraph สามารถพูดคุยกับเอเจนต์ CrewAI ได้โดยไม่ต้องสนใจว่าเอเจนต์นั้นถูกสร้างขึ้นมาอย่างไร ทั้งสองฝ่ายตกลงกันในส่วนของข้อมูลที่ส่ง แต่ไม่มีฝ่ายใดเปิดเผยการนำไปใช้งานภายในของตน
Google เปิดตัว A2A ในปี 2025 และต่อมาได้ย้ายไปอยู่ภายใต้ Linux Foundation ในฐานะโครงการที่ไม่ขึ้นกับผู้ขายใดๆ ข้อมูลจำเพาะสามารถเข้าถึงได้แบบเปิดที่ ที่เก็บ A2A GitHub และการนำไปใช้งานอ้างอิงถูกเผยแพร่ที่ เว็บไซต์โครงการ A2A
ปัญหาที่ A2A แก้ไข
ก่อน A2A การเชื่อมต่อเอเจนต์สองตัวหมายถึงการเขียนโค้ดเชื่อมต่อ ทุกการจับคู่เป็นแบบกำหนดเอง หากเอเจนต์ของคุณจำเป็นต้องเรียกใช้เอเจนต์วิจัยของทีมพันธมิตร ใครบางคนจะต้องเขียนไคลเอ็นต์เฉพาะกิจ, เลือกรูปแบบเพย์โหลด, คิดค้นระบบการตรวจสอบสิทธิ์, และบำรุงรักษาทั้งหมดด้วยตนเอง การจับคู่ครั้งต่อไปก็จะเริ่มจากศูนย์อีกครั้ง
แนวทางนั้นจะล้มเหลวอย่างรวดเร็ว:
- ไม่มีการค้นพบ ไม่มีวิธีมาตรฐานสำหรับเอเจนต์ที่จะถามว่า "คุณทำอะไรได้บ้าง?" ก่อนส่งงาน
- ไม่มีโมเดลงานที่ใช้ร่วมกัน เอเจนต์หนึ่งส่งกลับสตริงธรรมดา, อีกเอเจนต์หนึ่งส่งกลับ JSON blob ที่กำหนดเอง, เอเจนต์ที่สามสตรีมโทเค็น ผู้เรียกจะต้องจัดการแต่ละกรณีพิเศษ
- ไม่มีการตรวจสอบสิทธิ์ร่วมกัน ทุกการรวมระบบต้องสร้างข้อมูลรับรองและส่วนหัวใหม่
- ไม่มีการทำงานร่วมกัน เอเจนต์ที่สร้างบน AutoGen ไม่สามารถเข้ามาแทนที่เอเจนต์ที่สร้างบน LangGraph ได้ แม้ว่าพวกมันจะทำงานเดียวกันก็ตาม
A2A แก้ปัญหานี้ในลักษณะเดียวกับที่ OpenAPI แก้ปัญหาการรวมระบบ REST: สัญญาที่ตกลงร่วมกัน เพื่อให้เอเจนต์ที่ปฏิบัติตามมาตรฐานใดๆ สามารถพูดคุยกับเอเจนต์ที่ปฏิบัติตามมาตรฐานอื่นๆ ได้
A2A ทำงานอย่างไร
A2A มีแนวคิดหลักสี่ประการ เมื่อคุณรู้แล้ว โปรโตคอลทั้งหมดก็จะเข้าใจได้ง่าย
Agent Card
Agent Card คือเอกสาร JSON ที่เอเจนต์เผยแพร่เพื่ออธิบายตัวเอง เป็นจุดเข้าสู่การค้นพบ ซึ่งจะแสดงชื่อ, คำอธิบาย, ความสามารถ, ทักษะที่ประกาศ, ประเภทอินพุตและเอาต์พุตที่รองรับ, ข้อกำหนดการตรวจสอบสิทธิ์, และเวอร์ชันโปรโตคอลของเอเจนต์
ตามธรรมเนียม การ์ดจะอยู่ที่พาธที่รู้จักกันดี ซึ่งมักจะเป็น https://your-agent.example.com/.well-known/agent.json เอเจนต์ผู้เรียกจะดึง URL นั้นก่อน, อ่านการ์ด, และเรียนรู้ได้อย่างชัดเจนว่าสามารถร้องขออะไรได้บ้างก่อนที่จะส่งข้อความเดียว
งาน (Tasks)
งานคืองานหนึ่งหน่วยใน A2A เมื่อเอเจนต์หนึ่งขอให้อีกเอเจนต์หนึ่งทำบางอย่าง คำขอนั้นจะกลายเป็นงานที่มี ID เฉพาะและมีสถานะที่เคลื่อนผ่านสถานะต่างๆ เช่น submitted, working, input-required และ completed ผู้เรียกสามารถตรวจสอบสถานะงานหรือสมัครรับการอัปเดตได้ โมเดลงานที่ใช้ร่วมกันนี้คือสิ่งที่ทำให้เอเจนต์ A2A สามารถสับเปลี่ยนกันได้ ผู้เรียกจะจัดการสถานะในลักษณะเดียวกันโดยไม่คำนึงว่าใครกำลังทำงานอยู่
ข้อความและสิ่งประดิษฐ์ (Messages and artifacts)
ข้อความบรรจุเนื้อหาจริงระหว่างเอเจนต์ ข้อความประกอบด้วยส่วนต่างๆ: ส่วนข้อความ, ส่วนไฟล์, ข้อมูลที่มีโครงสร้าง หรือส่วนผสมกัน เอเจนต์ผู้รับจะอ่านส่วนที่ทักษะของมันต้องการ
เมื่อเอเจนต์เสร็จสิ้น มันจะส่งคืนสิ่งประดิษฐ์ (artifacts) ซึ่งเป็นเอาต์พุตที่มีโครงสร้างของงาน สิ่งประดิษฐ์อาจเป็นเอกสารที่สร้างขึ้น, ตารางข้อมูล, สรุป, หรือการอ้างอิงไฟล์ สิ่งประดิษฐ์ยังถูกสร้างขึ้นจากส่วนต่างๆ ดังนั้นรูปแบบจึงสอดคล้องกันทั้งสองทิศทาง
การสตรีมและการอัปเดต
งานที่ใช้เวลานานไม่จำเป็นต้องถูกบล็อก A2A รองรับเหตุการณ์ที่ส่งโดยเซิร์ฟเวอร์ (server-sent events) ดังนั้นเอเจนต์จึงสามารถสตรีมผลลัพธ์บางส่วนและการเปลี่ยนแปลงสถานะได้ในขณะที่งานดำเนินไป เอเจนต์วิจัยสามารถปล่อย "พบแหล่งข้อมูล 3 แหล่ง" ก่อนที่จะปล่อยรายงานฉบับสมบูรณ์ ผู้เรียกจะแสดงความคืบหน้าแทนที่จะจ้องมองที่สปินเนอร์
เมื่อรวมกัน การแลกเปลี่ยน A2A ทั่วไปจะมีลักษณะดังนี้:
- เอเจนต์ A ดึง Agent Card ของเอเจนต์ B และอ่านทักษะของมัน
- เอเจนต์ A ส่งข้อความที่สร้างงาน
- เอเจนต์ B ดำเนินงานและสตรีมการอัปเดตสถานะ
- เอเจนต์ B ส่งคืนสิ่งประดิษฐ์เมื่องานถึงสถานะ
completed - เอเจนต์ A ใช้สิ่งประดิษฐ์และดำเนินการต่อไป
การสนทนาทั้งหมดเป็น JSON ผ่าน HTTP ไม่มีอะไรแปลกใหม่
A2A เทียบกับ MCP
A2A และ Model Context Protocol (MCP) มักถูกเข้าใจผิดอยู่เสมอ เพราะทั้งสองเกี่ยวข้องกับเอเจนต์และทั้งสองเป็นโปรโตคอลแบบเปิด แต่ทั้งสองแก้ปัญหาที่แตกต่างกัน
| A2A | MCP | |
|---|---|---|
| เชื่อมต่อ | เอเจนต์กับเอเจนต์ | เอเจนต์กับเครื่องมือและข้อมูล |
| คำถามที่ตอบ | “เอเจนต์อื่นสามารถทำขั้นตอนนี้ให้ฉันได้หรือไม่?” | “เอเจนต์นี้สามารถเข้าถึงเครื่องมือและทรัพยากรอะไรได้บ้าง?” |
| การใช้งานทั่วไป | เวิร์กโฟลว์หลายเอเจนต์ข้ามทีม | เอเจนต์เดียวเรียกใช้ฐานข้อมูล, ระบบไฟล์, หรือ API |
| หน่วยการแลกเปลี่ยน | งาน, ข้อความ, สิ่งประดิษฐ์ | การเรียกใช้เครื่องมือ, ทรัพยากร, ข้อความแจ้ง |
MCP คือวิธีการที่เอเจนต์เข้าถึง ระบบภายนอก A2A คือวิธีการที่เอเจนต์ ติดต่อกับ เอเจนต์อื่น ระบบการผลิตจริงมักจะใช้ทั้งสองอย่าง: เอเจนต์ใช้ MCP เพื่อสอบถามฐานข้อมูลและ A2A เพื่อส่งงานย่อยให้กับเอเจนต์ผู้เชี่ยวชาญ การเปรียบเทียบระหว่างเซิร์ฟเวอร์ MCP และ A2A จะครอบคลุมการตัดสินใจอย่างละเอียด และ ตัวดีบักไคลเอ็นต์ MCP ของ Apidog แสดงให้เห็นด้าน MCP ในทางปฏิบัติ
การทำงานร่วมกันของหลายเอเจนต์ในโลกจริง
A2A เป็นวิธีหนึ่งในการทำให้เอเจนต์ทำงานร่วมกัน แต่ไม่ใช่เพียงวิธีเดียว บางระบบใช้การประสานงานโดยตรงแทน โดยที่เอเจนต์หนึ่งวางแผนงานและมอบหมายงานให้กับเอเจนต์อื่นอย่างชัดเจน
ตัวอย่างโอเพนซอร์สที่ชัดเจนคือ Codex-Claude-Collab ซึ่งเป็นทักษะที่ประสานงานเวิร์กโฟลว์แบบเรียลไทม์ระหว่าง OpenAI Codex และ Claude Code โดย Codex วางแผนงาน, มอบหมายการนำไปใช้งานให้กับ Claude Code, จากนั้นตรวจสอบความแตกต่างและยืนยันผลลัพธ์ก่อนที่จะตอบผู้ใช้ นี่คือลูปของผู้วางแผนและผู้สร้างที่เชื่อมโยงกันอย่างแน่นหนาระหว่างเอเจนต์การเขียนโค้ดสองตัวที่แตกต่างกัน
รูปแบบนั้นคือการประสานงานแบบฮาร์ดไวร์; ฝ่ายหนึ่งรู้ว่าอีกฝ่ายคือใครอย่างชัดเจน A2A ขยายแนวคิดเดียวกัน: แทนที่ Codex จะรู้ว่ากำลังเรียก Claude Code โดยเฉพาะ ผู้เรียก A2A จะอ่าน Agent Card และทำงานร่วมกับเอเจนต์ที่ปฏิบัติตามมาตรฐานใดๆ ก็ตามที่ตอบกลับ การประสานงานเป็นสิ่งที่ดีเมื่อคุณควบคุมทั้งสองฝ่าย A2A คือสิ่งที่คุณต้องการเมื่อเอเจนต์เป็นอิสระ, เป็นของทีมที่แตกต่างกัน, หรือจำเป็นต้องสามารถสับเปลี่ยนได้ ระบบที่เป็นผู้ใหญ่ส่วนใหญ่จะจบลงด้วยทั้งสองอย่าง: การประสานงานภายในทีม, และ A2A ข้ามขอบเขตของทีม
วิธีทดสอบเอเจนต์ A2A
เมื่อคุณสร้างหรือใช้งานเอเจนต์ A2A คุณจำเป็นต้องดูการรับส่งข้อมูล บันทึกคอนโซลจะซ่อนฟิลด์ที่มีโครงสร้าง และสคริปต์ทดสอบที่สร้างขึ้นมาเองจะเสื่อมสภาพ นี่คือจุดที่ตัวดีบัก A2A แบบภาพจะมีประโยชน์
Apidog มี A2A Debugger ในไคลเอ็นต์มาตรฐาน คุณเพียงแค่วาง URL ของ Agent Card, คลิก Connect, และ Apidog จะอ่านการ์ดและแสดงชื่อ, ความสามารถ, และทักษะของเอเจนต์ คุณสามารถส่งข้อความทดสอบ, แนบไฟล์, เพิ่มข้อมูลเมตา, และอ่านการตอบกลับได้ในสามมุมมอง: พรีวิวที่อ่านง่าย, เนื้อหาดิบ, และเพย์โหลด JSON-RPC เต็มรูปแบบ ซึ่งรองรับ Bearer Token, Basic Auth, และส่วนหัว API-key โดยไม่ต้องใช้ curl
ประเด็นคือการแยกส่วน เมื่อเอเจนต์ทำงานผิดปกติ คุณต้องการทราบว่าการส่งข้อมูลผิดปกติหรือตรรกะของเอเจนต์ผิดปกติ การดูเพย์โหลดที่แท้จริงจะช่วยตอบคำถามนั้นได้ในไม่กี่วินาที คู่มือ Apidog A2A Debugger จะนำเสนอขั้นตอนการเชื่อมต่อ-ส่ง-อ่านแบบครบวงจร และหลักการที่กว้างขึ้นของ การทดสอบเอเจนต์ AI ที่เรียกใช้ API ของคุณ ใช้หลักการตรวจสอบการส่งข้อมูลก่อนเช่นเดียวกัน
เริ่มต้นใช้งาน A2A
หากคุณต้องการสร้างหรือเชื่อมต่อเอเจนต์ A2A นี่คือเส้นทางสั้นๆ:
- อ่าน ข้อมูลจำเพาะ A2A เพื่อให้คุณทราบฟิลด์ Agent Card ที่จำเป็นและวงจรชีวิตของงาน
- รันหนึ่งใน เอเจนต์ตัวอย่างอ้างอิง ในเครื่อง ส่วนใหญ่จะเริ่มทำงานในไม่กี่นาทีและแสดง Agent Card ที่ใช้งานได้
- ชี้ A2A debugger ไปยัง URL ของ Agent Card ของตัวอย่างและส่งข้อความ "hello" ยืนยันว่าคุณสามารถเห็นการเดินทางไปกลับของข้อมูล
- สร้างเอเจนต์ของคุณเอง, แสดง Agent Card ที่ถูกต้อง, และทดสอบในลักษณะเดียวกันก่อนที่จะเชื่อมต่อเข้ากับเวิร์กโฟลว์
- เพิ่มการตรวจสอบสิทธิ์, การแนบไฟล์, และการสตรีมเมื่อเส้นทางข้อความธรรมดาทำงานได้แล้ว
A2A ยังเป็นโปรโตคอลใหม่ แต่ได้รับการสนับสนุนจากมูลนิธิที่ไม่ขึ้นกับผู้ขายและมีรายการการรวมเฟรมเวิร์กที่เพิ่มขึ้น การจัดการการรับส่งข้อมูลของเอเจนต์ในฐานะโปรโตคอลระดับสูงสุดตอนนี้จะช่วยให้คุณไม่ต้องเขียนโค้ดเชื่อมต่อที่กำหนดเองใหม่ในภายหลัง โพสต์ เอเจนต์ AI คือผู้บริโภค API รายใหม่ อธิบายถึงกรณีที่ยาวนานกว่า และ การออกแบบ API สำหรับเอเจนต์ AI ครอบคลุมสิ่งที่เปลี่ยนแปลงไปเมื่อผู้บริโภคของคุณคือเอเจนต์แทนที่จะเป็นมนุษย์
คำถามที่พบบ่อย
A2A สร้างโดย Google หรือไม่?
Google เปิดตัว A2A ในปี 2025 จากนั้นได้บริจาคให้กับ Linux Foundation ในฐานะโครงการโอเพนซอร์สที่ไม่ขึ้นกับผู้ขายใดๆ ข้อมูลจำเพาะได้รับการพัฒนาแบบเปิด และผู้ขายรายใดก็สามารถนำไปใช้ได้
ฉันจำเป็นต้องใช้ A2A หรือไม่หากฉันมีเอเจนต์เดียว?
ไม่ A2A แก้ปัญหาการสื่อสารระหว่างเอเจนต์ด้วยกัน เอเจนต์เดียวที่มีชุดเครื่องมือต้องการ MCP ไม่ใช่ A2A คุณจะใช้ A2A เมื่อมีเอเจนต์ตัวที่สองเข้ามาเกี่ยวข้อง
เฟรมเวิร์กใดบ้างที่รองรับ A2A?
A2A ได้รับการออกแบบให้ไม่ขึ้นกับเฟรมเวิร์ก เอเจนต์ใดๆ ที่เผยแพร่ Agent Card ที่ถูกต้องและพูดโปรโตคอลนี้สามารถเข้าร่วมได้ ดังนั้น LangGraph, CrewAI, AutoGen และเอเจนต์ที่กำหนดเองทั้งหมดจึงสามารถทำงานได้ เฟรมเวิร์กภายในของเอเจนต์จะมองไม่เห็นสำหรับผู้เรียก
A2A เหมือนกับ MCP หรือไม่?
ไม่ MCP เชื่อมต่อเอเจนต์หนึ่งกับเครื่องมือและแหล่งข้อมูล A2A เชื่อมต่อเอเจนต์เข้าด้วยกัน ทั้งสองเสริมซึ่งกันและกัน และหลายระบบก็ใช้งานทั้งสองพร้อมกัน
ฉันจะดีบักการรวมระบบ A2A ได้อย่างไร?
ใช้ A2A debugger แบบภาพ เช่น Apidog A2A Debugger วาง URL ของ Agent Card, ส่งข้อความทดสอบ, และตรวจสอบคำขอและคำตอบดิบ เพื่อให้คุณสามารถแยกแยะข้อผิดพลาดในการส่งข้อมูลออกจากข้อผิดพลาดของตรรกะเอเจนต์ได้
A2A รองรับงานที่ใช้เวลานานหรือไม่?
ใช่ โมเดลงานมีสถานะที่ชัดเจน และโปรโตคอลรองรับเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ (server-sent events) สำหรับการสตรีมผลลัพธ์บางส่วนและการอัปเดตความคืบหน้า ดังนั้นงานที่ใช้เวลานานจึงไม่บล็อกผู้เรียก
