
Низкий код инструмент для быстрого построения и координации многоагентных команд

Предупреждение
Этот проект в настоящее время находится под тяжелым разработкой. Имейте в виду, что могут произойти значительные изменения.
Вы слышали поговорку: «Два ума лучше, чем один»? Это верно и для агентов. Племя используется на рамках Langgraph, чтобы вы легко настраивали и координировали команды агентов. Разделяя жесткие задачи среди агентов, которые хороши в разных вещах, каждый из них может сосредоточиться на том, что он делает лучше всего. Это делает решения проблем быстрее и лучше.
Совместившись, агенты могут выполнять более сложные задачи. Вот несколько примеров того, что они могут сделать вместе:
И еще много!
Прежде чем развернуть его, убедитесь, что вы измените хотя бы значения:
SECRET_KEYFIRST_SUPERUSER_PASSWORDPOSTGRES_PASSWORDВы можете (и должны) передать их в качестве переменных среды из секретов.
Некоторые переменные среды в файле .env имеют значение changethis по умолчанию.
Вы должны изменить их с помощью секретного ключа, чтобы генерировать секретные ключи, вы можете запустить следующую команду:
python -c " import secrets; print(secrets.token_urlsafe(32)) "Скопируйте контент и используйте его как пароль / секретный ключ. И запустите это снова, чтобы сгенерировать еще один безопасный ключ.
Вставай и начал через несколько минут на местной машине.
Развернуть племя на вашем удаленном сервере.
В последовательном рабочем процессе ваши агенты расположены в упорядоченной последовательности и выполняют задачи один за другим. Каждая задача может зависеть от предыдущей задачи. Это полезно, если вы хотите, чтобы задачи были выполнены один за другим в детерминированной последовательности.
Используйте это, если:
В иерархическом рабочем процессе ваши агенты организованы в командную структуру, состоящую из «лидера команды», «членов команды» и даже других «лидеров под команды». Руководитель команды разбивает задачу на более мелкие задачи и делегирует их членам своей команды. После того, как члены команды выполняют эти задачи, их ответы будут переданы руководителю команды, который затем решит вернуть ответ пользователю или делегировать больше задач.
Используйте это, если:
Навыки - это способности, которые вы можете оснастить своим агентам для взаимодействия с миром. Например, вы можете предоставить своему агенту навык, чтобы проверить текущие погодные условия или искать в Интернете последние новости. По умолчанию племя дает три навыка:
Скорее всего, вы захотите создать пользовательские навыки, которые можно сделать двумя способами: с помощью определений функций для простых HTTP -запросов или написания пользовательских навыков в кодовой базе.
Если ваш навык включает в себя выполнение HTTP -запроса для получения или обновления данных, использование определений навыков является самым простым подходом. В племени начните с перемещения на вкладку «Навыки» и нажав кнопку «Добавить навык». Затем вам будет предложено предоставить определение навыков, которое обучает вашему агенту, как выполнить конкретный навык. Это определение должно быть структурировано следующим образом:
{
"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 " ]
}
}
}| Ключ | Описание |
|---|---|
url | URL конечной точки для вызова API. |
method | Метод HTTP, используемый для запроса. Это можно GET , POST , PUT , PATCH или DELETE . |
headers | Любые заголовки HTTP, чтобы включить в запрос. |
function | Содержит подробную информацию о навыке: |
function > name | Название навыка. Следуйте этим правилам: только буквы (AZ, AZ), цифры (0-9), подчеркивание (_) и дефиса (--) допускаются; Должно быть от 1 до 64 символов. |
function > description | Описывает навык, чтобы сообщить агенту о его использовании. |
function > parameters | Подробная информация о параметрах, которые принимает API. |
properties > param | Название запроса или параметра тела. Для GET методов это будет параметр запроса. Для POST , PUT , PATCH и DELETE , он будет в теле запроса. |
param > type | Определяет тип параметра, который может быть string , number , integer или boolean . |
param > description | Предоставляет контекст о цели параметра. |
param > enum | Необязательно, включите массив, чтобы ограничить агент выбирать из предопределенных значений. |
parameters > required | Перечисляет необходимые параметры, гарантируя, что они всегда включены в запрос API. |
Для более сложных задач, которые выходят за рамки простых HTTP -запросов, Langchain позволяет разработать более продвинутые инструменты. Вы можете интегрировать эти инструменты в племя, добавив их в словарь managed_skills . Для практического примера обратитесь к инструменту демонстрационного калькулятора. Чтобы узнать, как создать инструмент Langchain, пожалуйста, проконсультируйтесь с их документацией.
После создания нового инструмента перезапустите приложение, чтобы убедиться, что инструмент правильно загружен в базу данных. Аналогичным образом, если вам нужно удалить инструмент, просто удалите его из словаря managed_skills и перезапустите приложение, чтобы убедиться, что оно удаляется из базы данных. Обратите внимание, что инструменты, созданные таким образом, доступны всем пользователям в вашем приложении.
RAG - это метод для увеличения знаний ваших агентов дополнительными данными. Агенты могут рассуждать о широком спектре тем, но их знания ограничены публичными данными до такой степени, что они обучались. Если вы хотите, чтобы ваши агенты рассуждали о частных данных, Tribe позволяет загружать ваши данные и выбирать, какие данные включают в базу знаний вашего агента. Это позволяет вашим агентам рассуждать с выбранными данными и позволяет создавать различные агенты со специализированными знаниями.
По умолчанию Tribe использует BAAI/bge-small-en-v1.5 , которая представляет собой легкую и быстрое английское встроение модели, которая лучше, чем OpenAI Ada-002 . Если ваши документы являются многоязычным или требуют встраивания изображений, вы можете использовать другую модель встраивания. Вы можете легко сделать это, изменив DENSE_EMBEDDING_MODEL в вашем файле .env :
# 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 Предупреждение
Если ваши существующие и новые модели встраивания имеют разные векторные измерения, вам может потребоваться воссоздать вашу коллекцию Qdrant. Вы можете удалить коллекцию через приборную панель Qdrant по адресу http: //qdrant.localhost/dashboard. Следовательно, лучше планировать заранее, какая модель встраивания наиболее подходит для ваших рабочих процессов.
Модели с открытым исходным кодом становятся дешевле и проще в запуске, а некоторые даже соответствуют производительности закрытых моделей. Вы можете предпочесть использовать их для их конфиденциальности и выгод затрат. Если вы управляете племенем на местном уровне и хотите использовать модели с открытым исходным кодом, я бы порекомендовал Ollama для его простоты использования.
ollama .llama3.1:8b ) в поле ввода модели.http://host.docker.internal:11434 , который отображает на https://localhost:11434 . Эта настройка позволяет племени общаться с хостом Ollama по умолчанию. Если в вашей настройке используется другой хост, укажите новый хост в поле «Базовый URL». В библиотеке Олламы есть сотни моделей с открытым исходным кодом, подходящие для различных задач. Вот как выбрать правильный для вашего варианта использования:
Llama3.1 , Mistral Nemo , Firefunction V2 или Command-R + и другие, которые поддерживают вызов инструмента.gemma2 или phi3 . Если вы не планируете использовать Ollama, вы все равно можете запускать модели с открытым исходным кодом, совместимые с API API Openai Chat Completions.
Шаги:
Войдите в племя, используя электронную почту и пароль, который вы устанавливаете на шаге установки.

