ai-agents-for-beginners

การใช้โปรโตคอลเอเจนต์ (MCP, A2A และ NLWeb)

Agentic Protocols

(คลิกที่ภาพด้านบนเพื่อดูวิดีโอของบทเรียนนี้)

ขณะที่การใช้งานเอเจนต์ AI เพิ่มมากขึ้น ความต้องการโปรโตคอลที่ช่วยให้การมาตรฐาน ความปลอดภัย และส่งเสริมนวัตกรรมเปิดก็มากขึ้นเช่นกัน ในบทเรียนนี้เราจะครอบคลุมโปรโตคอล 3 แบบที่ตอบสนองความต้องการนี้ - โปรโตคอลบริบทโมเดล (MCP), Agent to Agent (A2A) และ Natural Language Web (NLWeb)

บทนำ

ในบทเรียนนี้ เราจะครอบคลุม:

• วิธีที่ MCP ช่วยให้เอเจนต์ AI เข้าถึงเครื่องมือภายนอกและข้อมูลเพื่อทำงานของผู้ใช้ให้สำเร็จ

• วิธีที่ A2A ช่วยให้การสื่อสารและความร่วมมือระหว่างเอเจนต์ AI ต่าง ๆ เกิดขึ้นได้

• วิธีที่ NLWeb นำอินเทอร์เฟซภาษาธรรมชาติเข้าสู่เว็บไซต์ใด ๆ ทำให้เอเจนต์ AI สามารถค้นพบและโต้ตอบกับเนื้อหาได้

เป้าหมายการเรียนรู้

ระบุ จุดประสงค์หลักและประโยชน์ของ MCP, A2A และ NLWeb ในบริบทของเอเจนต์ AI

อธิบาย วิธีที่แต่ละโปรโตคอลช่วยให้การสื่อสารและการโต้ตอบระหว่าง LLMs, เครื่องมือ และเอเจนต์อื่น ๆ

รับรู้ บทบาทที่แตกต่างกันของแต่ละโปรโตคอลในการสร้างระบบเอเจนต์ที่ซับซ้อน

โปรโตคอลบริบทโมเดล (Model Context Protocol)

Model Context Protocol (MCP) คือมาตรฐานเปิดที่จัดเตรียมวิธีการมาตรฐานสำหรับแอปพลิเคชันในการให้บริบทและเครื่องมือกับ LLMs ซึ่งช่วยสร้าง “ตัวแปลงสากล” ให้กับแหล่งข้อมูลและเครื่องมือต่าง ๆ ที่เอเจนต์ AI สามารถเชื่อมต่อได้อย่างสม่ำเสมอ

มาดูส่วนประกอบของ MCP, ประโยชน์เมื่อเปรียบเทียบกับการใช้ API โดยตรง และตัวอย่างวิธีที่เอเจนต์ AI อาจใช้เซิร์ฟเวอร์ MCP

ส่วนประกอบหลักของ MCP

MCP ทำงานบน สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ โดยมีส่วนประกอบหลักดังนี้:

โฮสต์ (Hosts) คือแอปพลิเคชัน LLM (เช่นตัวแก้ไขโค้ดอย่าง VSCode) ที่เริ่มต้นการเชื่อมต่อไปยังเซิร์ฟเวอร์ MCP

ไคลเอนต์ (Clients) คือส่วนประกอบภายในแอปโฮสต์ที่รักษาการเชื่อมต่อแบบหนึ่งต่อหนึ่งกับเซิร์ฟเวอร์

เซิร์ฟเวอร์ (Servers) คือโปรแกรมเบาที่เปิดเผยความสามารถเฉพาะ

ในโปรโตคอลนี้มีสามพรอพริมิตฟ์หลักซึ่งเป็นความสามารถของเซิร์ฟเวอร์ MCP:

เครื่องมือ (Tools): เป็นการกระทำหรือฟังก์ชันแยกส่วนที่เอเจนต์ AI สามารถเรียกใช้งานได้ เช่น บริการพยากรณ์อากาศอาจเปิดเผยเครื่องมือ “รับข้อมูลอากาศ” หรือเซิร์ฟเวอร์อีคอมเมิร์ซอาจเปิดเผยเครื่องมือ “สั่งซื้อสินค้า” เซิร์ฟเวอร์ MCP จะแจ้งชื่อเครื่องมือ รายละเอียด และสคีมาอินพุต/เอาต์พุตในรายการความสามารถของพวกเขา

ทรัพยากร (Resources): เป็นข้อมูลที่อ่านได้อย่างเดียว หรือเอกสารที่เซิร์ฟเวอร์ MCP สามารถให้ และไคลเอนต์สามารถดึงมาเมื่อจำเป็น ตัวอย่างได้แก่เนื้อหาไฟล์ บันทึกฐานข้อมูล หรือไฟล์บันทึก ทรัพยากรอาจเป็นข้อความ (เช่น โค้ดหรือ JSON) หรือไบนารี (เช่น รูปภาพหรือ PDF)

