Agent v odvozování (dokazování vět) používá dedukční a indukční krok. V dedukčním kroku se snaží dokázat platnost formule Proveď(a), pokud se mu to podaří, provede akci a. V indukčním kroku se snaží odvodit, že nelze dokázat platnost negace Proveď(a), pokud se mu to podaří, provede akci a. Indukční krok nemá smysl v úplných systémech, těmi ale agentové systémy typicky nejsou.
Symbolická reprezentace se potýká se dvěma zásadními problémy: Jak překládat svět do symbolického popisu a jak v rozumném čase manipulovat se symboly a odvozovat z nich.
Úlohy dokazování řešené v symbolická logice (a architektuře) bez omezení jsou typicky nerozhodnutelné, v lepším případě co-NP úplné. Proto se používá slabší logika (např. Hornovy klauzule — Prolog), jiné (nelogické) reprezentace apod.
Agentově orientované programování (Yoav Shoham). Logika pro specifikaci agentů a popis jejich mentálních stavů + interpretovatelný programovací jazyk pro programování agentů + proces agentifikace.
První AOP jazyk: Agent-0 (rozšíření Lispu).
Concurrent MetateM. Každý agent je programován tak, že se vytvoří specifikace jeho chování v časové logice (obsahuje odální operátory vyjadřující, jak se pravda mění v čase). Tyto specifikace jsou přímo spouštěny, aby vygenerovaly chování agenta.
Gabbayova věta: Každou formuli časové logiky lze přepsat do tvaru minulost -> budoucnost.
Takový tvar může být prováděcím pravidlem (lze testovat předpoklad). Program pro agenta je pak množinou takových pravidel.
Agent je definován svým jménem, interfacem a programem. Interface určuje, které zprávy agent přijímá (na které reaguje) a které vysílá.
Příklad: Chůva krmí dítě, pokud má hlad.
chůva (mám_hlad)[krmím]:
MINULE mám_hlad(a) -> NĚKDY_V_BUDOUCNOSTI krmím(a)
Typicky užíváme modálnost NĚKDY_V_BUDOUCNOSTI, přestože cílem je splnit implikaci co nejdříve. Nemusí to ale být hned v následujícím kroku, pokud by to kolidovalo s jiným cílem apod.