Batas Waktu dan Pemutus Sirkuit
Batasi panggilan LLM dan alat dengan batas waktu ketat, lalu gunakan pemutus sirkuit untuk menghentikan permintaan berulang kepada dependensi yang bermasalah.
Batas Waktu dan Pemutus Sirkuit adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Beri Batas pada Setiap Panggilan Eksternal
Setiap panggilan jaringan MUST memiliki batas waktu. Tanpanya, koneksi yang macet dapat membekukan seluruh agen.
HTTP Timeouts
import requests
response = requests.get(url, timeout=(3, 10)) # 3s connect, 10s readLLM Timeouts
from openai import OpenAI
client = OpenAI(timeout=30.0)
# Or per call:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
timeout=30.0
)Pilih Batas Waktu yang Realistis
Ukur latensi p99 di dunia nyata dan tambahkan 25%. Menetapkan batas waktu = 3 detik ketika p99 adalah 4 detik menyebabkan kegagalan palsu terus-menerus.
Batas Waktu Total Agen
Bungkus seluruh eksekusi agen dengan tenggat waktu:
import asyncio
async def run_agent_with_deadline(query, deadline_s=60):
try:
return await asyncio.wait_for(run_agent(query), timeout=deadline_s)
except asyncio.TimeoutError:
return 'Sorry, this is taking too long. Please try again.'Apa Itu Pemutus Sirkuit
Pola: ketika layanan hilir mulai gagal, "buka" sirkuitnya — berhenti memanggil layanan tersebut untuk sementara. Pulihkan secara otomatis setelah masa pendinginan.
Status: CLOSED (normal) -> OPEN (gagal dengan cepat) -> HALF_OPEN (uji) -> CLOSED (pulih).
Implementing with pybreaker
# pip install pybreaker
import pybreaker
breaker = pybreaker.CircuitBreaker(fail_max=5, reset_timeout=60)
@breaker
def fragile_call():
return requests.get(url, timeout=5).json()Setelah 5 Kegagalan
Setelah fail_max error terjadi berturut-turut, pemutus sirkuit terbuka. Semua panggilan berikutnya langsung gagal selama reset_timeout detik — sehingga Anda tidak terus membebani layanan yang sedang bermasalah.
Mengembalikan Fallback yang Masuk Akal
Ketika pemutus sirkuit terbuka, kembalikan fallback yang anggun alih-alih membuat agen berhenti karena error:
try:
result = fragile_call()
except pybreaker.CircuitBreakerError:
result = {'error': 'service-unavailable', 'fallback': 'cached or stale data'}Pemutus Sirkuit per Alat
Setiap dependensi eksternal harus memiliki pemutus sirkuitnya sendiri — satu layanan yang bermasalah tidak boleh memengaruhi panggilan ke layanan yang sehat.
Sekat
Batasi jumlah panggilan serentak ke satu alat dengan semaphore — ini mencegah satu dependensi yang lambat menghabiskan semua pekerja:
from asyncio import Semaphore
search_sem = Semaphore(10)
async def search(query):
async with search_sem:
return await tavily_search(query)Pemeriksaan Kesehatan
Lakukan ping ke setiap alat secara berkala untuk mendeteksi masalah sebelum pengguna menyadarinya:
async def health_check():
for tool in [tavily, openai, vector_db]:
try:
await tool.ping()
except Exception as e:
alert(f'{tool.name} unhealthy: {e}')Tampilkan Status kepada Pengguna
Ketika alat penting tidak tersedia, beri tahu pengguna:
if tavily_breaker.current_state == 'open':
return 'Web search is temporarily unavailable.'Mengapa Menggunakan Pemutus Sirkuit
Mengapa menggunakan pemutus sirkuit pada layanan eksternal yang sering gagal?
Ringkasan
Batas waktu pada setiap panggilan. Pemutus sirkuit untuk setiap alat. Sekat untuk konkurensi. Pemeriksaan kesehatan. Pesan fallback yang anggun.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Batas Waktu dan Pemutus Sirkuit” gratis?
Ya — teks lengkap “Batas Waktu dan Pemutus Sirkuit” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Batas Waktu dan Pemutus Sirkuit”?
Batasi panggilan LLM dan alat dengan batas waktu ketat, lalu gunakan pemutus sirkuit untuk menghentikan permintaan berulang kepada dependensi yang bermasalah. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Batas Waktu dan Pemutus Sirkuit” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Alat Idempoten dan Efek Samping
- Percobaan Ulang dengan Jeda Eksponensial
- Batas Waktu dan Pemutus Sirkuit
- Memvalidasi Keluaran Alat (Pydantic)