Pengendalian Ralat dan Ketahanan
Bangunkan strategi kukuh untuk menjangka, menangkap dan mengendalikan ralat dalam aliran kerja ejen autonomi dengan cara yang terkawal.
Pengendalian Ralat dan Ketahanan ialah pelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI dengan LangChain dan Aliran Kerja Autonomi merangkumi sejumlah 4 pelajaran.
Mengapa Pengendalian Ralat Penting
Ejen autonomi melaksanakan tugas kompleks, selalunya berinteraksi dengan perkhidmatan luaran atau membuat keputusan berdasarkan maklumat yang berpotensi tidak boleh dipercayai. Apakah yang berlaku apabila sesuatu tidak berjalan lancar?
Pengendalian ralat amat penting agar ejen boleh dipercayai dan teguh. Pengendalian ini memastikan ejen anda boleh pulih daripada masalah yang tidak dijangka, mengelakkan ranap dan mengekalkan pengalaman pengguna yang konsisten.
Ralat Aliran Kerja Ejen yang Lazim
Ejen boleh menghadapi pelbagai jenis ralat semasa beroperasi:
- Kegagalan API: Penyedia Model Bahasa Besar (LLM) atau alat luaran mungkin mengalami masa henti, had kadar atau masalah pengesahan.
- Masalah Pelaksanaan Alat: Alat tersuai atau prabina mungkin menerima input yang tidak sah, gagal dilaksanakan dengan betul atau mengembalikan format yang tidak dijangka.
- Salah Tafsir LLM: LLM mungkin menjana output yang tidak boleh dihuraikan, menghasilkan halusinasi atau memberikan respons dengan cara yang tidak dapat dikendalikan oleh logik ejen.
- Masalah Rangkaian: Masalah kesambungan kepada perkhidmatan luaran boleh menghalang ejen daripada mendapatkan data atau memanggil API.
Menangkap Ralat dengan Try-Except
Dalam Python, blok try-except ialah mekanisme asas anda untuk menangkap ralat. Blok ini membolehkan anda mencuba sesuatu operasi dan mengendalikan pengecualian khusus dengan baik jika pengecualian itu berlaku.
Hal ini menghalang keseluruhan aliran kerja ejen anda daripada ranap akibat satu titik kegagalan.
def perform_risky_operation(value):
try:
# Attempt a potentially failing operation
result = 100 / value
print(f"Operation successful! Result: {result}")
except ZeroDivisionError:
# Handle specific error: division by zero
print("Error: Cannot divide by zero!")
except TypeError as e:
# Handle specific error: incorrect type
print(f"Error: Invalid input type - {e}")
except Exception as e:
# Catch any other unexpected errors
print(f"An unexpected error occurred: {e}")
if __name__ == "__main__":
perform_risky_operation(20) # Works fine
perform_risky_operation(0) # Catches ZeroDivisionError
perform_risky_operation("abc") # Catches TypeErrorMengendalikan Ralat API LLM
Apabila ejen Anda berinteraksi dengan LLM (contohnya, OpenAI dan Anthropic), panggilan API boleh gagal. Kegagalan ini mungkin disebabkan oleh had kadar, kunci API yang tidak sah atau gangguan perkhidmatan sementara.
Anda perlu menangkap ralat API khusus ini untuk melaksanakan strategi pemulihan atau memaklumkan pengguna.
import random
# Simulate a custom API error for demonstration
class LLMAPIError(Exception):
pass
def call_llm_service(prompt):
# Simulate a 25% chance of API failure
if random.random() < 0.25:
raise LLMAPIError("LLM API call failed: Service unavailable.")
return f"LLM response to '{prompt}': Here's your answer."
if __name__ == "__main__":
print("--- Attempt 1 ---")
try:
response = call_llm_service("Summarize the news.")
print(response)
except LLMAPIError as e:
print(f"Caught LLM API Error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
print("\n--- Attempt 2 ---")
try:
response = call_llm_service("Write a haiku.")
print(response)
except LLMAPIError as e:
print(f"Caught LLM API Error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")Ralat Pelaksanaan Alat yang Tahan Lasak
Ejen menggunakan alat untuk meluaskan keupayaan mereka (contohnya, mencari di web dan melaksanakan kod). Alat mungkin gagal jika kebergantungan luarannya tidak tersedia, menerima input yang tidak sah atau mengalami ralat dalaman.
Dengan menjangka dan mengendalikan ralat khusus alat ini, ejen Anda boleh menentukan tindakan alternatif atau memberikan maklum balas yang berguna.
import random
# Simulate a custom tool execution error
class WebSearchToolError(Exception):
pass
def perform_web_search(query):
# Simulate a 30% chance of tool failure
if random.random() < 0.3:
raise WebSearchToolError(f"Web search for '{query}' failed due to network issues.")
return f"Web search results for: {query}"
if __name__ == "__main__":
print("--- Search 1 ---")
try:
result = perform_web_search("current weather")
print(result)
except WebSearchToolError as e:
print(f"Caught Web Search Tool Error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
print("\n--- Search 2 ---")
try:
result = perform_web_search("AI agent frameworks")
print(result)
except WebSearchToolError as e:
print(f"Caught Web Search Tool Error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")Melaksanakan Percubaan Semula dengan Pengunduran
Banyak ralat bersifat sementara, iaitu hanya berlaku seketika dan mungkin pulih sendiri. Untuk ralat seperti ini, mekanisme percubaan semula yang mudah boleh menjadi sangat berkesan. Pengunduran eksponen ialah strategi biasa yang meningkatkan tempoh kelewatan antara setiap percubaan semula.
Ini mengelakkan perkhidmatan yang bermasalah daripada dibebani dan memberinya masa untuk pulih.
import time
import random
def retry_with_backoff(func, max_retries=3):
for attempt in range(max_retries):
try:
return func() # Try to execute the function
except Exception as e:
print(f"Attempt {attempt + 1} failed: {e}")
if attempt < max_retries - 1:
# Calculate exponential backoff delay
wait_time = 2 ** attempt
print(f"Retrying in {wait_time} seconds...")
time.sleep(wait_time)
else:
# Re-raise error if max retries reached
raise ValueError("Operation failed after multiple retries.")
def unreliable_action():
# Simulate an action that fails 60% of the time
if random.random() < 0.6:
raise ConnectionError("Temporary network issue.")
return "Action completed successfully!"
if __name__ == "__main__":
try:
result = retry_with_backoff(unreliable_action)
print(result)
except ValueError as e:
print(f"Final result: {e}")Panggilan Balik LangChain untuk Ralat
Sistem Panggilan Balik LangChain menyediakan cara yang berkuasa untuk menyuntik logik tersuai ke dalam pelbagai peringkat pelaksanaan ejen atau rantaian, termasuk pengendalian ralat.
- Anda boleh mentakrifkan fungsi yang dijalankan khusus apabila ralat berlaku (contohnya,
on_tool_errordanon_chain_error). - Ini membolehkan pembalakan berpusat, pemantauan atau pencetusan amaran apabila masalah timbul.
- Panggilan balik boleh menangkap konteks terperinci tentang ralat, sekali gus membantu penyahpepijatan aliran kerja ejen yang kompleks.
Strategi Kemerosotan Berhemah
Tidak semua ralat boleh dipulihkan. Ada kalanya, ejen perlu merosot secara berhemah dan bukannya gagal sepenuhnya. Ini bermaksud menyediakan pengalaman yang dikurangkan tetapi masih berfungsi.
- Mekanisme Sandaran: Jika alat utama yang kompleks gagal, beralih kepada alternatif yang lebih mudah dan boleh dipercayai (contohnya, jika carian pangkalan data khusus gagal, gunakan carian web umum sebagai sandaran).
- Penyelesaian Separa: Selesaikan tugas sebanyak mungkin dan maklumkan pengguna tentang batasan atau bahagian yang belum selesai.
- Mesej Pengguna yang Bermaklumat: Maklumkan dengan jelas kepada pengguna apabila ciri atau keupayaan tertentu tidak tersedia buat sementara waktu disebabkan oleh masalah asas.
Membuat Pembalakan Ralat untuk Kebolehlihatan
Pembalakan yang berkesan amat penting untuk memahami sebab ejen autonomi gagal, khususnya dalam persekitaran pengeluaran. Log yang baik memberikan kebolehlihatan terhadap cara kerja dalaman ejen Anda.
- Perkara yang Dilogkan: Sertakan mesej ralat, jejak tindanan, parameter input yang berkaitan, keadaan semasa ejen dan cap masa.
- Tempat Log Disimpan: Hantar log ke sistem pembalakan berpusat (contohnya, susunan ELK, Splunk atau perkhidmatan pembalakan awan) untuk memudahkan analisis dan pemberitahuan.
- Sebabnya Penting: Membantu mengenal pasti masalah berulang, menyahpepijat interaksi yang kompleks serta memantau kesihatan dan kebolehpercayaan keseluruhan sistem ejen Anda.
Semakan Pengendalian Ralat
Mari uji pemahaman Anda tentang pengendalian ralat dan daya tahan dalam aliran kerja ejen autonomi.
Imbas Kembali: Membina Ejen yang Tahan Lasak
Kita telah meneroka cara menjadikan aliran kerja ejen autonomi lebih kukuh dengan mengendalikan ralat secara berkesan.
- Kita membincangkan penggunaan blok
try-exceptuntuk menangkap ralat asas dan mengurus jenis pengecualian tertentu. - Kita membincangkan strategi khusus untuk mengendalikan ralat API LLM dan ralat pelaksanaan alat.
- Kita mempelajari cara melaksanakan percubaan semula dengan pengunduran eksponen untuk mengatasi masalah sementara.
- Akhir sekali, kita menyentuh tentang kemerosotan berhemah bagi ralat yang tidak dapat dipulihkan serta kepentingan pembalakan untuk kebolehlihatan dan penyahpepijatan.
Dengan menggunakan teknik ini, ejen Anda dapat menghadapi masalah tidak dijangka dengan lebih baik serta menyediakan pengalaman pengguna yang lebih boleh dipercayai dan stabil.
Pelajari Ejen AI dengan LangChain dan Aliran Kerja Autonomi dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 50
Soalan Lazim
Adakah pelajaran “Pengendalian Ralat dan Ketahanan” percuma?
Ya — teks penuh “Pengendalian Ralat dan Ketahanan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI dengan LangChain dan Aliran Kerja Autonomi, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI dengan LangChain dan Aliran Kerja Autonomi merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pengendalian Ralat dan Ketahanan”?
Bangunkan strategi kukuh untuk menjangka, menangkap dan mengendalikan ralat dalam aliran kerja ejen autonomi dengan cara yang terkawal. Anda berlatih Ejen AI dengan LangChain dan Aliran Kerja Autonomi menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ejen AI dengan LangChain dan Aliran Kerja Autonomi?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Pengendalian Ralat dan Ketahanan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi ini?
Ya. Setiap pelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mereka Bentuk Aliran Kerja Kompleks
- Pelaksanaan Ejen Tak Segerak
- Pengendalian Ralat dan Ketahanan
- Kelulusan Manusia dalam Gelung