Skip to content
Infini-AI-LabPublic

About

Resources

Contributing

Security policy

Stars

283 stars

Watchers

1 watching

Forks

Repository files navigation

Hermit

A Framework for Continual Learning and RSI through Harness Adapter Evolution

License Python Version Website Docs

Get Started · Harness Adapters · Methods · Examples and Recipes · FAQ · Docs


Hermit is a framework for training, evaluating, and deploying harness adapters, with support for multiple harness evolution algorithms. It adapts your agent to new tasks by evolving an external adapter while keeping your existing model and harness unchanged.

What Is a Harness Adapter?

A harness adapter is a trainable external harness (like a plugin with built-in training support). Just as a model adapter adapts a model, a harness adapter adapts an existing agent to new scenarios without modifying its original harness or model.

An agent made of a model and a harness meets a new scenario and fits it poorly. The agent is frozen, a harness adapter plugs into its side, a frame closes around the two as one agent, and task feedback trains the adapter from V0 to V5 while the score curve rises.

Why Harness Adapters?

Many harnesses are black boxes; even open-source ones have carefully designed component interactions that direct evolution can disrupt. Harness adapters offer three practical benefits: (1) No changes to your existing harness: evolve an external adapter through supported extension interfaces, even when both the model and harness are black boxes; (2) Transferable: reuse across compatible models and harnesses; (3) Trainable: learn from task feedback.

A Unified Framework for Harness Evolution

Supported Harness Evolution Methods

Status Methods
✅ Supported GEPA · SkillOpt · MetaWorld Model · Harness² · Continual Harness
🚧 Coming Soon ACE · ReHarness

Hermit provides an RL-style training loop for evolving harness adapters:

Animated training flow: tasks run through the acting agent and harness adapter, feedback reaches the Evolver, and checked updates become the next adapter version.

Easy to Use

Customize Your Training Loop:

Training pseudocode: initialize the adapter, run and judge tasks, call evolver.step, check and commit the proposal, then finalize.

Run from the Command Line:

An animated command overview of installing Hermit, training an adapter, deploying it, and converting it into a plugin.

Get Started

Install

Requires Python 3.11+ and Git.

From Source (Recommended)

Clone the repository to run the examples, reproduce recipes, or develop your own methods.

git clone https://github.com/Infini-AI-Lab/hermit.git
cd hermit
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .

From PyPI

To use the framework CLI and bundled adapter templates in your Python environment:

python -m pip install hermit-harness
hermit --help

The Quick Start below uses files from the source checkout. See Installation for method-specific dependencies.

Quick Start

The included local training walkthrough connects feedback, an adapter update, evaluation, and deployment. A scripted learner reads the judge's feedback and writes the learned rule.

No model account, GPU, or dataset download required.

Train and Evaluate

hermit check --config docs/_examples/first_training/run.yaml
hermit eval --config docs/_examples/first_training/run.yaml --adapter none
hermit train --config docs/_examples/first_training/run.yaml
hermit eval --config docs/_examples/first_training/run.yaml --adapter final

The teaching agent starts by echoing lowercase text. After a failed attempt, the learner writes Output format: uppercase. into ADAPTER.md. Later executions load the updated adapter.

Expected in this demo: baseline 0.0 → final 1.0, with zero execution errors.

This deterministic example verifies the training contract. Its constructed score gain is not a real-model performance result. The example uses trusted local Python with the learner-program sandbox disabled.

Inspect and Deploy

cat .demo/first-training/first-training/checkout/ADAPTER.md
hermit deploy \
  --adapter .demo/first-training/first-training/checkout \
  --workspace .demo/first-training/workspace \
  --host codex
cat .demo/first-training/workspace/AGENTS.md

The generated AGENTS.md contains the learned rule. Start Codex in that workspace to use it.

Full walkthrough, expected outputs, and repeat-run instructions →

Ready for a real agent? Train with an API model · Run OfficeQA · Bring your own task

Examples and Recipes

Harness Evolution Recipes

Train and evaluate harness adapters on benchmarks using different evolution methods. Each task's README reports results; each included adapter's CARD.md records evaluation details.

