# Jido v2.3.1 - Table of Contents

> An autonomous agent framework for Elixir, built for workflows and multi-agent systems.

## Guides

- [Home](readme.md)

- Start Here
  - [Quick Start](getting-started.md)
  - [Core Loop](core-loop.md)
  - [Choosing a Runtime Pattern](runtime-patterns.md)
  - [Your First Plugin](your-first-plugin.md)
  - [Your First Sensor](your-first-sensor.md)
  - [Seeing What Happened](observability-intro.md)

- Fundamentals
  - [Agents](agents.md)
  - [Actions](actions.md)
  - [Signals &amp; Routing](signals.md)
  - [Directives](directives.md)
  - [State Operations](state-ops.md)
  - [Plugins](plugins.md)
  - [Strategies](strategies.md)
  - [Runtime](runtime.md)

- Coordination
  - [Await &amp; Coordination](await.md)
  - [Multi-Agent Orchestration](orchestration.md)
  - [Pods](pods.md)
  - [Multi-Tenancy](multi-tenancy.md)

- Operations
  - [Debugging](debugging.md)
  - [Observability](observability.md)
  - [Testing](testing.md)
  - [Configuration](configuration.md)
  - [Persistence &amp; Storage](storage.md)
  - [Worker Pools](worker-pools.md)
  - [Scheduling](scheduling.md)

- Extending
  - [Sensors](sensors.md)
  - [Discovery](discovery.md)
  - [Custom Strategies](custom-strategies.md)

- Integrations
  - [Phoenix Integration](phoenix-integration.md)
  - [Ash Integration](ash-integration.md)

- Advanced
  - [Orphans &amp; Adoption](orphans.md)
  - [FSM Strategy Deep Dive](fsm-strategy.md)
  - [Error Handling](errors.md)

- Migration
  - [Migrating from 1.x](migration.md)

- Project
  - [Contributing](contributing.md)
  - [Changelog](changelog.md)
  - [Apache 2.0 License](license.md)

## Modules

- [Jido.Agent.Directive.StartSensor](Jido.Agent.Directive.StartSensor.md): Start or replace a tagged sensor runtime owned by the current agent runtime.
- [Jido.Agent.Directive.StopSensor](Jido.Agent.Directive.StopSensor.md): Stop a tagged sensor runtime owned by the current agent runtime.
- [Jido.Agent.Schedules](Jido.Agent.Schedules.md): Utilities for expanding agent-level schedule declarations.
- [Jido.Agent.Strategy.InstructionTracking](Jido.Agent.Strategy.InstructionTracking.md): Shared instruction-thread tracking helpers for strategy implementations.
- [Jido.AgentServer.Signal.SensorExit](Jido.AgentServer.Signal.SensorExit.md): Emitted when a managed sensor runtime exits unexpectedly.
- [Jido.Config.Defaults](Jido.Config.Defaults.md): Centralized default values for runtime behavior and observability.
- [Jido.Observe.EventContract](Jido.Observe.EventContract.md): Minimal helpers for validating custom telemetry event contracts.
- [Jido.Pod.Mutation](Jido.Pod.Mutation.md): Public mutation types for live pod topology changes.

- [Jido.Pod.Mutation.AddNode](Jido.Pod.Mutation.AddNode.md): Add a new node to a running pod topology.

- [Jido.Pod.Mutation.Plan](Jido.Pod.Mutation.Plan.md): Internal runtime plan produced for a live pod mutation.

- [Jido.Pod.Mutation.Planner](Jido.Pod.Mutation.Planner.md): Pure planner for live pod mutations.

- [Jido.Pod.Mutation.RemoveNode](Jido.Pod.Mutation.RemoveNode.md): Remove a node and its owned subtree from a running pod topology.

- [Jido.Pod.Mutation.Report](Jido.Pod.Mutation.Report.md): Report returned from live pod mutation calls.

- [Jido.RuntimeStore](Jido.RuntimeStore.md): Instance-scoped runtime key/value store for mutable Jido coordination state.
- [Jido.Thread.EntryNormalizer](Jido.Thread.EntryNormalizer.md): Shared entry normalization for thread and storage append paths.

- Core
  - [Jido](Jido.md): 自動 (Jido) - An autonomous agent framework for Elixir, built for workflows and
multi-agent systems.
  - [Jido.Agent](Jido.Agent.md): An Agent is an immutable data structure that holds state and can be updated
