Решение на основе Python, использующее мультиагентное мышление , в котором несколько агентов искусственного интеллекта взаимодействуют для создания оптимальных ответов на запросы пользователя. Моделируя взаимодействие между агентами и интегрируя Swarm Framework for Intelligence , система расширяет возможности рассуждения для предоставления точных и уточненных ответов. Пользовательских агентов можно добавлять через JSON, что позволяет настраивать их личности, стили взаимодействия и многое другое. Система использует кэширование подсказок для оптимизации производительности, сокращения задержек и затрат на повторение подсказок.
Сценарий многоагентного рассуждения создает интерактивный чат-бот, в котором несколько агентов ИИ взаимодействуют посредством структурированного процесса рассуждения для предоставления оптимальных ответов. Каждый агент привносит уникальные точки зрения и опыт, и посредством повторяющихся этапов обсуждения, проверки, критики и уточнения они сходятся к высококачественному и точному ответу.
Кроме того, система интегрирует Swarm Framework for Intelligence для улучшения сотрудничества между агентами. Swarm позволяет агентам эффективно координировать свои действия, используя коллективный интеллект для решения сложных задач.
Пользователи также могут общаться с отдельными агентами . Агенты знают друг друга, включая их личности и причуды, и могут отвечать на вопросы друг о друге, обеспечивая богатый и интерактивный опыт.
Клонируем репозиторий :
git clone https://github.com/AdieLaine/multi-agent-reasoning.git
Перейдите в каталог проекта :
cd multi-agent-reasoning
Установите необходимые пакеты :
pip install openai colorama tiktoken
Установить Рой:
pip install git+ssh://[email protected]/openai/swarm.git
or
pip install git+https://github.com/openai/swarm.git
Подробные инструкции по установке можно найти в репозитории Swarm на GitHub.
Установите ключ API OpenAI :
Установите свой ключ API в качестве переменной среды:
export OPENAI_API_KEY= ' your-api-key-here '
Альтернативно вы можете установить его непосредственно в своем скрипте или использовать файл .env
.
Запустите скрипт, используя Python:
python reasoning.py
После запуска скрипта вам будет представлено меню:
═════════════════════════════════════════════════════════════════════════════════════════════
║ Multi-Agent Reasoning Chatbot ║
═════════════════════════════════════════════════════════════════════════════════════════════
Please select an option:
1. Chat with an agent
2. Use reasoning logic
3. Use Swarm-based reasoning
4. Exit
Enter your choice (1/2/3/4):
Вариант 1. Поговорите с агентом
Вариант 2. Используйте логику рассуждений.
Вариант 3. Используйте рассуждения на основе Swarm
Вариант 4: Выход
Система Multi-Agent Reasoning использует определенные модели OpenAI:
o1-preview-2024-09-12
.gpt-4o
для взаимодействия в чате с агентами.gpt-4o
.Эти модели поддерживают расширенные функции и отчеты об использовании токенов, что позволяет системе предоставлять подробную информацию об использовании токенов после каждого ответа.
Цель : позволяет пользователю напрямую общаться с выбранным агентом.
Пример :
Суть функциональности чат-бота заключается в процессе рассуждения, используемом агентами. Этот процесс предназначен для моделирования среды сотрудничества, в которой агенты мыслят критически, проверяют факты, оспаривают точки зрения друг друга и уточняют свои ответы на основе конструктивной обратной связи.
Цель : агенты генерируют свои первоначальные ответы на запросы пользователя на основе своих индивидуальных рассуждений и знаний.
Пример :
Цель : Агенты проверяют точность и достоверность своих ответов, чтобы гарантировать фактическую правильность.
Пример :
Цель : агенты критикуют проверенные ответы друг друга, чтобы выявить области улучшения, упущения или предвзятости.
Пример :
Цель : агенты совершенствуют свои ответы, учитывая отзывы критиков и улучшая свои первоначальные рассуждения.
Пример :
Цель : объединить уточненные ответы всех агентов в единый, связный и исчерпывающий ответ.
blend_responses
.Пример :
Цель : учесть отзывы пользователей для дальнейшего уточнения ответа, обеспечивая удовлетворенность и точность.
MAX_REFINEMENT_ATTEMPTS
.Пример :
Цель : позволить диалогу сохранять контекст между несколькими пользовательскими запросами для связного диалога.
Пример :
Swarm Integration расширяет возможности системы многоагентного мышления, обеспечивая динамическую координацию агентов и делегирование задач. Swarm позволяет агентам эффективно сотрудничать, используя коллективный интеллект для решения сложных задач и повышения оперативности.
Swarm фокусируется на том, чтобы сделать координацию и исполнение агентов легкими, легко контролируемыми и легко тестируемыми. Это достигается с помощью двух примитивных абстракций: агентов и передачи обслуживания . Агент включает в себя инструкции и инструменты и может в любой момент передать разговор другому агенту.
Инициализация клиента Swarm : система инициализирует клиент Swarm для управления взаимодействием агентов.
from swarm import Agent , Swarm
client = Swarm ()
Инициализация агента :
agents.json
.Обработка разговора :
Цель : использовать Swarm Framework for Intelligence для динамической координации агентов, обеспечивая эффективное сотрудничество и делегирование задач.
Инициализация :
agents.json
.Обсуждение :
client.run()
.Проверка :
Критика :
Уточнение :
Смешивание ответов :
blend_responses
.Пример :
Цель : предоставить интерфейс чата, который использует возможности Swarm для беспрепятственного взаимодействия агентов.
Swarm-агент для чата :
Обработка разговора :
def swarm_chat_interface ( conversation_history ):
# Load Swarm agent's configuration
swarm_agent = ... # Initialize Swarm agent
messages = [{ "role" : "system" , "content" : swarm_agent . instructions }]
messages . extend ( conversation_history )
response = client . run ( agent = swarm_agent , messages = messages )
swarm_reply = response . messages [ - 1 ][ 'content' ]. strip ()
return swarm_reply
Динамические ответы :
Пример :
Дизайн агента :
Определения функций :
Контекстные переменные :
Обработка ошибок :
Тестирование :
Что такое Swarm и как он улучшает систему?
Нужно ли мне модифицировать существующие агенты для работы со Swarm?
Agent
. Существующие агенты могут быть адаптированы путем включения структуры и соглашений Swarm.Могу ли я добавить больше агентов в систему Swarm?
agents.json
и инициализировать их в системе.Как Swarm обрабатывает передачу агентов?
Совместим ли Swarm с моделями, используемыми в системе?
gpt-4o
. Кэширование подсказок повышает эффективность системы многоагентного рассуждения за счет сокращения задержек и затрат при обработке повторяющихся или длинных подсказок. Он работает путем кэширования самых длинных общих префиксов подсказок, что позволяет ускорить обработку последующих запросов, которые повторно используют эти префиксы.
Продолжительность кэша :
usage
, отображающее сведения об использовании токена. "usage" : {
"prompt_tokens" : 2006 ,
"completion_tokens" : 300 ,
"total_tokens" : 2306 ,
"prompt_tokens_details" : {
"cached_tokens" : 1920
},
"completion_tokens_details" : {
"reasoning_tokens" : 0
}
}
cached_tokens
указывает, сколько токенов подсказки было получено из кэша. Агенты настраиваются с помощью файла agents.json
, что позволяет легко настраивать их атрибуты.
Расположение : должен быть помещен в тот же каталог, что и сценарий reasoning.py
.
Структура :
{
"agents" : [
{
"name" : " Agent 47 " ,
"system_purpose" : " You are a logical and analytical assistant, focusing on facts and clear reasoning. " ,
"interaction_style" : { ... },
"ethical_conduct" : { ... },
"capabilities_limitations" : { ... },
"context_awareness" : { ... },
"adaptability_engagement" : { ... },
"responsiveness" : { ... },
"additional_tools_modules" : { ... },
"personality" : {
"logical" : " Yes " ,
"analytical" : " Yes " ,
"humor_style" : " ... " ,
"friendly_demeanor" : " ... " ,
"personality_traits" : [ " Methodical " , " Precise " ],
"empathy_level" : " Moderate " ,
"interaction_style_with_humor" : " Dry wit " ,
"quirks" : [ " Uses technical jargon " ]
}
},
{
"name" : " Agent 74 " ,
"system_purpose" : " You are a creative and empathetic assistant, emphasizing imaginative solutions and understanding. " ,
"interaction_style" : { ... },
"ethical_conduct" : { ... },
"capabilities_limitations" : { ... },
"context_awareness" : { ... },
"adaptability_engagement" : { ... },
"responsiveness" : { ... },
"additional_tools_modules" : { ... },
"personality" : {
"creative" : " Yes " ,
"empathetic" : " Yes " ,
"humor_style" : " ... " ,
"friendly_demeanor" : " ... " ,
"personality_traits" : [ " Imaginative " , " Caring " ],
"empathy_level" : " High " ,
"interaction_style_with_humor" : " Playful " ,
"quirks" : [ " Uses metaphors " ]
}
},
{
"name" : " Swarm Agent " ,
"system_purpose" : " You are a collaborative AI assistant composed of multiple expert agents. You coordinate tasks among agents to provide comprehensive and accurate responses. " ,
"interaction_style" : { ... },
"personality" : {
"coordinator" : " Yes " ,
"collaborative" : " Yes " ,
"personality_traits" : [ " Organized " , " Facilitator " ],
"quirks" : [ " Ensures all perspectives are considered " ]
}
}
]
}
Настройка :
Пример :
Код структурирован так, чтобы облегчить как процесс рассуждения, так и взаимодействие в чате с агентами. Он также включает Swarm Framework для улучшенной координации агентов.
Библиотеки :
os
, time
, logging
, json
: для системных операций, синхронизации, ведения журнала и обработки JSON.colorama
: для цветного вывода на консоль.swarm
: для реализации Swarm Intelligence.tiktoken
: для точного подсчета токенов (в других частях скрипта).Инициализация :
from swarm import Agent , Swarm
client = Swarm ()
Агенты инициализируются из файла конфигурации agents.json
.
Каждый агент создается как экземпляр Swarm Agent
с определенными инструкциями и атрибутами.
Агенты узнают друг о друге, добавляя к своим инструкциям информацию о других агентах.
def initialize_swarm_agents ():
# Load agents from agents.json and create Swarm agents
agents = []
# ... Load and initialize agents with awareness of others
return agents
Функция : swarm_chat_interface(conversation_history)
Назначение : обрабатывает взаимодействие в чате с агентом Swarm.
Процесс :
def swarm_chat_interface ( conversation_history ):
# Prepare messages
messages = [{ "role" : "system" , "content" : swarm_agent . instructions }]
messages . extend ( conversation_history )
# Run Swarm client
response = client . run ( agent = swarm_agent , messages = messages )
swarm_reply = response . messages [ - 1 ][ 'content' ]. strip ()
return swarm_reply
Функция : run_swarm_reasoning(user_prompt)
Цель : Использует агентов Swarm для совместной работы и ответа на запросы пользователя после нескольких этапов рассуждения.
Процесс :
blend_responses
объединяет уточненные ответы в окончательный ответ.Параллельная обработка : Swarm позволяет агентам выполнять эти шаги одновременно, повышая эффективность.
Пример функции смешивания :
def blend_responses ( agent_responses , user_prompt ):
# Prepare combined prompt
combined_prompt = ...
# Initialize Blender agent
blender_agent = Agent (
name = "Swarm Agent" ,
instructions = "You are a collaborative AI assistant composed of multiple expert agents."
)
# Run blending process
response = client . run ( agent = blender_agent , messages = [{ "role" : "user" , "content" : combined_prompt }])
blended_reply = response . messages [ - 1 ][ 'content' ]
return blended_reply
swarm_middle_agent_interface(user_prompt)
:run_swarm_reasoning
с приглашением пользователя.swarm_chat_interface(conversation_history)
:Ниже приведена обновленная блок-схема, отражающая новую логику, включая режим чата, осведомленность агентов друг о друге, прозрачность использования токенов, кэширование подсказок и интеграцию Swarm:
Вклады приветствуются! Чтобы внести свой вклад:
Этот проект лицензируется по лицензии MIT.
Чтобы подготовить репозиторий GitHub:
Создайте новый репозиторий на GitHub с именем multi-agent-reasoning
.
Добавьте файл README.md
с этим содержимым.
Включите сценарий reasoning.py
в корневой каталог.
Включите файл agents.json
в корневой каталог.
Создайте файл .gitignore
, чтобы исключить ненужные файлы:
# Exclude log files
reasoning.log
swarm_middle_agent.log
# Exclude environment files
.env
# Python cache
__pycache__ /
* .py [ cod ]
Зафиксируйте и отправьте файлы на GitHub.
multi-agent-reasoning/
├── README.md
├── reasoning.py
├── swarm_middle_agent.py
├── agents.json
├── LICENSE
├── .gitignore
└── img/
├── reasoningbanner.png
├── reasoningflow.png
├── agents.png
└── promptcache.png
└── swarm.png
Не стесняйтесь изучать код, настраивать агентов и взаимодействовать с чат-ботом Multi-Agent Reasoning!
Если у вас есть какие-либо вопросы или вам нужна помощь, откройте проблему на GitHub.