A Benevolent and Trustworthy Agent Architecture

Abstract

The Policy Enabled Next geNeration Internet (PENNI) project aims to lay the technical foundations for a policy, trust, and transparency enabled decentralised Next Generation Internet (NGI) that can support intelligent agents that act on behalf of humans.

Our hypothesis being that decentralized applications that are able to understand constraints (in the form of goals, preferences, norms, and usage restrictions) together with trust and transparency mechanisms (in the form of usage control and fact checking) will give citizens more control over how their data is utilised and will foster trustworthiness in NGI applications, such as intelligent agents.

In this document, we propose a benevolent and trustworthy agent architecture where trust and transparency are first class citizens and demonstrate its effectivess with the help of a motivating use case scenario.

We sincerely thank Karen Sollins for her feedback on the initial draft of this document.

Introduction

This document describes a benevolent and trustworthy agent architecture that serves as a blueprint for developing well meaning and dependable intelligent software web agents.

We start by describing the various components that emcompass the proposed benevolent and trustworthy agent architecture. Following on from this we discuss the cross-cutting role of policies, transparency, and compliance checking. We subsequently discuss how requests are handled by the proposed architecture. Finally we demonstrate the effectivess of the proposed architecture by revisiting the original intelligent software web agent motivating scenario with a particular focus on underlining the need for benevolent and trustworthy agents and how this is reflected in the proposed architecture.

Aims of the Specification

The overarching aim is to descibe the proposed benevolent and trustworthy agent architecture in detail and to demonstrate how it can be used to support various intelligent software web agents tasks. Although policies, transparency, and compliance checking are paramount from a benevolence and trust perspective, these functions cannot be discussed in isolation and thus it is necessary to describe how these functions fit with core agent architecture components.

The examples throughout the document are serialized as [[turtle]].

The examples presented here make use if the following prefixes:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix am: <http://penni.wu.ac.at/langs/agent-messages#> .

@prefix amv: <http://penni.wu.ac.at/langs/agent-messages-vocab#> .

Benevolent and Trustworthy Agent Architecture

Before going into details on how the Benevolent and Trustworthy Agent (BTA) Architecture can be used to model information, booking, and scheduling requestes we first provide an overview of the BTA components. .

Benevolent and Trustworthy Agent Architecture
Benevolent and Trustworthy Agent (BTA) Architecture

Interface Component

The Interface Component (IC) is responsible for interacting with humans, agents, and networked devices.

Controller Component

The Controller Component (CC) is responsible for interpreting perceptions, managing internal processes and tasks, and interpreting actions.

Deliberative Component

The Deliberative Component (DC) encompasses the agents knowledge, reasoning, and querying functionality.

Knowledge Base Component

The Knowledge Base (KB) is responsible for persisting the agents knowledge about itself and its environment.

Querying Component

The Querying Component (QC) allows the agent to execute queries against both internal and external knowledge bases.

Task Environment

The agents Environment is a complex space that consists of a variety of different networking technologies, devices, information sources, applications, and both human and artificial agents.

Request Types

This section describes the general structure of Request messages used to interact with benevolent and trustworthy agents and to inform the corresponding agent behaviour. Although several request types (e.g., InformationRequest, BookingRequest, SchedulingRequest, TaskRequest) and the corresponding agent behaviour are described in detail, these request types serve to demonstrate the effectivess of the proposes architecture and are by no means exhaustive.

Benevolent and Trustworthy Agent Message Model
Benevolent and Trustworthy Agent (BTA) Message Model

Information Request

An information request specifies the information required and where it may be obtained.

Goal: Obtain and return the requested information.

Performance Measure: The infromation has been provided.

