Normandy.Coordination.AgentMessage (normandy v0.2.0)
View SourceMessage structure for agent-to-agent communication.
AgentMessage provides a standardized format for agents to communicate with each other, including metadata about the sender, message type, and payload.
Example
message = %AgentMessage{
from: "research_agent",
to: "writing_agent",
type: :request,
payload: %{query: "Find papers about AI"},
metadata: %{priority: :high}
}
Summary
Functions
Creates an error response message.
Creates a new agent message.
Creates a response message to an original message.
Types
Functions
@spec error( %Normandy.Coordination.AgentMessage{ __meta__: term(), from: term(), id: term(), metadata: term(), payload: term(), timestamp: term(), to: term(), type: term() }, String.t(), map() ) :: %Normandy.Coordination.AgentMessage{ __meta__: term(), from: term(), id: term(), metadata: term(), payload: term(), timestamp: term(), to: term(), type: term() }
Creates an error response message.
Example
error = AgentMessage.error(original_message, "Processing failed", %{code: 500})
@spec new(keyword()) :: %Normandy.Coordination.AgentMessage{ __meta__: term(), from: term(), id: term(), metadata: term(), payload: term(), timestamp: term(), to: term(), type: term() }
Creates a new agent message.
Options
:from- Source agent identifier (required):to- Destination agent identifier (required):type- Message type (:request,:response,:broadcast,:error):payload- Message content (map):metadata- Additional metadata (map)
Example
message = AgentMessage.new(
from: "agent_1",
to: "agent_2",
type: :request,
payload: %{task: "analyze data"}
)
@spec reply( %Normandy.Coordination.AgentMessage{ __meta__: term(), from: term(), id: term(), metadata: term(), payload: term(), timestamp: term(), to: term(), type: term() }, map() ) :: %Normandy.Coordination.AgentMessage{ __meta__: term(), from: term(), id: term(), metadata: term(), payload: term(), timestamp: term(), to: term(), type: term() }
Creates a response message to an original message.
Example
response = AgentMessage.reply(original_message, %{result: "success"})