Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Build interactive AI agents in Elixir with OTP supervision, middleware composition, human-in-the-loop approvals, sub-agent delegation, and real-time Phoenix LiveView integration. Built on LangChain.
| Date | Stars |
|---|---|
| 2026-07-31 | 261 |
| 2026-08-01 | 261 |
| 2026-08-04 | 261 |
| 2026-08-05 | 262 |
| 2026-08-06 | 262 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
60.0
growth rate 0.00%/day
# Sagents
> **Sage Agents** - Combining the wisdom of a [Sage](https://en.wikipedia.org/wiki/Sage_(philosophy)) with the power of LLM-based Agents
A sage is a person who has attained wisdom and is often characterized by sound judgment and deep understanding. Sagents brings this philosophy to AI agents: building systems that don't just execute tasks, but do so with thoughtful human oversight, efficient resource management, and extensible architecture.
## Key Features
- **Human-In-The-Loop (HITL)** - Customizable permission system that pauses execution for approval on sensitive operations, including parallel tool calls where each action can be individually approved/rejected. Works across both main agents and SubAgents — interrupts propagate up to the parent for approval and resume seamlessly
- **Composable Execution Modes** - Agent run loops are explicit Elixir pipelines built from reusable steps. Mix and match built-in steps (`call_llm`, `execute_tools`, `check_pre_tool_hitl`, `propagate_state`, etc.) or write your own. Different agents can use different modes in the same application
- **Structured Agent Completion (`until_tool`)** - Force agents to loop until they call a specific tool, returning the result as a clean `{:ok, state, %ToolResult{}}` tuple. No more hoping the LLM follows your output format — get structured data you can pattern match on
- **SubAgents** - Delegate complex tasks to specialized child agents for efficient context management and parallel execution
- **GenServer Architecture** - Each agent runs as a supervised OTP process with automatic lifecycle management
- **Phoenix.Presence Integration** - Smart resource management that knows when to shut down idle agents
- **PubSub Real-Time Events** - Stream agent state, messages, and events to multiple LiveView subscribers
- **Middleware System** - Extensible plugin architecture for adding capabilities to agents, including composable observability callbacks for OpenTelemetry, metrics, or custom logging
- **Cluster-Aware Distribution** - Optional Horde-based distribution for running agents across a cluster of nodes, with automatic state migration and configurable membership (role-scoped, or partitioned by region/grouping), or run locally on a single node (the default)
- **State Persistence** - Save and restore agent conversations via optional behaviour modules for agent state and display messages
- **Virtual Filesystem** - Isolated, in-memory file operations with optional persistence
**See it in action!** Try the [agents_demo](https://github.com/sagents-ai/agents_demo) application to experience Sagents interactively, or add the [sagents_live_debugger](https://github.com/sagents-ai/sagents_live_debugger) to your app for real-time insights into agent configuration, state, and event flows.

*The [AgentsDemo](https://github.com/sagents-ai/agents_demo) chat interface showing the use of a virtual filesystem, tool call execution, composable middleware, supervised Agentic GenServer assistant, and much more!*
## Who Is This For?
Sagents is designed for Elixir developers building **interactive AI applications** where:
- Users have real-time conversations with AI agents
- Human oversight is required for certain operations (file deletes, API calls, etc.)
- Multiple concurrent conversations need isolated agent processes
- Agent state must persist across sessions
- Real-time UI updates are essential (Phoenix LiveView)
If you're building a simple CLI tool or batch processing pipeline, the core [LangChain](https://github.com/brainlid/langchain) library may be sufficient. Sagents adds the orchestration layer needed for production interactive applications.
**What about non-interactive agents?** Certainly! Sagents works perfectly well for background agents without a UI. You'd simply skip the UI state management helpers and omit middleware likeExcerpt of 33,026 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:f7c88e37034e1cbb, llm:Topics: agent, agentic, ai, elixir, hitl, human-in-the-loop, llm, middleware; Description: Build interactive AI agents in Elixir with OTP supervision, middleware composition, human-in-the-loop approvals, sub-agent delegation, and real-time Phoenix LiveView integration. Built on LangChain.
matched fp:f7c88e37034e1cbb, llm:Topics: agent, agentic, ai, elixir, hitl, human-in-the-loop, llm, middleware; Description: Build interactive AI agents in Elixir with OTP supervision, middleware composition, human-in-the-loop approvals, sub-agent delegation, and real-time Phoenix LiveView integration. Built on LangChain.
matched fp:f7c88e37034e1cbb, llm:Topics: agent, agentic, ai, elixir, hitl, human-in-the-loop, llm, middleware; Description: Build interactive AI agents in Elixir with OTP supervision, middleware composition, human-in-the-loop approvals, sub-agent delegation, and real-time Phoenix LiveView integration. Built on LangChain.