Seberapa efektif AI sebenarnya dalam menangani customer service e-commerce?
Dalam proof of concept (POC) ini, pengguna dapat menguji langsung bagaimana asisten customer service berbasis AI yang didukung Amazon Bedrock mampu memahami pertanyaan pelanggan, menjalankan proses secara otomatis, dan memberikan jawaban yang akurat berdasarkan data dan kebijakan yang berlaku.
POC ini juga dirancang agar mudah dicoba tanpa integrasi yang rumit. Seluruh komponen dapat dijalankan dengan cepat melalui local quick start berbasis Python atau provisioning otomatis menggunakan CloudFormation. Setelah sistem aktif, alur end-to-end dapat dievaluasi secara langsung, mulai dari membaca dan memperbarui data pesanan di DynamoDB hingga menjawab FAQ dan kebijakan melalui Knowledge Base berbasis S3 yang telah diindeks untuk semantic retrieval.
*Disclaimer*
Implementasi ini hanya ditujukan untuk kebutuhan POC dan tidak direkomendasikan untuk penggunaan di lingkungan production. Untuk penerapan production, dibutuhkan pengamanan tambahan seperti Guardrails, least-privilege IAM, input validation, serta kontrol akses yang tersegmentasi. Seluruh proses orkestrasi dijalankan oleh agent self-hosted strands SDK yang berinteraksi langsung dengan model Bedrock dan custom tools.
Solusi Asisten Customer Service Berbasis AI
Dirancang untuk menangani interaksi pelanggan secara efisien, solusi ini mampu memahami pertanyaan pelanggan dalam bahasa sehari-hari (natural language), kemudian mengarahkan permintaan ke tools yang tepat untuk membaca atau memperbarui data pesanan di Amazon DynamoDB, lalu menyusun respons yang mencakup status order, riwayat transaksi, proses retur, dan informasi kebijakan.
Agar seluruh proses tersebut dapat berjalan secara konsisten di belakang layar, solusi ini dijalankan melalui runtime multi-agent self-hosted berbasis strands software development kit (SDK) yang mengorkestrasi dan mengeksekusi berbagai tools secara otomatis, sementara Amazon Bedrock Nova Lite menangani LLM reasoning untuk menghasilkan jawaban yang tepat. Untuk pengujian end-to-end yang praktis, Streamlit menyediakan UI interaktif yang dapat langsung dijalankan di region us-east-1.
Kapabilitas Utama
- Menampilkan status order
- Melihat riwayat order pelanggan
- Menginisiasi proses retur
- Q&A kebijakan berbasis Knowledge Base
Runtime
Konfigurasi runtime multi-agent strands SDK yang mendaftarkan custom tools serta retrieve tool untuk pemanggilan Knowledge Base.
Region & IAM
Dijalankan di region us-east-1 dengan izin:
- bedrock:InvokeModel
- Akses DynamoDB
- bedrock:Retrieve dan bedrock:RetrieveAndGenerate untuk kueri Knowledge Base
Arsitektur
Solusi ini mengadopsi satu mode deployment untuk kebutuhan POC secara lokal, yang terdiri dari Streamlit UI untuk interaksi pengguna, agent strands SDK yang telah dikonfigurasi dengan model Nova Lite, serangkaian custom tools untuk alur order, serta tabel DynamoDB yang telah di-seed dengan sample data.
UI
Aplikasi Streamlit (streamlit_ui_modern.py) digunakan untuk pengujian interaktif dan demonstrasi percakapan end-to-end.
Agent
Agent strands SDK (simple_local_agent.py) menjalankan system prompt, menggunakan konfigurasi model Nova Lite, dan meregistrasi seluruh tools yang diperlukan.
Tools
get_order_status, get_customer_orders, get_return_policy, request_return, serta retrieve tool untuk integrasi Knowledge Base.
Data
Tabel ecom-orders di DynamoDB dengan Global Secondary Index untuk kueri pelanggan, termasuk sample data yang dimuat melalui helper script.

