Packages
Elixir framework for building production-ready AI agents and LLM applications: type-safe schemas with JSON Schema generation, tool calling, streaming, multi-agent coordination, guardrails, and distributed fault-tolerant sessions, with first-class Anthropic Claude support.
Current section
Files
Jump to
Current section
Files
lib/normandy/components/prompt_specification.ex
defmodule Normandy.Components.PromptSpecification do
@moduledoc """
Defines the structure of an agent's system prompt.
Organizes prompts into sections: background (identity), steps (internal process),
output instructions, and dynamic context providers.
"""
use Normandy.Schema
@type t :: %__MODULE__{
background: [String.t()],
steps: [String.t()],
output_instructions: [String.t()],
context_providers: %{atom() => struct()}
}
schema do
field(:background, {:array, :string}, default: [])
field(:steps, {:array, :string}, default: [])
field(:output_instructions, {:array, :string}, default: [])
field(:context_providers, {:map, :any}, default: %{})
end
end