ความประทับใจแรกต่อโปรโตคอล Google A2A - เปรียบเทียบกับ MCP
(hackernoon.com)- Google เปิดซอร์สโปรโตคอล agent-to-agent ใหม่ชื่อ A2A (Agent to Agent)
- แม้จะคล้ายกับ MCP ของ Anthropic แต่ก็มีความแตกต่างทั้งด้านเป้าหมายและโครงสร้าง โดย Google เน้นว่า A2A ถูกออกแบบมาเพื่อเสริม MCP
- โปรโตคอลทั้งสองอาจพัฒนาไปในทิศทางของการทำงานเสริมกันหรือการบูรณาการเพื่อสร้างมาตรฐาน มากกว่าการแข่งขันกัน
ลองใช้งาน A2A
- วิธีใช้งาน A2A แทบจะเหมือนกับ MCP
- สามารถรัน A2A server (agent) หลายตัว แล้วเชื่อมต่อและใช้งานจาก A2A client ได้
- client และ server สามารถทำงานแยกจากกันอย่างอิสระ
องค์ประกอบของ agent ตัวอย่าง
- รัน agent ตัวอย่าง 3 ตัวที่ Google จัดเตรียมไว้ในเครื่อง local
- Google ADK: agent สำหรับจัดการการเบิกคืนค่าใช้จ่ายของพนักงาน
- CrewAI: agent สำหรับสร้างภาพ
- LangGraph: agent สำหรับให้ข้อมูลอัตราแลกเปลี่ยน
- agent จะประกาศความสามารถและอินเทอร์เฟซของตัวเองออกสู่ภายนอกผ่าน Agent Card ในรูปแบบ JSON
ตัวอย่าง - สรุปองค์ประกอบของ Agent Card ของ Google ADK:
- ชื่อ: Reimbursement Agent
- คำอธิบาย: จัดการกระบวนการเบิกคืนค่าใช้จ่ายของพนักงาน
- URL: http://localhost:10002/
- ความสามารถที่รองรับ: รองรับสตรีมมิง, ไม่รองรับ push notification
- รูปแบบอินพุต/เอาต์พุตพื้นฐาน: text / text-plain
- Skill: process_reimbursement (เครื่องมือเบิกคืนค่าใช้จ่าย), พร้อมประโยคตัวอย่าง
รันแอปเดโม A2A client
- สามารถรันเว็บ client ที่ Google จัดเตรียมไว้เพื่อทดสอบ A2A ผ่านเบราว์เซอร์
- ดีไซน์ใช้ Google Material UI คล้าย Gemini AI Studio
- ตัวอย่าง URL พื้นฐานที่ใช้ตอนลงทะเบียน agent:
- Google ADK:
localhost:10002 - CrewAI:
localhost:10001 - LangGraph:
localhost:10000
- Google ADK:
- Agent Card อยู่ที่พาธ
.well-known/agent.jsonของแต่ละ agent
สิ่งที่ตรวจสอบได้จากฝั่ง client
- รายการ agent ที่ลงทะเบียนไว้
- ประวัติการแชตกับ agent
- รายการ event และ task ต่างๆ
- หน้าการตั้งค่ามีองค์ประกอบค่อนข้างเรียบง่าย
ทดสอบการเชื่อมต่อแบบ multi-agent
- ทดสอบว่าสามารถนำหลาย agent มาประกอบกันเพื่อทำเป้าหมายเดียวได้หรือไม่
- ตัวอย่าง: “วันที่ 4 เมษายน 2025 ขอเบิกค่าเบียร์ 5 ยูโรระหว่างเดินทางไปทำงานที่เยอรมนี”
- LangGraph คำนวณอัตราแลกเปลี่ยน
- Google ADK ประมวลผลคำขอเบิกคืน
- ผ่านความร่วมมือที่เป็นธรรมชาติระหว่าง agent ทำให้สร้างแบบคำขอเบิกคืนที่มีจำนวนเงินแปลงเป็นดอลลาร์ได้สำเร็จในที่สุด
ความประทับใจเบื้องต้นต่อโปรโตคอล A2A
- โครงสร้าง client-server ชัดเจน ทำให้ deployment และ operation ทำได้ง่าย
- การตั้งค่า agent ทำได้ง่ายเพียงลงทะเบียน URL และยังเพิ่ม/ลบ agent ได้แม้ระหว่างรันอยู่
- client เป็นฝ่ายเรียก agent แต่ละตัวแยกกัน ทำให้ผู้ใช้ไม่เห็นลำดับการทำงานร่วมกันระหว่าง agent อย่างชัดเจน
- ในตอนนี้โครงสร้างยังใกล้เคียงกับรูปแบบการเรียกใช้เครื่องมือมากกว่า
สรุปเปรียบเทียบ A2A กับ MCP
- A2A ถูกออกแบบเป็นโปรโตคอลสำหรับการสื่อสารและความร่วมมือโดยตรงระหว่าง agent
- MCP มุ่งเน้นที่การจัดการ context แบบมี LLM เป็นศูนย์กลาง และการเชื่อมต่อเครื่องมือภายนอก
คำอธิบายความแตกต่างตามฟังก์ชัน:
-
วัตถุประสงค์การใช้งาน:
- A2A มุ่งเน้นความร่วมมือระหว่าง agent อิสระหลายตัว
- MCP มุ่งเน้นให้ LLM หนึ่งตัวขยายความสามารถด้วย API หรือเครื่องมือภายนอก
-
ความแตกต่างด้านโครงสร้าง:
- A2A อยู่บนโครงสร้าง client-server ที่ agent ต่างๆ แยกกันอยู่และทำงานอย่างอิสระ
- MCP เป็นโครงสร้างระหว่าง application-LLM-tool โดยมี LLM เป็นศูนย์กลาง
-
รูปแบบการสื่อสาร:
- A2A อิงตามมาตรฐานเว็บอย่าง HTTP, JSON-RPC และ SSE
- MCP ใช้การสื่อสารบนพื้นฐาน JSON-RPC 2.0 และรองรับ HTTP streaming
-
องค์ประกอบของฟังก์ชัน:
- A2A ประกอบฟังก์ชันด้วย task, message, artifact เป็นต้น
- MCP จัดองค์ประกอบโดยมี resource, tool, memory, prompt เป็นต้นเป็นแกนหลัก
-
จุดแข็งที่ต่างกัน:
- A2A เด่นด้านการประมวลผลแบบ asynchronous และการทำงานร่วมกัน
- MCP เด่นด้านประสิทธิภาพของ context, การประมวลผลแบบขนาน และ caching
-
สถานการณ์ของชุมชนผู้ใช้:
- A2A กำลังได้แรงสนับสนุนช่วงแรกจากลูกค้า Google Cloud เป็นหลัก
- MCP ถูกนำไปใช้อย่างกว้างขวางแล้ว และมีชุมชนนักพัฒนาที่เคลื่อนไหวอย่างคึกคัก
บทสรุป
- ท้ายที่สุดแล้ว A2A และ MCP มีเป้าหมายคล้ายกันตรงที่ต่างก็รองรับโครงสร้าง multi-agent/การเรียกใช้เครื่องมือ เพื่อให้ระบบ AI บรรลุเป้าหมายที่ซับซ้อนได้
- โปรโตคอลทั้งสองยังขาดความสามารถด้านการลงทะเบียนอัตโนมัติและการค้นหา จึงยังต้องตั้งค่าด้วยตนเอง
- MCP มีความได้เปรียบจากการเข้าตลาดก่อนและมีชุมชนที่แข็งแรง
- A2A กำลังเติบโตอย่างรวดเร็วด้วยแรงหนุนอันแข็งแกร่งจาก Google
- โปรโตคอลทั้งสองมีแนวโน้มพัฒนาไปในทิศทางของการทำงานเสริมกันหรือการบูรณาการเพื่อสร้างมาตรฐาน มากกว่าการแข่งขันกัน
- สำหรับนักพัฒนา นี่เป็นแนวโน้มเชิงบวกที่มอบทางเลือกมากขึ้นและมาตรฐานแบบเปิดที่มากขึ้น
8 ความคิดเห็น
AI เริ่มเชื่อมต่อกับภายนอกอย่างจริงจังแล้ว... จากนี้คงมีเรื่องใหญ่เกิดขึ้นจริง ๆ น่ากลัวนะ
ดูเหมือนโพสต์เกี่ยวกับ A2A เพิ่งขึ้นมาได้ไม่นานเอง แต่มีบทความเปรียบเทียบออกมาแล้ว... น่าทึ่งมากครับ ผมเองก็อยากขยันให้ได้แบบนี้เหมือนกัน พอดีกำลังสงสัยอยู่เลยว่ามันต่างกันยังไง ขอบคุณมากครับ อ่านได้เข้าใจดีเลย
สรุปกับการครอว์ลิงเป็นบอตทำ แต่ตัวบทความไม่ได้เป็นคนเขียนเหรอครับ
ถ้าลองกดดูผู้เขียน จะมีข้อความว่า "ฉันคือ GeekNews AI Bot ที่สรุปบทความ" แบบนี้ก็น่าจะเป็นบอตจริง ๆ ครับ 555
บทความในหน้านี้ (สรุป) ถูกทำโดยบอตจริง แต่ก็เป็นเพียงสรุปเท่านั้น และบทความที่ลิงก์ไว้ในชื่อเรื่องคือบทความต้นฉบับ
อันนั้นมนุษย์เป็นคนเขียนจริง
อ้อ จริงด้วยครับ แต่ก่อนก็ใส่ลิงก์ต้นฉบับทุกครั้งอยู่แล้วแท้ ๆ ทำไมผมถึงคิดว่าเป็นบอตไปได้นะ
ต้องขอบคุณคุณเลยที่ช่วยให้ผมขายหน้าน้อยลง ขอบคุณครับ 555
มีคนที่มองเหมือนกันอยู่ด้วยนะ 555
เห็นด้วยครับ
อ้อ เป็นบอตนี่เอง.. ค่อนข้างน่าอายเหมือนกันนะ ไม่มีการลบคอมเมนต์สินะ