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