Warnung
JS Agent war eine frühe Bibliothek, um Ideen zu testen, und ist nicht mehr aktiv entwickelt. Schauen Sie sich Modelfusion an - eine allgemeinere KI -Bibliothek für Typscript, die meine Erkenntnisse vom JS -Agenten enthält.
JS Agent ist ein komponierbarer und erweiterbarer Framework zum Erstellen von AI -Agenten mit JavaScript und TypeScript.
Während es einfach ist, einen Agentenprototyp zu erstellen, ist die Erhöhung seiner Zuverlässigkeit und Robustheit komplex und erfordert erhebliche Experimente. JS Agent bietet robuste Bausteine und Werkzeuge, mit denen Sie felsige Agenten schneller entwickeln können.
Tutorial
Ein Agent, der Zugriff auf eine Wikipedia -Suchmaschine hat und Wikipedia -Artikel lesen kann. Sie können es verwenden, um Fragen zu Wikipedia -Inhalten zu beantworten.
Gebrauchte Funktionen: gpt-3.5-turbo
, benutzerdefinierte Tools (Such-Wikipedia, Lesen Sie Wikipedia-Artikel), generieren Sie nächste Stufenschleife, maxe Schritte aus.
Ein automatisierter Entwickleragent, der in einem Docker -Container arbeitet. Es kann Dateien lesen, Dateien schreiben und Befehle ausführen. Sie können es für Ihr Projekt anpassen und es verwenden, um Code zu dokumentieren, Tests zu schreiben, Tests und Funktionen usw. zu aktualisieren.
Gebrauchte Funktionen: gpt-4
, Toolausführung im Docker-Container, Agent mit festen Setup-Schritten, Multiple Agent-Auslaufeigenschaften, generieren Nächste Schrittschleife, Tools (Lesen Sie Datei
JS -Agent -Implementierung von Babyagi.
Verwendete Funktionen: HTTP-Agentenserver, Textvervollständigungsmodell ( text-davinci-003
), Customized Console Output, Update Tasks Planning Loop
Nimmt ein PDF und ein Thema und erstellt einen Twitter -Thread mit allen Inhalten aus dem PDF, der für das Thema relevant ist.
Verwendete Merkmale: Funktionszusammensetzung (kein Agent), PDF-Belastung, Split-Extract-Wrewrite
Teilt einen Text in Stücke und erzeugt Einbettungen.
Verwendete Merkmale: Direkte Funktionsaufrufe (kein Agent), geteilter Text (GPT3-Tokenizer), Erzeugen Sie Einbettungen
text-davinci-003
usw.)gpt-4
, gpt-3.5-turbo
)text-embedding-ada-002
)Step
und AgentRun
).npm install js-agent
Sehen Sie sich die Beispiele und Dokumentation an, um zu erfahren, wie Sie einen Agenten erstellen.
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" } ) ,
} ) ;
}