
Alat kode rendah untuk membangun dan mengoordinasikan tim multi-agen dengan cepat

Peringatan
Proyek ini saat ini sedang dalam pengembangan berat. Perlu diketahui bahwa perubahan signifikan dapat terjadi.
Pernahkah Anda mendengar pepatah, 'Dua pikiran lebih baik dari satu'? Itu juga berlaku untuk agen. Suku memanfaatkan kerangka Langgraph untuk memungkinkan Anda menyesuaikan dan mengoordinasikan tim agen dengan mudah. Dengan membagi tugas -tugas sulit di antara agen -agen yang pandai dalam hal yang berbeda, masing -masing dapat fokus pada apa yang terbaik. Ini membuat pemecahan masalah lebih cepat dan lebih baik.
Dengan bekerja sama, agen dapat melakukan tugas yang lebih kompleks. Berikut adalah beberapa contoh dari apa yang dapat mereka lakukan bersama:
Dan banyak lagi!
Sebelum menggunakannya, pastikan Anda mengubah setidaknya nilai untuk:
SECRET_KEYFIRST_SUPERUSER_PASSWORDPOSTGRES_PASSWORDAnda dapat (dan harus) meneruskan ini sebagai variabel lingkungan dari rahasia.
Beberapa variabel lingkungan dalam file .env memiliki nilai default changethis .
Anda harus mengubahnya dengan kunci rahasia, untuk menghasilkan kunci rahasia Anda dapat menjalankan perintah berikut:
python -c " import secrets; print(secrets.token_urlsafe(32)) "Salin konten dan gunakan itu sebagai kunci kata sandi / rahasia. Dan jalankan lagi untuk menghasilkan kunci aman lainnya.
Bangun dan mulai dalam beberapa menit di mesin lokal Anda.
Menyebarkan suku di server jarak jauh Anda.
Dalam alur kerja berurutan, agen Anda diatur dalam urutan tertib dan menjalankan tugas satu demi satu. Setiap tugas dapat bergantung pada tugas sebelumnya. Ini berguna jika Anda ingin tugas diselesaikan satu demi satu dalam urutan deterministik.
Gunakan ini jika:
Dalam alur kerja hierarkis, agen Anda diatur ke dalam struktur seperti tim yang terdiri dari 'pemimpin tim', 'anggota tim' dan bahkan 'pemimpin sub-tim' lainnya. Pemimpin tim memecah tugas menjadi tugas yang lebih kecil dan mendelegasikannya kepada anggota timnya. Setelah anggota tim menyelesaikan tugas -tugas ini, tanggapan mereka akan diberikan kepada pemimpin tim yang kemudian memilih untuk mengembalikan tanggapan kepada pengguna atau mendelegasikan lebih banyak tugas.
Gunakan ini jika:
Keterampilan adalah kemampuan yang dapat Anda perlihatkan agen Anda untuk berinteraksi dengan dunia. Misalnya, Anda dapat memberikan keterampilan kepada agen Anda untuk memeriksa kondisi cuaca saat ini atau mencari berita terbaru Web. Secara default, Tribe memberikan tiga keterampilan:
Anda mungkin ingin membuat keterampilan khusus, yang dapat dilakukan dengan dua cara: dengan menggunakan definisi fungsi untuk permintaan HTTP sederhana atau dengan menulis keterampilan khusus dalam basis kode.
Jika keterampilan Anda melibatkan melakukan permintaan HTTP untuk mengambil atau memperbarui data, menggunakan definisi keterampilan adalah pendekatan paling sederhana. Dalam Tribe, mulailah dengan menavigasi ke tab 'Keterampilan' dan mengklik tombol 'Tambah Keterampilan'. Anda kemudian akan diminta untuk memberikan definisi keterampilan, yang menginstruksikan agen Anda tentang cara menjalankan keterampilan tertentu. Definisi ini harus disusun sebagai berikut:
{
"url" : " https://example.com " ,
"method" : " GET " ,
"headers" : {},
"type" : " function " ,
"function" : {
"name" : " Your skill name " ,
"description" : " Your skill description " ,
"parameters" : {
"type" : " object " ,
"properties" : {
"param1" : {
"type" : " integer " ,
"description" : " Description of the first parameter "
},
"param2" : {
"type" : " string " ,
"enum" : [ " option1 " ],
"description" : " Description of the second parameter "
}
},
"required" : [ " param1 " , " param2 " ]
}
}
}| Kunci | Keterangan |
|---|---|
url | URL titik akhir untuk panggilan API. |
method | Metode HTTP yang digunakan untuk permintaan tersebut. Itu bisa GET , POST , PUT , PATCH , atau DELETE . |
headers | Setiap header HTTP untuk dimasukkan dalam permintaan. |
function | Berisi detail tentang keterampilan: |
function > name | Nama keterampilan. Ikuti aturan-aturan ini: Hanya huruf (az, az), angka (0-9), garis bawah (_), dan tanda hubung (-) diizinkan; Harus panjang antara 1 dan 64 karakter. |
function > description | Menggambarkan keterampilan untuk memberi tahu agen tentang penggunaannya. |
function > parameters | Detail tentang parameter yang diterima API. |
properties > param | Nama kueri atau parameter tubuh. Untuk metode GET , ini akan menjadi parameter kueri. Untuk POST , PUT , PATCH , dan DELETE , itu akan berada di badan permintaan. |
param > type | Menentukan jenis parameter, yang dapat berupa string , number , integer , atau boolean . |
param > description | Memberikan konteks tentang tujuan parameter. |
param > enum | Secara opsional, sertakan array untuk membatasi agen untuk memilih dari nilai yang telah ditentukan. |
parameters > required | Daftar parameter yang diperlukan, memastikan mereka selalu termasuk dalam permintaan API. |
Untuk tugas yang lebih rumit yang melampaui permintaan HTTP sederhana, Langchain memungkinkan Anda untuk mengembangkan alat yang lebih maju. Anda dapat mengintegrasikan alat -alat ini ke dalam suku dengan menambahkannya ke Kamus managed_skills . Sebagai contoh praktis, lihat alat kalkulator demo. Untuk mempelajari cara membuat alat Langchain, silakan berkonsultasi dengan dokumentasi mereka.
Setelah membuat alat baru, restart aplikasi untuk memastikan alat dimuat dengan benar ke dalam database. Demikian juga, jika Anda perlu menghapus suatu alat, cukup hapus dari kamus managed_skills dan restart aplikasi untuk memastikannya dihapus dari database. Perhatikan bahwa alat yang dibuat dengan cara ini tersedia untuk semua pengguna di aplikasi Anda.
Rag adalah teknik untuk menambah pengetahuan agen Anda dengan data tambahan. Agen dapat beralasan tentang berbagai topik, tetapi pengetahuan mereka terbatas pada data publik hingga saat mereka dilatih. Jika Anda ingin agen Anda beralasan tentang data pribadi, Tribe memungkinkan Anda untuk mengunggah data dan memilih data mana yang akan dimasukkan dalam basis pengetahuan agen Anda. Ini memungkinkan agen Anda untuk beralasan dengan data yang dipilih dan memungkinkan Anda untuk membuat agen yang berbeda dengan pengetahuan khusus.
Secara default, Tribe menggunakan BAAI/bge-small-en-v1.5 , yang merupakan model embedding bahasa Inggris yang ringan dan cepat yang lebih baik daripada OpenAI Ada-002 . Jika dokumen Anda multibahasa atau memerlukan embedding gambar, Anda mungkin ingin menggunakan model embedding lain. Anda dapat dengan mudah melakukan ini dengan mengubah DENSE_EMBEDDING_MODEL di file .env Anda:
# See the list of supported models: https://qdrant.github.io/fastembed/examples/Supported_Models/
DENSE_EMBEDDING_MODEL=BAAI/bge-small-en-v1.5 # Change this Peringatan
Jika model penyematan Anda yang ada dan baru memiliki dimensi vektor yang berbeda, Anda mungkin perlu membuat ulang koleksi Qdrant Anda. Anda dapat menghapus koleksi melalui dasbor Qdrant di http: //qdrant.localhost/dashboard. Oleh karena itu, lebih baik merencanakan model penyematan mana yang paling cocok untuk alur kerja Anda.
Model open source menjadi lebih murah dan lebih mudah dijalankan, dan beberapa bahkan cocok dengan kinerja model tertutup. Anda mungkin lebih suka menggunakannya untuk privasi dan manfaat biaya mereka. Jika Anda menjalankan suku secara lokal dan ingin menggunakan model open source, saya akan merekomendasikan Ollama untuk kemudahan penggunaannya.
ollama .llama3.1:8b ) ke dalam bidang input model.http://host.docker.internal:11434 , yang memetakan ke https://localhost:11434 . Pengaturan ini memungkinkan suku untuk berkomunikasi dengan host Ollama default. Jika pengaturan Anda menggunakan host yang berbeda, tentukan host baru di bidang input 'Base URL'. Ada ratusan model open source di perpustakaan Ollama yang cocok untuk tugas yang berbeda. Inilah cara memilih yang tepat untuk kasus penggunaan Anda:
Llama3.1 , Mistral Nemo , Firefunction V2 , atau Command-R + dan lainnya yang mendukung panggilan alat.gemma2 atau phi3 . Jika Anda tidak berencana untuk menggunakan Ollama, Anda masih dapat menjalankan model open source yang kompatibel dengan API OpenAI CHAT CHART CHAT.
Tangga:
Masuk ke suku menggunakan email dan kata sandi yang Anda atur selama langkah instalasi.

