01
Supervisor shell
Route registered agents behind one predictable run_step boundary.
Portable Python agent infrastructure
A zero-core-dependency protocol, serializable shared context, pluggable memory, and supervisor shell for coordinating agents without making one provider or framework your application boundary.
python -m pip install agent-harness-kit
Python 3.10+ · MIT licensed · zero third-party core runtime dependencies
Why use agent-harness-kit?
One small, provider-neutral supervisor, context, and memory contract around agents you already have—without forcing the entire application into one vendor or framework.
Mixed providers and agent implementations
Stable backend protocol for libraries
Serializable context without framework takeover
Small systems where a full runtime is excessive
Incremental framework migration
| Alternative | Stronger when you need | Why use this harness instead |
|---|---|---|
| LangGraph | Durable graph execution, checkpoints, streaming, and human intervention. | A much smaller shell without adopting a graph runtime. |
| CrewAI | Role-based crews, tasks, and structured flows. | Keep existing agents; add consistent supervision and shared state. |
| OpenAI Agents SDK | Tools, handoffs, guardrails, sessions, and tracing. | Provider-neutral orchestration across OpenAI, Anthropic, and custom agents. |
| Microsoft Agent Framework | Enterprise workflows, middleware, MCP, and hosted integrations. | An embeddable Python protocol rather than a complete platform. |
| Google ADK | Tooling, evaluations, multi-agent workflows, and deployment support. | Minimal dependencies and infrastructure-neutral agent boundaries. |
Deliberate non-goals: this package does not replace durable execution, tracing, guardrails, evaluations, tool ecosystems, or deployment platforms. Comparison text is paraphrased from the linked official documentation.
Interactive architecture
This is demo mode: a deterministic browser-only simulation. It makes no API calls, uses no credentials, and sends no data anywhere.
Final output
01
Route registered agents behind one predictable run_step boundary.
02
Carry messages, artifacts, scratch data, and tool state through JSON-compatible context.
03
Start in memory, persist to SQLite, or implement the small memory protocol.
Bring your own model or framework
OpenAI and Anthropic are ready-to-run reference backends. Framework adapters are truthful templates for connecting your graph, crew, or Strands agent.
agent-harness-kit[anthropic] Ready · Claude backendagent-harness-kit[openai] Ready · OpenAI backendagent-harness-kit[langgraph] Template · implement run_stepagent-harness-kit[crewai] Template · implement run_stepagent-harness-kit[strands] Template · implement run_stepagent-harness-kit[all]All optional SDKs, including template adaptersRunnable OpenAI example
from agent_harness_kit import HarnessLoop, InMemoryProvider, OpenAIBackend
supervisor = OpenAIBackend(
model="gpt-4o-mini",
is_supervisor=True,
agent_names=["writer"],
)
writer = OpenAIBackend(
model="gpt-4o-mini",
system_prompt="Write a concise answer to the user's request.",
)
loop = HarnessLoop(
memory=InMemoryProvider(),
supervisor=supervisor,
agents={"writer": writer},
)
result = loop.run_supervised(
objective="Explain portable agent orchestration",
input="Give me a two-sentence overview.",
session_id="demo",
)
Install agent-harness-kit[openai] and set OPENAI_API_KEY before running this real SDK example.