Agenti spolu komunikují vlastním jazykem. Zprávy zasílané mezi agenty jsou srozumitelné i pro člověka, jejich syntaxe vychází z jazyka XML. Typy zpráv jsou podmnožinou standarndního komunikačního jazyka agentů ACL.
Samotná komunikace pak může probíhat jak synchronně tak asynchronně. Podrobné informace lze najít v [12, oddíl HowTos, stránka call].
Pro zvýšení efektivity je implementováno také binární rozhraní. Toto rozhraní má své klady i zápory. Kladem je především zvýšení rychlosti v případech, kde si agenti potřebují předat větší datovou strukturu. Použitím binárního rozhraní odpadá převod této struktury na XML řetězec a zpět. Pokud se oba agenti nacházejí na stejném stroji, předává se pouze ukazatel. Nevýhodou je, že agent, který taková data příjímá, musí být obeznámem s jejich strukturou. Dokumentace binárního rozhraní je v [12, oddíl HowTos, stránka fastcall].
Nyní se podívejme na syntaxi zpráv předávaných mezi agenty. Jedná se o XML řetězce. Kořenový element určuje typ zprávy. K dispozici jsou zprávy typů request (požadavek na provedení příkazu), inform (zpráva), query (dotaz), ok (odpověď v případě, že nedošlo k chybě) a ugh (odpověď po výskytu chyby). Zbytek zprávy obsahuje příkazy, informace, apod.
Uveďme nyní typy zpráv, se kterými se budeme setkávat při popisu jednotlivých agentů v části 6.2.
Např. <request> <learn/> </request>,
<request> <openfile filename='data1.dat'/> </request>.
Pokud agent rozumí zprávě a reaguje na zprávu
tvaru
<request> <příkaz/> </request>, budeme o něm stručně říkat, že
rozumí příkazu <příkaz/>.
Tedy například
<request> <set> <var> <trainsetname/> </var> <value
type='string'>
<string> sin2.dat </string> </value> </set>
</request>.
Pokud agent rozumí takovéto zprávě, budeme o něm říkat, že umožňuje přístup
k proměnné trainsetname pro zápis.
Např. <query> <get> <var> <error/> </var> </get> </request> zaslaný agentovi spravujícímu neuronovou síť může znamenat dotaz na hodnotu chybové funkce této sítě.
Agent, který rozumí zprávě tohoto typu, umožňuje přístup k dané proměnné pro čtení.
Ještě uveďme formát zprávy spojené s binárním rozhraním. Příkladem budiž agent
představující tréninkovou množinu. Taková tréninková množina je schopna předat
tréninkový vektor pomocí binárního rozhraní. Agent, který chce k této
tréninkové množině přistupovat, musí nejprve požádat o tuto službu pomocí
zprávy <query> <bin> <request> <getvector/> </request>
</bin> </query>.
Poté obdrží potřebné údaje a další komunikace probíhá přes binární rozhraní.