Tag Archives: release

BDI4JADE 2.0 Beta Available: Many New Features!

A new version of BDI4JADE was released. This version of BDI4JADE provides many new features, and allows easier implementation of BDI agents. This is a beta version because few more tests should be run to consider the release stable.

Check out the new release notes:

  • A set of annotations added to:
    • Setup plan body parameters based on goal parameters
    • Setup plan body references to beliefs (whose name is a String)
    • Specify capability components (beliefs, plans and associated capabilities)
  • New belief types added
    • Predicate (and its implementation TransientPredicate): represents a belief whose name is a logic predicate and its value is a boolean that indicates whether the predicate is true or false
    • DerivedBelief and DerivedPredicate: represent beliefs whose values are derived from a belief base
  • Agents can now be one of two types: SingleCapabilityAgent and MultipleCapabilityAgent (the former has a single root capability, while the latter can have as many as desired)
  • Capability can now have different types of relationships (inheritance, association and composition) – check out the paper published in EMAS 2014, by Ingrid Nunes
  • BeliefGoal and its implementations added: belief goals are used to implement declarative goals. Goals are specified in terms of agent beliefs. Associated with belief goals, there is the BeliefGoalPlanBody, which is a plan to achieve belief goals.
  • The goals that a plan can achieve are specified in a set of goal templates (similar to what message templates are to messages). They can be constructed by implementing a goal template or using the GoalTemplateFactory.
  • Plan bodies can be implemented in a simpler way: now, they must only extend a single class (AbstractPlanBody). In previous versions, they had to extend a class (Behaviour from JADE) and implement an interface (PlanInstance)
  • The instantiation of plan bodies whose class is provided for DefaultPlan is now possible even if they are non-static inner classes of agents, capabilities and plans.
  • Reasoning strategies are now modularised at the capability level. Each capability can have their own reasoning strategy. However, there is still reasoning strategies at the agent level.
  • Examples can run all at once in a graphical interface.
  • Additional refactorings to the last version were performed.

Because of the addition of these new features, we made some changes in the BDI4JADE infrastructure and this version is incompatible with the previous versions. If you need assistance to adapt your code to use the new BDI4JADE version, please contact us.

We apologise for this inconvenience. BDI4JADE emerged from the need for a BDI platform implemented in pure Java, when we were working on dynamic adaptation of BDI agents in 2011. Since then, BDI4JADE was available but did not evolve. Now, the platform tends to stay stable. However, if you use previous versions of BDI4JADE and you find any bugs in the previous versions, please let us know that will fix them.

Version 1.0

A new version of BDI4JADE was released.

Check out the new release notes:

  • Implementation of the UtilityBasedBDIAgent, which is an agent that uses the UtilityBasedPlanSelectionStrategy to select plans. It uses other concepts as soft goals and plan contributions. See the template for learning how to use it.
  • Implementation of the management of nested capabilities. Goals can be dispatched in plans within the scope of a capability, so that only the plans of that capability or its children will be considered to achieve the goal.
  • New examples provided
    • Hello World example
    • Nested capabilities example
    • Agent based on utility-based plan selection example/template
  • Refactoring of the BDI4JADE packages