Instructions and rules
The job, the rules and the tone, given to every run. Rules sit apart from the job, so they can be reviewed on their own.
The model reasons. The harness decides what it sees, what it may touch, and how it runs for every user at once.
Every Botminds agent runs inside one enterprise-grade harness: the loop that drives it, the tools it is granted, the context it is given, the people who approve its changes, the models it can fall back on, and a record of every step. The same harness runs thousands of agents for thousands of users.
Agent = model + harness
An agent harness is the software around a language model that lets it work as an agent: it runs the loop of thinking and acting, hands the model its tools and context, applies policy, asks people for approval, recovers from failures and records what happened. In short, agent = model + harness. The model is rented; the harness is where an enterprise agent becomes safe, predictable and accountable.
A framework hands you the parts and leaves the policy to you. The Botminds agent harness ships each part with its rule already in it — and the rule holds whichever model is underneath.
The job, the rules and the tone, given to every run. Rules sit apart from the job, so they can be reviewed on their own.
Exactly what this run needs, assembled within a budget. Recent turns word for word, and a rolling summary of older ones.
Granted by name, checked before every call. Outside MCP servers are attached and narrowed by an allow-list.
One model or several, across providers and regions. On document and background runs, a failing call moves to the next model in the pool.
You choose which tools wait for a person, who approves, rejects or edits the request.
Extraction and classification agents return typed fields against a schema, so the next step reads values.
Token quotas are checked at the one door every run passes — chat, schedule or API — and settled when it ends.
Every step streamed live and kept: the request, each tool call, each approval, the answer and its cost.
Every run follows the same path. What changes from agent to agent is the instructions, the tools and the data — the safety checks sit in the loop itself.
The grant check applies to every tool call the model asks for — the first one and the fiftieth — and a tool outside the grant is refused, whatever the model asked for. On thinking and autonomous runs, a tool set to wait pauses the run until a person answers.
A greeting should come back in a moment; a comparison across ten documents should be planned, split and checked. Set an agent to Auto and the harness picks fast or thinking for every message.
The riskiest default in agent software is “all tools unless told otherwise”. Ours is the opposite: an agent reaches the tools it was granted, and when its settings are missing it falls back to read-only basics.
Built-in tool sets, your own APIs as typed tools, working tools for agents that plan, and outside MCP servers — each reached the same way.
The grant is decided in one place every way of running asks, so a fast run and a thinking run reach exactly the same tools.
A tool given beyond the basics without a grant needs a recorded decision and a reason, and each one is read-only or owner-confirmed.
Why it matters. Text inside a document can try to talk an agent into something else. With granted tools, the most a successful attempt reaches is what the agent was already allowed to do. See AI agent security.
Most agent failures are context failures: too much, too little, or the wrong thing. The harness assembles context the same way every time, and shows you the exact prompt before a run.
Who is asking, the conversation, the project, the page and the knowledge available — each switchable.
Each tier has its own token budget; the least important blocks give way first.
Recent turns word for word, and a rolling summary of older ones.
From the platform down to one tool call, so one agent serves many teams.
See exactly what the model will receive, before it runs.
Retrieval draws on the collections the asker may see — see agentic RAG. How context is chosen and trimmed is covered in context engineering.
An agent that proposes a change and waits is more useful than a read-only one. You set which tools wait for a person; in a conversation, thinking and autonomous runs pause on an approval card until the person answers.
Close out the three loan files that passed review today.
Three files are ready. Moving them to Decided changes their stage and notifies the processors. Approve, reject, or edit the list?
Edit: leave out the Lopez file, it needs a second look.
Done — two files moved to Decided. The Lopez file stays in review. Your decision and your edit are kept with this run.
Any tool, or a whole sub-agent, can be set to wait.
Approve, reject, or edit the arguments first.
The card says what will change, in words a reviewer can judge.
The decision and any edit are kept with the run.
Review stages and four-eyes sign-off: human in the loop.
When every layer retries, one fault becomes a storm and the cause disappears. In the Botminds agent harness each kind of fault has exactly one owner, and every retry is counted.
Declare a model’s limits and calls are paced within them; a refusal moves to the next model in the pool.
On document and background runs, a failing call moves to the next model in the pool — another deployment, provider or region.
A dropped connection to a store or service is retried within the run’s deadline, by the layer that owns it.
A fault a retry cannot fix — such as an input too long for the model — ends the run at once with its cause.
Stop a run mid-way from the screen.
Recent runs replay step by step from their journal.
Every run’s steps, tool calls and cost stay in the run log.
Retries are counted, so a pattern shows up as the defect it is.
The harness is built for internet-scale workloads: runtimes that scale out on Kubernetes with every run’s stream and record kept outside them, model pools that span providers and regions, and governance at the door — on Azure, AWS, Google Cloud or on-premises.
Every run’s stream and record live outside the runtime, so any runtime serves any run’s stream. Capacity grows by adding runtimes, and each release lets a runtime finish its work before it stops.
Millions of runs, each streamed as it happens and kept: steps, tool calls, approvals, cost. One run surface for agents, workflows and meshes.
Spread load over deployments in several regions and providers. On document and background runs, a busy or failing call moves to the next model in the pool.
Identity and token quotas are checked at the one door every run passes — whoever or whatever started it; tool grants hold on every call.
Every agent can also be called from your own systems through an OpenAI-compatible API, with per-key rate limits and idempotency keys, so a retry from your side never runs the work twice. Workflows and meshes run on the same surface: see agentic workflows and the agent mesh.
The three words get used for each other. They are different layers, and an enterprise needs to know which one it is buying — or building.
| Agent framework | Workflow orchestration | Botminds agent harness | |
|---|---|---|---|
| What it is | A library to build agents with | A scheduler that runs steps in order | The running system every agent lives in |
| Tool access | Whatever the code passes in | Outside its scope | Granted by name; read-only basics by default |
| People in the loop | Build it yourself | Manual steps between tasks | Approve, reject or edit, on the tools you choose |
| Context and memory | Build it yourself | Outside its scope | Budgeted tiers, two kinds of memory, a preview |
| When a model fails | Build it yourself | Retry the whole step | On document and background runs, the next model in a pool across providers and regions; one owner per fault |
| Spend | Outside its scope | Outside its scope | Quotas at the door; cost settled per run |
| Scale | Your servers | Add workers | Runtimes scaling out on Kubernetes, runs streamed and recorded outside them |
| Who maintains it | Your engineers | Your engineers | The platform, for every agent at once |
Build or adopt? Most of an agent’s reliability comes from the harness, not the model. Teams that build their own spend that effort on every agent. The build vs adopt whitepaper sets out the costs.
More from the platform: the full architecture, and how security works at Botminds.
An agent harness is the software around a language model that lets it act as an agent: the loop of thinking and acting, the tools and context it is given, the policy it works within, approvals by people, recovery from failure and a record of each run. Agent = model + harness.
A framework is a library you build agents with; you still decide tool access, approvals, memory, failure handling and records yourself. A harness is the running system that does those things for every agent, with the policies built in.
No. Orchestration decides which step or agent runs next. The harness governs what happens inside each agent’s run. Botminds has both: the harness for each agent, and workflows and the agent mesh for connecting them.
MCP — the Model Context Protocol — is a standard way for agents to reach tools. A harness decides whether a given agent may use a given tool, and when a person must approve it. Botminds speaks MCP in both directions and puts every MCP tool behind a grant. See MCP for the enterprise.
Harness engineering is improving an agent by changing what surrounds the model — its tools, context, checks and recovery — rather than the model itself. Harness changes alone can move an agent’s results a long way.
Botminds runs agents on runtimes that scale out on Kubernetes. Every run’s stream and record live outside the runtime, so any runtime serves any run’s stream, and capacity grows by adding runtimes. Model pools spread calls over providers and regions, identity and token quotas are checked at the door, and every run is streamed and recorded.
An agent acts through the tools it was granted, and the grant check applies to every tool call. You choose which of those tools wait for a person; on thinking and autonomous runs, a tool set to wait pauses the run on an approval card where the person approves, rejects or edits the request. Every decision is kept on the run’s record.
Azure OpenAI and Azure AI Foundry deployments, Google Gemini, and any model added to the gateway’s model list — OpenAI, AWS Bedrock or models you host. An agent can name several models as a pool; on document and background runs, a failing call moves to the next model in the pool. See the LLM gateway.
By measuring it. Agents are tested against golden datasets with repeated runs. Set an agent’s evaluations to run on every publish; workflows and meshes are measured nightly, weekly or on demand against their baselines, and a worse change is flagged with the reason. See AI agent evaluation.
Yes. The context preview shows the exact prompt an agent will receive, and every run’s record keeps the request, each tool call, each approval and the answer.
Bring one task your team does every day. We’ll show you the agent, its tools, its approvals and its record, running on your own data.