via commands. This module provides a minimal, data-first API
  - [Jido.AgentServer](Jido.AgentServer.md): GenServer runtime for Jido agents.
  - [Jido.Await](Jido.Await.md): Synchronous helpers for waiting on Jido agents from non-agent code.
  - [Jido.Pod](Jido.Pod.md): Pod wrapper macro and runtime helpers.
  - [Jido.Pod.Topology](Jido.Pod.Topology.md): Canonical pod topology data structure.
  - [Jido.Pod.Topology.Link](Jido.Pod.Topology.Link.md): Canonical link definition for a pod topology.
  - [Jido.Pod.Topology.Node](Jido.Pod.Topology.Node.md): Canonical node definition for a pod topology.

- Strategies
  - [Jido.Agent.Strategy](Jido.Agent.Strategy.md): Behaviour for agent execution strategies.
  - [Jido.Agent.Strategy.Direct](Jido.Agent.Strategy.Direct.md): Default execution strategy that runs instructions immediately and sequentially.
  - [Jido.Agent.Strategy.FSM](Jido.Agent.Strategy.FSM.md): An execution-phase finite state machine strategy.
  - [Jido.Agent.Strategy.FSM.Machine](Jido.Agent.Strategy.FSM.Machine.md): Generic FSM machine that uses configurable transitions.
  - [Jido.Agent.Strategy.Snapshot](Jido.Agent.Strategy.Snapshot.md): Stable, cross-strategy execution snapshot.
  - [Jido.Agent.Strategy.State](Jido.Agent.Strategy.State.md): Helper module for managing strategy-specific state within an Agent.

- Plugins
  - [Jido.Plugin](Jido.Plugin.md): A Plugin is a composable capability that can be attached to an agent.
  - [Jido.Plugin.Config](Jido.Plugin.Config.md): Resolves and validates plugin configuration.
  - [Jido.Plugin.Instance](Jido.Plugin.Instance.md): Represents a normalized plugin instance attached to an agent.
  - [Jido.Plugin.Manifest](Jido.Plugin.Manifest.md): The manifest representation of a plugin's metadata and capabilities.
  - [Jido.Plugin.Requirements](Jido.Plugin.Requirements.md): Validates plugin requirements at agent creation time.
  - [Jido.Plugin.Routes](Jido.Plugin.Routes.md): Utilities for expanding and validating plugin routes.
  - [Jido.Plugin.Schedules](Jido.Plugin.Schedules.md): Utilities for expanding and managing plugin schedules.
  - [Jido.Plugin.Spec](Jido.Plugin.Spec.md): The normalized representation of a plugin attached to an agent.
  - [Jido.Pod.Plugin](Jido.Pod.Plugin.md): Default singleton plugin for pod-wrapped agents.

- Agent Identity
  - [Jido.Agent.Identity](Jido.Agent.Identity.md): Agent identity state for lifecycle/profile facts.
  - [Jido.Agent.Identity.Actions.Evolve](Jido.Agent.Identity.Actions.Evolve.md): Evolves agent identity profile facts over simulated time.
  - [Jido.Agent.Identity.Agent](Jido.Agent.Identity.Agent.md): Helper for managing identity state in an agent.
  - [Jido.Agent.Identity.Plugin](Jido.Agent.Identity.Plugin.md): Default singleton plugin for agent identity state management.
  - [Jido.Agent.Identity.Profile](Jido.Agent.Identity.Profile.md): Helpers for reading and writing identity profile fields.

- Directives
  - [Jido.Agent.Directive](Jido.Agent.Directive.md): Typed directive structs for `Jido.Agent`.
  - [Jido.Agent.Directive.AdoptChild](Jido.Agent.Directive.AdoptChild.md): Attach an orphaned or unattached child agent to the current parent.
  - [Jido.Agent.Directive.Cron](Jido.Agent.Directive.Cron.md): Register or update a recurring cron job for this agent.
  - [Jido.Agent.Directive.CronCancel](Jido.Agent.Directive.CronCancel.md): Cancel a previously registered cron job for this agent by job_id.
  - [Jido.Agent.Directive.Emit](Jido.Agent.Directive.Emit.md): Dispatch a signal via `Jido.Signal.Dispatch`.
  - [Jido.Agent.Directive.Error](Jido.Agent.Directive.Error.md): Signal an error from agent command processing.
  - [Jido.Agent.Directive.RunInstruction](Jido.Agent.Directive.RunInstruction.md): Execute a `%Jido.Instruction{}` at runtime and route the result back to `cmd/2`.
  - [Jido.Agent.Directive.Schedule](Jido.Agent.Directive.Schedule.md): Schedule a delayed message to the agent.
  - [Jido.Agent.Directive.Spawn](Jido.Agent.Directive.Spawn.md): Spawn a generic BEAM child process under the agent's supervisor.
  - [Jido.Agent.Directive.SpawnAgent](Jido.Agent.Directive.SpawnAgent.md): Spawn a child agent with parent-child hierarchy tracking.
  - [Jido.Agent.Directive.Stop](Jido.Agent.Directive.Stop.md): Request that the agent process stop.
  - [Jido.Agent.Directive.StopChild](Jido.Agent.Directive.StopChild.md): Request that a tracked child agent stop gracefully.

