Saya Meletakkan Ejen AI di Hadapan Tiket Sokongan Selama 20 Tahun

Kami mempunyai sistem meja bantuan dengan satu juta tiket. Kami mempunyai 2,400 manual dan dua pangkalan kod yang besar.

Apabila pembangun bertanya jika kami pernah menyelesaikan sesuatu masalah sebelum ini, jawapannya sentiasa ya. Datanya cuma tertanam. Kakitangan senior membazir berjam-jam mencari. Kakitangan junior membazir berminggu-minggu.

Saya membina satu ejen AI untuk menguruskan semua data ini. Ia kini dalam fasa produksi. Inilah apa yang sebenarnya berlaku.

Data bukanlah bahagian yang sukar. Mengetahui di mana hendak mencari adalah cabarannya. Memastikan ejen berhenti mereka-reka maklumat adalah lebih sukar lagi.

Bagaimana ia berfungsi:

  • Satu ejen dengan input bahasa tabii.
  • Ia membaca pangkalan data meja bantuan, alatan projek, GitLab, dan SVN.
  • Ia melakukan carian vektor ke atas manual dan tiket lama.
  • Ia boleh menjana fail seperti .xlsx atau .docx.
  • Ia memilih alatan sendiri dan menjalankannya secara selari.

Seni binanya ringkas. Ia berjalan dalam kontena Node yang berasingan daripada aplikasi utama. Saya melakukan ini untuk pengasingan kegagalan. Jika AI gagal, meja bantuan tetap berfungsi.

Pengajaran terbesar adalah mengenai prompt. Saya bermula dengan satu blok teks yang sangat besar. Ia mengandungi 40,000 token. Ia sukar untuk diselenggara dan ejen tersebut hilang fokus.

Saya mengubah pendekatan saya. Saya membahagikan prompt kepada fail kemahiran yang kecil.

  • Carian tiket adalah satu fail.
  • Sejarah kod adalah satu lagi.
  • Pengurusan projek adalah yang ketiga.

Prompt utama bertindak sebagai penghala (router). Ia hanya memuatkan kemahiran apabila diperlukan. Ini mengurangkan penggunaan token kami daripada 40,000 kepada 8,000 bagi setiap permintaan. Ejen kekal fokus pada tugasan dan kodnya mudah dikemas kini.

Saya juga menambah profil pengguna. Pembangun mendapat laluan kod. Pengurus projek mendapat ringkasan status. Ejen tahu siapa yang bertanya tanpa perlu diberitahu.

Ia tidak sempurna. Kami menghadapi kegagalan sebenar:

  • Halusinasi: Ejen mencipta URL palsu. Penyelesaian: Tetapkan corak tepat atau paksa carian (lookup).
  • Kehilangan memori: Ejen melupakan peraturan dalam sembang yang panjang. Penyelesaian: Suntik senarai tugasan berstruktur dalam setiap pusingan.
  • Gelung infiniti: Ejen membuat terlalu banyak panggilan alatan. Penyelesaian: Tetapkan bajet yang ketat bagi setiap permintaan.
  • Keselamatan: Pengguna cuba memperdayanya. Penyelesaian: Jangan bergantung pada prompt untuk keselamatan. Gunakan kredensial pangkalan data 'read-only' dalam infrastruktur anda.

Kerja sebenar adalah kitaran mingguan. Saya membaca log. Saya memberi skor pada sesi. Saya mengubah suai kemahiran. Saya mengemas kini profil.

Jika anda melangkau kitaran ini, anda hanya mempunyai demo. Jika anda melakukannya, anda mempunyai produk.

Matlamatnya bukan sekadar jawapan yang lebih pantas. Matlamatnya adalah untuk mengekalkan pengetahuan institusi dalam organisasi. Apabila seseorang berhenti, pengetahuan mereka kekal dalam transkrip.

Ringkasan untuk binaan anda:

  • Mulakan dengan RAG ke atas sejarah anda sendiri.
  • Gunakan fail kemahiran yang dimuatkan secara malas (lazy-loaded) berbanding satu prompt besar.
  • Gunakan profil pengguna untuk konteks yang diperibadikan.
  • Asingkan AI dalam kontena tersendiri.
  • Tegaskan keselamatan melalui infrastruktur, bukan arahan.
  • Baca log anda setiap minggu.

Source: https://dev.to/nunc/i-put-an-ai-agent-in-front-of-20-years-of-support-tickets-heres-what-actually-broke-5gdd

Optional learning community: https://t.me/GyaanSetuAi