# nous v0.17.1 - Table of Contents > AI agent framework for Elixir with multi-provider LLM support ## Pages - [README](readme.md) - [Changelog](changelog.md) - [AI Agent Guide (AGENTS.md)](agents.md) - [Contributing](contributing.md) - [Documentation Hub](docs_index.md) - [Getting Started Guide](getting_started.md) - [Examples Overview](examples_overview.md) - [All Guides](guides_index.md) - [Livebook: Intro to Nous](notebook_intro.md) - [Livebook: Tools & Agents](notebook_tools.md) - [Livebook: RAG & Knowledge Base](notebook_rag.md) - [Skills Guide](skills.md) - [Hooks Guide](hooks.md) - [Code Mode Guide](code_mode.md) - [Phoenix LiveView Integration](liveview_integration.md) - [Production Best Practices](best_practices.md) - [Tool Development Guide](tool_development.md) - [Troubleshooting Guide](troubleshooting.md) - [Migration Guide](migration_guide.md) - [Evaluation Framework Guide](evaluation.md) - [Structured Output Guide](structured_output.md) - [Workflow Engine Guide](workflows.md) - [Memory System Guide](memory.md) - [Context & Dependencies Guide](context.md) - [Transcripts & Compaction](transcript.md) - [Knowledge Base Guide](knowledge_base.md) - [Permissions & Guardrails Guide](permissions.md) - [Observability & Telemetry Guide](observability.md) - [Multi-Agent Teams Guide](teams.md) - [Decision Graph Guide](decisions.md) - [Deep Research Guide](research.md) - [Providers Overview](providers.md) - [Custom Providers Guide](custom_providers.md) - [HTTP Backends Guide](http_backends.md) - [Vertex AI Setup Guide](vertex_ai_setup.md) - [Fallback Chains Guide](fallback.md) - [LLM Council Design (Proposal)](council_design.md) - [HTTP Backend Benchmark](http_backend_benchmark.md) ## Modules - [Nous.CodeMode](Nous.CodeMode.md): Mode resolution and the visible tool set for Code Mode. - [Nous.CodeMode.Scheduler](Nous.CodeMode.Scheduler.md): Orders the tool sub-calls a Code Mode program makes. - [Nous.CodeMode.Sdk](Nous.CodeMode.Sdk.md): Renders the typed SDK a Code Mode program is written against. - [Nous.CodeRuntime](Nous.CodeRuntime.md): Runs a model-authored *program* that calls tools, instead of a chain of individual tool calls. - [Nous.CodeRuntime.Binding](Nous.CodeRuntime.Binding.md): One global the program can call, and the functions hanging off it. - [Nous.CodeRuntime.Failure](Nous.CodeRuntime.Failure.md): Why a program did not produce a value. - [Nous.CodeRuntime.JS](Nous.CodeRuntime.JS.md): Code Mode's JavaScript runtime: an embedded Deno isolate, one per run. - [Nous.CodeRuntime.Request](Nous.CodeRuntime.Request.md): What to run, what it may call, and who gets the answer. - [Nous.CodeRuntime.Result](Nous.CodeRuntime.Result.md): What a program produced. - [Nous.Plugins.LoopGuard](Nous.Plugins.LoopGuard.md): Plugin that notices an agent repeating the same tool call and injects escalating guidance. - [Nous.Sandbox](Nous.Sandbox.md): OS-level confinement for subprocesses spawned by tools. - [Nous.Sandbox.Bwrap](Nous.Sandbox.Bwrap.md): Linux confinement via `bwrap` (bubblewrap). - [Nous.Sandbox.Confined](Nous.Sandbox.Confined.md): The result of `Nous.Sandbox.confine/2`: an argv to spawn plus the data needed to interpret what comes back. - [Nous.Sandbox.Policy](Nous.Sandbox.Policy.md): What a confined subprocess is allowed to do. - [Nous.Sandbox.RunnerFailureRule](Nous.Sandbox.RunnerFailureRule.md): How to recognise "the sandbox runner itself failed" in a child's output. - [Nous.Sandbox.Seatbelt](Nous.Sandbox.Seatbelt.md): macOS confinement via `sandbox-exec` and an inline SBPL profile. - [Nous.Sandbox.Unavailable](Nous.Sandbox.Unavailable.md): The fail-closed default provider: it confines nothing and admits it. - [Nous.Session](Nous.Session.md): A session: an id, its event log, and — if it was forked — where it came from. - [Nous.Session.Event](Nous.Session.Event.md): One durable fact about a session. - [Nous.Session.Inbox](Nous.Session.Inbox.md): Two ordered queues of messages waiting to enter a run: `next_turn` and `next_step`. - [Nous.Session.Invariant](Nous.Session.Invariant.md): Every model-visible request must be reconstructable from the session log. - [Nous.Session.Log](Nous.Session.Log.md): An append-only event log with a model-visible surface derived by folding. - [Nous.Session.Recovery](Nous.Session.Recovery.md): Close what a crash left open in a session log — by appending, never by truncating. - [Nous.Spill](Nous.Spill.md): Content-addressed overflow for oversized tool results. - [Nous.Spill.Local](Nous.Spill.Local.md): Filesystem backend for `Nous.Spill`. - [Nous.Spill.Locator](Nous.Spill.Locator.md): An opaque handle to spilled content. - [Nous.Tools.RunCode](Nous.Tools.RunCode.md): Code Mode's transport tool: runs a model-authored program that calls tools. - [Nous.Usage.Pricing](Nous.Usage.Pricing.md): Per-model token prices for turning a `%Nous.Usage{}` into a dollar figure. - Core API - [Nous](Nous.md): AI agent framework for Elixir with multi-provider LLM support. - [Nous.Agent](Nous.Agent.md): Primary interface for AI agents. - [Nous.Agent.Behaviour](Nous.Agent.Behaviour.md): Behaviour for agent implementations. - [Nous.Agent.Callbacks](Nous.Agent.Callbacks.md): Callback execution for agent events. - [Nous.Agent.Context](Nous.Agent.Context.md): Unified context for agent execution. - [Nous.LLM](Nous.LLM.md): Simple LLM API for direct model calls without agents. - [Nous.ReActAgent](Nous.ReActAgent.md): ReAct (Reasoning and Acting) Agent wrapper with built-in planning and todo management. - [Nous.RunContext](Nous.RunContext.md): Context passed to tools and dynamic prompts during agent execution. - [Nous.Transcript](Nous.Transcript.md): Lightweight conversation history compaction. - Agent Implementations - [Nous.Agents.BasicAgent](Nous.Agents.BasicAgent.md): Default agent implementation with standard tool-calling behavior. - [Nous.Agents.ReActAgent](Nous.Agents.ReActAgent.md): ReAct (Reasoning and Acting) Agent behaviour implementation. - Agent Execution - [Nous.AgentRunner](Nous.AgentRunner.md): Executes agent runs with tool calling loop. - [Nous.AgentServer](Nous.AgentServer.md): GenServer wrapper for Nous agents with PubSub integration. - Model Configuration - [Nous.Fallback](Nous.Fallback.md): Fallback model chain support. - [Nous.Model](Nous.Model.md): Model configuration for LLM providers. - [Nous.ModelDispatcher](Nous.ModelDispatcher.md): Dispatches model requests to the appropriate provider implementation. - Providers - [Nous.Provider](Nous.Provider.md): Behaviour for LLM provider implementations. - [Nous.Providers.Anthropic](Nous.Providers.Anthropic.md): Anthropic Claude provider implementation. - [Nous.Providers.Custom](Nous.Providers.Custom.md): Custom provider for any OpenAI-compatible endpoint. - [Nous.Providers.Gemini](Nous.Providers.Gemini.md): Google Gemini provider implementation. - [Nous.Providers.HTTP](Nous.Providers.HTTP.md): Shared HTTP utilities for all LLM providers. - [Nous.Providers.HTTP.JSONArrayParser](Nous.Providers.HTTP.JSONArrayParser.md): Stream parser for JSON array responses. - [Nous.Providers.LMStudio](Nous.Providers.LMStudio.md): LM Studio local provider implementation. - [Nous.Providers.LlamaCpp](Nous.Providers.LlamaCpp.md): LlamaCpp NIF-based provider for local LLM inference. - [Nous.Providers.Mistral](Nous.Providers.Mistral.md): Mistral AI provider implementation. - [Nous.Providers.OpenAI](Nous.Providers.OpenAI.md): OpenAI-specific provider implementation. - [Nous.Providers.OpenAICompatible](Nous.Providers.OpenAICompatible.md): Generic OpenAI-compatible provider implementation. - [Nous.Providers.SGLang](Nous.Providers.SGLang.md): SGLang provider implementation. - [Nous.Providers.VLLM](Nous.Providers.VLLM.md): vLLM provider implementation. - [Nous.Providers.VertexAI](Nous.Providers.VertexAI.md): Google Vertex AI provider implementation. - Messages & Streaming - [Nous.Message](Nous.Message.md): Represents a message in a conversation with an AI model. - [Nous.Message.ContentPart](Nous.Message.ContentPart.md): Represents a part of message content supporting multi-modal inputs. - [Nous.Messages](Nous.Messages.md): Utilities for working with conversations and message lists. - [Nous.Messages.Anthropic](Nous.Messages.Anthropic.md): Anthropic format message conversion. - [Nous.Messages.Gemini](Nous.Messages.Gemini.md): Gemini format message conversion. - [Nous.Messages.OpenAI](Nous.Messages.OpenAI.md): OpenAI format message conversion. - [Nous.StreamNormalizer](Nous.StreamNormalizer.md): Behaviour for stream chunk normalization. - [Nous.StreamNormalizer.Anthropic](Nous.StreamNormalizer.Anthropic.md): Stream normalizer for Anthropic API. - [Nous.StreamNormalizer.Gemini](Nous.StreamNormalizer.Gemini.md): Stream normalizer for Google Gemini API. - [Nous.StreamNormalizer.LlamaCpp](Nous.StreamNormalizer.LlamaCpp.md): Stream normalizer for LlamaCppEx `%ChatCompletionChunk{}` structs. - [Nous.StreamNormalizer.OpenAI](Nous.StreamNormalizer.OpenAI.md): Default stream normalizer for OpenAI-compatible providers. - [Nous.StreamNormalizer.ToolCallAccumulator](Nous.StreamNormalizer.ToolCallAccumulator.md): Reassembles partial tool-call fragments emitted by `Nous.StreamNormalizer` into the final list shape that `Nous.Messages.from_provider_response/2` produces for the non-streaming path. - HTTP Backends - [Nous.HTTP.Backend](Nous.HTTP.Backend.md): Behaviour for non-streaming HTTP backends. - [Nous.HTTP.Backend.Hackney](Nous.HTTP.Backend.Hackney.md): `Nous.HTTP.Backend` implementation backed by `:hackney`. - [Nous.HTTP.Backend.Req](Nous.HTTP.Backend.Req.md): `Nous.HTTP.Backend` implementation backed by `Req` (which uses `Finch` under the hood). - [Nous.HTTP.Buffer](Nous.HTTP.Buffer.md): Transport-level stream buffer primitives shared by the `Nous.HTTP.StreamBackend` implementations. - [Nous.HTTP.StreamBackend](Nous.HTTP.StreamBackend.md): Behaviour for SSE / chunked streaming HTTP backends. - [Nous.HTTP.StreamBackend.Hackney](Nous.HTTP.StreamBackend.Hackney.md): `Nous.HTTP.StreamBackend` implementation backed by `:hackney` in `[{:async, :once}]` mode for strict pull-based backpressure. - [Nous.HTTP.StreamBackend.Req](Nous.HTTP.StreamBackend.Req.md): `Nous.HTTP.StreamBackend` implementation backed by `Req` (Finch underneath). - Tool System - [Nous.Tool](Nous.Tool.md): Tool definition for agent function calling. - [Nous.Tool.Behaviour](Nous.Tool.Behaviour.md): Behaviour for tool implementations. - [Nous.Tool.ContextUpdate](Nous.Tool.ContextUpdate.md): Structured context updates from tools. - [Nous.Tool.Registry](Nous.Tool.Registry.md): Stateless helpers for building and querying tool collections. - [Nous.Tool.Schema](Nous.Tool.Schema.md): Declarative DSL for defining tool schemas. - [Nous.Tool.Validator](Nous.Tool.Validator.md): Validates tool arguments against JSON schema. - [Nous.ToolCall](Nous.ToolCall.md): Field access for tool-call maps whose keys may be atoms or strings. - [Nous.ToolExecutor](Nous.ToolExecutor.md): Executes tool functions with retry logic, timeout handling, and error handling. - [Nous.ToolSchema](Nous.ToolSchema.md): Convert tools to different schema formats for various providers. - Structured Output - [Nous.OutputSchema](Nous.OutputSchema.md): Structured output support for Nous agents. - [Nous.OutputSchema.Validator](Nous.OutputSchema.Validator.md): Behaviour for structured output validation. - Research Tools - [Nous.Tools.BraveSearch](Nous.Tools.BraveSearch.md): Built-in tool for web search using Brave Search API. - [Nous.Tools.ResearchNotes](Nous.Tools.ResearchNotes.md): Structured note-taking tools for research agents. - [Nous.Tools.Search.Common](Nous.Tools.Search.Common.md): Shared plumbing for search tools (Brave, Tavily, ...). - [Nous.Tools.SearchScrape](Nous.Tools.SearchScrape.md): Tool that fetches and summarizes content from multiple URLs in parallel. - [Nous.Tools.Summarize](Nous.Tools.Summarize.md): Tool for summarizing long text using an LLM call. - [Nous.Tools.TavilySearch](Nous.Tools.TavilySearch.md): Built-in tool for search using Tavily Search API. - [Nous.Tools.WebFetch](Nous.Tools.WebFetch.md): Tool for fetching and extracting readable content from web pages. - Coding Tools - [Nous.Tools.Bash](Nous.Tools.Bash.md): Shell command execution tool. - [Nous.Tools.Env](Nous.Tools.Env.md): Scrubbed environment for tool subprocesses. - [Nous.Tools.FileEdit](Nous.Tools.FileEdit.md): String replacement editing tool. - [Nous.Tools.FileGlob](Nous.Tools.FileGlob.md): File pattern matching tool. - [Nous.Tools.FileGrep](Nous.Tools.FileGrep.md): Content search tool. - [Nous.Tools.FileRead](Nous.Tools.FileRead.md): File reading tool with line numbers. - [Nous.Tools.FileWrite](Nous.Tools.FileWrite.md): File writing tool. - [Nous.Tools.PathGuard](Nous.Tools.PathGuard.md): Path-traversal & symlink-escape protection for filesystem tools. - [Nous.Tools.TodoTools](Nous.Tools.TodoTools.md): Built-in tools for task tracking and progress management. - [Nous.Tools.UrlGuard](Nous.Tools.UrlGuard.md): SSRF protection for outbound HTTP from tools and providers. - Utility Tools - [Nous.Tools.DateTimeTools](Nous.Tools.DateTimeTools.md): Built-in tools for date and time operations. - [Nous.Tools.ReActTools](Nous.Tools.ReActTools.md): Built-in tools for ReAct (Reasoning and Acting) agents. - [Nous.Tools.StringTools](Nous.Tools.StringTools.md): Built-in tools for string manipulation operations. - Testing - [Nous.Tool.Testing](Nous.Tool.Testing.md): Test helpers for tools. - Templates - [Nous.PromptTemplate](Nous.PromptTemplate.md): Safe prompt templates for building messages. - Data Types - [Nous.Types](Nous.Types.md): Core type definitions for Nous AI. - [Nous.Usage](Nous.Usage.md): Tracks resource usage for agent runs. - Infrastructure - [Nous.Errors](Nous.Errors.md): Custom error types for Nous AI. - [Nous.Errors.Base](Nous.Errors.Base.md): Shared construction for Nous exception modules. - [Nous.Errors.ConfigurationError](Nous.Errors.ConfigurationError.md): Error in configuration or missing dependencies. - [Nous.Errors.ExecutionCancelled](Nous.Errors.ExecutionCancelled.md): Error when agent execution is cancelled. - [Nous.Errors.MaxIterationsExceeded](Nous.Errors.MaxIterationsExceeded.md): Error when agent loop exceeds maximum iterations. - [Nous.Errors.ModelError](Nous.Errors.ModelError.md): Error from the model provider API. - [Nous.Errors.ProviderError](Nous.Errors.ProviderError.md): Error from an LLM provider. - [Nous.Errors.RetryInfo](Nous.Errors.RetryInfo.md): Parse server-suggested retry delays from provider error responses. - [Nous.Errors.ToolError](Nous.Errors.ToolError.md): Error during tool execution. - [Nous.Errors.ToolTimeout](Nous.Errors.ToolTimeout.md): Error when a tool execution times out. - [Nous.Errors.UsageLimitExceeded](Nous.Errors.UsageLimitExceeded.md): Error when usage limits are exceeded. - [Nous.Errors.ValidationError](Nous.Errors.ValidationError.md): Error during output validation. - [Nous.PromEx.Plugin](Nous.PromEx.Plugin.md): PromEx plugin for Nous AI agent metrics. - [Nous.Telemetry](Nous.Telemetry.md): Telemetry integration for Nous AI. - Evaluation - [Nous.Eval](Nous.Eval.md): Evaluation framework for Nous AI agents. - [Nous.Eval.Config](Nous.Eval.Config.md): Configuration for the evaluation framework. - [Nous.Eval.Evaluator](Nous.Eval.Evaluator.md): Behaviour for evaluating agent outputs against expected results. - [Nous.Eval.Evaluators.Contains](Nous.Eval.Evaluators.Contains.md): Evaluator that checks if output contains expected substrings or patterns. - [Nous.Eval.Evaluators.ExactMatch](Nous.Eval.Evaluators.ExactMatch.md): Evaluator that requires exact string match. - [Nous.Eval.Evaluators.FuzzyMatch](Nous.Eval.Evaluators.FuzzyMatch.md): Evaluator that uses string similarity for matching. - [Nous.Eval.Evaluators.LLMJudge](Nous.Eval.Evaluators.LLMJudge.md): Evaluator that uses an LLM to judge output quality. - [Nous.Eval.Evaluators.Schema](Nous.Eval.Evaluators.Schema.md): Evaluator that validates structured output against an Ecto schema. - [Nous.Eval.Evaluators.ToolUsage](Nous.Eval.Evaluators.ToolUsage.md): Evaluator that verifies correct tool usage by the agent. - [Nous.Eval.Metrics](Nous.Eval.Metrics.md): Metrics collected during evaluation runs. - [Nous.Eval.Metrics.Summary](Nous.Eval.Metrics.Summary.md): Aggregated metrics summary across multiple evaluation runs. - [Nous.Eval.Optimizer](Nous.Eval.Optimizer.md): Optimization engine for finding optimal agent configurations. - [Nous.Eval.Optimizer.Parameter](Nous.Eval.Optimizer.Parameter.md): Defines optimizable parameters for agent configuration. - [Nous.Eval.Optimizer.SearchSpace](Nous.Eval.Optimizer.SearchSpace.md): Defines and manages the search space for optimization. - [Nous.Eval.Optimizer.Strategies.Bayesian](Nous.Eval.Optimizer.Strategies.Bayesian.md): Bayesian optimization strategy inspired by TPE (Tree-structured Parzen Estimator). - [Nous.Eval.Optimizer.Strategies.GridSearch](Nous.Eval.Optimizer.Strategies.GridSearch.md): Exhaustive grid search optimization strategy. - [Nous.Eval.Optimizer.Strategies.Random](Nous.Eval.Optimizer.Strategies.Random.md): Random search optimization strategy. - [Nous.Eval.Optimizer.Strategy](Nous.Eval.Optimizer.Strategy.md): Behaviour for optimization strategies. - [Nous.Eval.Reporter](Nous.Eval.Reporter.md): Report generation for evaluation results. - [Nous.Eval.Reporter.Console](Nous.Eval.Reporter.Console.md): Console output for evaluation reports. - [Nous.Eval.Reporter.Json](Nous.Eval.Reporter.Json.md): JSON output for evaluation reports. - [Nous.Eval.Result](Nous.Eval.Result.md): Result of a single test case evaluation. - [Nous.Eval.Runner](Nous.Eval.Runner.md): Executes evaluation suites against agents. - [Nous.Eval.Suite](Nous.Eval.Suite.md): A collection of test cases with shared configuration. - [Nous.Eval.SuiteResult](Nous.Eval.SuiteResult.md): Result of running an entire test suite. - [Nous.Eval.TestCase](Nous.Eval.TestCase.md): Defines a single test case for agent evaluation. - [Nous.Eval.YamlLoader](Nous.Eval.YamlLoader.md): Loads evaluation suites and test cases from YAML files. - Hooks System - [Nous.Hook](Nous.Hook.md): Lifecycle interceptors for agent tool execution and request/response flow. - [Nous.Hook.Registry](Nous.Hook.Registry.md): Storage and lookup for hooks, indexed by event type. - [Nous.Hook.Runner](Nous.Hook.Runner.md): Executes hooks for lifecycle events with support for blocking, modification, and external command execution. - Skills System - [Nous.Plugins.Skills](Nous.Plugins.Skills.md): Plugin that integrates the Skills system into the agent lifecycle. - [Nous.Skill](Nous.Skill.md): Reusable instruction/capability packages for agents. - [Nous.Skill.Loader](Nous.Skill.Loader.md): Loads skills from markdown files with YAML frontmatter. - [Nous.Skill.Registry](Nous.Skill.Registry.md): Discovery, management, and activation of skills. - [Nous.Skills.Architect](Nous.Skills.Architect.md): Built-in skill — system architecture design. - [Nous.Skills.CodeReview](Nous.Skills.CodeReview.md): Built-in skill — code review. - [Nous.Skills.CommitMessage](Nous.Skills.CommitMessage.md): Built-in skill — conventional commit messages from diffs. - [Nous.Skills.Debug](Nous.Skills.Debug.md): Built-in skill — systematic debugging. - [Nous.Skills.DocGen](Nous.Skills.DocGen.md): Built-in skill — documentation generation. - [Nous.Skills.EctoPatterns](Nous.Skills.EctoPatterns.md): Built-in skill — Ecto query composition, changesets and data patterns. - [Nous.Skills.ElixirIdioms](Nous.Skills.ElixirIdioms.md): Built-in skill — idiomatic Elixir patterns and anti-patterns. - [Nous.Skills.ElixirTesting](Nous.Skills.ElixirTesting.md): Built-in skill — ExUnit, Mox and property-based testing. - [Nous.Skills.ExplainCode](Nous.Skills.ExplainCode.md): Built-in skill — code explanation. - [Nous.Skills.OtpPatterns](Nous.Skills.OtpPatterns.md): Built-in skill — OTP supervision, GenServer and concurrency design. - [Nous.Skills.PhoenixLiveView](Nous.Skills.PhoenixLiveView.md): Built-in skill — Phoenix LiveView lifecycle, components and anti-patterns. - [Nous.Skills.PythonDataScience](Nous.Skills.PythonDataScience.md): Built-in skill — pandas, NumPy and scikit-learn data pipelines. - [Nous.Skills.PythonFastAPI](Nous.Skills.PythonFastAPI.md): Built-in skill — FastAPI and async Python web services. - [Nous.Skills.PythonSecurity](Nous.Skills.PythonSecurity.md): Built-in skill — Python security review. - [Nous.Skills.PythonTesting](Nous.Skills.PythonTesting.md): Built-in skill — pytest patterns. - [Nous.Skills.PythonTyping](Nous.Skills.PythonTyping.md): Built-in skill — modern Python typing and data containers (3.10+). - [Nous.Skills.PythonUv](Nous.Skills.PythonUv.md): Built-in skill — the `uv` Python package and project manager. - [Nous.Skills.Refactor](Nous.Skills.Refactor.md): Built-in skill — behaviour-preserving refactoring. - [Nous.Skills.SecurityScan](Nous.Skills.SecurityScan.md): Built-in skill — OWASP-oriented security scanning. - [Nous.Skills.TaskBreakdown](Nous.Skills.TaskBreakdown.md): Built-in skill — task decomposition. - [Nous.Skills.TestGen](Nous.Skills.TestGen.md): Built-in skill — test generation from implementation code. - Plugin System - [Nous.Plugin](Nous.Plugin.md): Behaviour for composable agent extensions. - [Nous.Plugins.Decisions](Nous.Plugins.Decisions.md): Plugin for agent decision tracking with a directed graph. - [Nous.Plugins.HumanInTheLoop](Nous.Plugins.HumanInTheLoop.md): Plugin for human-in-the-loop approval of tool calls. - [Nous.Plugins.InputGuard](Nous.Plugins.InputGuard.md): Modular malicious input classifier plugin. - [Nous.Plugins.InputGuard.Policy](Nous.Plugins.InputGuard.Policy.md): Maps severity levels to policy actions for the InputGuard plugin. - [Nous.Plugins.InputGuard.Result](Nous.Plugins.InputGuard.Result.md): Result of an input guard strategy check. - [Nous.Plugins.InputGuard.Strategies.LLMJudge](Nous.Plugins.InputGuard.Strategies.LLMJudge.md): LLM-based input classification strategy. - [Nous.Plugins.InputGuard.Strategies.Pattern](Nous.Plugins.InputGuard.Strategies.Pattern.md): Regex-based pattern matching strategy for detecting prompt injection and jailbreak attempts. - [Nous.Plugins.InputGuard.Strategies.Semantic](Nous.Plugins.InputGuard.Strategies.Semantic.md): Embedding-based semantic similarity strategy for detecting malicious input. - [Nous.Plugins.InputGuard.Strategy](Nous.Plugins.InputGuard.Strategy.md): Behaviour for input guard detection strategies. - [Nous.Plugins.Memory](Nous.Plugins.Memory.md): Plugin for persistent agent memory with hybrid search. - [Nous.Plugins.SubAgent](Nous.Plugins.SubAgent.md): Plugin that enables agents to delegate tasks to specialized sub-agents. - [Nous.Plugins.Summarization](Nous.Plugins.Summarization.md): Plugin for managing context window size via pruning and summarization. - [Nous.Plugins.TeamTools](Nous.Plugins.TeamTools.md): Plugin that provides team communication and coordination tools for agents. - Multi-Agent (Teams) - [Nous.Teams](Nous.Teams.md): Top-level API for multi-agent team orchestration. - [Nous.Teams.Comms](Nous.Teams.Comms.md): PubSub topic helpers and communication utilities for multi-agent teams. - [Nous.Teams.Coordinator](Nous.Teams.Coordinator.md): Team lifecycle GenServer that manages agent processes within a team. - [Nous.Teams.RateLimiter](Nous.Teams.RateLimiter.md): Token-bucket rate limiter for per-team and per-agent usage control. - [Nous.Teams.Role](Nous.Teams.Role.md): Role definitions for team agents. - [Nous.Teams.SharedState](Nous.Teams.SharedState.md): ETS-based shared state for per-team discoveries and file region claims. - [Nous.Teams.Supervisor](Nous.Teams.Supervisor.md): Per-team Supervisor that manages team infrastructure processes. - Decision Graph - [Nous.Decisions](Nous.Decisions.md): Top-level module for the Nous Decision Graph system. - [Nous.Decisions.ContextBuilder](Nous.Decisions.ContextBuilder.md): Builds a text summary of the decision graph for system prompt injection. - [Nous.Decisions.Edge](Nous.Decisions.Edge.md): A directed edge connecting two nodes in the decision graph. - [Nous.Decisions.Node](Nous.Decisions.Node.md): A node in the decision graph. - [Nous.Decisions.Store](Nous.Decisions.Store.md): Storage behaviour for decision graph backends. - [Nous.Decisions.Store.DuckDB](Nous.Decisions.Store.DuckDB.md): DuckDB-backed decision graph store (stub). - [Nous.Decisions.Store.ETS](Nous.Decisions.Store.ETS.md): ETS-backed decision graph store. - Memory - [Nous.Memory](Nous.Memory.md): Top-level module for the Nous Memory System. - [Nous.Memory.Embedding](Nous.Memory.Embedding.md): Behaviour for embedding providers. - [Nous.Memory.Embedding.Bumblebee](Nous.Memory.Embedding.Bumblebee.md): Local on-device embedding provider via Bumblebee + EXLA. - [Nous.Memory.Embedding.Local](Nous.Memory.Embedding.Local.md): Generic local embedding provider for OpenAI-compatible endpoints. - [Nous.Memory.Embedding.OpenAI](Nous.Memory.Embedding.OpenAI.md): OpenAI embedding provider. - [Nous.Memory.Entry](Nous.Memory.Entry.md): Memory entry struct with scoping fields for flexible isolation. - [Nous.Memory.Scope](Nous.Memory.Scope.md): Shared scope-building logic for memory operations. - [Nous.Memory.Scoring](Nous.Memory.Scoring.md): Pure scoring functions for memory retrieval ranking. - [Nous.Memory.Search](Nous.Memory.Search.md): Hybrid search orchestrator for the memory system. - [Nous.Memory.Store](Nous.Memory.Store.md): Storage behaviour for memory backends — including ones that live outside Nous. - [Nous.Memory.Store.Conformance](Nous.Memory.Store.Conformance.md): Contract-conformance tests for a `Nous.Memory.Store` implementation. - [Nous.Memory.Store.DuckDB](Nous.Memory.Store.DuckDB.md): DuckDB-backed memory store (stub). - [Nous.Memory.Store.ETS](Nous.Memory.Store.ETS.md): ETS-backed memory store implementation. - [Nous.Memory.Store.Results](Nous.Memory.Store.Results.md): Result post-processing shared by index-plus-entry-table memory stores. - [Nous.Memory.Store.SQLite](Nous.Memory.Store.SQLite.md): SQLite-backed memory store (stub). - [Nous.Memory.Tools](Nous.Memory.Tools.md): Agent tools for memory operations: remember, recall, forget. - PubSub - [Nous.PubSub](Nous.PubSub.md): Thin PubSub abstraction for Nous. - [Nous.PubSub.Approval](Nous.PubSub.Approval.md): Async HITL approval via PubSub. - Persistence - [Nous.Persistence](Nous.Persistence.md): Behaviour for pluggable persistence backends. - [Nous.Persistence.ETS](Nous.Persistence.ETS.md): ETS-based persistence backend. - Supervision - [Nous.AgentDynamicSupervisor](Nous.AgentDynamicSupervisor.md): `DynamicSupervisor` that owns the lifecycle of every `Nous.AgentServer`. - [Nous.AgentRegistry](Nous.AgentRegistry.md): Unique-key `Registry` mapping session IDs to running `Nous.AgentServer` processes. - Research - [Nous.Research](Nous.Research.md): Deep Research Agent for nous. - [Nous.Research.Coordinator](Nous.Research.Coordinator.md): The main research loop coordinator. - [Nous.Research.Finding](Nous.Research.Finding.md): Represents a research finding from a search/analysis step. - [Nous.Research.Planner](Nous.Research.Planner.md): Decomposes a complex research query into a structured plan with sub-questions. - [Nous.Research.Report](Nous.Research.Report.md): Represents a completed research report with citations. - [Nous.Research.Reporter](Nous.Research.Reporter.md): Generates structured research reports with citations. - [Nous.Research.Searcher](Nous.Research.Searcher.md): Executes a single research sub-question using search tools. - [Nous.Research.Synthesizer](Nous.Research.Synthesizer.md): Consolidates findings from multiple searchers. - Session - [Nous.Session.Config](Nous.Session.Config.md): Configuration for managed agent sessions. - [Nous.Session.Guardrails](Nous.Session.Guardrails.md): Session limit checking and guardrail functions. - Permissions - [Nous.Permissions](Nous.Permissions.md): Tool-level permission policy engine. - [Nous.Permissions.Policy](Nous.Permissions.Policy.md): Permission policy controlling tool access. - Knowledge Base - [Nous.Agents.KnowledgeBaseAgent](Nous.Agents.KnowledgeBaseAgent.md): Knowledge Base Agent behaviour implementation. - [Nous.KnowledgeBase](Nous.KnowledgeBase.md): LLM-compiled personal knowledge base system. - [Nous.KnowledgeBase.Document](Nous.KnowledgeBase.Document.md): A raw ingested document before compilation into wiki entries. - [Nous.KnowledgeBase.Entry](Nous.KnowledgeBase.Entry.md): A compiled wiki entry — the core unit of the knowledge base. - [Nous.KnowledgeBase.HealthReport](Nous.KnowledgeBase.HealthReport.md): Result of a health check audit on the knowledge base. - [Nous.KnowledgeBase.Link](Nous.KnowledgeBase.Link.md): A directed edge in the wiki graph between two entries. - [Nous.KnowledgeBase.Prompts](Nous.KnowledgeBase.Prompts.md): LLM prompt templates for knowledge base compilation, linking, auditing, and output generation. - [Nous.KnowledgeBase.Store](Nous.KnowledgeBase.Store.md): Storage behaviour for knowledge base backends. - [Nous.KnowledgeBase.Store.ETS](Nous.KnowledgeBase.Store.ETS.md): ETS-backed knowledge base store implementation. - [Nous.KnowledgeBase.Tools](Nous.KnowledgeBase.Tools.md): Agent tools for knowledge base operations. - [Nous.KnowledgeBase.Workflows](Nous.KnowledgeBase.Workflows.md): Pre-built workflow DAG pipelines for knowledge base operations. - [Nous.Plugins.KnowledgeBase](Nous.Plugins.KnowledgeBase.md): Plugin for LLM-compiled knowledge base with wiki-style entries. - Workflow Engine - [Nous.Workflow](Nous.Workflow.md): DAG/graph-based workflow engine for orchestrating agents, tools, and control flow. - [Nous.Workflow.Checkpoint](Nous.Workflow.Checkpoint.md): Checkpoint for suspending and resuming workflow execution. - [Nous.Workflow.Checkpoint.ETS](Nous.Workflow.Checkpoint.ETS.md): ETS-backed checkpoint store. Suitable for development and testing. - [Nous.Workflow.Checkpoint.Store](Nous.Workflow.Checkpoint.Store.md): Behaviour for checkpoint storage backends. - [Nous.Workflow.Compiler](Nous.Workflow.Compiler.md): Validates and compiles workflow graphs for execution. - [Nous.Workflow.Edge](Nous.Workflow.Edge.md): A directed edge connecting two nodes in a workflow graph. - [Nous.Workflow.Engine](Nous.Workflow.Engine.md): Core workflow execution engine. - [Nous.Workflow.Graph](Nous.Workflow.Graph.md): Directed graph definition for workflow execution. - [Nous.Workflow.Mermaid](Nous.Workflow.Mermaid.md): Generate Mermaid flowchart diagrams from workflow graphs. - [Nous.Workflow.Node](Nous.Workflow.Node.md): A node in a workflow graph. - [Nous.Workflow.Scratch](Nous.Workflow.Scratch.md): Optional per-workflow ETS table for large/binary data exchange between steps. - [Nous.Workflow.State](Nous.Workflow.State.md): Typed state that flows between workflow nodes. - [Nous.Workflow.Telemetry](Nous.Workflow.Telemetry.md): Telemetry events for workflow execution. - [Nous.Workflow.Trace](Nous.Workflow.Trace.md): Records execution traces for workflow debugging and observability. - Exceptions - [Nous.Session.Invariant.Violation](Nous.Session.Invariant.Violation.md): Raised by `Nous.Session.Invariant.verify/2` in `:strict` mode. ## Mix Tasks - Mix Tasks - [mix nous.eval](Mix.Tasks.Nous.Eval.md): Run evaluation suites for Nous agents. - [mix nous.optimize](Mix.Tasks.Nous.Optimize.md): Run parameter optimization for Nous agent configurations.