ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ
แยกแยะข้อขัดข้องของการส่งข้อมูลออกจากข้อผิดพลาดของตรรกะทางธุรกิจ
ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
ความล้มเหลวสองแบบที่แตกต่างกันมาก
MCP มีความล้มเหลวสองประเภท ได้แก่ ข้อผิดพลาดของ โพรโทคอล ในข้อมูลที่ส่งผ่านสาย และความล้มเหลวของเครื่องมือภายในตรรกะทางธุรกิจของคุณ ทั้งสองแบบจัดการแตกต่างกัน
ข้อผิดพลาดของโพรโทคอลอยู่ใน JSON-RPC
ข้อผิดพลาดของ โพรโทคอล หมายถึงไม่สามารถประมวลผลข้อความได้เลย เช่น เมธอดที่ไม่รู้จักหรือพารามิเตอร์ที่มีรูปแบบไม่ถูกต้อง ข้อผิดพลาดนี้อยู่ในช่องข้อผิดพลาดของ JSON-RPC
{"jsonrpc": "2.0", "id": 7,
"error": {"code": -32601,
"message": "Method not found"}}ความล้มเหลวของเครื่องมืออยู่ในผลลัพธ์
ความล้มเหลวของ เครื่องมือ หมายถึงการเรียกไปถึงฟังก์ชันของคุณแล้ว แต่การทำงานเกิดข้อผิดพลาด ระบบจะส่งคืนผลลัพธ์ปกติที่ระบุ isError เป็น true
เหตุใดการแยกประเภทจึงสำคัญ
โมเดลควรมองเห็นและตอบสนองต่อความล้มเหลวของ เครื่องมือ แต่ข้อผิดพลาดของโพรโทคอลมักบ่งชี้ถึงข้อบกพร่องที่ไคลเอ็นต์ต้องจัดการ ไม่ใช่สิ่งที่ AI ควรลองใหม่
รหัส JSON-RPC มาตรฐาน
รหัส ของโพรโทคอลเป็นค่าลบและมีมาตรฐานกำหนดไว้: -32601 คือไม่พบเมธอด, -32602 คือพารามิเตอร์ไม่ถูกต้อง และ -32700 คือข้อผิดพลาดในการแยกวิเคราะห์
ความล้มเหลวของเครื่องมือไปถึงโมเดล
เนื่องจากความล้มเหลวของเครื่องมือเป็นเพียง ผลลัพธ์ โมเดลจึงอ่านเป็นบริบท และตัดสินใจได้ว่าจะลองใหม่ ปรับข้อมูลนำเข้า หรืออธิบายปัญหา 🔁
การยกข้อยกเว้นภายในเครื่องมือ
เมื่อคุณยกข้อยกเว้นในเครื่องมือ FastMCP จะแปลงเป็นผลลัพธ์ความล้มเหลวของ เครื่องมือ ไม่ใช่ข้อผิดพลาดของโพรโทคอล เซิร์ฟเวอร์ของคุณยังคงทำงานต่อ
@mcp.tool()
def fetch(url: str) -> str:
if not url.startswith("http"):
raise ValueError("url must be http")เครื่องมือที่ไม่รู้จักเป็นข้อผิดพลาดระดับโพรโทคอล
หากไคลเอ็นต์ขอใช้เครื่องมือที่ไม่มีอยู่ นั่นคือข้อผิดพลาดของ โพรโทคอล คำขอจะไม่ไปถึงฟังก์ชันใด ๆ ของคุณ
อาร์กิวเมนต์ไม่ถูกต้องอาจเป็นได้ทั้งสองแบบ
ความไม่ตรงกันของชนิดข้อมูลในระดับสคีมาจะแสดงเป็นข้อผิดพลาดพารามิเตอร์ไม่ถูกต้องของ โพรโทคอล ส่วนชนิดข้อมูลถูกต้องแต่ค่าไม่เหมาะสม ควรจัดเป็นความล้มเหลวของเครื่องมือ
จับคู่ความล้มเหลวกับผู้ที่ต้องแก้ไข
ลองถามว่าใครควรตอบสนอง หาก โมเดล แก้ไขได้ ให้จัดเป็นความล้มเหลวของเครื่องมือ หากมีเพียงนักพัฒนาที่แก้ได้ ข้อผิดพลาดของโพรโทคอลก็เหมาะสมกว่า
รักษาการขนส่งให้ทำงานได้ดี
อย่าปล่อยให้ปัญหาทางธุรกิจเล็ดลอดออกมาเป็นข้อผิดพลาดของ โพรโทคอล เพราะจะทำให้ไคลเอ็นต์สับสน และอาจยุติเซสชันที่ควรทำงานต่อ
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ความล้มเหลวภายในฟังก์ชันเครื่องมือของคุณถูกรายงานไว้ที่ใด
สรุปทบทวน
ข้อผิดพลาดของ โพรโทคอล หมายถึงตัวข้อความล้มเหลว ส่วนความล้มเหลวของเครื่องมือหมายถึงตรรกะของคุณล้มเหลว ส่งแต่ละประเภทไปยังผู้ที่แก้ไขได้ และรักษาการขนส่งให้ทำงานได้ดี ✅
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ”
แยกแยะข้อขัดข้องของการส่งข้อมูลออกจากข้อผิดพลาดของตรรกะทางธุรกิจ คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม
ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ข้อผิดพลาดของเครื่องมือที่โมเดลมองเห็น
- ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ
- ตรวจสอบอินพุตก่อนดำเนินการ
- ล้มเหลวอย่างปลอดภัย ไม่ค้าง