Hugin
A framework for building agents with a focus on longer running, creative, reasoning tasks.
State Machine Architecture
The progression of an agent is managed by a state machine. Every step is a state on a stack. Easily replay, step-through, branch, and debug your agent's reasoning.
Multi-Agent Native
Built-in support for parallel agents, synchronous and asynchronous agent-to-agent communication and shared state with namespaces.
Branching
Support for roll-outs and parallel reasoning traces using branching. Every branch is an isolated state machine with a shared history.
Short- and Long-term Memory
Long-term memory across sessions through artifacts, short-term memory through the stack and dynamic context rendering.
Human-in-the-Loop
Built-in agent-human interactions enabling agents to prompt and interact with humans and for humans to provide unprompted input and guidance.
Session Persistence
Full execution history saved to disk. Replay from any state, resume interrupted runs, inspect past decisions.
Visual Debugging
Real-time monitoring of agent flows, tool calls, and decision trees. Understand exactly what your agent is doing.
Simple Configuration
YAML-based configs for agents, tasks, and tools. Python for custom tool implementations.
Batteries Included
Built-in tools, multiple LLM providers (Anthropic, OpenAI, Ollama), and an interactive CLI to create agents in seconds.
Getting Started Quickly
Install Hugin and let the agent builder guide you through creating your first agent.
# Install Hugin
pip install gimle-hugin
# Create and run your first agent
hugin create
Or create one manually:
# my_agent/configs/my_agent.yaml
name: my_agent
system_template: my_agent
llm_model: haiku-latest
tools:
- builtins.finish:finish
# my_agent/templates/my_agent.yaml
name: my_agent
template: |
You are an expert data analyst.
Your task is to analyze the data and provide insights.
# my_agent/tasks/my_task.yaml
name: my_task
parameters:
data:
type: string
description: The data to analyze
required: true
prompt: "Analyze the data and provide insights: {{ data.value }}"
hugin run --task my_task --task-path ./my_agent