Comme pour les jeux, les agents peuvent être génériques. L'agent de base est par exemple paramétré par la profondeur maximale du moteur d'inférence.
agent agent_de_base(PROF) = { start = jeu_de_base, games = { question(_), reponse(_) }, depth = PROF, kb = { nonvar(Q) | x b (P->Q) and x b P then x b Q, nonvar(P) | x b (P->Q) and x b -Q then x b -P, x b (p(X)->(X a Q)), nonvar(P) | (x b P) or (x b -P) then x kif P } }. agent agent_evolue(PROF) = { import agent_de_base(PROF), kb = { x b p(a1) } }.
On notera la différence entre <<import>> et <<accointance>>. <<import>> importe une description d'agent. <<accointance>> importe une description tranformée pour servir de représentation de l'autre.
agent a1 = { import agent_de_base(1), accointance = agent_de_base(1), games = { conflit(_) }, kb = { x w x kif q, x b p(x) } }. agent a2 = { import agent_de_base(1), games = { mefiance(_) }, kb= { x b q } }.