В информатике программный агент — это компьютерная программа, которая действует для пользователя или другой программы в рамках агентских отношений.
Термин агент происходит от латинского agere (делать): соглашение действовать от чьего-либо имени. Такое «действие от имени» подразумевает полномочия решать , какое действие, если таковое имеется, является уместным. [1] [2] Некоторые агенты в разговорной речи известны как боты , от robot . Они могут быть воплощены, как когда выполнение сопряжено с телом робота, или как программное обеспечение, такое как чат-бот, работающий на компьютере , таком как мобильное устройство , например, Siri . Программные агенты могут быть автономными или работать вместе с другими агентами или людьми. Программные агенты, взаимодействующие с людьми (например, чат-боты , среды взаимодействия человека и робота ), могут обладать человеческими качествами, такими как понимание естественного языка и речи, личность или воплощать гуманоидную форму (см. Asimo ).
Связанные и производные концепции включают интеллектуальных агентов (в частности, демонстрирующих некоторые аспекты искусственного интеллекта , такие как рассуждение ), автономных агентов (способных изменять методы достижения своих целей), распределенных агентов (выполняемых на физически отдельных компьютерах), многоагентных систем (распределенных агентов, которые работают вместе для достижения цели, которая не может быть достигнута одним агентом, действующим в одиночку) и мобильных агентов (агентов, которые могут перемещать свое выполнение на разные процессоры).
Основными атрибутами автономного программного агента являются следующие:
Концепция агента обеспечивает удобный и мощный способ описания сложной программной сущности, которая способна действовать с определенной степенью автономии для выполнения задач от имени своего хоста. Но в отличие от объектов, которые определяются в терминах методов и атрибутов , агент определяется в терминах своего поведения. [3]
Различные авторы предлагали различные определения агентов, обычно они включают такие понятия, как:
Все агенты являются программами, но не все программы являются агентами. Противопоставление термина связанным с ним концепциям может помочь прояснить его значение. Франклин и Грэссер (1997) [4] обсуждают четыре ключевых понятия, которые отличают агентов от произвольных программ: реакция на окружающую среду, автономность, целеустремленность и настойчивость .
Программные агенты могут предлагать различные преимущества своим конечным пользователям за счет автоматизации сложных или повторяющихся задач. [6] Однако существуют организационные и культурные последствия этой технологии, которые необходимо учитывать перед внедрением программных агентов.
Людям нравится выполнять легкие задачи, обеспечивая ощущение успеха, если только повторение простых задач не влияет на общий результат. В целом, внедрение программных агентов для выполнения административных требований обеспечивает существенное увеличение удовлетворенности работой, поскольку администрирование собственной работы никогда не доставляет удовольствия работнику. Освобожденные усилия служат для более высокой степени вовлеченности в существенные задачи индивидуальной работы. Следовательно, программные агенты могут обеспечить основы для реализации самоконтролируемой работы, освобожденной от иерархического контроля и вмешательства. [7] Такие условия могут быть обеспечены путем применения программных агентов для требуемой формальной поддержки.
Культурные эффекты внедрения программных агентов включают в себя подрыв доверия, эрозию навыков, ухудшение конфиденциальности и социальную отчужденность. Некоторые пользователи могут чувствовать себя не совсем комфортно, полностью делегируя важные задачи программным приложениям. Те, кто начинает полагаться исключительно на интеллектуальных агентов, могут потерять важные навыки, например, связанные с информационной грамотностью. Чтобы действовать от имени пользователя, программному агенту необходимо иметь полное представление о профиле пользователя, включая его/ее личные предпочтения. Это, в свою очередь, может привести к непредсказуемым проблемам конфиденциальности. Когда пользователи начинают больше полагаться на своих программных агентов, особенно для коммуникационной деятельности, они могут потерять контакт с другими пользователями-людьми и смотреть на мир глазами своих агентов. Эти последствия - то, что исследователи агентов и пользователи должны учитывать при работе с технологиями интеллектуальных агентов. [8]
Концепция агента восходит к модели актора Хьюитта (Hewitt, 1977) — «самостоятельный, интерактивный и одновременно исполняющий объект, обладающий внутренним состоянием и способностью к коммуникации». [ необходима цитата ]
Если говорить более академично, то системы программных агентов являются прямой эволюцией многоагентных систем (MAS). MAS произошли от распределенного искусственного интеллекта (DAI), распределенного решения проблем (DPS) и параллельного ИИ (PAI), таким образом унаследовав все характеристики (хорошие и плохие) от DAI и ИИ .
Видеоролик Джона Скалли 1987 года " Knowledge Navigator " рисовал образ взаимоотношений между конечными пользователями и агентами. Будучи идеальным первым, эта область пережила ряд неудачных нисходящих реализаций вместо пошагового, восходящего подхода. Диапазон типов агентов теперь (с 1990 года) широк: WWW, поисковые системы и т. д.
Агенты-покупатели [9] путешествуют по сети (например, по Интернету), собирая информацию о товарах и услугах. Эти агенты, также известные как «шопинг-боты», работают очень эффективно для таких товаров, как компакт-диски, книги, электронные компоненты и другие универсальные продукты. Агенты-покупатели обычно оптимизированы для предоставления услуг цифровых платежей, используемых в электронной коммерции и традиционном бизнесе. [10]
Пользовательские агенты, или персональные агенты, — это интеллектуальные агенты, которые выполняют действия от вашего имени. К этой категории относятся те интеллектуальные агенты, которые уже выполняют или вскоре выполнят следующие задачи:
Агенты мониторинга и наблюдения используются для наблюдения и составления отчетов об оборудовании, обычно компьютерных системах. Агенты могут отслеживать уровни запасов компании, наблюдать за ценами конкурентов и передавать их обратно в компанию, следить за манипуляциями акциями посредством инсайдерской торговли и слухов и т. д.
Например, в Лаборатории реактивного движения NASA есть агент, который следит за инвентарем, планированием, составляет графики заказов оборудования для снижения затрат и управляет хранилищами продуктов питания. Эти агенты обычно следят за сложными компьютерными сетями, которые могут отслеживать конфигурацию каждого компьютера, подключенного к сети.
Особый случай агентов мониторинга и наблюдения — это организации агентов, используемые для имитации процесса принятия решений человеком во время тактических операций. Агенты отслеживают состояние активов (боеприпасов, доступного оружия, платформ для транспортировки и т. д.) и получают цели (миссии) от агентов более высокого уровня. Затем агенты преследуют цели с имеющимися активами, минимизируя расходы активов и максимизируя достижение целей. (См. Popplewell, "Agents and Applicability")
Этот агент использует информационные технологии для поиска тенденций и закономерностей в изобилии информации из множества различных источников. Пользователь может сортировать эту информацию, чтобы найти любую информацию, которую он ищет.
Агент по добыче данных работает в хранилище данных, находя информацию. «Хранилище данных» объединяет информацию из множества различных источников. «Добыча данных» — это процесс просмотра хранилища данных с целью поиска информации, которую можно использовать для принятия мер, например, для увеличения продаж или удержания клиентов, которые рассматривают возможность ухода.
«Классификация» — один из наиболее распространенных типов интеллектуального анализа данных, который находит закономерности в информации и классифицирует их по разным классам. Агенты интеллектуального анализа данных также могут обнаруживать существенные изменения в тенденциях или ключевом индикаторе и могут обнаруживать наличие новой информации и оповещать вас об этом. Например, агент может обнаружить спад в строительной отрасли для экономики; на основе этой переданной информации строительные компании смогут принимать разумные решения относительно найма/увольнения сотрудников или покупки/аренды оборудования, чтобы наилучшим образом удовлетворить свои потребности.
Другие примеры современных интеллектуальных агентов включают некоторые спам -фильтры, игровые боты и инструменты мониторинга серверов. Поисковые индексирующие боты также считаются интеллектуальными агентами.
Программные боты становятся важными в разработке программного обеспечения. [12]
Агенты также используются в приложениях безопасности программного обеспечения для перехвата, проверки и воздействия на различные типы контента. Примеры включают:
При разработке систем на основе агентов следует учитывать следующие вопросы:
Для эффективной совместной работы программных агентов они должны делиться семантикой своих элементов данных. Это можно сделать, если компьютерные системы будут публиковать свои метаданные .
К определению обработки агента можно подойти с двух взаимосвязанных направлений:
Агентные системы используются для моделирования реальных систем с параллельной обработкой.
Агент использует свои методы доступа для выхода в локальные и удаленные базы данных для поиска контента. Эти методы доступа могут включать настройку доставки новостного потока агенту или извлечение с досок объявлений или использование паука для обхода Интернета. Контент, который извлекается таким образом, вероятно, уже частично отфильтрован — выбором новостной ленты или баз данных, в которых выполняется поиск. Затем агент может использовать свой подробный поисковый или языковой механизм обработки для извлечения ключевых слов или подписей из тела контента, который был получен или извлечен. Этот абстрагированный контент (или событие) затем передается в механизм рассуждения или вывода агента для того, чтобы решить, что делать с новым контентом. Этот процесс объединяет контент события с контентом на основе правил или знаний, предоставленным пользователем. Если этот процесс находит хорошее совпадение или соответствие в новом контенте, агент может использовать другую часть своего механизма для более подробного поиска контента. Наконец, агент может решить предпринять действие на основе нового контента; например, уведомить пользователя о том, что произошло важное событие. Это действие проверяется функцией безопасности, а затем ему предоставляются полномочия пользователя. Агент использует метод доступа пользователя, чтобы доставить это сообщение пользователю. Если пользователь подтверждает, что событие важно, быстро реагируя на уведомление, агент может также использовать свой механизм обучения, чтобы увеличить свой вес для такого рода событий.
Боты могут действовать от имени своих создателей, чтобы делать как добро, так и зло. Есть несколько способов, с помощью которых можно создать ботов, чтобы продемонстрировать, что они созданы с лучшими намерениями и не созданы для причинения вреда. Сначала это делается путем идентификации ботом себя в HTTP-заголовке user-agent при общении с сайтом. Исходный IP-адрес также должен быть проверен, чтобы подтвердить свою легитимность. Затем бот также должен всегда уважать файл robots.txt сайта, поскольку он стал стандартом в большинстве веб-сайтов. И подобно уважению к файлу robots.txt, боты должны избегать излишней агрессивности и уважать любые инструкции по задержке сканирования. [14]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )