# Jido v2.3.0 - 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 & Routing](signals.md) - [Directives](directives.md) - [State Operations](state-ops.md) - [Plugins](plugins.md) - [Strategies](strategies.md) - [Runtime](runtime.md) - Coordination - [Await & 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 & 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 & 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.