- State Operations
  - [Jido.Agent.StateOp](Jido.Agent.StateOp.md): State operations that strategies handle to update agent state.
  - [Jido.Agent.StateOp.DeleteKeys](Jido.Agent.StateOp.DeleteKeys.md): Delete top-level keys from the agent's state.
  - [Jido.Agent.StateOp.DeletePath](Jido.Agent.StateOp.DeletePath.md): Delete a value at a nested path in the agent's state.
  - [Jido.Agent.StateOp.ReplaceState](Jido.Agent.StateOp.ReplaceState.md): Replace the agent's state wholesale (no merge).
  - [Jido.Agent.StateOp.SetPath](Jido.Agent.StateOp.SetPath.md): Set a value at a nested path in the agent's state.
  - [Jido.Agent.StateOp.SetState](Jido.Agent.StateOp.SetState.md): Deep merge attributes into the agent's state.
  - [Jido.Agent.StateOps](Jido.Agent.StateOps.md): Centralized state operation application for strategies.

- Agent Internals
  - [Jido.Agent.DefaultPlugins](Jido.Agent.DefaultPlugins.md): Resolves default plugin lists for agents.
  - [Jido.Agent.State](Jido.Agent.State.md): Internal helper module for agent state management.
  - [Jido.AgentServer.ChildInfo](Jido.AgentServer.ChildInfo.md): Information about a child agent in the logical hierarchy.
  - [Jido.AgentServer.DirectiveExec](Jido.AgentServer.DirectiveExec.md): Protocol for executing directives in AgentServer.
  - [Jido.AgentServer.Lifecycle](Jido.AgentServer.Lifecycle.md): Internal behavior for AgentServer lifecycle hooks.
  - [Jido.AgentServer.Lifecycle.Keyed](Jido.AgentServer.Lifecycle.Keyed.md): Lifecycle implementation for keyed/pooled agents.
  - [Jido.AgentServer.Lifecycle.Noop](Jido.AgentServer.Lifecycle.Noop.md): Default no-op lifecycle implementation.
Used when no lifecycle management is needed.

  - [Jido.AgentServer.Options](Jido.AgentServer.Options.md): Options for starting an AgentServer.
  - [Jido.AgentServer.ParentRef](Jido.AgentServer.ParentRef.md): Reference to a logical parent agent in Jido hierarchy tracking.
  - [Jido.AgentServer.Signal.ChildStarted](Jido.AgentServer.Signal.ChildStarted.md): Emitted by a child agent when it finishes initialization and becomes ready.
  - [Jido.AgentServer.Signal.Orphaned](Jido.AgentServer.Signal.Orphaned.md): Emitted when a child survives logical parent death and becomes orphaned.
  - [Jido.AgentServer.SignalRouter](Jido.AgentServer.SignalRouter.md): Builds a unified Jido.Signal.Router from strategy, agent, and plugin routes.
  - [Jido.AgentServer.State](Jido.AgentServer.State.md): Internal state for AgentServer GenServer.
  - [Jido.AgentServer.State.Lifecycle](Jido.AgentServer.State.Lifecycle.md): Lifecycle state for pool-managed agents.
  - [Jido.AgentServer.Status](Jido.AgentServer.Status.md): Runtime status for an agent process.

