A hard cap on tool-call turns. The agent can’t reason itself into a loop you didn’t allow.
budget(turns=25)Agents
Let Claude, ChatGPT or your own agents run the workflows you’ve built, as tools with your rules already inside. Four limits the engine enforces, and approvals that can wait for days.
Lyhnis speaks MCP on both sides. Expose authored workflows as typed tools to any MCP client; equip your agents with external tools from any MCP server. Four engine-enforced budgets and HITL gates that pause durably.
01The boundary
The agent never gets raw access to your systems. It gets the workflows you wrote, with checks, approvals and the audit trail already inside. The workflow is the safety rail.
The agent’s tool vocabulary is author-explicit: workflows with validation, HITL gates and audit-by-construction wired in before the agent sees them.
The agent
claude-sonnet · 8 turnsDecides which tool to call and in what order. Nothing else.
Tools you declared
verify_identityvalidationauditprocess_refundvalidationapprovalauditledger_mcp.postcredentialedauditYour systems
02MCP
Outside agents can call your workflows in. Your agents can call outside tools out. Both land in the same audit trail.
One protocol, two roles: a per-tenant MCP server for inbound calls, MCP credentials for outbound ones, one audit ledger for both.
# your company’s MCP endpoint (illustrative) https://mcp.lyhnis.com/t/meridian # JWT-bridge auth, scoped per client Authorization: Bearer eyJhbGciOi… # tools the client sees process_refund workflow verify_identity workflow lookup_invoice workflow
# a credential for an external MCP server { "name": "linear_mcp", "type": "MCP_OAUTH", "server_url": "https://mcp.linear.app" } # the agent step that may use it { "activity": "agent.run", "tools": ["process_refund", "mcp:linear_mcp"], "budget": { "iterations": 10, "tokens": 50000 } }
03Budgets
The limits live in the engine, not in the prompt. Set them once on the outer agent and they cover every agent and workflow it starts.
Budgets are enforced by the engine before every model call. Set them on the outer agent.run; the parent covers every child it spawns.
A hard cap on tool-call turns. The agent can’t reason itself into a loop you didn’t allow.
budget(turns=25)Input and output across the whole run, counted through every nested agent.
budget(tokens=50_000)Only active reasoning time counts. Waiting for a person costs nothing.
budget(wall_clock="5m")Real money: nested agent spend, model fees and metered tool use.
budget(cost_usd=0.50)A parent’s budget includes every child agent, every sub-workflow and every external tool call. Cap the whole tree from the top, and auditors get one number per run.
See the v2.35 rollupagent.run · refund deskparent · budget set here$0.021verify_identitysub-workflow$0.000agent.run · assess photoschild agent$0.014ledger_mcp.postexternal MCP tool$0.00704One run
An agent-started refund from start to finish: called over MCP, paused two days for a person, then rolled up to one cost. Every step records who acted and how.
Every entry is an agent, a person or the system. Never an anonymous service account.
Which channel answered, which model decided and which credential was used.
Spend per step, rolled up to the run. No rebuilding it from logs.
05Status
Every agent capability above carries its label. If it isn’t live, it says so.
Checked against the product in September 2026
30-minute call with an engineer
Bring the agent you want to trust with money. We’ll wire its tools and budgets with you.