Apa Itu AI Agent? Arsitektur & Tutorial Python
AI Agent adalah sistem perangkat lunak yang mengamati keadaan, memilih tindakan, menggunakan alat yang diizinkan, dan mengevaluasi hasil untuk mencapai tujuan. Tutorial ini menjelaskan teori, arsitektur, keamanan, dan contoh implementasi Python yang dapat diuji secara lokal.

Pendahuluan
Chatbot umumnya memberikan jawaban. Agen dapat melanjutkan tugas menjadi beberapa tindakan terkontrol. Contoh: permintaan “cek keterlambatan proyek dan buat laporan” memerlukan pembacaan dataset, perhitungan tenggat, pemilihan prioritas, dan penyajian hasil. Tidak semua agen bersifat otonom penuh; banyak sistem membutuhkan izin pengguna dan batas eksekusi.
Teori Intelligent Agent dan PEAS
Menurut kerangka Artificial Intelligence: A Modern Approach, agen mengamati lingkungan melalui sensor dan memengaruhinya melalui aktuator. Rational agent memilih tindakan yang diharapkan memaksimalkan ukuran kinerja berdasarkan observasi dan pengetahuannya. PEAS mencakup Performance (ketepatan laporan), Environment (file CSV proyek), Actuators (fungsi analisis dan keluaran), dan Sensors (input pengguna serta data tugas).
Agent reaktif menggunakan aturan kondisi–aksi; model-based agent menyimpan gambaran keadaan; goal-based agent mempertimbangkan tujuan; utility-based agent menimbang preferensi atau biaya; learning agent memperbaiki perilaku dari pengalaman. LLM-based agent dapat menggunakan model bahasa untuk interpretasi, perencanaan, atau pemilihan tool, tetapi tetap memerlukan mekanisme kontrol dan validasi.

AI Agent vs Chatbot

| Aspek | Chatbot | Assistant | AI Agent |
|---|---|---|---|
| Fokus | Respons dialog | Membantu pekerjaan | Menyelesaikan tujuan melalui tindakan |
| Tool | Opsional | Sering tersedia | Dipilih atau diorkestrasi sesuai tugas |
| State/memory | Konteks percakapan | Dapat persisten | State tugas dan hasil tool |
| Planning | Tidak wajib | Opsional | Dapat menjadi komponen inti |
| Otonomi | Rendah–bervariasi | Bervariasi | Bervariasi, dibatasi kebijakan |
| Oversight | Pengguna | Pengguna | Persetujuan tindakan berisiko |
Agentic AI adalah istilah payung bagi sistem AI yang memiliki perilaku berorientasi tujuan dan tindakan. Multi-agent melibatkan beberapa agen yang berkoordinasi. Batas istilah tidak sepenuhnya seragam di semua publikasi atau produk.
Arsitektur Berlapis

Lapisan interaksi menerima pesan dan mengidentifikasi intent. Orchestrator mengatur state, kebijakan, batas iterasi, dan pemilihan langkah. Model keputusan dapat berupa aturan deterministik atau LLM. Tool registry menyediakan fungsi yang diizinkan; execution environment menjalankan fungsi itu dengan batas akses. Data/RAG mengambil fakta dari sumber terotorisasi; memory menyimpan state tugas; validator memeriksa keluaran; observability merekam jejak operasi.
Input dan output antar lapisan harus terstruktur. Risiko utama mencakup intent yang salah, argumen tool tidak valid, data kedaluwarsa, pengungkapan informasi, dan eksekusi berulang. Pada MVP, komponen wajib adalah input, router, tools, validator, dan output; LLM, RAG, memory persisten, dan MCP bersifat opsional.
Siklus Kerja dan Sequence

Alur: User Goal → Observe → Decide/Plan → Select Tool → Execute → Receive Result → Update State → Evaluate → Respond/Continue. Pada permintaan laporan proyek, agen membaca CSV, menentukan fungsi analisis, menghitung task terlambat, memvalidasi data, lalu menampilkan hasil. Agen berhenti ketika hasil memadai, input tidak valid, terjadi error fatal, atau batas iterasi tercapai. Tindakan destruktif harus meminta persetujuan manusia.

Sequence konseptual: User mengirim permintaan → Agent meminta keputusan LLM (bila diaktifkan) → Agent memanggil Tool Executor → Executor membaca Data Source → Result Validator memeriksa hasil → Agent menjawab. Catatan: kode MVP di bawah memakai routing deterministik, bukan pemilihan tool oleh LLM.
Teknologi Pendukung