Persyaratan untuk Memulai POC
Sebelum menjalankan POC ini, terdapat beberapa kebutuhan awal baik dari sisi akun AWS maupun lingkungan lokal agar seluruh komponen dapat berfungsi dengan benar.
Akses dan Izin AWS
Akun AWS dengan izin untuk Amazon Bedrock, DynamoDB, CloudFormation, Python untuk proses seeding data pada stack, serta S3 untuk penyimpanan konten Knowledge Base.
Konfigurasi Lingkungan Lokal
Python 3.9+, AWS CLI v2, pip, Streamlit, dan strands SDK yang diinstal melalui requirements.txt.
Region dan Kebijakan IAM
Region us-east-1 dengan kebijakan IAM yang mengizinkan bedrock:InvokeModel untuk model us.amazon.nova-lite-v1:0, akses CRUD DynamoDB pada tabel ecom-orders, serta bedrock:Retrieve dan bedrock:RetrieveAndGenerate untuk kueri Knowledge Base.
Variabel Lingkungan yang Wajib Diterapkan
Sebelum menjalankan aplikasi atau meluncurkan UI, pastikan variabel lingkungan berikut sudah diatur:
- export AWS_PROFILE=your-profile-name
- export AWS_DEFAULT_REGION=us-east-1
- export KNOWLEDGE_BASE_ID=your-kb-id
Ketika KNOWLEDGE_BASE_ID telah di-set, agent akan otomatis mendaftarkan retrieve tool sehingga memungkinkan kueri Knowledge Base berbasis semantic search terhadap korpus dokumen di S3 yang telah diindeks oleh Bedrock Knowledge Bases.
Deployment
Untuk memulai deploy POC ini sekaligus melihat dokumentasi dalam Bahasa Inggris, kunjungi repository project berikut:
https://gitlab.cdt-cloud.com/Christian/ecommerce-agent

Template dan deploy script akan otomatis:
- Membuat tabel ecom-orders di DynamoDB
- Menyediakan bucket S3 untuk dokumen Knowledge Base
- Membentuk IAM users/roles yang diperlukan
- Menjalankan script Python satu kali untuk mengisi sample data ke tabel
Setelah proses selesai, terminal akan menampilkan kredensial serta nama resource yang telah dibuat sehingga pengguna dapat langsung melanjutkan konfigurasi berikutnya.
Jalankan deployment dengan perintah berikut:
cd cloudformation
chmod +x deploy.sh
./deploy.sh
aws configure –profile ecommerce
export AWS_PROFILE=ecommerce
export AWS_DEFAULT_REGION=us-east-1
export KNOWLEDGE_BASE_ID=<your-kb-id>
cd ..
pip install -r requirements.txt
streamlit run streamlit_ui_modern.py

Jika muncul error saat import strands SDK, lakukan upgrade strands-agents dan strands-agents-tools, kemudian verifikasi instalasi dengan import test satu baris.
Knowledge Base dapat dibuat melalui konsol Bedrock, lalu pilih data source tipe S3 menggunakan bucket S3 yang dibuat oleh stack untuk menyimpan dokumen.

Pilih model embedding Titan Embeddings G1 – Text.
Setelah itu, review konfigurasi Knowledge Base, lakukan sinkronisasi (sync), salin KB ID, dan ekspor ke KNOWLEDGE_BASE_ID sebelum menguji retrieval di agent.

Setelah Knowledge Base berhasil dibuat, catat Knowledge Base ID untuk digunakan pada script deployment. Pastikan source S3 sudah mengarah ke bucket yang berisi dokumen QnA yang benar.

Tampilan menu awal:

