Agentix — a LiveView-native library for building agentic systems in Elixir.
Agentix provides an agent runtime (one :gen_statem process per
conversation), an explicit tool/HITL model, a per-turn hook pipeline,
reducer-based compaction, and a headless LiveView rendering layer. It builds
on ReqLLM for provider abstraction and the
canonical typed model (Context, Message, ContentPart, Tool,
StreamChunk, Response, Usage).
Summary
Functions
The structured-output object an assistant message carries, or nil.
Resolves a suspended tool call. Public and not socket-bound — a LiveView,
webhook, job, or timeout all call it the same way. scope defaults to the system
scope (the documented scope for timeout-driven resolutions).
Functions
@spec object(ReqLLM.Message.t()) :: term() | nil
The structured-output object an assistant message carries, or nil.
When a turn runs with a :schema (per-turn) or the conversation's response_format
default, the model's typed result is stored in the assistant message's
metadata["object"]. This reads it back from a ReqLLM.Message (e.g. the one in a
{:message_completed, ref, message} live event, or from Agentix.Chat). Returns
nil for an ordinary (plain-text) message.
@spec resolve(String.t(), String.t(), term(), Agentix.Scope.t()) :: :ok | {:error, term()}
Resolves a suspended tool call. Public and not socket-bound — a LiveView,
webhook, job, or timeout all call it the same way. scope defaults to the system
scope (the documented scope for timeout-driven resolutions).
Returns :ok if the id was pending, or {:error, :stale} if it is unknown or
already resolved.