เชื่อมต่อเอเจนต์ที่พร้อมใช้งานผ่านโปรโตคอล Agent2Agent (A2A)

Note

บทความนี้อธิบายคุณสมบัติที่ใช้ในเอเจนต์หรือการไหลของเอเจนต์ที่ขับเคลื่อนโดยฮาร์เนสมาตรฐาน

โพรโทคอล Agent2Agent (A2A) เป็นมาตรฐานเปิดสำหรับการสื่อสารและการทำงานร่วมกันระหว่างเอเจนต์

คุณสามารถเชื่อมต่อตัวแทนที่กําหนดเองของคุณกับตัวแทนอื่นที่สนับสนุนโพรโทคอล A2A ได้ Copilot Studio ใช้โพรโทคอล A2A เพื่อประสานงานกับตัวแทนนี้เพื่อตอบสนองต่อคําขอของผู้ใช้หรือทริกเกอร์

โพรโทคอล Agent2Agent (A2A) คืออะไร

โพรโทคอลตัวแทนตัวแทน (A2A) กําหนดสัญญามาตรฐานสําหรับการสื่อสารของบริษัทตัวแทน ซึ่งช่วยให้ออร์เคสเตรเตอร์หรือเอเจนต์สามารถ:

  • ส่งงานไปยังเจ้าหน้าที่ภายนอก
  • ให้เมตาดาต้าที่มีโครงสร้างและรายละเอียดครบถ้วน
  • รับคําตอบของตัวแทนในรูปแบบที่คาดการณ์ได้

นี่คือวิธีการเปรียบเทียบโพรโทคอล A2A กับการเชื่อมต่อ HTTP แบบดั้งเดิมสําหรับการสื่อสารระหว่างตัวแทน:

ฟีเจอร์ โพรโทคอล A2A ตัวเชื่อมต่อ HTTP
ออกแบบมาสำหรับการทำงานของระบบเอเย่นต์
รองรับการโต้ตอบหลายเทิร์น
มีเมตาดาต้าตามบริบทที่สมบูรณ์ จำกัด
สามารถทํางานร่วมกันข้ามเฟรมเวิร์ก แตก ต่าง กัน

ด้วยการใช้ A2A Copilot Studio สามารถมอบหมายงานให้กับตัวแทนอื่น ไม่ใช่เพียงแค่เรียกใช้ API เท่านั้น

เมื่อต้องใช้การเชื่อมต่อ A2A

ใช้การเชื่อมต่อ A2A เมื่อคุณต้องการรวมเอเจนต์ที่ใช้โพรโทคอล Agent-to-Agent อยู่แล้ว วิธีการนี้ทํางานได้ดีสําหรับตัวแทนที่มี:

  • สร้างขึ้นบนเฟรมเวิร์กภายนอก
  • จัดเก็บอยู่ภายนอก Copilot Studio
  • มีการใช้เหตุผลหรือเวิร์กโฟลว์เฉพาะโดเมนของตนเอง

ใช้รูปแบบการรวมอื่นเมื่อเหมาะสม:

ความจำเป็นในการผสาน วิธีการที่แนะนํา
เชื่อมต่อกับ API หรือบริการ HTTP พื้นฐาน ตัวเชื่อมต่อแบบกําหนดเอง / เครื่องมือ HTTP
ใช้เครื่องมือหรือแหล่งข้อมูล MCP เซิร์ฟเวอร์ MCP
รวมตัวแทนที่สร้างขึ้นด้วย SDK เอเจนต์สำหรับ Microsoft 365 โพรโทคอลกิจกรรม

คุณสามารถรวมแบบจําลองการรวมหลายรายการภายในตัวแทน Copilot Studio เดียวกันได้

เชื่อมต่อตัวแทนของคุณกับตัวแทนอื่นผ่านโปรโตคอล A2A

  1. ไปที่หน้า Agents สําหรับตัวแทนหลักของคุณและเลือก เพิ่มตัวแทน

  2. เลือกตัวแทน A2A

  3. ป้อน URL ปลายทางของเอเจนต์ A2A ของคุณ URL ปลายทางควรเป็นปลายทางสำหรับการสื่อสารกับเอเจนต์ และไม่ใช่ URL สำหรับการ์ดเอเจนต์

    เมื่อคุณป้อน URL ปลายทางของคุณ หากเอเจนต์ของคุณมีการ์ดเอเจนต์ที่ถูกต้องใน URL มาตรฐาน .well-known Copilot Studio จะดึงชื่อและคำอธิบายสำหรับเอเจนต์ของคุณจากการ์ดโดยอัตโนมัติและกรอกข้อมูลลงในแบบฟอร์มสำหรับคุณ

    Note

    หากไม่มีชื่อและคำอธิบายโดยอัตโนมัติสำหรับเอเจนต์ของคุณ อาจเป็นไปได้ว่าเจ้าหน้าที่ของคุณไม่มีการ์ดเอเจนต์ การ์ดจะอยู่บน URL อื่นนอกเหนือจากที่คาดไว้ หรือมีปัญหาการสื่อสารกับการ์ด ก่อนอื่น ตรวจสอบว่าปลายทางของเอเจนต์ของคุณถูกต้อง ถ้าเป็นเช่นนั้น คุณสามารถป้อนชื่อและคำอธิบายที่เหมาะสมสำหรับเอเจนต์ SDK ของคุณด้วยตนเอง คำอธิบายควรอธิบายวัตถุประสงค์ของเอเจนต์ของคุณ เพื่อให้เอเจนต์หลักของคุณสามารถเข้าใจเมื่อควรใช้เอเจนต์ที่สอง เรียนรู้เพิ่มเติมเกี่ยวกับการเขียนเมตาดาต้าที่มีประสิทธิภาพ คุณยังสามารถลองนำทางไปยังการ์ดเอเจนต์ของคุณในเบราว์เซอร์ของคุณ (อยู่ที่ปลายทางของเอเจนต์ + /.well-known/agent.json)

  4. เลือกวิธีการรับรองความถูกต้องที่เหมาะสม โดยขึ้นอยู่กับวิธีการกําหนดค่า SDK Agent ของคุณจากรายการดรอปดาวน์การรับรองความถูกต้อง ตัวเลือกคือ:

    • ไม่มี: เลือกตัวเลือกนี้หากเอเจนต์ของคุณไม่จําเป็นต้องมีการรับรองความถูกต้อง หรือถ้าคุณกําลังใช้ตัวแทนตัวอย่างที่ให้ไว้ในเอกสารนี้ ซึ่งไม่ได้เปิดใช้งานการรับรองความถูกต้อง
    • คีย์ API: เลือกตัวเลือกนี้ถ้าตัวแทนของคุณจําเป็นต้องใช้คีย์ API สําหรับการรับรองความถูกต้อง คุณจําเป็นต้องระบุชื่อของส่วนหัวที่ควรรวมคีย์ API หรือพารามิเตอร์คิวรี
    • OAuth 2.0: เลือกตัวเลือกนี้หากเจ้าหน้าที่ของคุณใช้ OAuth 2.0 สําหรับการรับรองความถูกต้อง คุณจําเป็นต้องระบุ ID ไคลเอ็นต์ ข้อมูลลับของไคลเอ็นต์ URL การรับรองความถูกต้อง URL โทเค็น และ URL การรีเฟรช

    ถ้าคุณเลือกชนิดการรับรองความถูกต้องอื่นที่ไม่ใช่ ไม่มี คุณต้องกรอกรายละเอียดการรับรองความถูกต้องอื่นๆ ให้เสร็จสมบูรณ์ด้วย

  5. เลือก บันทึก

  6. เลือกการเชื่อมต่อที่ต้องการจากรายการการเชื่อมต่อที่พร้อมใช้งาน หรือสร้างการเชื่อมต่อใหม่ระหว่างตัวแทน A2A ของคุณและตัวแทน Copilot Studio ของคุณ

  7. เลือก เพิ่มและกำหนดค่า

Note

คุณมีหน้าที่รับผิดชอบในการตรวจทานและทดสอบตัวแทนที่เชื่อมต่ออย่างรอบคอบในบริบทของกรณีการใช้งานเฉพาะของคุณ และทําการตัดสินใจและการปรับแต่งที่เหมาะสมทั้งหมด เมื่อคุณเชื่อมต่อกับเอเจนต์ภายนอก Copilot Studio คุณจะต้องรับผิดชอบต่อการใช้เอเจนต์ดังกล่าว ข้อควรพิจารณารวมถึงการรับรอง:

  • การไหลของข้อมูล การจัดการข้อมูล และการแบ่งปันข้อมูลระหว่างตัวแทนมีความเหมาะสมกับกรณีการใช้งานของคุณและเป็นไปตามข้อกําหนดและกฎหมายที่เกี่ยวข้อง
  • ตัวแทนมีคุณสมบัติตรงตามมาตรฐานคุณภาพ ความน่าเชื่อถือ ความปลอดภัย และความน่าเชื่อถือที่เหมาะสม
  • มีการจัดเตรียมสิทธิ์ ขอบเขต และการอนุมัติที่เหมาะสม หากมีความระมัดระวังในกรณีการใช้งานของคุณ
  • มีความสามารถในการสังเกต ตัวตน และการตรวจสอบย้อนกลับที่เหมาะสม และหน้าที่การกํากับดูแลของมนุษย์

ตัวอย่างการเชื่อมต่อ A2A

ในการเริ่มต้นใช้งานด่วนนี้ คุณกําหนดค่าตัวแทนที่เปิดใช้งาน A2A และเชื่อมต่อกับตัวแทน Copilot Studio เมื่อคุณทำตามขั้นตอนเสร็จแล้ว คุณจะ

  • เรียกใช้ตัวอย่างเอเจนต์ที่เปิดใช้งาน A2A ภายในเครื่อง หรือใช้ตัวแทน A2A ที่มีอยู่ที่คุณมีอยู่แล้ว
  • เปิดเผยตัวแทนได้อย่างปลอดภัยผ่าน HTTPS โดยใช้ Dev Tunnels หรือตัวเลือกการโฮสต์อื่น
  • เชื่อมต่อเจ้าหน้าที่ภายนอกกับตัวแทน Copilot Studio ผ่านการเชื่อมต่อ A2A
  • ตรวจสอบการเชื่อมต่อโดยการเรียกตัวแทนจาก Copilot Studio ด้วยงานภาษาธรรมชาติเช่น: "ต้นไม้ชนิดไหนต้องการแสงมากกว่า ระหว่างต้นมะเขือเทศกับต้นสตรอเบอรี่?"

หลังจากกําหนดค่าการเชื่อมต่อแล้ว คุณจะเห็น:

  • สร้างการเชื่อมต่อ A2A สําเร็จจาก Copilot Studio
  • บันทึกกิจกรรมจากตัวแทนภายนอกยืนยันว่าได้รับและประมวลผลงานที่ได้รับมอบหมายแล้ว
  • ข้อมูล A2A ที่สมบูรณ์นี้ รวมถึงเมตาดาต้าอื่นๆ ที่ Copilot Studio ส่งไปพร้อมกับแต่ละคำขอ

Prerequisites

หากต้องการทําตามสถานการณ์ตัวอย่าง คุณต้องมี:

  • ทรัพยากร OpenAI ของ Azure ที่มี:
    • URL ปลายทาง
    • ชื่อการปรับใช้
    • API key
  • .NET 10 SDK หรือสูงกว่า
  • แพลตฟอร์ม Copilot Studio ที่มีสิทธิ์ในการ:
    • แก้ไขเอเจนต์
    • กําหนดค่าการเชื่อมต่อ
  • วิธีการทำให้ตัวแทนท้องถิ่นสามารถเข้าถึงได้จากภายนอก:
    • Dev Tunnels (แนะนําสําหรับการพัฒนา)
    • หรือสภาพแวดล้อมที่เป็นโฮสต์ เช่น บริการแอป Azure หรือคอนเทนเนอร์

หากคุณมีตัวแทนที่เปิดใช้งาน A2A อยู่แล้ว ให้ไปที่ สร้างการเชื่อมต่อ A2A ใน Copilot Studio

ขั้นตอนที่ 1: โคลนและกำหนดค่าตัวแทน A2A ตัวอย่าง

ลอกแบบที่เก็บตัวแทน A2A ตัวอย่าง:

git clone https://github.com/microsoft/CopilotStudioSamples.git
cd CopilotStudioSamples/extensibility/a2a/Simple-A2A-Sample

ตั้งค่า Azure OpenAI ที่จําเป็น:

  • AZURE_OPENAI_ENDPOINT: URL ปลายทาง Azure OpenAI ของคุณ
  • AZURE_OPENAI_DEPLOYMENT_NAME: ชื่อของการปรับใช้ Azure OpenAI ของคุณ
  • AZURE_OPENAI_API_KEY: คีย์ Azure OpenAI API ของคุณ

คุณสามารถกําหนดค่าการตั้งค่าเหล่านี้เป็นตัวแปรสภาพแวดล้อมหรือโดยการบันทึกลงใน appsettings.json หรือappsettings.Development.json

ตัวเลือก A: กําหนดค่าเป็นตัวแปรสภาพแวดล้อม

$env:AZURE_OPENAI_ENDPOINT="https://YOUR-RESOURCE.openai.azure.com"
$env:AZURE_OPENAI_DEPLOYMENT_NAME="YOUR-DEPLOYMENT"
$env:AZURE_OPENAI_API_KEY="YOUR-KEY"

ตัวเลือก B: กําหนดค่าใน appsettings.json

{  
    "AzureOpenAI": {    
        "Endpoint": "https://YOUR-RESOURCE.openai.azure.com",
        "DeploymentName": "YOUR-DEPLOYMENT",
        "ApiKey": "YOUR-KEY"  
    }
}

ขั้นตอนที่ 2: สร้าง เรียกใช้ และเปิดเผยตัวแทน

คืนค่าและติดตั้งการพึ่งพา

dotnet restore
dotnet build

เรียกใช้เอเจนต์:

dotnet run

คอนโซลจะแสดง URL จุดสิ้นสุด A2A ในเครื่องของคุณ

แสดงปลายทาง

Note

สําหรับสถานการณ์การผลิต ให้ปรับใช้ตัวแทนเป็นเว็บแอปที่ปลอดภัยหรือบริการคอนเทนเนอร์โดยใช้การรับรองความถูกต้องที่เหมาะสม ใช้ Dev Tunnels สําหรับการพัฒนาและการสาธิตในท้องถิ่นเท่านั้น

หากคุณกําลังใช้ Visual Studio Code และวางแผนที่จะแสดงจุดสิ้นสุดโดยใช้ Dev Tunnels ให้เปิดพอร์ต Dev Tunnel ใหม่ เลือกพอร์ต A2A ที่แสดงในคอนโซล คลิกขวาและทําให้พอร์ตเป็นสาธารณะ; มิฉะนั้น จะไม่สามารถมองเห็นออนไลน์ได้

Dev Tunnels จะให้ URL สาธารณะเช่น: https://xyz123-9000.dev.tunnels.ms/ จดบันทึก URL นี้เป็นจุดสิ้นสุดพื้นฐานเพื่อให้คุณสามารถใช้ได้เมื่อกําหนดค่าการเชื่อมต่อ A2A ใน Copilot Studio

ขั้นตอนที่ 3: สร้างการเชื่อมต่อ A2A ใน Copilot Studio

หลังจากเอเจนต์ A2A สามารถเข้าถึงได้โดยสาธารณะแล้ว ให้สร้างการเชื่อมต่อ A2A ภายใน Copilot Studio

  1. เปิด Copilot Studio และเลือกตัวแทนหลักของคุณ
  2. เลือกตัวแทน
  3. เลือกเพิ่มตัวแทน แล้วเลือกตัวแทน A2A
  4. ป้อนค่าการกําหนดค่าที่จําเป็น:
    • ชื่อ: ชื่อที่เป็นคําอธิบาย เช่น ตัวแทนพฤกษศาสตร์
    • URL ปลายทาง: ใช้ URL Dev Tunnel สาธารณะตามด้วยจุดสิ้นสุดของข้อความ A2A ตัวอย่างเช่น: https://xyz123-5073.dev.tunnels.ms/a2a/botanical/v1/message:stream
    • การรับรองความถูกต้อง: เลือก ไม่มี ถ้าคุณกําลังใช้ตัวแทนตัวอย่าง (ไม่มีการบังคับใช้การรับรองความถูกต้อง)
  5. เลือก บันทึก เพื่อตรวจสอบความถูกต้องและสร้างการเชื่อมต่อ

เมื่อการกําหนดค่าถูกต้อง Copilot Studio ยืนยันว่าตัวแทน A2A เชื่อมต่อเสร็จเรียบร้อยแล้ว

Tip

เนื่องจากการเชื่อมต่อ A2A ใช้โครงสร้างพื้นฐานของตัวเชื่อมต่อแบบกําหนดเอง คุณจึงสามารถใช้การเชื่อมต่อเชื่อมต่อกับตัวแทน A2A ที่ทํางานภายในองค์กรหรือภายในเครือข่ายเสมือนได้

ขั้นตอนที่ 4: ส่งงานจาก Copilot Studio ไปยังตัวแทน A2A