Message Structure:

          amv:DoctorsReferralInfo am:hasRequestType am:InfoRequest;
            am:hasSource amv:LucysAgent;
            am:hasDestination amv:AlicesDoctorsAgent;
            am:hasType amv:LucysDoctorsReferral;
            am:hasProvider amv:AlicesDoctor;
            am:hasConstraint [amv:lastVsit "2022-03-14"^^xsd:dateTimeStamp],
              [amv:requiredTreatment amv:Physiotherapy];
            am:hasCredential amv:LucysAgentCredential,
              amv:AlicesDelegatedDoctorCredential;
        

Booking Request

A booking request specifies the service required and the service provider that should be booked.

Goal: Make a booking and return a booking confirmation.

Performance Measure: The booking confirmation has been provided.

Message Structure:


          amv:PhysiotherapyBooking am:hasRequestType am:BookingRequest;
            am:hasSource amv:LucysAgent;
            am:hasDestination amv:MurphyPhysiotherapyAgent;
            am:hasType amv:BackPhysiotherapy;
            am:hasProvider amv:MurphyPhysiotherapy;
            am:hasConstraint [amv:requiredAppointments amv:TwicePerWeek],
              [amv:availability amv:PeteOrLucy],
              [amv:client amv:AlicesContactDetails];
            am:hasCredential amv:LucysAgentCredential.

        

Scheduling Request

A scheduleing request is a reasoning tasks that needs to be performed by the agent.

Goal: Prepare an physiotherapy appointment schedule for Alice, based on Lucy and Pete's availability and return suggestion.

Performance Measure: Propose a schedule that satisfies as many Constraints as possible.

Message Structure:

          amv:PhysiotherapyScheduling am:hasRequestType am:SchedulingRequest;
            am:hasSource amv:LucysAgent;
            am:hasDestination amv:LucysAgent;
            am:hasType amv:PhysiotherapyScheduleForAlice;
            am:hasProvider amv:PhysioCalendar,
              amv:PetesCalendar,
              amv:AlicesCalendar;
            am:hasConstraint [amv:availability amv:PeteOrLucy];
            am:hasCredential am:null.
        

Task Request

A task request is essentially a collection of actions (i.e., requests) that need to be executed.

Goal: Execute a task and return the results of the execution.

Performance Measure: The results of the execution have been provided.

Message Structure:

          amv:PhysiotherapyAppointmentTask am:hasRequestType am:TaskRequest;
            am:hasSource amv:Lucy;
            am:hasDestination amv:LucysAgent;
            am:hasAction amv:DelegationOfAuthorityDoctor,
              amv:DelegationOfAuthorityInsurance,
              amv:DoctorsReferralInfo,
              amv:PhysiotherapistsInfo,
              amv:PetesCalendarInfo,
              amv:AlicesCalendarInfo,
              amv:PhysiotherapistsCalendarInfo,
              amv:PhysiotherapyAppointmentReasoning,
              amv:PhysiotherapyAppointmentBooking;
            am:hasConstraint am:null;
            am:hasCredential amv:LucysAgentCredential.
        

Handling Agent Requests and Responses

This section describes how agents handle various request types. Although the internal behaviour for several request types (e.g., InformationRequest, BookingRequest, SchedulingRequest, TaskRequest) is described in detail, these request types serve to demonstrate the effectivess of the proposes architecture and are by no means exhaustive.

Benevolent and Trustworthy Agent Behaviour Model
Benevolent and Trustworthy Agent (BTA) Message Model

The following internal behaviour is common to all tasks.

Request Agnostic Agent Behaviour:

Information Request

An information request specifies the information required and where it may be obtained.


Booking Request

A booking request specifies the service required and possible service providers.


Scheduling Request

A scheduleing request is a reasoning tasks that needs to be performed by the agent.


Task Request

A task request is essentially a collection of actions (i.e., requests) that need to be executed.


An Appointment Scheduling Usecase Scenario

