Shared state container for multi-agent work.
This module intentionally provides only the data structure and helper functions used by host applications. It does not execute turns.
Summary
Functions
Mark the collaboration as complete.
Read a key from the shared state.
Assign a display name to a participant.
Create a collaboration from already-loaded agent configs.
Pause a collaboration.
Store a key-value in the shared state.
Append a turn to the shared conversation and turn log.
Resume a paused collaboration.
List participant roles and names.
Serialize a collaboration into a persistence-friendly map.
Types
@type participant() :: %{ agent: map(), entries: [CommBus.Entry.t()], name: String.t() | nil }
@type role() :: atom()
@type t() :: %AgentEngine.Collaboration{ context: map(), conversation: CommBus.Conversation.t(), created_at: DateTime.t(), id: String.t(), participants: %{required(role()) => participant()}, shared_state: map(), status: :active | :paused | :complete, task: String.t(), turn_log: [turn_entry()] }
@type turn_entry() :: %{ role: role(), input: String.t(), output: String.t(), signals: list(), timestamp: DateTime.t() }
Functions
Mark the collaboration as complete.
Read a key from the shared state.
Assign a display name to a participant.
Create a collaboration from already-loaded agent configs.
Pause a collaboration.
Store a key-value in the shared state.
Append a turn to the shared conversation and turn log.
Resume a paused collaboration.
List participant roles and names.
Serialize a collaboration into a persistence-friendly map.