พรอมต์ (Prompts): เป็นแม่แบบที่กำหนดไว้ล่วงหน้าซึ่งให้พรอมต์แนะนำ ช่วยให้เวิร์กโฟลว์ซับซ้อนขึ้น

ประโยชน์ของ MCP

MCP ให้ข้อได้เปรียบสำคัญสำหรับเอเจนต์ AI ดังนี้:

การค้นหาเครื่องมือแบบไดนามิก: เอเจนต์สามารถรับรายการเครื่องมือที่มีอยู่จากเซิร์ฟเวอร์พร้อมคำอธิบายของสิ่งที่พวกมันทำ โดยต่างจาก API แบบดั้งเดิมที่มักต้องเขียนโค้ดแบบคงที่สำหรับการผสานรวม ซึ่งหมายความว่าการเปลี่ยนแปลงใด ๆ ของ API ต้องมีการอัปเดตโค้ด MCP ให้วิธี “ผสานรวมครั้งเดียว” นำไปสู่ความสามารถในการปรับตัวที่มากขึ้น

ความสามารถในการทำงานร่วมกันข้าม LLMs: MCP ทำงานข้าม LLMs ต่าง ๆ ให้ความยืดหยุ่นในการเปลี่ยนโมเดลหลักเพื่อประเมินผลการทำงานที่ดีขึ้น

ความปลอดภัยมาตรฐาน: MCP รวมวิธีการยืนยันตัวตนมาตรฐาน ช่วยเพิ่มความสามารถในการขยายเมื่อเพิ่มการเข้าถึงเซิร์ฟเวอร์ MCP เพิ่มเติม ซึ่งง่ายกว่าการจัดการคีย์และประเภทการยืนยันตัวตนที่แตกต่างกันสำหรับ API แบบดั้งเดิมหลาย ๆ ตัว

ตัวอย่าง MCP

MCP Diagram

ลองจินตนาการว่าผู้ใช้ต้องการจองเที่ยวบินโดยใช้ผู้ช่วย AI ที่ขับเคลื่อนด้วย MCP

  1. เชื่อมต่อ: ผู้ช่วย AI (ซึ่งเป็นไคลเอนต์ MCP) เชื่อมต่อกับเซิร์ฟเวอร์ MCP ที่สายการบินให้บริการ

  2. ค้นหาเครื่องมือ: ไคลเอนต์ถามเซิร์ฟเวอร์ MCP ของสายการบินว่า “มีเครื่องมืออะไรบ้าง?” เซิร์ฟเวอร์ตอบด้วยเครื่องมือเช่น “ค้นหาเที่ยวบิน” และ “จองเที่ยวบิน”

  3. เรียกใช้เครื่องมือ: จากนั้นคุณบอกผู้ช่วย AI ว่า “กรุณาค้นหาเที่ยวบินจากพอร์ตแลนด์ไปฮอนโนลูลู” ผู้ช่วย AI โดยใช้ LLM ของตนระบุว่าต้องเรียกใช้เครื่องมือ “ค้นหาเที่ยวบิน” และส่งพารามิเตอร์ที่เกี่ยวข้อง (ต้นทาง ปลายทาง) ไปยังเซิร์ฟเวอร์ MCP

  4. ดำเนินการและตอบกลับ: เซิร์ฟเวอร์ MCP ทำหน้าที่เป็นตัวกลางเรียกใช้ API จองภายในของสายการบินจริง จากนั้นรับข้อมูลเที่ยวบิน (เช่น ข้อมูล JSON) และส่งกลับไปยังผู้ช่วย AI

  5. การโต้ตอบเพิ่มเติม: ผู้ช่วย AI นำเสนอตัวเลือกเที่ยวบิน เมื่อคุณเลือกเที่ยวบิน ผู้ช่วยอาจเรียกใช้เครื่องมือ “จองเที่ยวบิน” บนเซิร์ฟเวอร์ MCP เดียวกันเพื่อเสร็จสิ้นการจอง

โปรโตคอล Agent-to-Agent (A2A)

ขณะที่ MCP เน้นการเชื่อมต่อ LLM กับเครื่องมือ โปรโตคอล Agent-to-Agent (A2A) ก้าวไปไกลกว่านั้นโดยเปิดใช้งานการสื่อสารและความร่วมมือระหว่างเอเจนต์ AI ต่าง ๆ A2A เชื่อมต่อเอเจนต์ AI ข้ามองค์กรสภาพแวดล้อม และเทคโนโลยีสแตก เพื่อทำงานร่วมกันให้สำเร็จในงานที่ใช้ร่วมกัน