ReAct memadukan penalaran dan tindakan dalam jejak interaksi. Function calling memungkinkan model mengusulkan pemanggilan fungsi dalam skema tertentu, tetapi aplikasi tetap harus memvalidasi dan mengeksekusinya. Structured output menegakkan bentuk data seperti JSON. Short-term memory menyimpan konteks sesi; long-term memory menyimpan informasi lintas sesi dengan kebijakan retensi. RAG mengambil dokumen relevan sebelum generasi. MCP menstandarkan integrasi sumber konteks dan tools; MCP bukan sinonim agen dan tidak wajib. Workflow orchestration mengatur tahapan, sedangkan multi-agent coordination membagi peran. Human-in-the-loop menyediakan persetujuan; observability dan evaluasi mengukur hasil aktual.
Framework dan Tools
| Teknologi | Kegunaan / batasan | Dokumentasi |
|---|---|---|
| Python | Runtime, CSV, unit test; perlu desain orkestrasi sendiri | Python Docs |
| Ollama | Menjalankan model lokal; kualitas dan fitur tergantung model | Ollama Docs |
| LangGraph | Workflow/state graph; menambah kompleksitas | LangGraph |
| CrewAI | Orkestrasi agen dan tugas; memerlukan konfigurasi | CrewAI |
| AutoGen | Eksperimen multi-agent; cek status versi sebelum adopsi | AutoGen |
| OpenAI Agents SDK | Agent orchestration dan tracing; integrasi API tergantung penyedia | Agents SDK |
| MCP Python SDK | Server/client MCP; bukan framework agent lengkap | MCP SDK |
Untuk pembelajaran pertama, Python standar lebih mudah diaudit. Instalasi setiap framework, persyaratan versi, dan lisensi perlu diperiksa di repositori resminya sebelum digunakan dalam produk.
Studi Kasus Task Management

Proyek membaca enam task CSV, mengidentifikasi keterlambatan, menyusun prioritas berdasarkan priority → impact → due date, menghitung statistik, dan membuat laporan. Kode menyediakan list_tasks, overdue_tasks, priority_tasks, weekly_tasks, project_report, dan find_task. Data tidak dimodifikasi. Logging merekam tool dan argumen. Ollama opsional dipakai sebagai peringkas, bukan pemilih tool.
Tutorial Python 18 Langkah

