The JADE package jade.proto provides implementations of many, but not all, FIPA Interaction Protocols (IPs). Several are discussed here. For more detail see the JADE API documentation for jade.proto and the Programmer's Guide, section 3.5.
This example introduces the AchieveREInitiator and AchieveREResponder classes.
Yet another variation on the PingAgent
The JADE implementaions of FIPA IP's are based on Finite State Machines. Most subclass the FSMBehavioiur class. (SimpleAchieveREInitiator and SimpleAchieveREResponder directly implement FSMs.) For a simple example of using the FSMBehaviour class see the Phone Agent example.