Предупреждение
JS -агент был ранней библиотекой, чтобы проверить идеи и больше не развивается. Проверьте Modelfusion - более общая библиотека AI для TypeScript, которая включает мои знания от агента JS.
JS Agent - это композиционная и расширяемая структура для создания агентов ИИ с JavaScript и TypeScript.
Хотя создание прототипа агента легко, повышение его надежности и надежности является сложным и требует значительных экспериментов. JS Agagt предоставляет надежные строительные блоки и инструменты, чтобы помочь вам быстрее разрабатывать каменные агенты.
Учебник
Агент, который имеет доступ к поисковой системе Википедии и может прочитать статьи в Википедии. Вы можете использовать его, чтобы ответить на вопросы о контенте Википедии.
Используемые функции: gpt-3.5-turbo
, пользовательские инструменты (Поиск в Википедии, прочтение статьи в Википедии), генерировать следующую петлю шага, MAX STEPS Run Controller
Автоматизированный агент разработчика, который работает в контейнере Docker. Он может читать файлы, записывать файлы и выполнять команды. Вы можете настроить его для своего проекта и использовать его для документации, тесты на записи, обновления тестов и функций и т. Д.
Используемые функции: gpt-4
, выполнение инструментов в контейнере Docker, агент с фиксированными шагами настройки, несколько свойств запуска агента, генерируйте следующее цикл шага, инструменты (файл чтения, файл записи, запуск, команда, запрос пользователя), расчет затрат после запуска агента.
JS Агент Реализация Babyagi.
Используемые функции: HTTP-сервер, модель завершения текста ( text-davinci-003
), индивидуальный консольный вывод, цикл планирования обновлений
Берет PDF и тему и создает ветку Twitter со всем контентом из PDF, который имеет отношение к теме.
Используются функции: композиция функции (без агента), загрузка PDF, разделитель-экстракт-бурит
Разбивает текст в куски и генерирует встраиваемые.
Используемые функции: прямые вызовы функций (без агента), раздельный текст (GPT3-Tokenizer), генерируйте встраивание
text-davinci-003
и т. Д.)gpt-4
, gpt-3.5-turbo
)text-embedding-ada-002
)Step
и AgentRun
).npm install js-agent
Смотрите примеры и документацию, чтобы узнать, как создать агента.
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" } ) ,
} ) ;
}