logo
0
0
WeChat Login
localizeflow[bot]<skytin1004@users.noreply.github.com>
chore(i18n): sync translations with latest source changes (chunk 1/1, 171 changes)

การใช้โปรโตคอลที่มีตัวแทน (MCP, A2A และ NLWeb)

Agentic Protocols

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

ในขณะที่การใช้เอเจนต์ AI เติบโตขึ้น ความต้องการโปรโตคอลที่รับรองมาตรฐาน ความปลอดภัย และสนับสนุนนวัตกรรมแบบเปิดก็เพิ่มขึ้นเช่นกัน ในบทเรียนนี้ เราจะครอบคลุม 3 โปรโตคอลที่มุ่งตอบสนองความต้องการนี้ - Model Context Protocol (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 คือโปรแกรมน้ำหนักเบาที่เปิดเผยความสามารถเฉพาะ

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

Tools: เป็นการกระทำหรือฟังก์ชันเฉพาะที่เอเจนต์ AI สามารถเรียกใช้เพื่อดำเนินการ เช่น บริการพยากรณ์อากาศอาจมี "เครื่องมือเรียกดูสภาพอากาศ" หรือเซิร์ฟเวอร์อีคอมเมิร์ซอาจมี "เครื่องมือซื้อสินค้า" เซิร์ฟเวอร์ MCP จะโฆษณาชื่อเครื่องมือ คำอธิบาย และโครงสร้างอินพุต/เอาต์พุตในรายการความสามารถ

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

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

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

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

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

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

มาตรฐานความปลอดภัย: 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 มีข้อมูลดังนี้:

  • ชื่อของเอเจนต์
  • คำอธิบายงานทั่วไป ที่ถูกทำให้สำเร็จโดยเอเจนต์นั้น
  • รายการทักษะเฉพาะพร้อมคำอธิบาย เพื่อช่วยให้เอเจนต์อื่น ๆ (หรือแม้แต่ผู้ใช้มนุษย์) เข้าใจว่าเมื่อไหร่และทำไมต้องเรียกเอเจนต์นั้น
  • URL ปลายทางปัจจุบัน ของเอเจนต์
  • เวอร์ชัน และ ความสามารถ ของเอเจนต์ เช่น การตอบสนองแบบสตรีมและการแจ้งเตือนแบบพุช

Agent Executor

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

Artifact

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

Event Queue

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

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

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

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

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

ตัวอย่าง A2A

A2A Diagram

ขยายกรณีจองทัวร์ของเรา โดยใช้ A2A

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

  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: เป็น ชุดกฎพื้นฐานสำหรับการโต้ตอบภาษาธรรมชาติกับเว็บไซต์ ส่งกลับคำตอบในรูปแบบ JSON (มักใช้ Schema.org) จุดประสงค์เพื่อสร้างรากฐานง่าย ๆ สำหรับ “เว็บ AI” เช่นเดียวกับที่ HTML ทำให้สามารถแชร์เอกสารออนไลน์ได้

  • เซิร์ฟเวอร์ MCP (จุดสิ้นสุด Model Context Protocol): การตั้งค่า NLWeb แต่ละชุดยังทำงานเป็น เซิร์ฟเวอร์ MCP ด้วย ซึ่งหมายความว่าสามารถ แชร์เครื่องมือ (เช่น วิธี 'ask') และข้อมูล กับระบบ AI อื่น ๆ ในทางปฏิบัติทำให้เนื้อหาและความสามารถของเว็บไซต์ใช้งานได้โดยเอเจนต์ AI ทำให้ไซต์กลายเป็นส่วนหนึ่งของ “ระบบนิเวศตัวแทน” ที่กว้างขึ้น

  • Embedding Models: โมเดลเหล่านี้ใช้สำหรับ แปลงเนื้อหาเว็บไซต์เป็นตัวแทนเชิงตัวเลขที่เรียกว่าวิชเตอร์ (embeddings) วิชเตอร์เหล่านี้จับความหมายในรูปแบบที่คอมพิวเตอร์เปรียบเทียบและค้นหาได้ พวกมันจะถูกเก็บในฐานข้อมูลพิเศษ และผู้ใช้สามารถเลือกโมเดล embedding ที่ต้องการใช้

  • ฐานข้อมูล Vector (กลไกการดึงข้อมูล): ฐานข้อมูลนี้ เก็บ embeddings ของเนื้อหาเว็บไซต์ เมื่อมีคนถามคำถาม NLWeb จะตรวจสอบฐานข้อมูลเวกเตอร์เพื่อค้นหาข้อมูลที่เกี่ยวข้องอย่างรวดเร็ว โดยให้รายการคำตอบที่เป็นไปได้ที่ถูกจัดอันดับตามความคล้ายคลึงกัน NLWeb ทำงานร่วมกับระบบเก็บเวกเตอร์ที่หลากหลาย เช่น Qdrant, Snowflake, Milvus, Azure AI Search และ Elasticsearch

ตัวอย่าง 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 Agents ของคุณ

แหล่งข้อมูล


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