Method Recipes
MWM CL-Bench database · CL-Bench poker · ServeLearnBench
SkillOpt OfficeQA
GEPA OfficeQA
Harness² OfficeQA (the paper's per-question protocol, Codex as the acting agent)
Continual Harness OfficeQA (policy, sub-agents, skills and memory refined in place, Codex as the acting agent)
Prompt-only CL-Bench database · CL-Bench poker · ServeLearnBench

Walkthroughs: OfficeQA · CL-Bench · ServeLearnBench.

Smaller training demos: Quick Start (offline) · First real-model training. Task folder layout.

Harness Adapter Examples

The finished Lean collaboration adapter coordinates five Codex agents through shared tools, state, and skills to prove Lean theorems together. Walkthrough →

More Starting Points

Use a trained adapter Train for your tasks Build a new method
Deploy to your agent. Use your tasks and feedback. Implement and compare your idea.

What You Need for Each Starting Point

Your goal What Hermit provides What you bring
Use an existing adapter
Use an adapter →
Workspace deployment and native plugin conversion for a compatible adapter. An adapter, a supported agent host, and any dependencies the adapter needs.
Adapt to your own tasks
Train your adapter →
Existing templates and Evolvers, with a Trainer that connects execution, feedback, checks, and versioning. Your tasks, acting agent, evaluator, and model access.
Develop a learning method or adapter design
Build a learning method →
Editable adapter specifications and an Evolver interface for implementing and comparing methods on shared task pipelines. Your adapter design or update algorithm, plus an evaluation task.

Deploy an Adapter Without Training

mkdir -p .demo
cp -R hermit/algorithms/templates/prompt_only .demo/adapter
hermit deploy --adapter .demo/adapter --workspace .demo/codex-workspace --host codex
cat .demo/codex-workspace/AGENTS.md

Train on OfficeQA

Prepare the dataset and model endpoint as described in the OfficeQA recipe. The agent uses SkillOpt's rollout, so install requirements-skillopt.txt; GEPA also needs requirements-gepa.txt. Sandboxed agent Evolvers require Linux with bubblewrap.

python -m pip install -e . -r requirements-skillopt.txt -r requirements-gepa.txt
python examples/officeqa/utils/prepare.py --csv /path/to/officeqa_full.csv --docs /path/to/treasury_bulletins_parsed
hermit check --config examples/officeqa/gepa/smoke.yaml
hermit train --config examples/officeqa/gepa/smoke.yaml
hermit eval --config examples/officeqa/gepa/smoke.yaml --adapter final

Use Your Own Model Server

Models use <backend>/<model id> references. See Model backends for endpoint configuration and requirements.

vllm serve Qwen/Qwen3-30B-A3B-Instruct-2507-FP8 --enable-auto-tool-choice --tool-call-parser hermes
hermit backends check vllm/Qwen/Qwen3-30B-A3B-Instruct-2507-FP8
hermit train --config examples/officeqa/gepa/smoke.yaml model=vllm/Qwen/Qwen3-30B-A3B-Instruct-2507-FP8 llm=vllm/Qwen/Qwen3-30B-A3B-Instruct-2507-FP8

Convert a Trained Adapter into a Plugin

hermit convert --adapter DIR --output OUT --target codex
# Other targets: claude-code, pi, hermes

FAQ

How Is a Harness Adapter Different from a Plugin?

Think of it as a plugin with built-in training support: it defines what can be learned and checked, while Hermit manages updates and versioning from task feedback. A compatible adapter can be deployed as a native plugin.

What Can a Harness Adapter Contain?

A harness adapter can contain instructions, skills, memory, tools, executable code, and agent coordination logic. It can be an entire repository implementing an external harness.

Its specification defines how the agent uses it, which parts can be trained, and how updates are checked—while keeping the original model and harness unchanged.

Why Not Evolve the Original Harness Directly?

Many harnesses are closed-source, and changing a carefully designed harness can disrupt its component interactions. An adapter keeps learned changes in an external layer while leaving the original harness and model fixed.

When Should I Use Hermit?

Use Hermit to deploy an existing adapter, train one on your tasks, or develop and compare harness evolution methods through a shared training interface.

Full FAQ: training, transfer, supported methods, and evaluation →

Contributing

Help extend Hermit by implementing an Evolver, connecting a task, or reporting a reproduction or integration issue.

License

Apache-2.0

About

Resources

Contributing

Security policy

Stars

283 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages