การค้นพบเอเจนต์สาธารณะ
ใช้ตัวอย่างเหล่านี้เพื่อกำหนดรูปแบบ JSON ที่ไคลเอนต์ A2A อื่นดึงมาก่อนที่จะตัดสินใจว่าเอเจนต์ของคุณสามารถทำงานให้เสร็จได้หรือไม่
เทมเพลต JSON พร้อมคัดลอก 6 รายการ · A2A v1.0
เรียกดูเทมเพลต A2A v1.0 ที่ใช้งานได้จริง ทำความเข้าใจการตัดสินใจด้านการออกแบบ จากนั้นปรับใช้ตัวอย่างใดก็ได้สำหรับเอเจนต์ของคุณเอง
ใช้ตัวอย่างเหล่านี้เพื่อกำหนดรูปแบบ JSON ที่ไคลเอนต์ A2A อื่นดึงมาก่อนที่จะตัดสินใจว่าเอเจนต์ของคุณสามารถทำงานให้เสร็จได้หรือไม่
ปรับผู้ให้บริการ สกิล แท็ก ความสามารถ และเมตาดาต้าความปลอดภัย เพื่อให้ผู้ตรวจสอบเข้าใจว่าเอเจนต์ทำอะไรและใครเป็นผู้ดำเนินการ
สร้างมาตรฐานคำอธิบายเอนด์พอยต์ การยืนยันตัวตน และสกิลในเอเจนต์ภายในก่อนที่ทีมจะรวมเข้ากับเวิร์กโฟลว์
เทมเพลต JSON
จัดการคำถามเกี่ยวกับผลิตภัณฑ์ การค้นหาคำสั่งซื้อ การคืนสินค้า และการส่งต่อการยกระดับ
เหตุผลที่ออกแบบมาเช่นนี้
{
"name": "เอเจนต์สนับสนุนลูกค้า",
"description": "ตอบคำถามฝ่ายสนับสนุนลูกค้า ดึงข้อมูลบริบทของคำสั่งซื้อ และยกระดับปัญหาที่ยังไม่ได้รับการแก้ไขไปยังทีมงานที่เป็นมนุษย์",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/customer-support",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "ตัวอย่างอิงค์",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "resolve-customer-support-request",
"name": "แก้ไขคำขอการสนับสนุนลูกค้า",
"description": "จำแนกคำขอการสนับสนุนลูกค้า รวบรวมบริบทที่จำเป็น เสนอวิธีแก้ปัญหา และเพิ่มระดับเมื่อความเชื่อมั่นต่ำ",
"tags": [
"support",
"orders",
"returns"
],
"examples": [
"ช่วยฉันคืนคำสั่งซื้อของฉันด้วย"
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/customer-support/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}ค้นหาช่วงเวลานัดหมายที่ว่างและเตรียมการยืนยันการจอง
เหตุผลที่ออกแบบมาเช่นนี้
{
"name": "เอเจนต์การจอง",
"description": "ค้นหาห้องว่าง เสนอตัวเลือกการจอง และเตรียมการจองการนัดหมายเพื่อขออนุมัติ",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/booking",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "ตัวอย่างอิงค์",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "find-and-prepare-booking",
"name": "ค้นหาและเตรียมการจอง",
"description": "ตรวจสอบความพร้อมของทรัพยากร เปรียบเทียบกรอบเวลาการจอง และส่งคืนข้อเสนอการจองที่มีโครงสร้าง",
"tags": [
"booking",
"calendar",
"availability"
],
"examples": [
"ค้นหาการนัดหมาย 30 นาทีบ่ายวันพรุ่งนี้"
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}เปรียบเทียบสินค้า ความพร้อมจำหน่าย ราคา และข้อจำกัดในการซื้อ
เหตุผลที่ออกแบบมาเช่นนี้
{
"name": "เอเจนต์การช้อปปิ้ง",
"description": "เปรียบเทียบผลิตภัณฑ์กับข้อจำกัดของผู้ใช้และตัวเลือกการซื้อที่ได้รับการจัดอันดับการคืนสินค้ากับข้อแลกเปลี่ยน",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/shopping",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "ตัวอย่างอิงค์",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "compare-shopping-options",
"name": "เปรียบเทียบตัวเลือกการช็อปปิ้ง",
"description": "ประเมินผลิตภัณฑ์ผู้สมัคร กรองตามข้อจำกัด และส่งคืนคำแนะนำที่ได้รับการจัดอันดับพร้อมเหตุผล",
"tags": [
"shopping",
"commerce",
"recommendations"
],
"examples": [
"เปรียบเทียบแล็ปท็อปน้ำหนักเบาราคาต่ำกว่า 1,200 ดอลลาร์"
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/shopping/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}ตรวจสอบงานโค้ด เสนอแพตช์ และอธิบายการตัดสินใจในการนำไปใช้
เหตุผลที่ออกแบบมาเช่นนี้
{
"name": "เอเจนต์การเขียนโค้ด",
"description": "ช่วยในงานวิศวกรรมซอฟต์แวร์โดยการวิเคราะห์โค้ด เสนอการเปลี่ยนแปลง และส่งคืนบันทึกการใช้งาน",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/coding",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "ตัวอย่างอิงค์",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "implement-code-change",
"name": "ใช้การเปลี่ยนแปลงรหัส",
"description": "อ่านคำขอเข้ารหัส ตรวจสอบไฟล์ที่เกี่ยวข้อง ส่งคืนข้อเสนอแพตช์ และสรุปขั้นตอนการตรวจสอบ",
"tags": [
"coding",
"review",
"patches"
],
"examples": [
"เพิ่มการแบ่งหน้าให้กับผู้ใช้ API"
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}รวบรวมแหล่งข้อมูล ดึงหลักฐาน และส่งคืนบันทึกการวิจัยแบบมีโครงสร้าง
เหตุผลที่ออกแบบมาเช่นนี้
{
"name": "เอเจนต์การวิจัย",
"description": "รวบรวมแหล่งข้อมูล ดึงหลักฐาน และสร้างบันทึกการวิจัยที่มีโครงสร้างพร้อมการอ้างอิง",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/research",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "ตัวอย่างอิงค์",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "prepare-research-brief",
"name": "เตรียมบทสรุปการวิจัย",
"description": "ค้นหาแหล่งที่มาที่ได้รับอนุมัติ แยกคำกล่าวอ้างและหลักฐาน และส่งกลับบทสรุปการวิจัยที่กระชับ",
"tags": [
"research",
"evidence",
"citations"
],
"examples": [
"เตรียมบรรยายสรุปอ้างอิงเกี่ยวกับนโยบายพลังงานทดแทน"
]
}
]
}ประสานงานการอนุมัติ การตรวจสอบสถานะ และการอัปเดตเวิร์กโฟลว์ฝ่ายสนับสนุน
เหตุผลที่ออกแบบมาเช่นนี้
{
"name": "เอเจนต์เวิร์กโฟลว์ภายใน",
"description": "ประสานงานการอนุมัติภายใน ตรวจสอบสถานะของระบบ และเตรียมการอัพเดตขั้นตอนการทำงานสำหรับทีมปฏิบัติการ",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/workflow",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "ตัวอย่างอิงค์",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "coordinate-internal-workflow",
"name": "ประสานงานขั้นตอนการทำงานภายใน",
"description": "รับจุดประสงค์ของเวิร์กโฟลว์ ตรวจสอบข้อกำหนดของนโยบาย รวบรวมการอนุมัติ และรายงานสถานะขั้นสุดท้าย",
"tags": [
"workflow",
"operations",
"approval"
],
"examples": [
"ขออนุมัติเพื่อปรับใช้การปรับปรุงบัญชีเงินเดือน"
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/workflow/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}ปรับใช้อย่างมั่นใจ
ตัวอย่าง Agent Card แต่ละตัวถูกออกแบบมาให้สมบูรณ์เพียงพอสำหรับการคัดลอกโดยเจตนา แต่ไม่ควรเผยแพร่ Agent Card โดยไม่มีการเปลี่ยนแปลง ให้ถือว่ามันเป็นแผนที่ฟิลด์สำหรับเซิร์ฟเวอร์ A2A ของคุณเอง: แทนที่ตัวตน เอนด์พอยต์ ผู้ให้บริการ การยืนยันตัวตน ความสามารถ โหมด และรายละเอียดสกิลด้วยค่าจริงในการใช้งานจริง
Agent Card ที่แข็งแกร่งที่สุดอธิบายขอบเขตงานของเอเจนต์ทั้งในภาษาที่เข้าใจง่ายและเมตาดาต้าที่เครื่องอ่านได้ ไคลเอนต์ควรสามารถบอกได้ว่าเอเจนต์ทำอะไรได้บ้าง ทำอะไรไม่ได้ ต้องเรียก URL ใด และจำเป็นต้องมีข้อมูลรับรองหรือไม่
แทนที่ URL example.com ทุกรายการด้วยเอนด์พอยต์ A2A ที่ปรับใช้แล้วและเว็บไซต์ผู้ให้บริการของคุณ
เขียนชื่อสกิล คำอธิบาย แท็ก (จำเป็นใน v1.0) และตัวอย่างใหม่สำหรับขอบเขตงานจริง
ตั้งค่า provider.organization และเพิ่ม version ระดับบนสุดทุกครั้งที่เนื้อหา Agent Card เปลี่ยนแปลง
ลบฟิลด์การยืนยันตัวตนเฉพาะเมื่อเอนด์พอยต์เปิดเผยต่อสาธารณะโดยเจตนาเท่านั้น
รักษา defaultInputModes และ defaultOutputModes ให้สอดคล้องกับสิ่งที่เซิร์ฟเวอร์ของคุณยอมรับและส่งคืนจริง
ตรวจสอบ JSON สุดท้ายและเผยแพร่ที่ /.well-known/agent-card.json บนโดเมนบริการของคุณ
พร้อมที่จะสร้าง
เปิดรูปแบบใดก็ได้ในเครื่องมือสร้าง Agent Card ตรวจสอบ JSON และตรวจสอบก่อนที่จะเผยแพร่
จากบล็อก
Learn how to create an agent.json file for A2A v1.0, including required Agent Card fields, the well-known URL, response headers, and common mistakes.
11 min readอ่านคู่มือIntegrationLearn how to publish an A2A Agent Card from Google ADK, LangGraph, CrewAI, or Semantic Kernel by mapping framework concepts to standard discovery fields.
10 min readอ่านคู่มือComparisonCompare A2A vs MCP: what each protocol connects, where they overlap, and why production AI agent systems often use both for tools and agent collaboration.
9 min readอ่านคู่มือบทความเผยแพร่เป็นภาษาอังกฤษ