Software Agents

Software Agents

July 1994 | Michael R. Genesereth
Software agents are designed to enable software interoperability in diverse and dynamic environments. They communicate using expressive agent communication languages (ACLs), allowing them to exchange data, logical information, and commands. This approach contrasts with traditional object-oriented programming, where message meanings vary between objects, while ACLs use a common language with consistent semantics. Agent-based software engineering addresses challenges like heterogeneity and dynamic environments by using a universal communication language. Two main approaches to designing such languages are procedural and declarative. Procedural languages, like TCL, are simple and powerful but unidirectional and difficult to merge. Declarative languages, such as KIF (Knowledge Interchange Format), are more expressive and compact, enabling the encoding of complex information and logical statements. KIF is a prefix version of first-order predicate calculus, allowing the expression of data, constraints, negations, and rules. It supports knowledge about knowledge and can be used to describe procedures. KQML (Knowledge Query and Manipulation Language) provides a linguistic layer for context-aware communication, enhancing efficiency. Agents must adhere to behavioral constraints, such as veracity, autonomy, and commitment. These principles can be derived from the principle of veracity, ensuring agents tell the truth. The use of ACL introduces behavioral constraints, allowing for a wide range of agent behaviors, from simple to complex. Legacy software can be integrated into agent-based systems through three approaches: transducers, wrappers, and rewriting. Transducers mediate between existing programs and agents, while wrappers inject code into programs to enable ACL communication. Rewriting involves completely redeveloping programs to use ACL. Multiagent systems can be organized in federated systems, where agents communicate through facilitators, reducing the need for direct communication. Facilitators handle message routing, translation, and coordination, improving efficiency and reducing complexity. Agent-based software engineering has practical applications in areas like concurrent engineering and database integration. However, challenges remain, including synchronization, security, payment, and crash recovery. Research is ongoing to address these issues, with a focus on economic and distributed AI (DAI) principles. The future of agent-based systems includes the use of market mechanisms for coordination and the development of protocols that resist manipulation. These advancements aim to create a world where systems can interoperate seamlessly without human intervention.Software agents are designed to enable software interoperability in diverse and dynamic environments. They communicate using expressive agent communication languages (ACLs), allowing them to exchange data, logical information, and commands. This approach contrasts with traditional object-oriented programming, where message meanings vary between objects, while ACLs use a common language with consistent semantics. Agent-based software engineering addresses challenges like heterogeneity and dynamic environments by using a universal communication language. Two main approaches to designing such languages are procedural and declarative. Procedural languages, like TCL, are simple and powerful but unidirectional and difficult to merge. Declarative languages, such as KIF (Knowledge Interchange Format), are more expressive and compact, enabling the encoding of complex information and logical statements. KIF is a prefix version of first-order predicate calculus, allowing the expression of data, constraints, negations, and rules. It supports knowledge about knowledge and can be used to describe procedures. KQML (Knowledge Query and Manipulation Language) provides a linguistic layer for context-aware communication, enhancing efficiency. Agents must adhere to behavioral constraints, such as veracity, autonomy, and commitment. These principles can be derived from the principle of veracity, ensuring agents tell the truth. The use of ACL introduces behavioral constraints, allowing for a wide range of agent behaviors, from simple to complex. Legacy software can be integrated into agent-based systems through three approaches: transducers, wrappers, and rewriting. Transducers mediate between existing programs and agents, while wrappers inject code into programs to enable ACL communication. Rewriting involves completely redeveloping programs to use ACL. Multiagent systems can be organized in federated systems, where agents communicate through facilitators, reducing the need for direct communication. Facilitators handle message routing, translation, and coordination, improving efficiency and reducing complexity. Agent-based software engineering has practical applications in areas like concurrent engineering and database integration. However, challenges remain, including synchronization, security, payment, and crash recovery. Research is ongoing to address these issues, with a focus on economic and distributed AI (DAI) principles. The future of agent-based systems includes the use of market mechanisms for coordination and the development of protocols that resist manipulation. These advancements aim to create a world where systems can interoperate seamlessly without human intervention.
Reach us at info@study.space
[slides and audio] Software agents