JADE (Java Agent Development Environment) is a software framework to make easy the development of agent applications in compliance with the FIPA specifications for interoperable intelligent multi-agent systems. The goal of JADE is to ease development while ensuring standard compliance through a comprehensive set of system services and agents. To achieve such a goal, JADE offers the following features to the agent programmer:

1. FIPA-compliant Agent Platform, including the AMS, the ACC and the default DF mandatory system agents. All these three agents are automatically activated at platform startup.
2. Distributed Agent Platform. The agent platform can be split on several hosts and only one Java Virtual Machine is executed on each node. Agents are implemented as Java threads and a suitable transport is chosen for message delivery, depending upon relative location of sender and receiver agents.
3. Multiple Domains support. A number of FIPA compliant DF agents can be started at runtime and linked in a federation, thereby implementing a multiple domain agent environment.
4. Multithreaded execution environment with two-level scheduling. Every JADE agent runs within its own thread of control, but also is able to run multiple behaviours concurrently. A preemptive scheduling is performed among all agents within a single Java Virtual Machine, whereas cooperative scheduling is used for the various task of a single agent.
5. Oject Oriented programming environment. Most concepts present in FIPA specifications are represented as Java classes, so that a uniform programming interface is presented to users. For example, ACL messages and `fipa-agent-management` ontology objects all have a suitable Java counterpart.
6. Library of interaction protocols. Ready to use behaviour objects are provided for the standard interaction protocols such as `fipa-request` and `fipa-contract-net`. To build an agent that can act according to an interaction protocol, application developers just need to implement domain specific actions, while all application independent protocol logic will be carried out by JADE framework.
7. Administration GUI. Common platform management operations can be performed through a graphical user interface, showing active agents and agent containers. Using this GUI, platform administrators can create, destroy, suspend and resume agents, besides creating domain hierarchies with multiple federated DF agents.

JADE is entirely written using the Java programming language, exploiting such advanced features as Java RMI, Java CORBA IDL, Java Serialization and Java Reflection API. JADE is a trademark of {@link CSELT}; JADE has been developed jointly by {@link CSELT} and the {@link Computer Engineering Group} of {@link University of Parma}.