Punya masalah saat bikin AI Agent? Sering hallucinate pas panggil API, atau stuck saat ada error? Anthropic baru saja merilis panduan teknis mendalam tentang Advanced Tool Use.
Ini bukan sekadar "prompting", tapi arsitektur software. Ini bedahannya:
1. ⚠️ Problem Statement (Masalah)
* Reliabilitas Rendah: LLM itu mesin probabilitas. Saat disuruh menggunakan tools (misal: kalkulator, search, atau database), mereka sering salah format input.
* Error Handling: Saat tool gagal (misal: API timeout atau salah parameter), kebanyakan Agent langsung menyerah atau malah ngarang jawaban baru (hallucination) untuk menutupi kesalahan.
* Ambiguitas: AI sering bingung kalau tool-nya punya fungsi yang mirip-mirip atau dokumentasinya kurang jelas.
2. 🛠️ Metodologi & Solusi
Anthropic menyarankan pendekatan "Robust Tool Execution Loop":
* Specifity is King: Jangan pelit deskripsi. Definisi tool (JSON Schema) harus sangat detail, termasuk tipe data dan deskripsi per-parameter.
* Read the Error: Jangan sembunyikan error dari AI! Jika tool gagal, kembalikan pesan error mentah-mentah ke AI sebagai user message. Biarkan AI menganalisa error itu dan mencoba lagi (self-correction).
* Chain of Thought (CoT): Paksa AI untuk "berpikir" dulu dalam blok <thinking> sebelum memanggil tool. Ini mengurangi kesalahan logika drastis.
3. 📈 Findings & Hasil
* 🔄 Self-Healing: Dengan memberikan feedback loop berupa pesan error, tingkat keberhasilan Agent menyelesaikan tugas kompleks naik signifikan. Agent jadi punya sifat "pantang menyerah".
* 🎯 Akurasi Tinggi: Memisahkan langkah "berpikir" dan "bertindak" mencegah AI melakukan aksi impulsif yang merusak data.
* 🛡️ Safety: Validasi ketat di sisi klien (sebelum request dikirim ke API asli) mencegah eksekusi kode berbahaya.
4. 💡 Key Takeaways
* Tools are Interfaces: Perlakukan deskripsi tool layaknya kamu menulis dokumentasi API untuk manusia. Jelas, padat, dan lengkap.
* Failures are Inputs: Error bukan akhir dari proses, tapi data baru bagi AI untuk belajar konteks saat itu juga.
* Human-in-the-Loop: Untuk tool yang sensitif (hapus data, kirim email, transfer uang), selalu minta konfirmasi manusia atau buat mode "Dry Run".
💻 How to Use / Implementation
Berikut pola implementasi (Python/Pseudo-code) agar Agent kamu lebih tangguh:
Langkah 1: Definisi Tool yang Ketat (Pydantic)
Gunakan Pydantic untuk mendefinisikan skema tool agar validasi otomatis.
class GetWeather(BaseModel):
city: str = Field(description="Nama kota, misal: Jakarta")
unit: str = Field(description="Unit suhu, pilih 'celsius' atau 'fahrenheit'")
Langkah 2: The Loop (Self-Correction)
Jangan cuma sekali jalan. Buat loop while untuk menangani error.
messages = [...]
while True:
response = client.messages.create(model="claude-3-5-sonnet", messages=messages, tools=my_tools)
if response.tool_calls:
try:
# Eksekusi tool
result = run_tool(response.tool_calls[0])
messages.append({"role": "user", "content": f"Tool Result: {result}"})
except Exception as e:
# INI KUNCINYA: Kasih tau AI kalau dia salah!
messages.append({"role": "user", "content": f"Error: {str(e)}. Please fix your parameters and try again."})
continue # Biarkan AI mencoba lagi
else:
break # Selesai
Langkah 3: Paksa "Mikir Dulu"
Di system prompt, tambahkan instruksi:
"Before calling any tool, please output your thought process inside <thinking> tags."
🔗 Baca Panduan Lengkapnya:
https://www.anthropic.com/engineering/advanced-tool-use
#Anthropic #ClaudeAI #LLM #AIAgents #SoftwareEngineering #DevOps #Python #MachineLearning #ToolUse #TechTips