เราจะดูส่วนประกอบและประโยชน์ของ A2A พร้อมตัวอย่างวิธีการประยุกต์ใช้งานในแอปท่องเที่ยวของเรา

ส่วนประกอบหลักของ A2A

A2A มุ่งเน้นเปิดใช้งานการสื่อสารระหว่างเอเจนต์และให้พวกเขาทำงานร่วมกันเพื่อทำงานย่อยของผู้ใช้ แต่ละส่วนประกอบในโปรโตคอลมีบทบาทนี้:

Agent Card

คล้ายกับวิธีที่เซิร์ฟเวอร์ MCP แชร์รายการเครื่องมือ, Agent Card มี:

Agent Executor

Agent Executor มีหน้าที่ ส่งผ่านบริบทของการแชทผู้ใช้ไปยังเอเจนต์ระยะไกล ซึ่งเอเจนต์ระยะไกลต้องใช้เพื่อเข้าใจงานที่จะทำ ในเซิร์ฟเวอร์ A2A เอเจนต์จะใช้ LLM ของตนเองเพื่อแยกวิเคราะห์คำขอที่เข้ามาและดำเนินงานโดยใช้เครื่องมือภายในของตนเอง

Artifact

เมื่อเอเจนต์ระยะไกลทำงานที่ร้องขอเสร็จ ผลลัพธ์ของงานจะถูกสร้างเป็น artifact ซึ่ง ประกอบด้วยผลลัพธ์ของงานเอเจนต์ , คำอธิบายของสิ่งที่ทำเสร็จแล้ว และ บริบทข้อความ ที่ส่งผ่านโปรโตคอล หลังจาก artifact ถูกส่ง การเชื่อมต่อกับเอเจนต์ระยะไกลจะถูกปิดจนกว่าจะต้องใช้อีกครั้ง

Event Queue

ส่วนประกอบนี้ใช้สำหรับ จัดการอัปเดตและส่งข้อความ มีความสำคัญอย่างยิ่งในระบบเอเจนต์การผลิตเพื่อป้องกันการปิดการเชื่อมต่อระหว่างเอเจนต์ก่อนที่งานจะเสร็จ โดยเฉพาะอย่างยิ่งเมื่อเวลาการทำงานของงานยาวนาน

ประโยชน์ของ A2A

ความร่วมมือที่เพิ่มขึ้น: ช่วยให้เอเจนต์จากผู้ขายและแพลตฟอร์มต่างกันสามารถติดต่อ แชร์บริบท และทำงานร่วมกัน เพื่อให้ระบบอัตโนมัติที่ลื่นไหลข้ามระบบที่แยกกันโดยปกติ

ความยืดหยุ่นในการเลือกโมเดล: เอเจนต์แต่ละตัวใน A2A สามารถเลือกใช้ LLM ที่ต้องการให้บริการคำขอของตนเอง ทำให้สามารถปรับแต่งโมเดลต่อเอเจนต์ได้ ต่างจากการเชื่อมต่อ LLM เดียวในบางกรณีของ MCP

ระบบยืนยันตัวตนในตัว: การยืนยันตัวตนถูกรวมอยู่ในโปรโตคอล A2A โดยตรง สร้างกรอบความปลอดภัยที่แข็งแกร่งสำหรับการโต้ตอบของเอเจนต์

ตัวอย่าง A2A

A2A Diagram

มาขยายสถานการณ์การจองท่องเที่ยวของเรา แต่ครั้งนี้ใช้ A2A

  1. คำขอผู้ใช้ไปยังหลายเอเจนต์: ผู้ใช้โต้ตอบกับ “Travel Agent” เอเจนต์/ไคลเอนต์ A2A โดยพูดว่า “กรุณาจองทริปทั้งหมดไปฮอนโนลูลูสำหรับสัปดาห์หน้า รวมเที่ยวบิน โรงแรม และรถเช่า”

  2. การควบคุมโดย Travel Agent: Travel Agent รับคำขอที่ซับซ้อนนี้ ใช้ LLM ของตนเพื่อวิเคราะห์งานและกำหนดว่าจะต้องติดต่อกับเอเจนต์เฉพาะทางอื่น ๆ

  3. การสื่อสารระหว่างเอเจนต์: Travel Agent ใช้โปรโตคอล A2A เพื่อเชื่อมต่อกับเอเจนต์ด้านล่าง เช่น “Airline Agent,” “Hotel Agent,” และ “Car Rental Agent” ที่สร้างโดยบริษัทต่าง ๆ

  4. มอบหมายงาน: Travel Agent ส่งงานเฉพาะไปยังเอเจนต์เฉพาะทางเหล่านี้ (เช่น “ค้นหาเที่ยวบินไปฮอนโนลูลู,” “จองโรงแรม,” “เช่ารถ”) โดยแต่ละเอเจนต์เฉพาะทางที่ใช้ LLM ของตนเองและเครื่องมือของตนเอง (ซึ่งอาจเป็นเซิร์ฟเวอร์ MCP เอง) ทำงานส่วนของการจองนั้น

  5. การตอบกลับที่รวบรวม: เมื่อเอเจนต์ทุกตัวทำงานเสร็จ Travel Agent รวบรวมผลลัพธ์ (รายละเอียดเที่ยวบิน การยืนยันโรงแรม การจองรถเช่า) และส่งคำตอบแบบแชทกลับไปยังผู้ใช้

