Skip to content
Copy page

Build your own agent with Condukt

Condukt is a framework for building agents, not only the coding agent that ships with it. It comes in two implementations that share the same model of what an agent is: an Elixir library for services on the BEAM, and Rust crates with a WebAssembly package for native hosts and browsers.

Pick your stack#

You are building Use Start here
An agent inside an Elixir or Phoenix application The condukt Hex package Elixir library
An agent in a web page or a native Rust host The condukt crates and @tuist/condukt Rust and browser

Both stacks run the same loop: the session owns conversation history and the order of model and tool turns, while the surrounding application owns credentials, tools, isolation, and presentation. Read architecture once and the vocabulary carries across both.

What each stack gives you#

The Elixir library is the fuller of the two. Agents are OTP processes, so they inherit supervision, streaming, and backpressure from the platform:

The Rust side is the portable core. It has no opinion about where inference or tools come from, which is what makes it embeddable:

  • A host-driven session that produces completion requests and validates every transition.
  • A host interface your application drives from any runtime.
  • The @tuist/condukt WebAssembly package for browsers, with inference and tools supplied by the page.
  • Focused crates so a host links only what it needs.

How the coding agent fits#

The terminal coding agent is one application built on the Rust crates. It is a useful reference for what a complete host looks like: it owns provider sign-in, workspace tools, cancellation, and presentation, and leaves conversation state to the session. If you want to use it rather than build on it, follow the coding agent journey instead.