- Built-in Actions
  - [Jido.Actions.Control](Jido.Actions.Control.md): Base actions for control flow and signal handling.
  - [Jido.Actions.Control.Broadcast](Jido.Actions.Control.Broadcast.md): Broadcast a signal to multiple targets via PubSub.
  - [Jido.Actions.Control.Cancel](Jido.Actions.Control.Cancel.md): Handle cancellation requests.
  - [Jido.Actions.Control.Forward](Jido.Actions.Control.Forward.md): Forward a signal to another agent.
  - [Jido.Actions.Control.Noop](Jido.Actions.Control.Noop.md): No-operation action that acknowledges a signal without changes.
  - [Jido.Actions.Control.Reply](Jido.Actions.Control.Reply.md): Reply to the source of the current signal.
  - [Jido.Actions.Lifecycle](Jido.Actions.Lifecycle.md): Base actions for agent lifecycle and coordination patterns.
  - [Jido.Actions.Lifecycle.NotifyParent](Jido.Actions.Lifecycle.NotifyParent.md): Emit a signal back to the spawning parent agent.
  - [Jido.Actions.Lifecycle.NotifyPid](Jido.Actions.Lifecycle.NotifyPid.md): Emit a signal to an arbitrary process by PID.
  - [Jido.Actions.Lifecycle.SpawnChild](Jido.Actions.Lifecycle.SpawnChild.md): Spawn a child agent with hierarchy tracking.
  - [Jido.Actions.Lifecycle.StopChild](Jido.Actions.Lifecycle.StopChild.md): Request graceful termination of a tracked child agent.
  - [Jido.Actions.Lifecycle.StopSelf](Jido.Actions.Lifecycle.StopSelf.md): Request graceful termination of the current agent process.
  - [Jido.Actions.Scheduling](Jido.Actions.Scheduling.md): Base actions for scheduling delayed signals and timeouts.
  - [Jido.Actions.Scheduling.CancelCron](Jido.Actions.Scheduling.CancelCron.md): Cancel a scheduled cron job by its ID.
  - [Jido.Actions.Scheduling.ScheduleCron](Jido.Actions.Scheduling.ScheduleCron.md): Schedule a recurring signal using cron expression.
  - [Jido.Actions.Scheduling.ScheduleSignal](Jido.Actions.Scheduling.ScheduleSignal.md): Schedule a signal to be delivered after a delay.
  - [Jido.Actions.Scheduling.ScheduleTimeout](Jido.Actions.Scheduling.ScheduleTimeout.md): Schedule a timeout signal for deadline handling.
  - [Jido.Actions.Status](Jido.Actions.Status.md): Base actions for agent status management.
  - [Jido.Actions.Status.MarkCompleted](Jido.Actions.Status.MarkCompleted.md): Mark the agent as completed with an optional result.
  - [Jido.Actions.Status.MarkFailed](Jido.Actions.Status.MarkFailed.md): Mark the agent as failed with an error reason.
  - [Jido.Actions.Status.MarkIdle](Jido.Actions.Status.MarkIdle.md): Mark the agent as idle and ready for work.
  - [Jido.Actions.Status.MarkWorking](Jido.Actions.Status.MarkWorking.md): Mark the agent as actively working.
  - [Jido.Actions.Status.SetStatus](Jido.Actions.Status.SetStatus.md): Set the agent's status field to any value.

- Sensors
  - [Jido.Sensor](Jido.Sensor.md): Defines the behaviour and metadata macro for Sensors in the Jido system.
  - [Jido.Sensor.Runtime](Jido.Sensor.Runtime.md): GenServer runtime for Jido sensors.
  - [Jido.Sensor.Spec](Jido.Sensor.Spec.md): The normalized representation of a sensor specification.
  - [Jido.Sensors.Heartbeat](Jido.Sensors.Heartbeat.md): A sensor that emits heartbeat signals at configurable intervals.

- Thread
  - [Jido.Thread](Jido.Thread.md): An append-only log of interaction entries.
  - [Jido.Thread.Agent](Jido.Thread.Agent.md): Helper for managing Thread in agent state.
  - [Jido.Thread.Entry](Jido.Thread.Entry.md): A single entry in a Thread. Typed by `kind` with kind-specific payload.
  - [Jido.Thread.Plugin](Jido.Thread.Plugin.md): Default singleton plugin for thread state management.
  - [Jido.Thread.Store](Jido.Thread.Store.md): Persistence behavior for Thread storage.
  - [Jido.Thread.Store.Adapters.InMemory](Jido.Thread.Store.Adapters.InMemory.md): Pure in-memory adapter storing threads in a map.
  - [Jido.Thread.Store.Adapters.JournalBacked](Jido.Thread.Store.Adapters.JournalBacked.md): Thread persistence adapter backed by Jido.Signal.Journal.