Natural Language Web (NLWeb)

เว็บไซต์เป็นวิธีหลักที่ผู้ใช้เข้าถึงข้อมูลและเนื้อหาต่าง ๆ บนอินเทอร์เน็ตมานานแล้ว

มาดูส่วนประกอบต่าง ๆ ของ NLWeb, ประโยชน์ของ NLWeb และตัวอย่างการทำงานของ NLWeb ในแอปท่องเที่ยวของเรา

ส่วนประกอบของ NLWeb

ตัวอย่าง NLWeb

NLWeb

ลองพิจารณาเว็บไซต์จองท่องเที่ยวของเราอีกครั้ง แต่ครั้งนี้ขับเคลื่อนด้วย NLWeb

  1. การนำเข้าข้อมูล: แคตาล็อกผลิตภัณฑ์ที่มีอยู่ของเว็บไซต์ท่องเที่ยว (เช่น รายการเที่ยวบิน คำอธิบายโรงแรม แพ็กเกจทัวร์) ถูกจัดรูปแบบโดยใช้ Schema.org หรือโหลดผ่านฟีด RSS เครื่องมือของ NLWeb นำเข้าข้อมูลที่มีโครงสร้างนี้ สร้าง embeddings และเก็บในฐานข้อมูลเวกเตอร์ท้องถิ่นหรือระยะไกล

  2. การถามด้วยภาษาธรรมชาติ (มนุษย์): ผู้ใช้เยี่ยมชมเว็บไซต์ และแทนที่จะใช้เมนู เขาพิมพ์ในอินเทอร์เฟซแชทว่า: “หาที่พักที่เป็นมิตรกับครอบครัวในฮอนโนลูลูที่มีสระว่ายน้ำสำหรับสัปดาห์หน้า”

  3. การประมวลผลของ NLWeb: แอป NLWeb รับคำถามนี้ ส่งคำถามไปยัง LLM เพื่อทำความเข้าใจ และในเวลาเดียวกันค้นหาฐานข้อมูลเวกเตอร์เพื่อหาข้อมูลโรงแรมที่เกี่ยวข้อง

  4. ผลลัพธ์ที่แม่นยำ: LLM ช่วยตีความผลการค้นหาจากฐานข้อมูล ระบุผลลัพธ์ที่ตรงที่สุดโดยใช้เกณฑ์ “เป็นมิตรกับครอบครัว,” “สระว่ายน้ำ,” และ “ฮอนโนลูลู” และจัดรูปแบบคำตอบเป็นภาษาธรรมชาติ สำคัญที่คำตอบอ้างอิงโรงแรมจริงจากแคตาล็อกของเว็บไซต์ หลีกเลี่ยงการสร้างข้อมูลปลอมแปลง

  5. การโต้ตอบของเอเจนต์ AI: เนื่องจาก NLWeb ทำงานเป็นเซิร์ฟเวอร์ MCP เอเจนต์ท่องเที่ยว AI ภายนอกจึงสามารถเชื่อมต่อกับอินสแตนซ์ NLWeb ของเว็บไซต์นี้ได้ เอเจนต์ AI สามารถใช้เมธอด ask ของ MCP เพื่อถามเว็บไซต์โดยตรง: ask("มีร้านอาหารวีแกนในพื้นที่ฮอนโนลูลูที่โรงแรมแนะนำไหม?") อินสแตนซ์ NLWeb จะประมวลผลคำถามนี้ ใช้ฐานข้อมูลร้านอาหาร (ถ้ามีการโหลดข้อมูล) และส่งกลับคำตอบในรูปแบบ JSON ที่มีโครงสร้าง

มีคำถามเพิ่มเติมเกี่ยวกับ MCP/A2A/NLWeb ไหม?

เข้าร่วมที่ Microsoft Foundry Discord เพื่อพบกับผู้เรียนอื่น ๆ เข้าร่วมชั่วโมงทำงาน และรับคำตอบสำหรับคำถามเกี่ยวกับเอเจนต์ AI ของคุณ

ทรัพยากร

บทเรียนก่อนหน้า

AI Agents in Production

บทเรียนถัดไป

Context Engineering for AI Agents


ปฏิเสธความรับผิดชอบ: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator ขณะที่เราพยายามให้ความถูกต้อง โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้การแปลโดยมนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้