Let us define a "Typed-Message Agent" in terms of a community of potential agents.
use a kind of Outer Language with certain properties: including message semantics are typed and independent of the application.
may use an Inner Language that may be domain-specific,
accomplish a task (according to some application definition) by exchanging messages using at least the Outer Language, and
must use a peer-to-peer protocol in order to achieve optimum task performance.