Peringatan
Agen JS adalah perpustakaan awal untuk menguji ide dan tidak dikembangkan secara aktif lagi. Lihat Modelfusi - perpustakaan AI yang lebih umum untuk TypeScript yang menggabungkan pembelajaran saya dari agen JS.
JS Agent adalah kerangka kerja yang dapat dikomposisi dan dapat diperluas untuk membuat agen AI dengan JavaScript dan TypeScript.
Meskipun membuat prototipe agen itu mudah, meningkatkan keandalan dan kekokohannya kompleks dan membutuhkan eksperimen yang cukup besar. Agen JS menyediakan blok bangunan yang kuat dan perkakas untuk membantu Anda mengembangkan agen-agen yang kuat lebih cepat.
Tutorial
Agen yang memiliki akses ke mesin pencari Wikipedia dan dapat membaca artikel Wikipedia. Anda dapat menggunakannya untuk menjawab pertanyaan tentang konten Wikipedia.
Fitur yang Digunakan: gpt-3.5-turbo
, Alat Kustom (Cari Wikipedia, Baca Artikel Wikipedia), Hasilkan Langkah Langkah Berikutnya, Pengontrol Max Step Run Controller
Agen pengembang otomatis yang bekerja dalam wadah Docker. Itu dapat membaca file, menulis file dan menjalankan perintah. Anda dapat menyesuaikannya untuk proyek Anda dan menggunakannya untuk mendokumentasikan kode, menulis tes, memperbarui tes dan fitur, dll.
Fitur yang Digunakan: gpt-4
, Eksekusi Alat di Docker Container, Agen Dengan Langkah-Langkah Setup Tetap, Multiple Agent Run Properties, Hasilkan Langkah Langkah Berikutnya, Alat (Baca File, Tulis File, Jalankan, Perintah, Tanyakan Pengguna), Perhitungan Biaya Setelah Run Agen Jalankan
Implementasi Agen JS dari Babyagi.
Fitur yang Digunakan: Server Agen HTTP, Model Penyelesaian Teks ( text-davinci-003
), Output Konsol yang Disesuaikan, Perbarui Loop Perencanaan Tugas
Mengambil PDF dan topik dan membuat utas Twitter dengan semua konten dari PDF yang relevan dengan topik tersebut.
Fitur yang Digunakan: Komposisi Fungsi (No Agent), Pemuatan PDF, Split-Extract-Rewrite
Membagi teks menjadi potongan -potongan dan menghasilkan embeddings.
Fitur yang Digunakan: Panggilan Fungsi Langsung (No Agent), Split Text (GPT3-Tokenizer), menghasilkan embeddings
text-davinci-003
dll.)gpt-4
, gpt-3.5-turbo
)text-embedding-ada-002
)Step
dan AgentRun
).npm install js-agent
Lihat contoh dan dokumentasi untuk mempelajari cara membuat agen.
import * as $ from "js-agent" ;
const openai = $ . provider . openai ;
export async function runWikipediaAgent ( {
wikipediaSearchKey ,
wikipediaSearchCx ,
openAiApiKey ,
task ,
} : {
openAiApiKey : string ;
wikipediaSearchKey : string ;
wikipediaSearchCx : string ;
task : string ;
} ) {
const searchWikipediaAction = $ . tool . programmableGoogleSearchEngineAction ( {
id : "search-wikipedia" ,
description :
"Search wikipedia using a search term. Returns a list of pages." ,
execute : $ . tool . executeProgrammableGoogleSearchEngineAction ( {
key : wikipediaSearchKey ,
cx : wikipediaSearchCx ,
} ) ,
} ) ;
const readWikipediaArticleAction = $ . tool . extractInformationFromWebpage ( {
id : "read-wikipedia-article" ,
description :
"Read a wikipedia article and summarize it considering the query." ,
inputExample : {
url : "https://en.wikipedia.org/wiki/Artificial_intelligence" ,
topic : "{query that you are answering}" ,
} ,
execute : $ . tool . executeExtractInformationFromWebpage ( {
extract : $ . text . extractRecursively . asExtractFunction ( {
split : $ . text . splitRecursivelyAtToken . asSplitFunction ( {
tokenizer : openai . tokenizer . forModel ( {
model : "gpt-3.5-turbo" ,
} ) ,
maxChunkSize : 2048 , // needs to fit into a gpt-3.5-turbo prompt and leave room for the answer
} ) ,
extract : $ . text . generateText . asFunction ( {
prompt : $ . prompt . extractChatPrompt ( ) ,
model : openai . chatModel ( {
apiKey : openAiApiKey ,
model : "gpt-3.5-turbo" ,
} ) ,
} ) ,
} ) ,
} ) ,
} ) ;
return $ . runAgent < { task : string } > ( {
properties : { task } ,
agent : $ . step . generateNextStepLoop ( {
actions : [ searchWikipediaAction , readWikipediaArticleAction ] ,
actionFormat : $ . action . format . flexibleJson ( ) ,
prompt : $ . prompt . concatChatPrompts (
async ( { runState : { task } } ) => [
{
role : "system" ,
content : `## ROLE
You are an knowledge worker that answers questions using Wikipedia content. You speak perfect JSON.
## CONSTRAINTS
All facts for your answer must be from Wikipedia articles that you have read.
## TASK
${ task } ` ,
} ,
] ,
$ . prompt . availableActionsChatPrompt ( ) ,
$ . prompt . recentStepsChatPrompt ( { maxSteps : 6 } )
) ,
model : openai . chatModel ( {
apiKey : openAiApiKey ,
model : "gpt-3.5-turbo" ,
} ) ,
} ) ,
controller : $ . agent . controller . maxSteps ( 20 ) ,
observer : $ . agent . observer . showRunInConsole ( { name : "Wikipedia Agent" } ) ,
} ) ;
}