Di sisi kiri menu tersedia tombol yang dapat diklik untuk membantu melakukan prompting. Pelanggan tetap dapat menggunakan input chatbot di bagian bawah website untuk berinteraksi dengan customer agent.
Untuk memilih persona pelanggan, gunakan menu Select Customer Profile.
Konfigurasi Strands SDK
Strands SDK di-install melalui file “requirements.txt” dan berfungsi sebagai kerangka untuk mendefinisikan agent, model, serta serangkaian tools yang terintegrasi dengan Amazon Bedrock Nova Lite dalam proses inferensi. Saat runtime berjalan, agent mendaftarkan custom tools menggunakan dekorator “@tool”, dan secara otomatis menambahkan retrieve tool ketika variabel `KNOWLEDGE_BASE_ID` tersedia.
Tools yang terdaftar mencakup:
- get_order_status(order_id)
- get_customer_orders(customer_id)
- get_return_policy()
- request_return(order_id)
Seluruh tools tersebut dipetakan ke fungsi helper yang berinteraksi langsung dengan tabel DynamoDB.
Agent dikonfigurasi untuk menggunakan model us.amazon.nova-lite-v1:0, memuat system prompt yang telah disesuaikan, dan berjalan di region us-east-1 untuk memastikan perilaku inferensi yang konsisten.
Integrasi Knowledge Base
Knowledge Base digunakan untuk memastikan jawaban yang diberikan asisten tetap akurat dan sesuai referensi resmi, termasuk katalog produk, FAQ, dan kebijakan layanan. Konten disimpan di S3 dan diindeks menggunakan Titan Embeddings G1 – Text melalui Amazon Bedrock untuk memungkinkan pencarian semantik (semantic retrieval).
Setelah Knowledge Base dibuat dan proses sinkronisasi selesai, nilai KNOWLEDGE_BASE_ID perlu diekspor sebagai variabel lingkungan agar agent dapat mengimpor dan menjalankan retrieve tool selama percakapan.
Contoh pertanyaan yang ditangani melalui mekanisme retrieval dan reasoning model antara lain:
- “Apa return policy kalian?”
- “Berapa lama shipping?”
- “Tunjukkan wireless headphones.”
Skenario Pengujian Asisten
Bagian ini menampilkan contoh percakapan yang dapat digunakan untuk menguji kemampuan asisten dalam menangani berbagai kebutuhan pelanggan, mulai dari pengecekan status pesanan hingga validasi kebijakan layanan.
Status Order
Pertanyaan seperti “Apa status order ORD-2024-001234?” akan memicu validasi status pesanan, tanggal pengiriman, dan detail item bila tersedia.
Riwayat Pelanggan
Pertanyaan seperti “Tampilkan semua order untuk customer CUST-001” akan menghasilkan daftar ringkas riwayat transaksi beserta status dan total pesanan.
Proses Retur
Saat diberikan contoh seperti “Saya ingin return order ORD-2024-001234 karena rusak..”, asisten memeriksa eligibility pengembalian, memperbarui status menjadi Return Requested, dan memberikan konfirmasi.
Grounding Kebijakan
Pertanyaan seperti “Apa return policy kalian?” akan divalidasi melalui Knowledge Base untuk memastikan jawaban sesuai referensi resmi dan selaras dengan kebijakan yang berlaku.
Contoh hasil pengetesan chatbot ditampilkan pada gambar di bawah ini:


Troubleshooting
Bagian ini membantu mengidentifikasi penyebab umum ketika POC tidak berjalan sebagaimana mestinya, baik pada sisi konfigurasi AWS maupun komponen aplikasi.
Kredensial & Region
Konfigurasi AWS CLI atau set variabel “AWS_PROFILE” dan “AWS_DEFAULT_REGION”, lalu verifikasi identitas dengan perintah “aws sts get-caller-identity”.

