A Harness is the top-level entity in Everruns that represents the execution environment for agent sessions. It defines infrastructure defaults, base behavior, and constraints under which sessions run.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/everruns/everruns/llms.txt
Use this file to discover all available pages before exploring further.
Concept
Harnesses are configuration containers that establish:- Base system prompt (forms the foundation of the prompt stack)
- Default capabilities available to all sessions
- Default LLM model (lowest priority in resolution chain)
- Infrastructure constraints and execution environment
Think of a harness as the “operating environment” — it defines what’s possible, while agents define what to do within those constraints.
Harness vs Agent
The distinction between harnesses and agents is intentional:| Aspect | Harness | Agent |
|---|---|---|
| Purpose | Infrastructure & base rules | Domain-specific behavior |
| System Prompt | Foundation layer | Customization layer |
| Capabilities | Base tooling | Specialized tools |
| Model | Fallback default | Preferred model |
| Required | Yes (every session) | No (optional) |
| Can Change | No (set at creation) | Yes (switchable) |
Example Scenario
You might have:- Harness: “Production” — Provides file system, bash, web fetch capabilities. Generic system prompt about being helpful.
- Agent: “Code Reviewer” — Specializes in reviewing pull requests, checking code quality, suggesting improvements.
- Agent: “Bug Investigator” — Specializes in debugging, analyzing stack traces, proposing fixes.
Built-in Harness Types
Everruns includes two built-in harness types:Base Harness
ID:base (system-managed, cannot be modified)
Minimal harness with no capabilities and a generic system prompt:
- Testing custom capability combinations
- Building completely custom agent behaviors
- Minimal overhead for specialized tasks
Generic Harness
ID:generic (system-managed, cannot be modified)
Full-featured harness with comprehensive capabilities:
session_file_system— File operations in/workspacevirtual_bash— Sandboxed shell executionweb_fetch— HTTP requests and HTML conversionsession_storage— Key/value and encrypted secretsstateless_todo_list— Task trackingcurrent_time— Time/date utilities
- General-purpose agent development
- Most production deployments
- Default choice for new agents
Harness Configuration
Data Model
Seecrates/core/src/harness.rs for the full type definition.
Capabilities
Harnesses can enable capabilities with optional per-harness configuration:Model Resolution
Harness model is the lowest priority in the resolution chain:RuntimeAgent Assembly
At session execution time, the harness configuration merges into a RuntimeAgent:Prompt Composition
The final system prompt is assembled in this order:- Harness system prompt (base layer)
- Harness capability prompts (prepended)
- Agent system prompt (prepended)
- Agent capability prompts (prepended)
- Session capability prompts (prepended, highest priority)
Example Assembled Prompt
Example Assembled Prompt
Lifecycle
Status States
- Active — Harness is available for creating new sessions
- Archived — Soft-deleted, hidden from listings, cannot be used for new sessions
Creating Custom Harnesses
Built-in harnesses (
base and generic) cannot be modified or deleted. Create custom harnesses for specialized needs.Best Practices
Harness Design
- Keep it generic — Harnesses should define infrastructure, not behavior
- Enable base tools — Include capabilities most agents will need
- Set conservative defaults — Model, timeouts, resource limits
- Document constraints — Explain what the harness provides in the description
Capability Selection
- Security first — Only enable capabilities sessions will actually use
- Dependency awareness — Understand capability dependencies (e.g.,
virtual_bashrequiressession_file_system) - Risk assessment — High-risk capabilities (bash, docker) should be justified
Naming Conventions
- Environment-based — “Development”, “Staging”, “Production”
- Purpose-based — “Code Analysis”, “Data Processing”, “Customer Support”
- Constraint-based — “Restricted”, “Full Access”, “Read-only”
Multi-Instance Deployment
Harnesses work seamlessly across multiple control-plane instances:- Configuration stored in PostgreSQL (shared state)
- No special consideration needed for load balancing
- Session-to-harness mapping is stable across instances
Next Steps
Agents
Learn about agent configuration
Capabilities
Explore available capabilities
Sessions
Understand session execution
Create Harness
API reference for creating harnesses