Agents you can trace, budget and interrupt.
An agent node that works a support ticket or a document through its tools, keeps memory, and returns structured output the next step can read. Hosted models from Anthropic, OpenAI, Google and DeepSeek, a human approval where the risk is, and budgets you configure and monitor from one ledger.
A support agent, from ticket to approved reply.
A ticket arrives. The agent looks up the order, checks the refund policy, and returns typed fields instead of prose. The refund waits for a person; if nobody answers in time, the run takes the fallback you set.
Tools, memory and structured output, with a trace.
The agent node takes a goal, a model and a list of tools. It loops through think → call → observe until it is done or reaches the iteration limit you set, and every iteration is written to the run’s trace.
- builtin
- Think, calculate, current time, structured recall.
- HTTP
- A REST endpoint, with a saved connection for auth.
- node
- A node type from the catalog, exposed as a callable tool.
- code
- A Python function the agent can invoke with arguments.
- workflow
- A published workflow. The agent sees its input schema as the tool signature.
- MCP
- A remote Model Context Protocol server and the tools it lists.
Memory
Per run by default, or a stored conversation window that carries across runs for the same conversation key, such as a ticket or a document id.
Structured output
Declare a JSON schema and the node checks the model’s reply against it, so the next step reads typed fields such as intent, amount or invoice total.
- 1builtin.thinkplan: look up the order, check the refund policy1,204 tok · 812 ms · $0.0041
- 2http.get_orderorder SAMPLE-1042 · delivered 2 days ago388 tok · 1,290 ms · $0.0013
- 3workflow.refund_policyrefund window 14 days · eligible961 tok · 640 ms · $0.0032
- 4outputintent refund · needs_approval true142 tok · 0 ms · $0.0005
Sample trace with synthetic figures.
Hosted models from Anthropic, OpenAI, Google and DeepSeek.
Connect a provider with your own key, pick a model per node, or set a default for the workspace. New agent, classify and extract nodes inherit the default; any node can override it.
- Anthropic
- OpenAI
- DeepSeek
Source: coax-backend AI vendor factory · checked 2026-09-27.
A person decides before the risky step, with a timeout and a fallback.
Put a human.prompt node after the agent, or give the agent one as a tool. The run pauses and shows the approver the payload: the refund, the extracted invoice, the message about to go out.
Configured per step
You choose which steps need a person, who can approve, and what they see. Steps without an approval node run without one.
Timeout
Each approval step carries a timeout you set, so a paused run does not wait indefinitely for an answer.
Fallback
When the timeout passes, the run follows the fallback path you configured on the step, for example rejecting the request or escalating it to someone else.
Configure a budget, then watch spend against it.
AI spend is recorded per model call in tokens and in USD. Budgets are checked before a call and reconciled after it, so you can see where spend is going while a month is still running.
- 1
Configure
Set a monthly token and USD budget for the workspace and per provider; on Embedded, per tenant as well.
- 2
Check before the call
Before each model call the router estimates its cost and compares it with what is left. A call the budget cannot cover is not sent, and the run takes the path you configured.
- 3
Reconcile after the call
When the provider answers, the actual tokens and USD it reports are written to the ledger and replace the estimate.
- 4
Monitor
Spend against budget, by provider and by workflow, from the same ledger the trace reads.
The pre-call check works from an estimate. A reply can use more or fewer tokens than estimated, so the reconciled total can differ from the estimate and a budget is a limit you monitor, not an exact ceiling; the ledger shows the actual figure. When a budget is used up or a provider keeps failing, a circuit breaker holds further calls to that provider with a clear reason.
Retrieval as three nodes and a vector store.
Load documents, chunk them, embed them, and write them to a vector store. Query the same store from an agent tool or a dedicated search node.
- ai.load→
- ai.chunk→
- ai.embed
- →
- vector store
Loaders cover files, URLs and the data nodes in the catalog. Chunking is size- or structure-based. Embeddings use a model from a connected provider.
Model Context Protocol in both directions.
Your workflows become tools for the MCP clients your team already uses, and your agents can call an MCP server you point them at.
Every published workflow is a tool.
The workspace exposes a Streamable HTTP MCP endpoint. An MCP client lists your published workflows with their input schemas. The client calls the tool; OCNORA runs the workflow under the caller’s API key, with the same budgets, permissions and audit log.
Agents call external MCP servers.
Add an MCP server as a tool of kind mcp and the agent sees the tools it publishes. Calls appear in the trace like any other tool call, with tokens, latency and cost.
Describe the workflow. Review the graph it drafts.
Type what you want in plain language. The builder plans the workflow, maps each requirement to real node types, generates the graph, and runs it through the validator, repairing what it can and reporting what it cannot.
- 1. plan
- 2. node plan
- 3. coverage matrix
- 4. generate
- 5. validate
- 6. repair
- 7. lint
- 8. layout
Coverage matrix
Each requirement in your description is mapped to the node that satisfies it. Anything unmapped is reported, not silently dropped.
Validation report
The result is marked VALID, INVALID or NEEDS_CLARIFICATION. The last one comes with the question the builder needs you to answer.
Same checks as hand-built workflows
Generated workflows go through the same static validation, pre-flight and dry run as hand-built ones, and you review the draft before it is published.
See an agent run inside a workflow.
In a technical demo we start from the support-agent example, set a budget, add a human approval with a timeout, and read the trace of the first run with you.