Akses Amazon Bedrock
Pastikan terdapat izin “bedrock:InvokeModel” untuk model “us.amazon.nova-lite-v1:0”, atau lampirkan managed policy yang sesuai.
Tabel DynamoDB
Jika tabel tidak tersedia atau salah konfigurasi, jalankan ulang “populate_sample_data.py” dan verifikasi dengan “aws dynamodb describe-table ecom-orders”.
Strands SDK
Jika terjadi error pada import, lakukan reinstall atau upgrade paket “strands-agents” dan “strands-agents-tools”, lalu jalankan import test sederhana.
Knowledge Base
Pastikan Knowledge Base berada di region “us-east-1”, KB ID valid, dan kebijakan IAM sudah mencakup “bedrock:Retrieve” serta “bedrock:RetrieveAndGenerate”.
Estimasi & Pertimbangan Biaya
Untuk menjalankan POC ini, biaya operasional tergolong rendah selama penggunaan hanya untuk pengujian. Sumber biaya terutama berasal dari penggunaan DynamoDB secara on-demand untuk operasi data, konsumsi token pada Amazon Bedrock Nova Lite, serta biaya penyimpanan S3 dan pemanggilan retrieval saat Knowledge Base digunakan. Sebagai gambaran, menjalankan sekitar 1.000 kueri di region us-east-1 umumnya hanya memerlukan biaya dalam kisaran beberapa ribu rupiah, bergantung pada jumlah token yang diproses dan frekuensi pemanggilan retrieval.
Pertimbangan Keamanan
Implementasi ini dirancang untuk kebutuhan proof of concept (POC). Sebelum diaplikasikan di lingkungan produksi, diperlukan langkah-langkah keamanan tambahan seperti autentikasi dan otorisasi, input validation dan sanitization, penggunaan VPC endpoints untuk akses privat, CloudTrail logging, rate limiting, serta enkripsi data baik in-transit maupun at-rest. Selain itu, terapkan kebijakan IAM least-privilege untuk Bedrock, DynamoDB, dan bucket S3, serta batasi akses hanya pada resource dan region yang relevan.
Clean Up
Untuk POC lokal, hentikan terlebih dahulu aplikasi Streamlit, hapus file environment variabel, dan opsional hapus tabel ecom-orders. Untuk POC yang di-deploy menggunakan CloudFormation, kosongkan bucket S3 terlebih dahulu lalu hapus stack agar seluruh resource yang di-provision ikut terhapus. Pastikan tidak ada log group atau aset yang tertinggal untuk mencegah biaya berlanjut.
Contoh Skema DynamoDB
Contoh item pada tabel pesanan mencakup field seperti “order_id”, “customer_id”, “order_date”, “status”, “items” (sku dan price), “estimated_delivery”, “total_amount”, dan “shipping_address”, sesuai struktur yang digunakan oleh tools pada demo.
Tabel ecom-orders yang dibuat selama deployment dapat dilihat melalui DynamoDB Console.

Berikut contoh payload item dalam tabel:
{
“order_id”: “ORD-2024-001234”,
“customer_id”: “CUST-567890”,
“order_date”: “2024-10-25T10:30:00Z”,
“status”: “Delivered”,
“items”: [
{
“sku”: “HEADPHONES-WH1000XM4”,
“name”: “Sony WH-1000XM4 Wireless Headphones”,
“quantity”: 1,
“price”: 299.99
}
],
“estimated_delivery”: “2024-10-28”,
“total_amount”: 299.99,
“shipping_address”: “123 Main St, Seattle, WA 98101”
}
Perintah Validasi Sistem
Perintah berikut dapat digunakan sebagai “smoke test” untuk memastikan instalasi strands SDK, kredensial AWS, izin pemanggilan model Bedrock, keberadaan tabel DynamoDB, serta kemampuan retrieval item sudah berfungsi dengan benar.
Cek Strands SDK
- python -c “import strands; print(strands.__version__)”
Identitas & Model
- aws sts get-caller-identity
- aws bedrock list-foundation-models –region us-east-1 | grep nova-lite

DynamoDB
- aws dynamodb describe-table –table-name ecom-orders
- aws dynamodb get-item –table-name ecom-orders –key ‘{\”order_id\”:{\”S\”:\”ORD-2024-001234\”}}’
Referensi AWS
Berikut adalah sumber resmi yang dapat digunakan untuk memahami lebih jauh mengenai Amazon Bedrock dan fitur Knowledge Base dalam Bahasa Indonesia.
Gambaran Amazon Bedrock, kapabilitas, keamanan, dan orkestrasi GenAI https://docs.aws.amazon.com/id_id/bedrock/latest/userguide/what-is-bedrock.html
Amazon Bedrock
https://aws.amazon.com/id/bedrock/
Knowledge Bases untuk Amazon Bedrock
https://aws.amazon.com/id/bedrock/knowledge-bases/
Dukungan region dan model untuk Knowledge Base https://docs.aws.amazon.com/id_id/bedrock/latest/userguide/knowledge-base-supported.html
Author: Christian Laurence
Editor: Danurdhara Suluh Prasasta
CTI Group Content Writer
