You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# JADE Meeting Scheduler
A multi-agent system built with [JADE](https://jade.tilab.com/) (Java Agent DEvelopment Framework) in which autonomous agents negotiate a common meeting time using the FIPA ACL messaging protocol.
## Overview
Each `ParticipantAgent` starts with a randomly generated availability calendar (500 time slots, each with a random availability score) and registers itself with JADE's Directory Facilitator (DF) as a `participant-meeting` service. A small Swing GUI lets a user trigger any agent to request a meeting with all other registered participants.
## Negotiation protocol
1. The requesting agent discovers other participants via a DF search.
2. It broadcasts a `QUERY_REF` message to all participants, tagged with a unique conversation ID.
3. Each participant replies (`INFORM_REF`) with its currently best available slot and score, provisionally reserving that slot so it isn't offered twice in overlapping negotiations.
4. The requester collects replies (with a timeout), aggregates them, and looks for a slot where every participant � including itself � reported availability.
5. If a common slot with enough agreement is found, it's selected and broadcast via `INFORM` to confirm the meeting; otherwise the agent asks for another round of proposals, or gives up and releases its reservations if no slot can ever be agreed on.
6. All agents mark the confirmed slot as booked in their local calendars.
## Tech stack
- Java + JADE (FIPA-compliant multi-agent platform)
- Swing GUI per agent
- Ant build
## Running
```
ant run
```
Launches the JADE platform with three `ParticipantAgent` instances (`Participant1`� `Participant3`), each with a "Request meeting" button to kick off the negotiation.