# Nous AI

A production-grade AI agent framework for Elixir and the BEAM, running agents as supervised OTP processes with crash recovery and switching between 13 LLM providers by changing one string.

Nous is an AI agent framework for Elixir with multi-provider LLM support. Swapping a model means changing a `"provider:model"` string such as `"openai:gpt-4"` to `"anthropic:claude-sonnet-4-5-20250929"`, across 13 providers including OpenAI, Anthropic, Gemini, Vertex AI, Groq, Mistral, OpenRouter, Together, Ollama, LM Studio, vLLM, SGLang, LlamaCpp, or any custom OpenAI-compatible endpoint.

Agents run as supervised OTP processes with crash recovery; streaming can opt into a pull-based backpressure backend so a fast LLM cannot overwhelm a slow consumer, and fallback chains activate automatically on transport-layer errors without extra application code. Included features cover tool calling, structured output validated against Ecto schemas, streaming with tool execution, skills, hooks, plugins for human-in-the-loop review and input guards, hybrid keyword-and-vector memory, DAG-based workflows, a knowledge base, deep research, evaluation, and a Phoenix LiveView integration.

It requires Elixir 1.18+ and OTP 27+, and an optional `net_runner` dependency is required specifically for the Bash tool and `:command` hooks, which otherwise fail closed rather than executing unconfined.

Website: https://github.com/nyo16/nous