Langkah 1 — Instal Python
Pasang Python 3.10+ dari python.org lalu periksa versi.
python3 --versionCheckpoint: langkah 1 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 2 — Instal Ollama (opsional)
Unduh dari situs resmi; jalankan service lokal.
ollama --versionCheckpoint: langkah 2 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 3 — Pilih model
Contoh model lokal untuk peringkasan; cek ketersediaan dan kapasitas RAM.
ollama pull qwen2.5:3bCheckpoint: langkah 3 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 4 — Buat folder
Ekstrak ZIP paket dan masuk ke direktori proyek.
cd ai-agent-ariqcahyaCheckpoint: langkah 4 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 5 — Virtual environment
Isolasi dependensi agar tidak mengganggu proyek lain.
python3 -m venv .venv
source .venv/bin/activateCheckpoint: langkah 5 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 6 — Instal dependensi
Paket contoh memakai pustaka standar; requirements tersedia untuk ekspansi.
python -m pip install -r requirements.txtCheckpoint: langkah 6 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 7 — Siapkan dataset
Periksa data/tasks.csv dan kolom id,title,due_date,priority,status,owner,impact.
head -n 4 data/tasks.csvCheckpoint: langkah 7 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 8 — Bangun tools
Fungsi read_tasks dan execute dalam src/agent.py memvalidasi dataset.
python -c "from src.agent import read_tasks; print(len(read_tasks()))"Checkpoint: langkah 8 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 9 — Buat controller
Fungsi route mengubah permintaan menjadi tool dan argumen yang diizinkan.
python -c "from src.agent import route; print(route('cek task terlambat'))"Checkpoint: langkah 9 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 10 — Integrasi model
Mode --ollama merangkum hasil tool; tidak melakukan autonomous function calling.
python -m src.agent --ollamaCheckpoint: langkah 10 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 11 — State dan memory
Sesi CLI menyimpan konteks input saat berjalan; tidak ada memory persisten.
python -m src.agentCheckpoint: langkah 11 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 12 — Validasi
Periksa schema CSV, ID task, panjang input, dan allowlist tools.
python -m unittest discover -s tests -vCheckpoint: langkah 12 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 13 — Logging dan error
Baca execution.log untuk jejak pemanggilan fungsi.
cat execution.logCheckpoint: langkah 13 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 14 — Jalankan
Mulai CLI; ketik keluar untuk berhenti.
python -m src.agentCheckpoint: langkah 14 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 15 — Percakapan
Coba enam pertanyaan yang ditunjukkan pada bagian berikut.
python -m src.agentCheckpoint: langkah 15 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 16 — Unit/integration test
Jalankan tes; contoh ini menguji routing, perhitungan, dan keamanan allowlist.
python -m unittest discover -s tests -vCheckpoint: langkah 16 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 17 — Evaluasi
Bandingkan hasil aktual dengan expected output untuk tanggal acuan.
python -m unittest discover -s tests -vCheckpoint: langkah 17 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Langkah 18 — Ekspansi
Tambahkan state persisten, API, RAG, MCP, atau tool calling LLM setelah kontrol dasar stabil.
python -m src.agentCheckpoint: langkah 18 berhasil jika perintah selesai tanpa error yang tidak ditangani; bila gagal, cek path, versi Python, environment, dan service yang relevan.
Kode inti controller (cuplikan)
def run(message, today=None, use_llm=False):
if not message.strip():
raise ValueError('Input kosong')
tool, args = route(message)
result = execute(tool, args, today)
return {'tool': tool, 'arguments': args, 'result': result}
Implementasi lengkap dan dapat diuji tersedia di file src/agent.py dalam ZIP pendamping. Gunakan kode tersebut sebagai sumber utama, bukan cuplikan ringkas di atas.
Enam Simulasi Percakapan
Interaksi 1
Pengguna: Tampilkan seluruh task proyek dan statusnya
Interpretasi: menganalisis data proyek. Tool: list_tasks. Argumen: {}. Hasil simulasi: 6 task dengan status todo, in_progress, dan done. Keputusan dibuat oleh router berbasis aturan, kemudian hasil berasal dari fungsi Python. Ini adalah ilustrasi yang konsisten dengan dataset, bukan transkrip LLM langsung.
Interaksi 2
Pengguna: Identifikasi pekerjaan yang melewati deadline
Interpretasi: menganalisis data proyek. Tool: overdue_tasks. Argumen: {}. Hasil simulasi: Pada 31 Oktober 2026: T01, T03, T06. Keputusan dibuat oleh router berbasis aturan, kemudian hasil berasal dari fungsi Python. Ini adalah ilustrasi yang konsisten dengan dataset, bukan transkrip LLM langsung.
Interaksi 3
Pengguna: Urutkan pekerjaan berdasarkan tingkat urgensi dan dampaknya
Interpretasi: menganalisis data proyek. Tool: priority_tasks. Argumen: {}. Hasil simulasi: Urutan dimulai dari high priority dengan impact tertinggi. Keputusan dibuat oleh router berbasis aturan, kemudian hasil berasal dari fungsi Python. Ini adalah ilustrasi yang konsisten dengan dataset, bukan transkrip LLM langsung.
Interaksi 4
Pengguna: Buat rekomendasi pekerjaan yang harus diselesaikan minggu ini
Interpretasi: menganalisis data proyek. Tool: weekly_tasks. Argumen: {}. Hasil simulasi: Task aktif terlambat atau jatuh tempo ≤7 hari. Keputusan dibuat oleh router berbasis aturan, kemudian hasil berasal dari fungsi Python. Ini adalah ilustrasi yang konsisten dengan dataset, bukan transkrip LLM langsung.
Interaksi 5
Pengguna: Buat ringkasan status proyek dalam format Markdown
Interpretasi: menganalisis data proyek. Tool: project_report. Argumen: {}. Hasil simulasi: Total 6; selesai 1; aktif 5; terlambat 3. Keputusan dibuat oleh router berbasis aturan, kemudian hasil berasal dari fungsi Python. Ini adalah ilustrasi yang konsisten dengan dataset, bukan transkrip LLM langsung.
Interaksi 6
Pengguna: Tampilkan task T99
Interpretasi: mencari task spesifik. Tool: find_task. Argumen: {"id":"T99"}. Hasil simulasi: Error terstruktur: Task tidak ditemukan. Keputusan dibuat oleh router berbasis aturan, kemudian hasil berasal dari fungsi Python. Ini adalah ilustrasi yang konsisten dengan dataset, bukan transkrip LLM langsung.
Evaluasi dan Testing

