Fast harness for agents. Latin for "guide". Short enough for the CLI!
Dux is a lightning-fast, highly modular execution engine for running and testing Large Language Model (LLM) agents locally. Build and iterate on intricate provider streams, tool abstractions, and recursive convergence loops straight from the synchronous terminal.
- Agnostic LLM Engine: Implemented via a deep recursive
adaptermapping sequence, allowing your pipeline to scale continuously acrossstatictesting mocks, rawollamadaemon inference endpoints, and beyond! - Dynamic Viper Configurations: Connect any provider natively via
config.yamlusing powerful generic ID-based mappings without muddying CLI source boundaries. - Lightning Fast CLI Repl: Run
dux chatcompletely locally. Dux's synchronous stream REPL flawlessly maps raw output chunks linearly without ugly asynchronous rendering race conditions. - Strictly Typed Tool Abstractions: Write Go functions and easily export them to LLMs directly via standard JSON Schema mappings natively supported by Go interfaces.
# Clone the repository
git clone https://github.com/andrewhowdencom/dux.git
cd dux
# Compile Dux
go build
# Set up your environment (Targeting your local Ollama)
cp config.example.yaml ~/.config/dux/config.yaml
# Start a multi-modal Agent
./dux run qa
# Or execute a one-shot query
echo "What time is it?" | ./dux invoke qaFor extensive project breakdown covering development, architecture, and guides, refer to our Diátaxis-compliant documentation structure within docs/:
- README (You are here!)
docs/tutorials/: Step-by-step agent integration lessons.docs/how-to/: Quick answers for complex LLM deployment configuration.docs/reference/: API specifications and JSON Schema mappings.docs/explanation/: Deep dives into LLM "convergence loop" theory and history abstractions.