Jidoka.Effect.LLMDecision (Jidoka v0.9.0)

Copy Markdown View Source

Typed model-side decision returned by an LLM effect.

The runtime uses a constrained decision protocol: a model either returns a final response or asks Jidoka to run one or more operations. Keeping that decision as a struct gives hibernate/resume a stable shape instead of relying on loose maps.

Summary

Functions

Builds a final-answer model decision.

Normalizes an existing decision, keyword list, or map.

Builds a model decision from keyword or map attributes.

Builds a model decision and raises if the attributes are invalid.

Builds a decision that requests one operation.

Builds a decision that requests one or more operations.

Returns the Zoi schema for a normalized model decision.

Projects a model decision into its effect payload.

Types

decision_type()

@type decision_type() :: :final | :operation | :operations

t()

@type t() :: %Jidoka.Effect.LLMDecision{
  arguments: map(),
  content: nil | nil | binary(),
  metadata: map(),
  name: nil | nil | binary(),
  operations: [term()],
  parts: [term()],
  result: nil | nil | any(),
  type: (:final | :operation) | :operations
}

Functions

final(content, opts \\ [])

@spec final(
  String.t() | [Jidoka.ContentPart.input()],
  keyword()
) :: t()

Builds a final-answer model decision.

from_input(decision)

@spec from_input(t() | keyword() | map()) :: {:ok, t()} | {:error, term()}

Normalizes an existing decision, keyword list, or map.

new(attrs)

@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}

Builds a model decision from keyword or map attributes.

new!(attrs)

@spec new!(keyword() | map()) :: t()

Builds a model decision and raises if the attributes are invalid.

operation(name, arguments \\ %{}, opts \\ [])

@spec operation(String.t(), map(), keyword()) :: t()

Builds a decision that requests one operation.

operations(operations, opts \\ [])

@spec operations(
  [Jidoka.Effect.OperationRequest.t() | keyword() | map()],
  keyword()
) :: t()

Builds a decision that requests one or more operations.

schema()

@spec schema() :: Zoi.schema()

Returns the Zoi schema for a normalized model decision.

to_payload(llm_decision)

@spec to_payload(t()) :: map()

Projects a model decision into its effect payload.