OmniCoreAgent
OmniCoreAgent is the main entry point for the harness. It wraps a model with
the runtime pieces needed to execute real tasks: a reasoning loop, tool routing,
parallel tool batches, structured observations, memory, workspace files,
guardrails, events, and production harness extensions.
Use it when you want one agent object that starts small and grows into a
production runtime without rebuilding the application around a different API.
For the full implementation-backed map of what OmniCoreAgent adds around the
model, read Agent Harness.
Minimal Agent
This gives you the core harness loop, session memory, workspace files,
guardrails, events, metrics, and cleanup lifecycle. Heavier capabilities are
enabled explicitly through agent_config or installable extras.
What The Harness Owns
Defaults And Opt-In Capabilities
OmniCoreAgent keeps the default path light. Production features are enabled by
configuration or installed as extras when the workload needs them.
When dynamic subagents are enabled, workspace files are enabled automatically.
Subagents need a shared file surface for outputs, todos, notes, and task
artifacts that the lead agent reads back.
Parameters
Full Harness Configuration
Core Methods
run()
Execute a task with the agent. Pass a session_id when you want continuity
across calls.
run() returns a dictionary with the response, session ID, agent name, and
request metrics.
connect_mcp_servers()
Connect all configured MCP tool servers.
Return all currently available tools from MCP, local tools, skills, workspace
tools, and harness tools.
cleanup()
Close MCP connections and release runtime state.
Session Management
Runtime Switching
Switch configured memory backends without rebuilding the agent object:
Best Practices
- Use
await agent.cleanup() when the application shuts down, especially if MCP
tools are connected.
- Use stable
session_id values, such as your user or task IDs, when you need
continuity.
- Enable context management and tool offloading for long tasks, research agents,
coding agents, and agents that call large-output tools.
- Enable BM25 retrieval when your tool list is too large to place fully in the
prompt.
- Enable subagents when a task naturally splits into focused work units whose
outputs belong in the workspace for lead-agent synthesis.