Belajar membina AI Agent menggunakan Cloudflare Workers + Claude API. Agent yang boleh berfikir, ingat, dan bertindak.
Bayangkan anda ada pembantu peribadi yang:
Itulah AI Agent. Bukan sekadar chatbot yang jawab soalan. Agent adalah program pintar yang boleh beroperasi secara autonomous — dengan otak Claude API, ingatan dalam Durable Objects, dan keupayaan untuk menggunakan tools.
Analogi: Chatbot biasa macam mesin layan diri — tekan butang, dapat minuman. AI Agent macam pelayan restoran — ingat pesanan, cadangkan menu, pergi dapur ambil makanan. Agent lebih proaktif, lebih kontekstual, dan lebih berguna.
| Ciri | Chatbot Biasa | AI Agent |
|---|---|---|
| Memory | Tiada — lupa selepas setiap response | Ada — ingat perbualan penuh |
| Tools | Tak boleh guna tools | Boleh search web, query database, panggil API |
| Autonomy | Reaktif — balas je apa yang ditanya | Proaktif — boleh buat keputusan sendiri |
| Context | Setiap message adalah isolated | Ada konteks berterusan |
| Personality | Fix atau tiada | Boleh di-set dengan system prompt |
| Runtime | Biasanya serverless function ringkas | Cloudflare Workers + Durable Objects |
AI Agent anda akan berfungsi dalam senibina ini:
Mula-mula, kita setup projek Cloudflare Workers. Guna AI prompt untuk hasilkan kod:
AI Prompt untuk Setup: "Saya nak setup projek Cloudflare Workers dengan Agents SDK dan Anthropic AI SDK. Berikan arahan langkah demi langkah untuk create project, install dependencies, dan configure wrangler.toml."
npx create-cloudflare@latest my-first-agent --framework=javascriptcd my-first-agentnpm install @anthropic-ai/sdkcode .Edit wrangler.toml — tambah compatibility flags dan Durable Object binding:
Penting: Pastikan nodejs_compat ada dalam compatibility_flags. Tanpa ini, SDK Claude API mungkin tak berfungsi dengan betul di Cloudflare Workers.
Sekarang kita bina agent pertama — ringkas tapi berfungsi. Agent ini akan menggunakan Claude API untuk menjawab soalan.
AI Prompt untuk Agent Basic: "Bina Cloudflare Worker chat agent yang menggunakan Claude API. Worker perlu ada endpoint POST /chat yang terima JSON {message: String} dan balas {reply: String}. Guna @anthropic-ai/sdk."
Gantikan content src/index.js dengan kod berikut:
Model Name: Guna claude-sonnet-4-20250514 untuk model terkini. Atau claude-haiku-3-5-20241022 untuk response lebih cepat dan murah.
Agent basic okay, tapi membosankan. Kita nak agent ada personality dan role yang spesifik. Di sinilah system prompt memainkan peranan.
AI Prompt untuk Personality: "Bina chat agent dengan system prompt. Agent ini adalah 'Si Cerdik' — pembantu coding yang mesra, suka explain dengan analogi, dan bertutur dalam Bahasa Melayu. Agent perlu ingat nama user dan memberi jawapan yang ringkas tapi padat."
| Personality | System Prompt Ringkas |
|---|---|
| Professional Mentor | Formal, berstruktur, bagi jawapan detailed dengan referens |
| Funny Coder | Suka lawak, guna emoji, coding santai tapi tepat |
| Strict Teacher | Tak bagi jawapan terus — bimbing dengan soalan, pastikan user faham |
| Creative Designer | Fokus pada UI/UX, bagi cadangan warna, layout, tipografi |
| Debug Expert | Analisis error dengan sistematik, bagi debugging steps, explain root cause |
Sekarang agent ada personality, tapi masih ada satu masalah besar — agent lupa semua perbualan. Setiap kali user hantar message, agent start dari kosong.
Kita akan guna Durable Objects untuk simpan state agent. Durable Objects adalah Cloudflare's solution untuk persistent state di edge.
AI Prompt untuk Memory: "Bina Cloudflare Worker chat agent dengan Durable Objects untuk persistent state. Agent perlu ingat full conversation history untuk setiap session. Setiap session ada unique sessionId. Agent boleh recall nama user dan preference dari session lepas."
Buat file baru src/chat-agent.js:
Edit src/index.js:
Moment "Wow": Inilah magik AI Agent! Agent ingat nama Sarah walaupun soalan kedua tak mention nama. Cuba guna sessionId berbeza — agent akan anggap orang baru. Setiap sessionId adalah "perbualan" yang berasingan.
Agent dengan memory sudah power. Tapi agent masih belum boleh bertindak. Untuk buat agent benar-benar berguna, kita tambah tools — keupayaan agent untuk berinteraksi dengan dunia luar.
AI Prompt untuk Tools: "Tambah tool web search capability kepada chat agent menggunakan OpenAI SDK function calling atau Anthropic tool use. Agent boleh mencari maklumat dari internet bila ditanya soalan yang perlukan current information."
| Tool | Kegunaan | Contoh |
|---|---|---|
| Web Search | Cari maklumat terkini dari internet | "Cari berita AI terkini" |
| Database Query | Query data dari database | "Tunjukkan senarai pelanggan" |
| Calculator | Kira matematik tepat | "Kira 25% dari 1000" |
| Send Email | Hantar email melalui API | "Hantar email kepada Ali" |
| Weather API | Semak cuaca semasa | "Cuaca di Kuala Lumpur?" |
Tool Use Flow: (1) Claude decide nak guna tool. (2) Agent execute tool dan dapat result. (3) Result dihantar balik ke Claude. (4) Claude guna result untuk generate final response. Semua ini berlaku dalam satu request — automatik dan seamless.
HTTP request-response sesuai untuk chat biasa, tapi untuk pengalaman yang lebih real-time, kita guna WebSocket. Dengan WebSocket, agent boleh stream response word-by-word.
AI Prompt untuk WebSocket: "Tambah WebSocket support kepada Cloudflare Worker chat agent. Agent boleh stream response character-by-character melalui WebSocket connection. Handle connect, message, dan close events."
Kelebihan WebSocket: Sambungan kekal terbuka — tak perlu handshake setiap kali. Sesuai untuk chat apps, live updates, dan aplikasi yang perlukan komunikasi dua hala masa nyata.
Akhir sekali, deploy agent supaya boleh diakses oleh sesiapa sahaja di internet.
AI Prompt untuk Deploy: "Saya nak deploy AI Agent yang saya bina ke Cloudflare Workers. Berikan arahan untuk set secret API key dan deploy menggunakan wrangler CLI."
Peringatan: URL worker anda adalah public — sesiapa yang tahu URL boleh guna agent anda. Untuk production, tambah authentication. Untuk pembelajaran, ini fine — kongsi URL dengan rakan sekelas!
Share Agent: Kongsi URL agent dengan rakan sekelas. Minta mereka test — hantar mesej dalam Bahasa Melayu, tanya soalan random, uji sama ada agent ingat perbualan. Dapatkan feedback!
Apa yang anda dah pelajari dalam modul ini:
Langkah seterusnya: Cuba explore multi-agent architecture — Agent A panggil Agent B untuk task spesifik. Atau tambah voice interface — user cakap, agent dengar dan jawab. Atau bina RAG (Retrieval Augmented Generation) — agent boleh baca dokumen anda dan jawab berdasarkan content.