Dalam tutorial ini, kami mendemonstrasikan cara membangun sistem AI kolaboratif dengan menggunakan kerangka kerja ChatDev dan menjelajahi struktur komunikasi agen berbasis perannya, ChatChain. ChatDev menggunakan agen AI dengan peran yang ditugaskan untuk menyimulasikan perusahaan perangkat lunak virtual. Setiap agen cerdas berkolaborasi dengan agen lain melalui komunikasi terstruktur, mengikuti alur kerja berurutan berdasarkan fase-fase dalam siklus hidup pengembangan perangkat lunak.
Untuk mendukung agen ini, kami mengintegrasikan antarmuka pemrograman aplikasi (API) IBM watsonx.ai sebagai backend model. Dengan memanfaatkan integrasi watsonx.ai dengan Hugging Face, kami telah mengonfigurasi kerangka kerja untuk menggunakan Llama-4-Maverick guna menghasilkan solusi perangkat lunak sederhana. Contoh ini berfungsi sebagai dasar untuk menjelajahi ChatChain dan mekanisme komunikasi agen internal lainnya yang memandu perilaku agen dan pengambilan keputusan di seluruh alur kerja.
Pada akhir tutorial ini, Anda harus memiliki pengalaman langsung mengatur dan menjalankan ChatDev, dan pemahaman yang lebih jelas tentang bagaimana protokol komunikasi agen memungkinkan kolaborasi multiagen yang efektif dan andal.
AI kolaboratif: Sistem kecerdasan buatan yang dirancang untuk bekerja bersama manusia atau agen AI, seringkali dengan menggunakan pembelajaran mendalam atau teknik canggih lainnya untuk memungkinkan kerja sama, pengambilan keputusan bersama, dan pemecahan masalah bersama untuk mencapai tujuan bersama.
Kolaborasi multi-agen: Beberapa agen otonom yang berbagi informasi dan berkoordinasi untuk mencapai tujuan bersama. Agen-agen ini dapat memiliki tingkat pengetahuan, kemampuan, dan perspektif yang bervariasi, dan kolaborasi mereka sering melibatkan negosiasi, perencanaan, dan tindakan terkoordinasi.
Agen bermain peran: Agen AI yang menyimulasikan peran atau persona tertentu untuk berinteraksi dan berkolaborasi dengan cara yang berbasis tujuan. Peran-peran ini dapat mencerminkan profesi atau karakter di dunia nyata, memungkinkan interaksi yang lebih sesuai konteks dan berorientasi pada tujuan.
Protokol komunikasi agen: Standar atau kerangka kerja yang menentukan bagaimana agen AI berinteraksi satu sama lain dengan bertukar pesan data terstruktur. Protokol-protokol ini mengatur format, makna, dan aturan komunikasi untuk agen-agen yang berkoordinasi dalam sistem multiagen.
ChatDev adalah implementasi berbasis peran dari AI kolaboratif, di mana agen-agen individu mengambil peran khusus untuk bekerja menuju tujuan bersama. Desain ini mencerminkan prinsip-prinsip kecerdasan kolektif—pada dasarnya kolaborasi yang efektif—dan menempatkan ChatDev sebagai sumber daya berharga untuk mempelajari dan mengembangkan bidang ini.
ChatDev adalah kerangka kerja multiagen sumber terbuka yang dikembangkan oleh OpenBMB, sebuah inisiatif berbasis penelitian yang berfokus memajukan alat AI dan kecerdasan umum buatan (AGI). Kerangka kerja ini menggunakan proses pengembangan perangkat lunak sebagai domain praktis untuk mempelajari agen AI kolaboratif. Setiap agen didukung oleh Model Bahasa Besar (LLM) dan diberi prompt untuk mengambil peran spesifik seperti CEO, CTO, Desainer, Penguji, dan Programmer.1
Mulai dari input pengguna yang singkat dan deskriptif, agen-agen ini bekerja sama untuk merancang, mengimplementasikan, dan menguji secara berulang-ulang sebuah proyek perangkat lunak yang lengkap. Setiap agen diimplementasikan sebagai class Python yang berkomunikasi secara berurutan menggunakan prompt bahasa alami yang terstruktur. Prompt-prompt ini mengikuti templat yang telah ditentukan sebelumnya, yang mencakup peran agen, instruksi spesifik tugas, dan konteks relevan dari interaksi sebelumnya. Strategi ini membantu memastikan kesinambungan dan kohesi dengan menanamkan identitas peran dan memori bersama dalam prompt itu sendiri.
Tim ChatDev yang terdiri dari agen-agen khusus bekerja sama untuk mengembangkan solusi perangkat lunak sederhana berdasarkan input pengguna berupa satu kalimat yang menggambarkan ide mereka.
Masukan pengguna: ‘Buat aplikasi daftar tugas’ → CEO mendelegasikan ke CTO → CTO menugaskan ke Pengembang → Pengembang menulis kode → Pengembang memvalidasi
Interaksi agen diatur oleh ChatChain, logika koordinasi khusus dalam kerangka kerja ChatDev. Komunikasi antara agen terjadi melalui dialog yang berjalan beberapa kali atau sistem pertukaran pesan, di mana agen secara berurutan bertukar pesan JSON yang terstruktur. Pesan-pesan ini mewakili output dan pembaruan konteks, serta berfungsi sebagai buffer memori bersama, memungkinkan agen-agen untuk membangun berdasarkan output satu sama lain di seluruh fase pengembangan.
Arsitektur ini memfasilitasi komunikasi yang konsisten dan kolaborasi yang sesuai konteks dengan menggabungkan bahasa alami dan bahasa pemrograman untuk menyelesaikan proyek secara menyeluruh. Proses ini bergantung pada komunikasi multiagen terkoordinasi, dengan mekanisme internal bertindak sebagai protokol untuk mengatur komunikasi agen AI yang efektif untuk menyelesaikan setiap fase.
Pengguna dapat memantau dan meninjau alur kerja agen dengan menggunakan alat Visualizer ChatDev, antarmuka web berbasis Flask yang mendukung analisis pasca-operasi dan pemantauan real-time. Visualizer menyediakan beberapa mode, seperti Log Viewer untuk memeriksa interaksi agen secara real-time, Replay Viewer untuk memvisualisasikan log percakapan multiagen yang disimpan, dan ChatChain Viewer untuk menganalisis alur koordinasi tugas. Antarmuka interaktif ini memungkinkan pengguna untuk melakukan debugging, bereksperimen, dan mempelajari kolaborasi multi-agen melalui lingkungan terstruktur menggunakan browser lokal.
Tutorial ini menggunakan versi khusus ChatDev yang diadaptasi khusus untuk IBM® watsonx.ai API. Meskipun ChatDev inti mendukung beberapa penyedia model, versi ini telah dimodifikasi dengan menggunakan pendekatan pragmatis "vibecoding", sehingga fungsional namun belum diuji secara menyeluruh di semua skenario.
Adaptasi utama meliputi:
Melakukan wrapping terhadap API IBM watsonx.ai untuk menyesuaikan dengan antarmuka LLM yang diharapkan ChatDev.
Menyesuaikan templat prompt agar berfungsi dengan token IBM watsonx.ai API dan persyaratan pemformatan
Memodifikasi logika pemilihan model untuk mendukung IBM watsonx.ai sebagai opsi backend model.
Implementasi ini menunjukkan bagaimana ChatDev dapat diperluas untuk mendukung penyedia LLM alternatif. Penyedia model lain (misalnya OpenAI, Ollama) belum diuji dengan versi ChatDev yang disesuaikan ini dan memerlukan penyesuaian pada tingkat kode.
Seperti banyak alur kerja AI generatif, output dapat bervariasi antar proses. Sementara agen umumnya menghasilkan kode dan dokumentasi yang koheren dan terstruktur dengan baik, aplikasi yang dihasilkan mungkin memerlukan penyempurnaan manual agar berfungsi penuh. Faktor-faktor seperti desain prompt, kompleksitas tugas, dan variabilitas bawaan respons LLM semuanya berkontribusi pada ketidakpastian ini.
Tutorial ini berfungsi sebagai pengenalan praktis tentang sistem multiagen kolaboratif, dengan fokus pada cara agen berkomunikasi dan berkoordinasi di dalam ChatDev. Ini tidak dimaksudkan sebagai solusi siap produksi, melainkan sebagai landasan untuk belajar, bereksperimen, dan menjelajahi kolaborasi agen yang didorong oleh LLM. Kami mengucapkan terima kasih kepada para peneliti di ChatDev atas keputusan mereka untuk menyediakan karya mereka sebagai sumber terbuka, yang memungkinkan eksplorasi semacam ini.
Meskipun ChatDev dirancang untuk dapat digunakan di berbagai platform, pengguna mungkin mengalami masalah yang spesifik untuk platform tertentu selama proses pengaturan atau eksekusi. Misalnya, PowerShell di Windows mungkin memerlukan penyesuaian perintah shell yang ditujukan untuk sistem berbasis Unix. Variasi dalam OS, versi Python dan arsitektur CPU juga dapat memengaruhi kinerja atau perilaku. Untuk memastikan pengaturan dan penggunaan yang lancar, pengguna disarankan untuk membaca dokumentasi resmi ChatDev dan panduan instalasi untuk pemecahan masalah dan petunjuk khusus lingkungan.
Dengan mengingat hal itu, mari kita mulai dengan menyiapkan lingkungan untuk menjalankan aplikasi. Anda dapat mengikuti langkah-langkah berikut dalam file Markdown di dalam folder proyek di GitHub atau dengan mengikuti langkah-langkah di sini.
Dari direktori proyek tutorial, buat lingkungan virtual dengan menggunakan Python 3.11:
Kode ini menginstal dependensi proyek.
Variabel diatur untuk sesi terminal saat ini (menutup terminal akan mengatur ulang mereka).
Meskipun tutorial ini menggunakan IBM watsonx.ai sebagai backend model, kerangka kerja yang mendasari ChatDev awalnya dirancang untuk mendukung beberapa penyedia LLM, termasuk OpenAI sebagai defaultnya. Beberapa bagian dari basis kode (misalnya, logika pemilihan model atau antarmuka bersama) masih mereferensikan
Anda dapat memilih untuk menjalankan Visualizer ChatDev, GUI berbasis Flask yang memungkinkan Anda memeriksa log agen secara real-time, menjelajahi alur kerja, atau memutar ulang dialog agen yang disimpan. Alat ini berguna untuk mendebug, memantau, atau mempelajari interaksi agen, tetapi tidak diperlukan untuk menjalankan alur kerja multiagen inti ChatDev.
Untuk meluncurkan Visualizer, pertama instal Flask:
Kemudian, jalankan aplikasi:
Setelah berjalan, buka browser dan buka:
Catatan: Tutorial ini menggunakan versi ChatDev yang telah dikonfigurasi sebelumnya untuk menggunakan IBM Watsonx.ai API sebagai backend model. Tidak ada pengaturan tambahan atau perubahan pada konfigurasi model yang diperlukan agar tutorial berfungsi dengan benar. Meskipun dapat disesuaikan, memodifikasi konfigurasi LLM dapat menghasilkan output yang tidak lengkap, salah, dan bervariasi.
ChatDev dibangun berdasarkan kerangka kerja CAMEL, yang mengelola peran agen, tugas, dan interaksi dengan model bahasa. Implementasi asli menggunakan OpenAI API sebagai backend model untuk berinteraksi dengan model ChatGPT seperti GPT-4 dan menggunakan GPT-3.5-turbo secara default. Proyek sumber terbuka juga dirancang untuk mendukung beberapa model penyedia LLM melalui antarmuka model terpadu.
Lewati langkah ini jika Anda berencana untuk menggunakan konfigurasi IBM watsonx.ai default. Untuk eksperimen, jenis model, parameter, dan batas token dapat disesuaikan agar bekerja dengan IBM watsonx.ai API.
Untuk mencoba berbagai jenis model, perbarui entri
Parameter model dapat dikonfigurasi di dalam
Batas token untuk model dapat dikonfigurasi di
Langkah ini menjalankan alur kerja inti ChatDev. Saat Anda menjalankan skrip ini, agen akan menyimulasikan proses pengembangan perangkat lunak kolaboratif berdasarkan input Anda. Kode yang dihasilkan, dokumentasi, dan artefak terkait akan disimpan di direktori WareHouse proyek. Anda dapat memeriksa log atau memutar ulang percakapan dengan menggunakan Visualizer.
Skrip menggunakan argumen berikut:
Contoh skrip:
Catatan: Meskipun arsitektur ChatDev dapat diperluas, versi tutorial ini hanya berfungsi dengan andal bersama
Produk piranti lunak akhir disimpan di
Output umumnya mungkin terlihat seperti ini:
Output dapat bervariasi antara proses karena sifat probabilistik alat AI generatif.
Direktori ini berisi proyek perangkat lunak lengkap yang dihasilkan oleh agen AI. Bersamaan dengan kode aplikasi dan dokumentasi, Anda akan menemukan file konfigurasi yang mendefinisikan:
Peran agen (RoleConfig.json)
Fase pengembangan (PhaseConfig.json)
Alur kerja agen (ChatChainConfig.json)
Log dialog yang dapat diisi ulang di Visualizer ChatDev
Untuk menjalankan aplikasi, ikuti petunjuk di
Interoperabilitas agen merujuk pada kemampuan agen otonom untuk memahami, berkomunikasi, dan berkolaborasi secara efektif dengan menggunakan protokol atau standar yang sama. Kemampuan ini sangat penting untuk menskalakan sistem AI agen di seluruh tugas, mengintegrasikan kumpulan data dan memecahkan masalah kompleks secara kooperatif.
Sistem multi-agen sering menggunakan protokol komunikasi agen (ACPs), yang menyediakan standar untuk komunikasi antar agen dengan menggunakan mekanisme komunikasi internal seperti bahasa komunikasi agen (ACLs), seperti KQML atau FIPA-ACL. Hal ini mendefinisikan tindakan komunikasi standar (misalnya, memberi informasi, meminta, menanyakan) untuk memfasilitasi dialog terstruktur dan koordinasi dalam lingkungan dinamis.
ChatDev, bagaimanapun, mengambil pendekatan yang berbeda. Hal ini dicapai melalui interoperabilitas agen menggunakan ChatChain, sebuah mekanisme komunikasi yang menyusun alur kerja koordinasi agen. ChatChain mengelola aliran informasi berbasis giliran dan sinkron antara agen-agen di seluruh tahap proses pengembangan perangkat lunak. Meskipun tidak didasarkan pada ACL formal, ChatChain memfasilitasi pertukaran seperti protokol dengan menggunakan konvensi yang dioptimalkan LLM.
Komunikasi agen ChatDev bergantung pada:
Pembuatan templat prompt: Pada awal setiap fase, agen-agen yang berpartisipasi masing-masing menerima prompt yang terstruktur dengan peran, tugas saat ini, dan riwayat percakapan yang relevan. ChatDev menggunakan teknik prompting inception untuk menyematkan informasi ini langsung ke dalam prompt, membantu menjaga konsistensi dan keselarasan tujuan sepanjang interaksi.
Format pesan terstruktur: Agen berkomunikasi melalui pesan JSON terstruktur yang mengenkode output dan pembaruan konteks. Hal ini memungkinkan pertukaran data yang konsisten dan keterlacakan di seluruh alur kerja.
Pengondisian peran: Setiap agen diinisialisasi dengan prompt yang memperkuat peran yang ditugaskan, termasuk tanggung jawab, tujuan, dan harapan perilaku—strategi kunci dalam dehalusinasi komunikatif.
Bersama-sama, mekanisme ini membentuk kerangka kerja yang ringan dan dapat diskalakan yang memungkinkan ChatDev untuk secara kolaboratif menghasilkan perangkat lunak dari prompt. Ini menggambarkan bagaimana kolaborasi berbasis LLM terstruktur dapat mendorong alur kerja multiagen tradisional.
ChatChain adalah mekanisme komunikasi inti di ChatDev, mengatur urutan interaksi agen di seluruh alur kerja pengembangan perangkat lunak. Proses ini menyusun kolaborasi menjadi proses berulang yang berantai, terdiri dari fase-fase yang terpisah, masing-masing dengan tujuan spesifik dan pola komunikasi yang khas.
Selama setiap fase, ChatChain memulai dialog agen ganda antara dua agen dengan peran khusus (misalnya, CEO dan CTO, Programmer dan Reviewer). Yang satu biasanya bertindak sebagai instruktur, yang lain sebagai asisten. Pertukaran informasi yang terstruktur dan bertahap ini memperlancar pengambilan keputusan kolaboratif sambil tetap menjaga kejelasan dalam peran dan tanggung jawab yang telah ditetapkan dengan jelas. Prompt untuk setiap fase menyematkan instruksi tugas, identitas peran, dan konteks yang relevan untuk memandu interaksi.
Alur kerja keseluruhan ChatDev mengikuti model waterfall yang dimodifikasi, sebuah metodologi rekayasa perangkat lunak tradisional yang membagi tugas menjadi tiga fase berurutan: desain, pengodean, dan pengujian. Fase pengodean dan pengujian dibagi lagi menjadi subtugas untuk mencerminkan proses pengembangan berulang.
Secara default, ChatChain membagi alur kerja menjadi langkah-langkah otomatis yang diurutkan sebagai berikut:
Analisis permintaan: Menentukan struktur aplikasi dan komponen kunci.
Pemilihan bahasa pemrograman: Menentukan bahasa pemrograman yang akan digunakan untuk mengembangkan dan menjalankan perangkat lunak.
Pengodean: Agen menulis kode untuk membangun aplikasi.
CodeCompleteAll: Menyelesaikan kode termasuk fungsi atau class yang hilang.
CodeReview: Meninjau dan mengubah kode untuk fungsionalitas.
Uji Coba: Menjalankan perangkat lunak dan modifikasi kode berdasarkan laporan uji coba.
EnvironmentDoc: Mendokumentasikan lingkungan.
Manual: Mendokumentasikan dan menulis petunjuk untuk aplikasi.
Setiap fase ditentukan oleh objek konfigurasi yang menentukan atribut yang menentukan perilaku dan propertinya. Misalnya,
Untuk memandu komunikasi yang tepat antara agen, ChatDev menggunakan inception prompting sebagai strategi inisialisasi agen sebelum setiap putaran subtugas. Inception prompting adalah teknik rekayasa prompt yang dapat digunakan untuk menanamkan peran, tujuan, dan tanggung jawab untuk komunikasi agen yang efektif.
Mari kita lihat contoh bagaimana percepatan awal memandu dua agen untuk memulai, mempertahankan, dan menyimpulkan subtugas.
Sebelum setiap subtugas, setiap agen menerima prompt sebagai parameter yang mendefinisikan instruksi, karakteristik, tanggung jawab, dan tujuan spesifik untuk setiap peran. Dua contoh termasuk
Berikut adalah prompt peran sistem berdasarkan peran agen untuk instruktur dan asisten agen pada fase LanguageChoose:
Kedua petunjuk ini menginisialisasi perilaku agen yang diinginkan dengan menggambarkan peran, keahlian, dan tanggung jawab mereka. Strategi prompt juga memandu perilaku dan respons dari masing-masing peran selama interaksi dengan memberikan instruksi yang disesuaikan tentang cara menyelesaikan tugas yang diberikan.
Komunikasi antara agen dipandu secara efektif melalui prompt yang cermat untuk memastikan bahwa kedua pihak memiliki ekspektasi yang jelas dan dapat berkolaborasi dengan efektif.
Untuk mengatasi potensi halusinasi pengodean (pembuatan kode yang tidak lengkap atau salah) ChatDev menggunakan pola komunikasi yang disebut dehalusinasi komunikatif. Pola ini penting untuk menyusun percakapan selama proses peninjauan kode.
Proses ulasan kode melibatkan dua fase,
Dalam contoh ini, agen Code Review mendeteksi kesalahan dalam output agen Programmer dan memberitahukannya, bersama dengan saran untuk memperbaiki masalah dalam kode sumber. Agen Programmer kemudian mengoreksi output aslinya berdasarkan masukan itu.
Berikut adalah bagian dari output agen Code Review selama fase iterasi
Agen Programmer merespons dengan kode yang dikoreksi selama fase
Code Reviewer dan Programmer dapat terus menyempurnakan kode hingga 10 iterasi atau hingga kesepakatan tercapai setelah dua fase modifikasi berturut-turut yang identik.
Pola dehalusinasi dalam komunikasi membantu memastikan bahwa kode akhir akurat, lengkap, dan sesuai dengan persyaratan yang dimaksud melalui penyempurnaan berulang, sambil juga memfasilitasi penyelesaian subtugas secara efektif.
Dalam tutorial ini, kami menjelajahi bagaimana ChatDev mengaktifkan AI kolaboratif dengan menyimulasikan perusahaan perangkat lunak virtual yang terdiri dari agen AI berbasis peran. Menggunakan IBM watsonx.ai API sebagai backend model, ChatDev memandu agen melalui siklus hidup pengembangan perangkat lunak dengan menggunakan komunikasi terstruktur dalam bahasa alami dan pemrograman.
Meskipun ChatDev tidak menggunakan protokol komunikasi agen formal, ChatDev mencapai interoperabilitas agen melalui kemampuan alami LLM dengan teknik komunikasi agen seperti ChatChain, prompting inisiasi, dan dehalusinasi komunikatif. Hal ini menyoroti pentingnya mengoordinasikan komunikasi agen yang efektif untuk kolaborasi yang sukses dan meningkatkan output.
Dengan alat visualisasi bawaan untuk memantau dan memutar ulang interaksi agen, ChatDev menyediakan platform yang kuat untuk mempelajari alur kerja multiagen dan dinamika kerja tim yang didukung oleh LLM. Ini menunjukkan potensi dunia nyata dari AI kolaboratif dalam pembuatan perangkat lunak dan seterusnya.
Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.
Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.