# wardrik_core v0.1.0-rc.3 - Table of Contents > A durable agent runtime for Elixir. Agents survive a crash, wait for a person, and run every call through your code. ## Pages - [WardrikCore](readme.md) - [Changelog](changelog.md) - Guides - [Run agents](running-agents.md) - [Tools](tools.md) - [Middleware](middleware.md) - [Who sent a message](principals.md) - [Credentials](credentials.md) - [Tracing](tracing.md) - [Events](events.md) ## Modules - [WardrikCore](WardrikCore.md): A durable agent runtime. Agents survive a crash, wait for a person, and run every call through your code. - [WardrikCore.Authorization](WardrikCore.Authorization.md): A sign-in a person must finish before a call can run. - [WardrikCore.Backends.MemoryStore](WardrikCore.Backends.MemoryStore.md): Keeps agents in memory, until the node stops. For tests and trying things out. - [WardrikCore.Capability](WardrikCore.Capability.md): Gives an agent its tools. - [WardrikCore.Context](WardrikCore.Context.md): The state passed through a turn's middleware. - [WardrikCore.Credentials](WardrikCore.Credentials.md): Gives tools the tokens of the person a turn acts for. For your own API keys, see `WardrikCore.Keys`. - [WardrikCore.Credentials.Request](WardrikCore.Credentials.Request.md): What a `WardrikCore.Credentials` module is asked for: the credential `name`, for `principal`. - [WardrikCore.Event](WardrikCore.Event.md): Something that happened to an agent. - [WardrikCore.Events](WardrikCore.Events.md): Where an agent's events go, such as a log or a broadcast. - [WardrikCore.Keys](WardrikCore.Keys.md): Gives your code its API keys, such as a model provider's. - [WardrikCore.Keys.Request](WardrikCore.Keys.Request.md): What a `WardrikCore.Keys` module is asked for: the key `name`, for the agent's `principal`. - [WardrikCore.Middleware](WardrikCore.Middleware.md): Wraps every step of a turn: the turn, each model call and each tool call. - [WardrikCore.Principal](WardrikCore.Principal.md): Someone or something that can act, such as a person or a service. - [WardrikCore.Resume](WardrikCore.Resume.md): What a parked step sees when it runs again: why it parked, and the `input` and `metadata` given to `WardrikCore.resume/3`. - [WardrikCore.Retry](WardrikCore.Retry.md): Retries model calls and tool calls that a retry may fix. - [WardrikCore.Retry.Exhausted](WardrikCore.Retry.Exhausted.md): Why a turn parks once a model call's retries run out. - [WardrikCore.Span](WardrikCore.Span.md): A span in a turn's trace. The turn is the root, and each step a child. - [WardrikCore.Telemetry](WardrikCore.Telemetry.md): The events an agent emits, to `:telemetry` and to its `WardrikCore.Events` module. - [WardrikCore.Tool](WardrikCore.Tool.md): A tool an agent may call. - [WardrikCore.ToolCall](WardrikCore.ToolCall.md): A tool call the model asked for, with the arguments the model wrote.