Frame 19229

Membangun Asisten Customer Service E-Commerce Self-Hosted Berbasis Multi-Agent Bersama AWS Bedrock

Posted by taufik

December 5, 2025

Banner Artikel (2)

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. 

q

 

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 

1a

Template dan deploy script akan otomatis: 

  1. Membuat tabel ecom-orders di DynamoDB 
  1. Menyediakan bucket S3 untuk dokumen Knowledge Base 
  1. Membentuk IAM users/roles yang diperlukan 
  1. 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  

2a

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. 

3a

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. 

4a

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. 

5a

Tampilan menu awal: 

6a

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: 

7a

8a

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”. 

9a

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. 

10a

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 

11a

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 

whatsapp icon.png
Start a Conversation

Privacy & Policy

PT Central Data Technology (“CDT” or “us”) is strongly committed to ensuring that your privacy is protected as utmost importance to us. https://centraldatatech.com/ , we shall govern your use of this website, including all pages within this website (collectively referred to herein below as this “Website”), we want to contribute to providing a safe and secure environment for visitors.

The following are terms of privacy policy (“Privacy Policy”) between you (“you” or “your”) and CDT. By accessing the website, you acknowledge that you have read, understood and agree to be bound by this Privacy Policy

Use of The Subscription Service by CDT and Our Customers

When you request information from CDT and supply information that personally identifies you or allows us to contact you, you agree to disclose that information with us. CDT may disclose such information for marketing, promotional and activity only for the purpose of CDT and the Website.

Collecting Information

You are free to explore the Website without providing any personal information about yourself. When you visit the Website or register for the subscription service, we provide some navigational information for you to fill out your personal information to access some content we offered.

CDT may collect your personal data such as your name, email address, company name, phone number and other information about yourself or your business. We are collecting your data in some ways, online and offline. CDT collects your data online using features of social media, email marketing, website, and cookies technology. We may collect your data offline in events like conference, gathering, workshop, etc. However, we will not use or disclose those informations with third party or send unsolicited email to any of the addresses we collect, without your express permission. We ensure that your personal identities will only be used in accordance with this Privacy Policy.

How CDT Use the Collected Information

CDT use the information that is collected only in compliance with this privacy policy. Customers who subscribe to our subscription services are obligated through our agreements with them to comply with this Privacy Policy.

In addition to the uses of your information, we may use your personal information to:

  • Improve your browsing experience by personalizing the websites and to improve the subscription services.
  • Send information about CDT.
  • Promote our services to you and share promotional and informational content with you in accordance with your communication preferences.
  • Send information to you regarding changes to our customers’ terms of service, Privacy Policy (including the cookie policy), or other legal agreements

Cookies Technology

Cookies are small pieces of data that the site transfers to the user’s computer hard drive when the user visits the website. Cookies can record your preferences when visiting a particular site and give the advantage of identifying the interest of our visitor for statistical analysis of our site. This information can enable us to improve the content, modifying and making our site more user friendly.

Cookies were used for some reasons such as technical reasons for our website to operate. Cookies also enable us to track and target the interest of our users to enhance the experience of our website and subscription service. This data is used to deliver customized content and promotions within the Helios to customers who have an interest on particular subjects.

You have the right to decide whether to accept or refuse cookies. You can edit your cookies preferences on browser setup. If you choose to refuse the cookies, you may still use our website though your access to some functionality and areas of our website may be restricted.

This Website may also display advertisements from third parties containing links to other websites of interest. Once you have used these links to leave our site, please note that we do not have any control over the website. CDT cannot be responsible for the protection and privacy of any information that you provide while visiting such websites and this Privacy Policy does not govern such websites.

Control Your Personal Data

CDT give control to you to manage your personal data. You can request access, correction, updates or deletion of your personal information. You may unsubscribe from our marketing activity by clicking unsubscribe us from the bottom of our email or contacting us directly to remove you from our subscription list.

We will keep your personal information accurate, and we allow you to correct or change your personal identifiable information through marketing@centraldatatech.com