Claudio.A2A.Message (Claudio v0.5.0)

View Source

A2A Message — a communication turn between a client and remote agent.

Examples

alias Claudio.A2A.{Message, Part}

message = Message.new(:user, [Part.text("Search for Elixir libraries")])

# With task context
message = Message.new(:user, [Part.text("Continue searching")])
|> Message.set_task_id("task-123")

Summary

Functions

Create a new message with a role and parts.

Set the context ID for grouping related tasks.

Set metadata on the message.

Set the task ID for multi-turn conversations.

Types

role()

@type role() :: :user | :agent

t()

@type t() :: %Claudio.A2A.Message{
  context_id: String.t() | nil,
  extensions: [String.t()] | nil,
  message_id: String.t() | nil,
  metadata: map() | nil,
  parts: [Claudio.A2A.Part.t()],
  reference_task_ids: [String.t()] | nil,
  role: role(),
  task_id: String.t() | nil
}

Functions

from_map(map)

@spec from_map(map()) :: t()

new(role, parts)

@spec new(role(), [Claudio.A2A.Part.t()]) :: t()

Create a new message with a role and parts.

set_context_id(message, context_id)

@spec set_context_id(t(), String.t()) :: t()

Set the context ID for grouping related tasks.

set_metadata(message, metadata)

@spec set_metadata(t(), map()) :: t()

Set metadata on the message.

set_task_id(message, task_id)

@spec set_task_id(t(), String.t()) :: t()

Set the task ID for multi-turn conversations.

to_map(msg)

@spec to_map(t()) :: map()