Arahkan ke halaman 'tim' dan klik 'Tambah Tim'. Masukkan nama untuk tim Anda dan klik 'Simpan'.

Buat dua anggota tim tambahan dengan menyeret pegangan simpul pemimpin tim.

Perbarui anggota tim pertama seperti yang ditunjukkan.

Perbarui anggota tim kedua seperti yang ditunjukkan.

Buka tab 'Obrolan' dan kirim pertanyaan ke tim Anda untuk melihat bagaimana mereka merespons.

Selamat! Anda telah berhasil membangun dan berkomunikasi dengan tim multi-agen pertama Anda di Tribe.
Anggota tim Anda dapat berbuat lebih banyak dengan menyediakannya dengan serangkaian keterampilan. Tambahkan keterampilan ke foodie Anda.

Sekarang, ketika Anda mengajukan pertanyaan kepada pecinta kuliner, itu akan mencari informasi lebih lanjut tentang web!

Buat tim baru dan pilih alur kerja 'berurutan'.

Seret dan lepas untuk membuat anggota tim lain di bawah ini 'Worker0'.

Perbarui anggota tim pertama seperti yang ditunjukkan. Berikan keterampilan 'Wikipedia' kepada anggota tim ini.

Perbarui anggota tim kedua seperti yang ditunjukkan.

