0Pricing
MCP Academy · บทเรียน

ล้มเหลวอย่างปลอดภัย ไม่ค้าง

ป้องกันหมดเวลาและข้อยกเว้นที่ไม่ได้จัดการ

ล้มเหลวอย่างปลอดภัย ไม่ค้าง เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

เครื่องมือที่ค้างแย่กว่าเครื่องมือที่ล้มเหลว

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

ดักจับสิ่งที่คาดไม่ถึง

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

try:
    data = parse(raw)
except Exception as e:
    raise ValueError("could not parse input")

กำหนดระยะหมดเวลาเสมอ

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

import httpx
r = httpx.get(url, timeout=10.0)

เลือกใช้ Async สำหรับงานรับส่งข้อมูล

เครื่องมือแบบ Async ช่วยให้ คำขอที่ช้ารอได้โดยไม่บล็อกงานอื่นทั้งหมด เซิร์ฟเวอร์ของคุณจึงยังให้บริการการเรียกอื่นไปพร้อมกัน

@mcp.tool()
async def fetch(url: str) -> str:
    async with httpx.AsyncClient() as c:
        r = await c.get(url, timeout=10)

เคารพการยกเลิก

หากไคลเอ็นต์ยกเลิก ให้หยุดอย่างรวดเร็ว การเคารพ การยกเลิกช่วยคืนทรัพยากรและหลีกเลี่ยงงานที่ไม่มีใครรอผลอีกต่อไป

จำกัดลูปและการลองใหม่

กำหนดเพดานให้ลูปหรือการลองใหม่ทุกครั้ง การ ลองใหม่แบบไม่จำกัดกับ API ที่ล้มเหลวอาจทำงานวนไปตลอด ดังนั้นให้กำหนดจำนวนครั้งสูงสุดแล้วเลิกอย่างเหมาะสม

for attempt in range(3):
    if try_call():
        break

คืนทรัพยากรที่เปิดใช้

ใช้บล็อก with หรือ finally เพื่อให้ไฟล์และการเชื่อมต่อ ปิดเสมอ แม้จะเกิดข้อผิดพลาดระหว่างฟังก์ชัน

with open(path) as f:
    return f.read()

ลดความสามารถลงอย่างเหมาะสม

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

บันทึกความล้มเหลวไว้ฝั่งเซิร์ฟเวอร์

บันทึกรายละเอียดทั้งหมดไว้ใน บันทึก ขณะส่งให้โมเดลเพียงสรุปที่ปลอดภัย คุณจึงแก้ไขข้อบกพร่องได้โดยไม่เปิดเผยรายละเอียดภายใน

การหยุดทำงานครั้งเดียวไม่ควรทำให้เซิร์ฟเวอร์จบการทำงาน

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

ส่งคืนบางสิ่งเสมอ

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

เหตุผลสำคัญของการเพิ่มระยะหมดเวลาให้การเรียกภายนอกในเครื่องมือคืออะไร

สรุปทบทวน

ล้มเหลวให้เร็วและอย่า ค้าง: ดักจับสิ่งที่ไม่คาดคิด กำหนดระยะหมดเวลา จำกัดการลองใหม่ คืนทรัพยากร บันทึกอย่างปลอดภัย และส่งคืนการตอบกลับเสมอ ✅

คำถามที่พบบ่อย

บทเรียน “ล้มเหลวอย่างปลอดภัย ไม่ค้าง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ล้มเหลวอย่างปลอดภัย ไม่ค้าง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ล้มเหลวอย่างปลอดภัย ไม่ค้าง”

ป้องกันหมดเวลาและข้อยกเว้นที่ไม่ได้จัดการ คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ล้มเหลวอย่างปลอดภัย ไม่ค้าง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม

ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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