หลังจากที่คุณสร้างการเชื่อมต่อ ให้ตรวจสอบการรวมโดยการส่งงาน

  1. เปิดตัวแทนหลักของคุณใน Copilot Studio และไปที่พื้นที่ทดสอบ
  2. ป้อนคำสั่งที่ควรมอบหมายให้กับตัวแทน A2A ตัวอย่างเช่น: "พืชชนิดใดต้องการแสงมากขึ้น - พืชมะเขือเทศหรือพืชสตรอเบอรี่?"
  3. การควบคุมตัวแทนจะประเมินการป้อนข้อมูลของผู้ใช้ และมอบหมายงานให้กับตัวแทน A2A
  4. เจ้าหน้าที่ภายนอกประมวลผลคําขอและส่งกลับการตอบสนองซึ่งปรากฏในการสนทนาทดสอบ

ในบันทึกของเจ้าหน้าที่ภายนอก คุณเห็น:

  • งาน A2A ที่ได้รับ
  • คำสั่งภาษาธรรมชาติ
  • การตอบสนองที่สร้างขึ้นถูกส่งกลับไปยัง Copilot Studio

ขั้นตอนที่ 5: ตรวจสอบเพย์โหลดและเมตาดาต้าของ A2A

ข้อความ A2A มีเมตาดาต้าที่มีโครงสร้างซึ่งให้บริบทเพิ่มเติม เมตาดาต้านี้สามารถช่วยให้ตัวแทนปรับการตอบกลับ จัดการการกําหนดเส้นทาง หรือรักษาความต่อเนื่องตลอดเลี้ยวของผู้ใช้

ส่วนข้อมูลของข้อความ A2A ทั่วไปประกอบด้วย:

  • ไม่ซ้ํากัน contextId
  • รหัสข้อความ
  • ข้อมูลตําแหน่งที่ตั้ง
  • ประวัติการแชทแบบเต็มไม่เพียง แต่เป็นคําพูดของผู้ใช้ล่าสุดเท่านั้น
  • ส่วนของเนื้อหาข้อความ (ข้อความ การเรียกใช้เครื่องมือ หรือเมตาดาต้าอื่นๆ)

ตัวอย่างข้อมูลเพย์โหลดที่ตัดตอนมา:

{
"method": "message/send",
"params": {
 "message": {
   "contextId": "ee1e68ee-75fc-42bb-83d7-25fd26e559c3",
   "metadata": {
     "copilotstudio.microsoft.com/a2a/chathistory": [
       {
         "From": "agent",
         "Locale": "en-US",
         "Text": "Hello, I'm A2A Agent Demo...",
         "Timestamp": "2025-11-26T23:19:28.764Z"
       },
       {
         "From": "user",
         "Locale": "en-US",
         "Text": "Which plant needs more sunlight...",
         "Timestamp": "2025-11-26T23:20:21.484Z"
       }
     ]
   }
 }
}
}

คุณสามารถใช้เมตาดาต้านี้สําหรับการใช้งานตรรกะปลายทางใด ๆ ของบริษัทตัวแทน A2A

ขั้นตอนถัดไป

หลังจากที่คุณสร้างการเชื่อมต่อ A2A พื้นฐานแล้ว คุณสามารถ:

  • เพิ่มทักษะหรือความรู้โดเมนใหม่ให้กับตัวแทน A2A ของคุณ
  • ใช้เมตาดาต้าจากส่วนข้อมูล A2A เพื่อใช้ตรรกะการกําหนดเส้นทางและการตั้งค่าส่วนบุคคล
  • เพิ่มการรับรองความถูกต้องเพื่อรักษาความปลอดภัยจุดสิ้นสุด A2A ของคุณและอัปเดตการตั้งค่า Copilot Studio ตามลําดับ
  • เชื่อมต่อเอเจนต์อื่นๆ ที่เปิดใช้งาน A2A โดยใช้วิธีการกําหนดค่าเดียวกัน

ประเด็นที่สำคัญ

  • Copilot Studio สามารถประสานงานตัวแทนภายนอกโดยใช้โพรโทคอล A2A ได้
  • A2A ช่วยให้เวิร์กโฟลว์หลายเอเจนต์ทํางานได้ด้วยข้อมูลเมตาบริบทที่หลากหลาย
  • ตัวแทนตัวอย่างสาธิตการเดินทางกลับเต็มรูปแบบ: Copilot Studio -> A2A agent -> Copilot Studio
  • ข้อความ A2A ประกอบด้วยเมตาดาต้าโดยละเอียดที่สนับสนุนลักษณะการทํางานของตัวแทนตามบริบท