OTP-native
Agents are GenServers. They fit naturally into supervision trees and survive restarts the way the rest of your system does.
Elixir · OTP · LLMs
Condukt treats agents as first-class OTP processes: supervised, observable, and built for production. Stream tokens, call tools, and compose workflows on top of the BEAM.
def deps do
[{:condukt, "~> 0.10"}]
end
Agents are GenServers. They fit naturally into supervision trees and survive restarts the way the rest of your system does.
Real-time event streams for text, thinking, tool calls, and results. Perfect for chat UIs and Phoenix LiveView.
18+ LLM providers via ReqLLM: Anthropic, OpenAI, Google, Groq, Ollama, OpenRouter, xAI, and more.
Read, Bash, Edit, Write out of the box. Define your own tools by
implementing the Condukt.Tool behaviour.
Auto-discovers AGENTS.md, CLAUDE.md, and
local skills so your agents follow your conventions.
Pluggable outbound redactors and compactors keep prompts short and secrets out of provider requests.
{:condukt, "~> 0.10"}
defmodule MyApp.CodingAgent do
use Condukt
@impl true
def tools, do: Condukt.Tools.coding_tools()
end
{:ok, agent} = MyApp.CodingAgent.start_link(
api_key: System.get_env("ANTHROPIC_API_KEY")
)
{:ok, response} = Condukt.run(agent, "Refactor this module.")