Ukur task completion rate = tugas selesai / tugas diuji; tool selection accuracy = tool benar / seluruh keputusan; tool execution success = pemanggilan sukses / total panggilan; response correctness = jawaban benar / seluruh jawaban. Tambahkan latency p50/p95, jumlah iterasi, error recovery, reproducibility, human intervention rate, serta kelengkapan audit log.
| Test | Expected | Metode |
|---|---|---|
| Overdue pada 2026-10-31 | T01,T03,T06 | Unit test |
| Task T99 | Not found | Unit test |
| Tool delete_tasks | Ditolak | Unit test |
| Input kosong | Ditolak | Unit test |
| LLM summary | Fakta sesuai JSON | Review manual, belum otomatis |
Misal 18 dari 20 tugas berhasil, task completion rate = 90%. Skor bahasa yang fasih tidak membuktikan bahwa tindakan tool benar; evaluasi harus memeriksa hasil eksternal dan keamanan secara terpisah.
Keamanan
Prompt injection dapat menyusup lewat dokumen atau keluaran tool; jangan jadikan konten sumber sebagai instruksi tingkat sistem. Tool misuse dan excessive permissions ditangani dengan allowlist, least privilege, dan human approval untuk tindakan destruktif. Hallucination dikurangi dengan hasil tool terstruktur dan pemeriksaan fakta. Data leakage membutuhkan redaksi, kontrol akses, serta batas penyimpanan log. Unsafe execution memerlukan sandbox dan validasi argumen. Infinite loops dicegah dengan batas langkah, timeout, serta anggaran token/biaya. Audit log harus dilindungi dari modifikasi dan kebocoran data.
Pengembangan Lanjutan
Roadmap yang masuk akal: (1) SQLite/PostgreSQL untuk state persisten dan audit; (2) RAG dengan indeks dokumen proyek; (3) MCP server untuk integrasi GitHub atau task tracker; (4) workflow multi-agent dengan pemisahan planner, executor, reviewer; (5) kontrol akses organisasi, approval, dan observability; (6) task-centric intelligent interface yang menyatukan tindakan lintas aplikasi. Seluruh fitur tersebut adalah rencana pengembangan, bukan fitur MVP saat ini.
FAQ
Apakah AI Agent harus memakai LLM?
Tidak. Agen klasik dapat menggunakan aturan atau model keputusan lain.
Apakah chatbot sama dengan AI Agent?
Tidak selalu; chatbot dapat menjadi antarmuka agen, tetapi tidak otomatis menjalankan tindakan.
Apakah Ollama gratis?
Ollama dapat dijalankan lokal; periksa lisensi setiap model yang diunduh.
Apakah perlu GPU?
Tidak selalu; model kecil dapat berjalan di CPU dengan performa lebih lambat.
Apakah MCP wajib?
Tidak. MCP hanya salah satu standar integrasi.
Apa beda RAG dan memory?
RAG mengambil informasi relevan dari sumber; memory mempertahankan state atau informasi pengalaman.
Apakah contoh ini autonomous agent?
Tidak. Routing tool deterministik dan model opsional hanya merangkum.
Bagaimana mengukur keberhasilan?
Ukur hasil tugas dan pemanggilan tool, bukan hanya kualitas kalimat.
Bagaimana mengamankan agen?
Gunakan allowlist, least privilege, validasi, sandbox, batas iterasi, dan approval.
Bisakah diintegrasikan ke GitHub?
Bisa melalui API atau MCP dengan izin terkontrol; belum diimplementasikan di MVP.
Kesimpulan: AI Agent adalah pola sistem yang menghubungkan tujuan, observasi, keputusan, tindakan, dan evaluasi. Mulailah dari tools teruji dan aturan aman sebelum menambahkan otonomi LLM, RAG, atau multi-agent.
Referensi
- Russell & Norvig, Artificial Intelligence: A Modern Approach, 4th ed.
- Yao et al. (2023), ReAct: Synergizing Reasoning and Acting in Language Models
- Lewis et al. (2020), Retrieval-Augmented Generation
- Model Context Protocol — official documentation
- Ollama API documentation
- OWASP Top 10 for LLM Applications