Capability-based agent matchmaking

In an agent-based system, where di erent agents form dynamic associations for the purposes of collaborative processing, there is a basic need for agents to be able to describe themselves to other agents. This allows agents to locate other agents that can provide them with needed capabilities to accomplish speci c tasks at a given time. An agent may describe itself in terms of its interfaces, the services it can provide, the tasks it can accomplish, the data it can provide, etc. Practical, implemented systems that perform some of this functionality include those based on corba and other distributed object services, but their representation is too limited to function e ectively in an agent system with many agents that serve similar functions. At the other end of the spectrum are research systems that allow an agent to specify its capabilities in terms of reasonably complete formal logic speci cations; however these descriptions have the potential to be very unwieldy and error-prone and may require too much computation for it to be practical in a large, diverse