Перейдите на страницу «Команды» и нажмите «Добавить команду». Введите имя для своей команды и нажмите «Сохранить».

Создайте двух дополнительных членов команды, перетаскивая ручку узла лидера команды.

Обновите первый член команды, как показано.

Обновите второго члена команды, как показано.

Зайдите на вкладку «Чат» и отправьте вопрос своей команде, чтобы увидеть, как они отвечают.

Поздравляю! Вы успешно построили и общались со своей первой многоагентной командой на племени.
Член вашей команды может сделать больше, предоставляя его набором навыков. Добавьте навык своему гурману.

Теперь, когда вы задаете вашему гурману вопрос, он будет искать в Интернете более актуальную информацию!

Создайте новую команду и выберите «Последовательный» рабочий процесс.

Перетащите, чтобы создать другого члена команды ниже «Работник».

Обновите первый член команды, как показано. Предоставьте навык «Википедии» этому члену команды.

Обновите второго члена команды, как показано.

Зайдите на вкладку «Чат» и отправьте вопрос своей команде, чтобы увидеть, как они отвечают. Обратите внимание, что исследователь будет использовать Википедию для проведения своих исследований. Очень круто!

Вы можете потребовать, чтобы члены вашей команды ждали вашего одобрения, прежде чем выполнять их навыки. Добавьте навык «DuckDuckgo-Search» и выберите «Требовать одобрения» в исследователе.

Теперь, прежде чем исследователь выполнит свои навыки, он попросит вашего одобрения. Если поиск исследователя не то, что вы хотели, отклоните действие и включите дополнительное сообщение для предоставления направления.

Как только исследователь корректирует поиск в соответствии с вашими требованиями, вы можете одобрить действие. 
Затем исследователь приступит к выполнению своих навыков в соответствии с указаниями. 
Племя является открытым и приветственным вкладом сообщества! Проверьте наше руководство по взносу, чтобы начать.
Некоторые способы внести свой вклад:
Проверьте релиз файла notes.md.
Племя лицензируется в соответствии с условиями лицензии MIT.