MCP Academy · บทเรียน

ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ

แยกแยะข้อขัดข้องของการส่งข้อมูลออกจากข้อผิดพลาดของตรรกะทางธุรกิจ

บทเรียน 2 จาก 413 ขั้นตอน

ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ข้อผิดพลาดของเครื่องมือที่โมเดลมองเห็น
  2. ข้อผิดพลาดของโพรโทคอลกับความล้มเหลวของเครื่องมือ
  3. ตรวจสอบอินพุตก่อนดำเนินการ
  4. ล้มเหลวอย่างปลอดภัย ไม่ค้าง
← กลับไปที่ MCP Academy