Danas postoje različiti oblici umjetne inteligencije (AI). Teško je pitanje što uopće nazvati umjetnom inteligencijom, a što samo softverskim programom. U softveru postoji tendencija da kada nešto što se nekada zvalo “AI” sazrije i integrira se u tehnološku pozadinu, više se ne zove AI. Programeri iz 1950-ih mogli bi brojni ugrađeni softver u našem svijetu nazvati “umjetnom inteligencijom” – na primjer, mikročip u vašem automobilu koji regulira ubrizgavanje goriva, ili bazu podataka u supermarketu u kojoj se pohranjuju podaci o svim prodajama, ili Google tražilicu.
No polje koje sebe naziva “umjetna inteligencija” ima tendenciju da se malo razlikuje od puno veće skupine “programera softvera općenito”. Istraživači umjetne inteligencije obično gledaju na složenije, prilagodljivije, sposobnije ili čak nejasno ljudske oblike softvera. Radnici u umjetnoj inteligenciji također imaju tendenciju da budu interdisciplinarni i dobro upućeni u područja znanosti i matematike koja su strana tipičnom programeru, uključujući, ali ne ograničavajući se na: formalnu statistiku, neuroznanost, evolucijsku psihologiju, strojno učenje i teoriju odlučivanja.
U području umjetne inteligencije postoje dva glavna tabora: Neats i Scruffies. Odjel se održava praktički otkako je AI osnovan kao polje 1956. Neats su zagovornici formalnih metoda kao što je primijenjena statistika. Vole da su njihovi programi dobro organizirani, dokazano zvučni, da rade na temelju konkretnih teorija i da ih je moguće slobodno uređivati. Scruffies vole neuredne pristupe, kao što su adaptivne neuronske mreže, i smatraju se hakerima, bacajući sve zajedno sve dok se čini da funkcionira. Oba su pristupa imala impresivne uspjehe u prošlosti, a postoje i hibridi dviju tema.
Svi dizajni umjetne inteligencije barem su površno inspirirani ljudskim mozgom, budući da je po definiciji umjetna inteligencija oponašanje nekog aspekta inteligencije. AI moraju izgraditi koncepte stvari s kojima manipuliraju ili s kojima rade te pohraniti te koncepte kao dijelove podataka. Ponekad su ti dijelovi dinamični i često ažurirani, ponekad statični. Općenito, AI se bavi iskorištavanjem odnosa između podataka za postizanje nekog cilja.
Ciljevi se često dodjeljuju na temelju korisnosti. Kada mu se predstavi cilj, sustav umjetne inteligencije može generirati podciljeve i dodijeliti korisne vrijednosti podciljeva na temelju njihovog predviđenog doprinosa primarnom cilju. AI nastavlja slijediti podciljeve dok se ne postigne primarni cilj. Tada je slobodno prijeći na novi (ali često sličan) primarni cilj. Ono što se uvelike razlikuje među AI je način na koji se sva ta dinamika implementira.