1. A method for generating a semantic description of operations between network agents, the method comprising, using at least one hardware processor: capturing packet-level traffic between a first network agent and a second network agent; bundling the packet-level traffic into one or more messages, wherein each of the one or more messages comprises a plurality of elements; for each of the one or more messages, matching one or more of the one or more elements of the message to one or more attributes, wherein matching one or more of the one or more elements of the message to the one or more attributes comprises, for each template in a set of one or more templates, selecting the template, wherein the template comprises a plurality of attributes, comparing one or more of the one or more attributes of the template to one or more of the one or more elements of the message, determining whether the template matches the message based on the comparison, and, if it is determined that the template matches the message, locating one or more unmatched ones of the plurality of elements of the message using one or more inferred ones of the plurality of attributes of the template, and decoding the message into message data based on the matched one or more attributes; and generating a semantic description of operations between the first network agent and the second network agent based on the message data.