- Memory
  - [Jido.Memory](Jido.Memory.md): An agent's mutable cognitive substrate — what the agent currently believes and wants.
  - [Jido.Memory.Agent](Jido.Memory.Agent.md): Helper for managing Memory in agent state.
  - [Jido.Memory.Plugin](Jido.Memory.Plugin.md): Default singleton plugin for memory state management.
  - [Jido.Memory.Space](Jido.Memory.Space.md): The unit of memory — a named container with typed data and revision tracking.

- Storage
  - [Jido.Agent.InstanceManager](Jido.Agent.InstanceManager.md): Keyed singleton registry with lifecycle management and optional storage-backed hibernation.
  - [Jido.Persist](Jido.Persist.md): Coordinates hibernate/thaw operations for agents with thread support.
  - [Jido.Storage](Jido.Storage.md): Unified storage behaviour for agent checkpoints and thread journals.
  - [Jido.Storage.ETS](Jido.Storage.ETS.md): ETS-based storage adapter for agent checkpoints and thread journals.
  - [Jido.Storage.File](Jido.Storage.File.md): File-based storage adapter for Jido.
  - [Jido.Storage.Redis](Jido.Storage.Redis.md): Redis-based storage adapter for agent checkpoints and thread journals.

- Observability
  - [Jido.Debug](Jido.Debug.md): Per-instance debug mode for Jido agents.
  - [Jido.Observe](Jido.Observe.md): Unified observability facade for Jido agents.
  - [Jido.Observe.Config](Jido.Observe.Config.md): Resolves observability configuration with per-instance support.
  - [Jido.Observe.Log](Jido.Observe.Log.md): Threshold-based observability logging compatibility shim.
  - [Jido.Observe.NoopTracer](Jido.Observe.NoopTracer.md): Default no-op tracer implementation.
  - [Jido.Observe.SpanCtx](Jido.Observe.SpanCtx.md): Span context for observability tracking.
  - [Jido.Observe.Tracer](Jido.Observe.Tracer.md): Behaviour for tracing backends.
  - [Jido.Telemetry](Jido.Telemetry.md): Production-ready telemetry for Jido Agent operations.
  - [Jido.Telemetry.Config](Jido.Telemetry.Config.md): Deprecated. Use `Jido.Observe.Config` instead.
  - [Jido.Telemetry.Formatter](Jido.Telemetry.Formatter.md): Structured log formatting utilities for the Jido telemetry system.
  - [Jido.Tracing.Context](Jido.Tracing.Context.md): Process-level trace context management for signal tracing.
  - [Jido.Tracing.Trace](Jido.Tracing.Trace.md): Trace data helpers for signal correlation.

- Utilities
  - [Jido.Agent.WorkerPool](Jido.Agent.WorkerPool.md): Poolboy-based checkout/checkin worker pool for pre-warmed Jido agents.
  - [Jido.Discovery](Jido.Discovery.md): Fast, persistent catalog of Jido components (Actions, Sensors, Agents, Plugins, Demos).
  - [Jido.Error](Jido.Error.md): Unified error handling for the Jido ecosystem using Splode.
  - [Jido.Scheduler](Jido.Scheduler.md): Per-agent cron scheduling with internal timer processes.
  - [Jido.Util](Jido.Util.md): A collection of utility functions for the Jido framework.

- Exceptions
  - [Jido.Error.CompensationError](Jido.Error.CompensationError.md): Error for saga compensation failures.
  - [Jido.Error.ExecutionError](Jido.Error.ExecutionError.md): Error for runtime execution failures.
  - [Jido.Error.InternalError](Jido.Error.InternalError.md): Error for unexpected internal failures.
  - [Jido.Error.RoutingError](Jido.Error.RoutingError.md): Error for signal routing and dispatch failures.
  - [Jido.Error.TimeoutError](Jido.Error.TimeoutError.md): Error for operation timeouts.
  - [Jido.Error.ValidationError](Jido.Error.ValidationError.md): Error for validation failures.

## Mix Tasks

- [mix jido.gen.agent](Mix.Tasks.Jido.Gen.Agent.md): Generates a Jido Agent module.
- [mix jido.gen.plugin](Mix.Tasks.Jido.Gen.Plugin.md): Generates a Jido Plugin module.
- [mix jido.gen.sensor](Mix.Tasks.Jido.Gen.Sensor.md): Generates a Jido Sensor module.
- [mix jido.install](Mix.Tasks.Jido.Install.md): Installs and configures Jido in your project.

