foundations of computational agents
The third edition of Artificial Intelligence: foundations of computational agents, Cambridge University Press, 2023 is now available (including full text).
A trading agent is like a robot, but instead of interacting with a physical environment, it interacts with an information environment. Its task is to procure goods and services for a user. It must be able to be told the needs of a user, and it must interact with sellers (e.g., on the Web). The simplest trading agent involves proxy bidding for a user on an auction site, where the system will keep bidding until the user’s price limit is reached. A more complicated trading agent will buy multiple complementary items, like booking a flight, a hotel, and a rental car that fit together, in addition to trading off competing preferences of the user. Web services provide tools on the Web that provide individual components that need to be combined to give users what they want. Another example of a trading agent is one that monitors how much food and groceries are in a household, monitors the prices, and orders goods before they are needed, while trying to keep costs to a minimum.
In terms of the black box definition of an agent in Figure 1.3, the trading agent has as inputs
prior knowledge about types of goods and services, selling practices, and how auctions work
past experience about where is the best place to look for specials, how prices vary with time in an auction, and when specials tend to turn up
preferences in terms of what the user wants and how to trade off competing goals
stimuli including observations about what items are available, their price, and, perhaps, how long they are available.
The output of the trading agent is either a recommendation the user can accept or reject, or an actual purchase.
The trading agent should take all of the dimensions into account:
Hierarchical decomposition is essential because of the complexity of domains. Consider the task of making all of the arrangements and purchases for a custom holiday for a traveler. It is simpler to have a module that can purchase a ticket and optimize connections and wait times, rather than doing this at the same time as determining the quickest route to get to the taxi stand at the airport.
The state space of the trading agent is too large to reason in terms of explicit states or even features. The trading agent will have to reason in terms of individual customers, days, hotels, flights, and so on.
A trading agent typically does not make just one purchase, but must make a sequence of purchases, often a large number of sequential decisions (e.g., purchasing one hotel room may require booking ground transportation, which may in turn require baggage storage), and often plans for ongoing purchasing, such as for an agent that makes sure a household has enough food on hand at all times.
There is often sensing uncertainty in that a trading agent does not know all of the available options and their availability, but must find out information that can become old quickly (e.g., if a hotel becomes booked up). A travel agent does not know whether a flight will be canceled or delayed or whether the passenger’s luggage will be lost. This uncertainty means that the agent must plan for the unanticipated.
There is also effect uncertainty in that the agent does not know whether an attempted purchase will succeed.
Complex preferences are at the core of the trading agent. The main problem is in allowing users to specify what they want. The preferences of users are typically in terms of functionality, not components. For example, typical computer buyers have no idea of what hardware to buy, but they know what functionality they want and they also want the flexibility to be able to use new software features that might not even exist yet. Similarly, in a travel domain, what activities a user may want may depend on the location. Users also may want the ability to participate in a local custom at their destination, even though they may not know what those customs are.
A trading agent has to reason about other agents. In commerce, prices are governed by supply and demand; this means that it is important to reason about the other competing agents. This happens particularly in a world where many items are sold by auction. Such reasoning becomes particularly difficult when there are items that must complement each other, such as flights and hotel booking, and items that can substitute for each other, such as bus transport or taxis.
A trading agent should learn about which items sell quickly, which of the suppliers are reliable, where to find good deals, and what unanticipated events may occur.
A trading agent faces severe communication limitations. In the time between finding that some item is available and coordinating the item with other items, the item may have been sold. This can sometimes be alleviated by sellers agreeing to hold some items (not to sell them to someone else in the meantime), but sellers will not be prepared to hold an item indefinitely if others want to buy it.
Because of the personalized nature of the trading agent, it should be able to do better than a generic purchaser that, for example, only offers packaged tours.