agentic-harness
Open-source Python agent harness for auditable, cost-controlled LLM workflows with YAML playbooks and MCP server support.
Install / Use
claude mcp add frangelbarrera -- npx -y github:frangelbarrera/agentic-harnessIf the server publishes to npm under a different name, use that package instead โ check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Our assessment of agentic-harness
agentic-harness scores 84/100 on our quality scale, 2064th of 2,860 Automation skills we index.
Its MCP Server is 25 KB long, well organised into 39 sections with 15 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 2 days ago, so agentic-harness is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit โ read the skill file before letting an agent act on it.
agentic-harness compared with similar skills
All 4 of these similar skills score higher than agentic-harness; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| agentic-harness (this skill)by frangelbarrera | 84 | 10 | 2d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 108.9k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.9k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 97.0k | today | MCP Server |
Frequently asked questions
- How do I install agentic-harness?
- Run
claude mcp add frangelbarrera -- npx -y github:frangelbarrera/agentic-harness. The install tabs above show the steps for each supported agent. - Which AI agents does agentic-harness work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is agentic-harness safe to use?
- It is Apache-2.0-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is agentic-harness still maintained?
- The repository was last updated 2 days ago, so agentic-harness is actively maintained.
Skill content
View source on GitHubAgentic Harness
The Open Agent Harness
Write the manual. Agentic Harness compiles it into a team of specialists that follows it to the letter.
Manifesto ยท Documentation ยท Examples ยท Contributing
</div> <p align="center"> <img src="docs/agentic-harness-demo.gif" alt="Agentic Harness demo" width="700" /> </p>If your framework needs a debugger for your debugger, it is the wrong framework.
Quick install
pip install arnes
Why Agentic Harness?
Most agent frameworks are black boxes: you can't see the prompts, can't control the costs, and can't audit what happened. Agentic Harness fixes this with three principles:
- Transparency โ Every prompt, decision, and cost is logged to a markdown audit log you can
git diff. - Cost control โ Hierarchical budget enforcement with circuit breaker. An agent can't burn your API budget silently.
- Vendor neutrality โ Default model is local (Ollama, $0). Switching providers is one line. No vendor lock-in.
Who is Agentic Harness for?
- Backend engineers who need production agents with budgets, audit trails, and compliance
- ML engineers who need reproducible benchmarks across providers
- Researchers who need citation-ready, replayable experiments
- DevOps teams who need MCP server integration with auth and rate limiting
Not for you if you want a visual builder, hosted SaaS, or multi-agent crews (v0.4+).
What it looks like
___
/ | _________ ___ _______
/ /| | / ___/ __ `__ \ / ___/ /
/ ___ |/ / / / / / / // /__/ /
/_/ |_/_/ /_/ /_/ /_/ \____/_/
The Open Agent Harness
A manual in YAML:
# manuals/audit-pr.yaml
name: audit-pr
objective: Audit a Pull Request in a structured way
budget_usd: 0.50
steps:
- id: read_diff
specialist: "@reviewer"
input:
pr_number: 1234
repo: "my-org/my-repo"
focus: "Read the diff and structure it for analysis"
- id: security_audit
specialist: "@reviewer"
input: "{{ steps.read_diff.output }}"
focus: "Security review: auth flows, SQL injection, XSS, path traversal"
if_not_met:
action: call
specialist: "@reviewer"
input:
focus: "Comment that the PR is blocked by security review"
- id: parallel
parallel:
- id: lint
specialist: "@reviewer"
input:
code: "{{ steps.read_diff.output }}"
focus: "Code quality: idioms, naming, complexity"
- id: tests
specialist: "@tester"
input:
code: "{{ steps.read_diff.output }}"
focus: "Verify tests cover the PR changes"
- id: synthesis
specialist: "@reviewer"
input:
diff: "{{ steps.read_diff.output }}"
security: "{{ steps.security_audit.output }}"
lint: "{{ steps.parallel.lint.output }}"
tests: "{{ steps.parallel.tests.output }}"
focus: "Synthesize into a final verdict: approve / request_changes / reject"
You run it (mock LLM, no network, $0 cost):
$ arnes run manuals/hello-world.yaml --mock
Agentic Harness compiles the manual into a DAG, wakes the specialists in sequence, applies token optimization and verification layer on every LLM call, and returns:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Agentic Harness โ Executing playbook โ
โ Name: hello-world โ
โ Objective: Demonstrate the basic Agentic Harness flow with a simple manual โ
โ Model: ollama/llama3.2 โ
โ Budget: $0.50 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
2026-07-30 16:42:44 [info] llm_call_tracked budget=0.5 cost_usd=0.0 \
model=ollama/llama3.2 tokens_in=335 tokens_out=15 total_spent=0.0
2026-07-30 16:42:44 [info] llm_call_tracked budget=0.5 cost_usd=0.0 \
model=ollama/llama3.2 tokens_in=370 tokens_out=38 total_spent=0.0
โ
Manual executed
Steps executed: 2
Steps failed: 0
Duration: 0.01s
Tokens in/out: 705/53
Total cost: $0.0000
Run log saved to: arnes-run-hello-world-20260730-164244.md
The run log is a markdown file with every step, every decision, every prompt sent, every response received. You can diff it, version it, share it:
# Audit log Agentic Harness โ Thread 0b6ac82e-2600-42f5-a6ca-62e016df7961
**Total events:** 7
## [2026-07-30T16:42:44] step_started
**Step:** `plan` ยท **Specialist:** `@planner`
## [2026-07-30T16:42:44] assistant_message
**Step:** `plan` ยท **Specialist:** `@planner`
```json
{
"model": "ollama/llama3.2",
"tokens_in": 335,
"tokens_out": 15,
"cost_usd": 0.0,
"cached": false
}
```
## [2026-07-30T16:42:44] step_completed
...
Want to see the whole flow end-to-end? Run the narrated demo script:
./scripts/demo.sh # print to terminal
./scripts/demo.sh --record demo.tape && vhs demo.tape # render a GIF
Features
| Category | Feature | Status |
|---|---|---|
| Agent loop | Stateless reducer (state, event) โ state | โ
v0.1 |
| | ReAct tool-use loop in specialists | โ
v0.1 |
| | AG-UI streaming compatible | ๐ง v0.2 |
| Specialists | 12 pre-built (planner, coder, reviewer, tester, debugger, researcher, security-auditor, devops-engineer, data-scientist, product-manager, market-analyst, cost-estimator) | โ
v0.1 |
| | Playbook Library with 13 domain templates + TaskRouter | โ
v0.1 |
| Playbook DSL | Declarative YAML compiled to DAG | โ
v0.1 |
| | Conditional branches (if_not_met) | โ
v0.1 |
| | Parallel branches (true asyncio.gather) | โ
v0.1 |
| | Retry with backoff | ๐ง v0.2 (schema defined, execution pending) |
| | HITL gates (pause and request approval) | โ ๏ธ v0.1 (auto-reject in non-interactive) |
| | Actor-critic review loop (--loops, step.review) | โ
v0.1 |
| MCP | Agentic Harness as MCP server (Claude Desktop, Cursor, Cline, Zed) | โ
v0.1 |
| | Agentic Harness as MCP client (consume external MCP servers) | ๐ง v0.2 |
| | HTTP/SSE transport | ๐ง v0.2 (stdio only in v0.1) |
| Token Optimization | Automatic model routing by complexity | โ
v0.1 |
| | Semantic cache | โ
v0.1 |
| | Context compaction | ๐ง v0.2 |
| | Few-shot pruning | ๐ง v0.3 |
| Verification Layer | Structured outputs with pydantic | โ
v0.1 |
| | Refusal pattern (no hallucination, says "I don't know") | โ
v0.1 |
| | Confidence gate | ๐ง v0.2 |
| | Critic loop (actor-critic iterative refinement) | โ
v0.1 |
| | Grounding RAG optional | ๐ง v0.4 |
| Cost Guard | Hierarchical budget (org โ project โ agent โ task) | โ
v0.1 |
| | Temporal circuit breaker (max USD/min) | โ
v0.1 |
| | Automatic model fallback | โ
v0.1 |
| | Cost HITL (pause at X% exceeded) | โ ๏ธ v0.1 (log warning, auto-pause pending) |
| Sandbox | Docker hardened (Tier 1 dev-local) | โ
v0.1 (auto-detected when docker is on PATH; falls back to gated local exec via ARNES_DEV_MODE=1) |
| | gVisor (Tier 2 production) | ๐ง v0.4 |
| Multi-agent | Single-agent default | โ
v0.1 |
| | Crew (sequential/hierarchical) | ๐ง v0.4 |
| | A2A with trust | ๐ง v0.5 |
| Observability | Structured event log | โ
v0.1 |
| | Auditable markdown audit log | โ
v0.1 |
| | OpenTelemetry exporter | ๐ง v0.3 |
| Benchmarks | BenchmarkRunner with multi-seed + concurrent + p95 | โ
v0.1 |
Agentic Harness vs the rest
| Dimension | LangChain | CrewAI | OpenAI Agents SDK | Agentic Harness |
|---|---|---|---|---|
| How you define agents | Python procedural | Agent/Crew/Task classes | @agent decorator | Declarative YAML |
| Distribution | pip library | pip library | pip library (OpenAI-only) | MCP server + library |
| Pre-built specialists | โ | โ | โ | โ
12 ready |
| Curated playbooks | โ | โ | โ | โ
10 manuals + 13 domain templates |
| Token optimization | Manual | โ | โ | โ
Automatic middleware |
| Anti-hallucination | DIY | โ | โ | โ
3 layers (structured + refusal + actor-critic) |
| Budget enforcement | max_tokens basic | max_tokens basic | โ | โ
Hierarchical + circuit breaker |
| Vendor-neutral | Partial | โ
| โ | โ
100% (default Ollama local) |
| Prompts visible | โ | โ | โ | โ
Files on disk |
Alignment with the 12-factor-agents manifesto
Agentic Harness aligns explicitly with the 12 factors:
| Factor | Description | Agentic Harness | |---|---|---| | 1 | Natural language > structured language | โ Declarative YAML | | 2 | Tools are structured outputs | โ Pydantic schemas | | 3 | Give agents composable, discrete tools | โ Specialist registry | | 4 | Agents are switching loops, not while loops | โ Event-driven reducer | | 5 | Simple but powerful primitives | โ Thread + Specialist + Tool | | 6 | Use the right tool for the job | โ Model routing | | 7 | Humans are tools, not gates | โ HITL as a typed tool call | | 8 | Make agents easy to debug | โ Markdown audit log | | 9 | Make agents observable | โ Event log + OTel (v0.3) | | 10 | Replayable from any point | โ Stateless reducer + checkpoint | | 11 | Be a state machine, not a DAG | โ ๏ธ We are a DAG by design (declarative) | | 12 | Deploy as a server, not a library | โ Native MCP server |
Installation
pip install arnes
Or install from source for development:
git clone https://github.com/frangelbarrera/agentic-harness.git
cd agentic-harness
pip install -e ".[dev]"
Quickstart (60 seconds)
# 1. Install (see Installation above)
# 2. Create your first manual
arnes init --manual hello-world
# 3. Run it with the mock LLM (no network, $0 cost)
arnes run manuals/hello-world.yaml --mock
# 4. Stream a specialist's response token-by-token
arnes stream @planner --task "Plan a blog post about Agentic Harness" --mock
# 5. Run it with Ollama local (free, requires `ollama pull llama3.2`)
arnes run manuals/hello-world.yaml
# 6. Stream playbook step events as they complete
arnes run manuals/hello-world.yaml --mock --stream
# 7. Benchmark every playbook (multi-seed, p95, concurrent)
arnes benchmark --seeds 5 --concurrent 4
If you do not have Ollama installed, Agentic Harness detects it and guides you. To use Anthropic/OpenAI, set the env var and Agentic Harness does the rest:
export ANTHROPIC_API_KEY=sk-ant-...
ar
Truncated for display โ read the full file on GitHub.
Related Skills
Agent-Reach
108.9kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu โ one CLI, zero API fees.
headroom
78.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.8kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
97.0k๐ท๏ธ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit โ see the Safety scan above for what the skill file itself contains.