The original semantic web vision was presented with the help of a motivating use case scenario, revolving around Pete and Lucy and their mother who has just found out that she needs to attend regular physiotherapy sessions. Pete and Lucy ask their personal agents to prepare a physiotherapy appointment schedule such that they are able to share the chauffeuring duties. Lucy's agent is tasked with finding a physiotherapist who: (i) is covered by their mothers insurance; (ii) has a trusted service rating of very good or excellent; (iii) is located within a 20 mile radius of their mother's home; and (iv) has appointments that work with Lucy and Pete's busy schedules. The workflow depicted in \emph{Figure}~\ref{fig:lucys-agent} can be summarised as follows:

Get the Referral from the Doctor


        amv:DoctorsReferralInfo am:hasRequestType am:InfoRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:AlicesDoctorsAgent;
          am:hasInfoType amv:LucysDoctorsReferral;
          am:hasInfoProvider amv:AlicesDoctors;
          am:hasConstraint [amv:lastVsit "2022-03-14"^^xsd:dateTimeStamp],
            [amv:requiredTreatment amv:Physiotherapy];
          am:hasCredential amv:LucysAgentCredential,
            amv:AlicesDelegatedDoctorCredential;

      

Get a List of Potential Physiotherapists


        amv:PhysioInfo am:hasRequestType am:InfoRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:InsuranceProviderAgent;
          am:hasInfoType amv:Physiotherapists;
          am:hasInfoProvider amv:AlicesInsuranceProvider;
          am:hasConstraint [amv:coveredBy amv:AlicesInsurancePolicy],
            [amv:requiredTreatment amv:BackPhysiotherapy];
          am:hasCredential amv:LucysAgentCredential,
            amv:AlicesDelegatedDoctorCredential.

      

Get the Physiotherapists' Availability

        amv:PetesAvailabilityInfo am:hasRequestType am:InfoRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:PotentialPhysiotherapyAgent;
          am:hasInfo amv:PetesCalendarInfo;
          am:hasInfoProvider amv:PotentialPhysiotherist;
          am:hasConstraint [amv:timeframe amv:ThreeMonths];
          am:hasCredential amv:LucysAgentCredential.
      

Get Pete's Availability


        amv:PhysioAvailabilityInfo am:hasRequestType am:InfoRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:PetesAgent;
          am:hasInfoType amv:CalendarInfo;
          am:hasInfoProvider amv:PetesCalendar;
          am:hasConstraint [amv:coveredBy amv:AlicesInsurancePolicy],
            [amv:requiredTreatment amv:BackPhysiotherapy];
          am:hasCredential amv:LucysAgentCredential,
            amv:AlicesDelegatedDoctorCredential.

      

Get Lucy's Availability


        amv:LucysAvailabilityInfo am:hasRequestType am:InfoRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:LucysAgent;
          am:hasInfoType amv:CalendarInfo;
          am:hasInfoProvider amv:LucysCalendar;
          am:hasConstraint [amv:timeframe amv:ThreeMonths];
          am:hasCredential am:null.

      

Schedule the Physiotherapy Appointments


        amv:PhysiotherapyScheduling am:hasRequestType am:SchedulingRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:LucysAgent;
          am:hasScheduleType amv:PhysiotherapyScheduleForAlice;
          am:hasScheduleProvider amv:PhysioCalendar,
            amv:PetesCalendar,
            amv:AlicesCalendar;
          am:hasConstraint [amv:availability amv:PeteOrLucy];
          am:hasCredential am:null.

      

Book the Physiotherapy Appointments


        amv:PhysiotherapyBooking am:hasRequestType am:BookingRequest;
          am:hasSource amv:LucysAgent;
          am:hasDestination amv:MurphyPhysiotherapyAgent;
          am:hasBookingType amv:BackPhysiotherapy;
          am:hasBookingProvider amv:MurphyPhysiotherapy;
          am:hasConstraint [amv:requiredAppointactionments amv:TwicePerWeek],
            [amv:availability amv:PeteOrLucy],
            [amv:client amv:AlicesContactDetails];
          am:hasCredential amv:LucysAgentCredential.