I’m starting my thesis on Agents and Smart Objects interaction and I’d like to know what’s in the future for JADE, the Java Agent framework. I find the whole concept of agents, programmable behaviors, federations and their help in solving Artificial Intelligence problems very interesting but will it always be an academic field, like Haskell? What’s being done with JADE?
Question posted in Artificial Intelligence
ChatGBT is becoming a world-wide phenomena, try it out here.
ChatGBT is becoming a world-wide phenomena, try it out here.
2
Answers
I created a system for my PhD – using JADE as the framework – where agents played music with human musicians. There’s a bit of a write up (and a link to the thesis) at http://www.mo-seph.com/academic/musicalagents
In the end, I didn’t use a lot of JADE, and found it quite heavyweight for the kind of work I was doing. The communications library was useful (if a bit hard work) and the message queuing side of it worked OK. However, I quickly found that most of the behaviour I wanted to implement needed to be so heavily customised that the JADE framework only really supported the transfer of information.
I think the usefulness of the framework depends hugely on what the question is. It seems that a lot of the usefulness of JADE was around it’s links to the FIPA agent communication languages (http://www.fipa.org/) and the communications infrastructure in general. If that’s what you’re interested in, then it might be quite useful. If you’re more concerned with the intelligence in individual agents, it might be a useful framework, but it won’t help much with the design of the intelligence.
Systems like JADE, Aglets etc. are “containers” as opposed to libraries.
This means that if you want to use some aspects of code mobility/mobile objects/mobile agents in your application, you basically have to design your application around these frameworks. I think this limits the applicability quite a bit.
Personally I think the ability to send mobile objects/mobile agents to remote machines is generally quite useful though. It’s a very powerful idea and has applications for sure in grid computing, but also applications in areas where RPC is used right now.
So given this idea I wrote Mobility-RPC which is a way to avail of code mobility in any application, much like you would use RPC.