Buka tab 'Obrolan' dan kirim pertanyaan ke tim Anda untuk melihat bagaimana mereka merespons. Perhatikan bahwa peneliti akan menggunakan Wikipedia untuk melakukan penelitiannya. Sangat keren!

Anda dapat meminta anggota tim Anda untuk menunggu persetujuan Anda sebelum melaksanakan keterampilan mereka. Tambahkan keterampilan 'DuckDuckgo-Search' dan pilih 'memerlukan persetujuan' pada peneliti.

Sekarang, sebelum peneliti menjalankan keterampilannya, ia akan meminta persetujuan Anda. Jika pencarian peneliti bukanlah yang Anda inginkan, tolak tindakannya dan sertakan pesan opsional untuk memberikan arahan.

Setelah peneliti menyesuaikan pencarian untuk memenuhi kebutuhan Anda, Anda dapat menyetujui tindakan tersebut. 
Peneliti kemudian akan melanjutkan untuk melaksanakan keterampilannya sesuai petunjuk. 
Suku adalah kontribusi bersumber terbuka dan selamat datang dari komunitas! Lihat panduan kontribusi kami untuk memulai.
Beberapa cara untuk berkontribusi:
Periksa rilis file-notes.md.
Suku dilisensikan berdasarkan ketentuan lisensi MIT.