I've been working at Agent Oriented Software (AOS) for a little more than a year, and now I'm leaving. I've recently accepted a role at the Australian Bureau of Meteorology working on severe weather warning software. In getting ready to leave and doing handover, I've started thinking a lot about what I have learned over the last year, specifically about the technology I've been working with. I thought I'd capture a summary of my experiences and observations with the technology before I start at BOM and get excited about all new problems/opportunities.
AOS is an international player in the area of intelligent agent software for autonomous decision making, and even though I'm leaving, I would still back this marketing slogan. The company was started based on an implementation of the technology called JACK and the consulting that went along with employing the product to problems in science and defence. The developers who built and worked on JACK helped to define the field of Intelligent Software Agents and the Belief-Desires-Intentions (BDI) cognitive software model that is used to drive them.
While working for AOS, I took the time to climb deeply into the technology. I researched the BDI technique and helped to clean-up the BDI Wikipedia page. I also researched the history of AOS and it's relationship with the Australian Artificial Intelligence Institute (AAII). I created the AAII Wikipedia page, one for it's founder Michael Georgeff, and one for the primary product at AOS, JACK. I also created a page for the pre-running product DMARS, and cleaned up the page for its predecessor PRS. I thought hard about creating an entry for JACK because it felt like it was riding the line between blatant product marketing and a valid wikipedia page. What convinced me was the wealth of published research about the product, it's use in Universities and the acknowledgment that it is indeed a contribution to the field.
I was lucky enough to work along side ex-members of the AAII. Smart guys that could fill me in on what it was all about - guys who had seen the development and application of intelligent agents (including PRS, DMARS and JACK) for nearly 20 years. I also found a list of all the old AAII technical reports and proceeded to locate a handful of which provided the basis for the seminal work in the field of BDI.
From a practical perspective, I had the opportunity to design and develop agent-based solutions to client problems, and I also had the opportunity to design and prototype a BDI interpreter. The following are five high-level points I will take away with me when I leave at the end of the month:
- For the developer on the ground, Intelligent Software Agents are really a programming paradigm (agent oriented programming or agent oriented software engineering) that is an extension to Object-Oriented (OO) software engineering. Like OO, it provides tools in concepts and a methodology for organizing data and functionality for solving classes of problems using software.
- BDI is a software model for organizing the data and functional behaviour of an intelligent software agent. There are other models, although BDI is a useful organization paradigm and is based on a human cognitive model.
- Agent technology is all about active objects (in the OO sense) - the active parts of the software. As such it is suited to domains that require autonomous decision making.
- Agent + BDI technology was designed for highly-proceduralised domains, such as automating a pilot's pre-flight checklist. Ultimately, such domains are still the best application of the automated (mechanized) decision making capabilities of the technology.
- The technology and the broader field was hyped like crazy in the late 1990s at around the same time as the Internet went mainstream. The overhyping then has lead to cynicism as to the capabilities and applicability of the technology and decreased interest/investment today. A similar boom-bust cycle that has happened to most pockets of Artificial Intelligence and Machine Learning.


