A comprehensive Elixir library for managing AI agent sessions, state persistence, conversation context, and multi-agent orchestration workflows.
Core Domain Types
This library provides the following core domain types:
AgentSessionManager.Core.Session- Represents an AI agent sessionAgentSessionManager.Core.Run- Represents a single execution run within a sessionAgentSessionManager.Core.Event- Represents events in the session lifecycleAgentSessionManager.Core.Transcript- Provider-agnostic reconstructed conversation historyAgentSessionManager.Core.TranscriptBuilder- Transcript reconstruction from events/storeAgentSessionManager.Core.Capability- Represents agent capabilitiesAgentSessionManager.Core.Manifest- Represents an agent manifestAgentSessionManager.Core.CapabilityResolver- Negotiates capabilities between requirements and providersAgentSessionManager.Core.Registry- Thread-safe registry for provider manifestsAgentSessionManager.Core.Error- Normalized error taxonomy
Quick Start
# Create a session
alias AgentSessionManager.Core.Session
{:ok, session} = Session.new(%{agent_id: "my-agent"})
{:ok, active} = Session.update_status(session, :active)
# Create a run
alias AgentSessionManager.Core.Run
{:ok, run} = Run.new(%{session_id: session.id})
{:ok, completed} = Run.set_output(run, %{response: "Hello!"})
# Create an event
alias AgentSessionManager.Core.Event
{:ok, event} = Event.new(%{
type: :message_received,
session_id: session.id,
run_id: run.id,
data: %{content: "Hello!"}
})
# Define a manifest
alias AgentSessionManager.Core.Manifest
{:ok, manifest} = Manifest.new(%{
name: "my-agent",
version: "1.0.0",
capabilities: [
%{name: "web_search", type: :tool}
]
})Error Handling
All operations return tagged tuples {:ok, result} or {:error, error}.
Errors are normalized using AgentSessionManager.Core.Error:
alias AgentSessionManager.Core.Error
case Session.new(%{}) do
{:ok, session} -> session
{:error, %Error{code: :validation_error, message: msg}} ->
IO.puts("Validation failed: #{msg}")
endErrors support machine-readable codes, provider-specific details, and are classified into categories (validation, provider, storage, etc.).
Summary
Functions
Builds a module-backed Maintenance reference for an Ecto repo.
Builds a module-backed QueryAPI reference for an Ecto repo.
Builds a module-backed SessionStore reference for an Ecto repo.
Functions
Builds a module-backed Maintenance reference for an Ecto repo.
Builds a module-backed QueryAPI reference for an Ecto repo.
Builds a module-backed SessionStore reference for an Ecto repo.