En rationell agent är ett datorprogram som kan fatta autonoma beslut för att uppnå önskade mål. Sådana program kan samla in information om sin miljö för att samla in så mycket data som möjligt för att stödja deras beslut. De kan också utvärdera resultatet för att avgöra om det slutliga valet var ett bra, och hur de skulle kunna förbättra resultaten i framtiden. Att designa rationella agenter kräver kunskap om datorprogrammering och förmåga att utveckla modeller och preferenser inom ett program.
Graden av komplexitet kan bero på vilken typ av uppgifter ett program behöver utföra. Vissa rationella medel är enkla och kan förlita sig mycket på en mycket grundläggande modell. Till exempel kan den rationella agenten vara ansvarig för att kontrollera utgående post för att säkerställa att utskickinformationen är fullständig, för att minska risken för att föremål returneras till avsändaren. Den kan använda en modell av hur adresser ska se ut för att kontrollera mot en optisk skanning och antingen acceptera eller avvisa objekt för utskick.
Mer komplexa agenter kan behöva fatta flera beslut för att agera på sina miljöer, eller kan kräva komplexa modeller för att hjälpa dem att identifiera specifika problem i en given situation. Målet med den rationella agenten är att välja det mest optimala resultatet, givet en rad alternativ och en specifik situation. Det kan mäta framgång genom svar och kanske kan lära sig av detta för att justera beteenden i framtiden. Ett rationellt medel vid ett kärnkraftverk som ansvarar för att kontrollera temperaturerna i reaktorn, till exempel, vet vad som påverkar härdtemperaturerna och hur det kan justera dem om temperaturen stiger eller faller utanför ett fastställt intervall.
Framgång är inte alltid möjlig, eftersom rationella agenter inte är allvetande. De kan inte förutsäga alla möjliga resultat och kanske inte kan kompensera för händelser utanför deras kontroll. När ett problem uppstår kan agenten utvärdera det för att ta reda på vad som hände och om det kunde ha förutsetts. Om instrumenten på en väderballong träffades av en meteor, till exempel, skulle det automatiserade programmet som valde en uppskjutningsplats och lanserade ballongen omöjligen ha kunnat ta hänsyn till detta i sina beräkningar. Lanseringen kan ha misslyckats, men inte på grund av något den rationella agenten gjorde.
Datorprogrammeringskurser inkluderar ibland diskussioner om rationella agenter, tillsammans med enkla programmeringsuppgifter så att eleverna kan skapa sina egna. Mer komplexa program kan utvecklas inom informationsteknologi, vetenskap, medicin och andra områden där automatiserade aktörer kan vara nödvändiga. Ju mer komplexitet, desto större funktionalitet.