En agent er en entitet som har mål og som er situert i et eller annet miljø. Agenten kan føle/oppleve dette miljøet og er i stand til å utføre uavhengige handlinger. Agenten kan få input fra sensorer som opplyser om endringer i miljøet. Disse sensorer trenger ikke være fysiske, som ved en robot. Det kan for eksempel være at det oppdages endringer i et tekstdokument. Agenter skal kunne reagere på endringer i miljøet, og bestemme deres oppførsel ut fra deres mål – de skal være selvstyrende. For å være selvstyrende, må de kunne ta avgjørelser i kontekst av hva som skjer i miljøet. Avgjørelser resulterer ofte i handlinger og handlinger endrer miljøet.
I et multiagentsystem, må agentene kunne interagere for at de i samarbeid skal kunne oppnå mål som ingen agent alene ville ha mulighet for å kunne oppnå. Interaksjon oppnås ved ”interagent” kommunikasjon. Kommunikasjonen er på et høyt nivå/ et kunnskapsnivå. (Dette er hvordan vi ønsker å kommunisere med ’iAgent’, på et kunnskapsnivå, hvor det er som å snakke med et annet menneske og ikke en maskin.)
Jennings et al. Identifiserer tre nøkkelkonsepter i definisjonen av en agent:
- Situatedness (tilstedeværelse?) – en agent mottar input fra miljøet gjennom sensorer og den kan utfør handlinger som endrer miljøet på en eller anen måte.
- Autonomy (uavhengig/selvstyrende) – en agent skal kunne utføre handlinger på egenhånd, uten menneskelig innflytelse. Den skal ha kontroll over egne handlinger og intern tilstand.
- Flexibility (fleksibilitet) – en agent skal vise fleksibel oppførsel. Den skal kunne reagere på endringer, men også kunne selv ta initiativ til å oppnå sitt mål. Den skal også vise sosial oppførsel ved å interagere med andre agenter.
Agenter skal kunne ta avgjørelser, planlegge, og kommunisere. I mange applikasjoner skal de ogaå kunne lære fra erfaringer og dermed oppdatere egen kunnskap.