Define the job, grant knowledge and tools, set guardrails, test, promote.
An Enterprise Agent is versioned configuration: a job, knowledge bases, tools, guardrails, triggers and an evaluation set. You can build one in the web app or as YAML through the API.
Agents → New agent. Templates cover the common operations workflows — invoice processing, ticket triage, monthly reporting, onboarding, CRM hygiene — and are a good starting point even if your process differs.
Plain-language instructions describing the outcome, the steps, and the cases to hand off. Be concrete about exceptions:
You process supplier invoices received in the invoices@ mailbox.
For each invoice: extract supplier, invoice number, date, due date, amounts and VAT.
Match the supplier against the supplier master list. Match line items against open purchase orders.
If everything matches and the total is under €5,000, post the invoice to Netvisor.
If the supplier is new, the total is €5,000 or more, or any line doesn't match, request approval from finance-leads with your findings.
If the document is not an invoice, file it under "Not an invoice" and stop.
Select the knowledge bases the agent may read. It will use them to look up policies, master data and previous cases.
Choose tools from connected integrations and set scopes:
| Tool | Scope | Notes |
|---|---|---|
gmail.read | read | mailbox: invoices@ |
drive.read | read | folder: Finance/Supplier master |
netvisor.purchase_invoices | write | approval policy applies |
slack.post | write | channel: #finance-agent |
Write tools default to requiring approval until you set a policy.
Approval policies, volume and spend limits, allowed hours, escalation contact. See Guardrails & approvals.
Schedule, event, webhook, chat mention or manual. See Automations.
Test run executes the agent in test mode: reads are real, writes are simulated and shown in the trace as "would have". Iterate on the job until traces look right.
Attach an evaluation set — past cases with known outcomes — and run it. Set a minimum accuracy. See Evaluation.
Promote to production. The version becomes active; previous versions remain available for rollback. Promotion is recorded in the audit log.
name: invoice-processor
description: Read supplier invoices, validate, post to accounting.
job: |
You process supplier invoices received in the invoices@ mailbox. …
knowledge_bases: [finance-eu]
tools:
- gmail.read: { mailbox: invoices@ }
- drive.read: { folder: "Finance/Supplier master" }
- netvisor.purchase_invoices: { scope: write }
- slack.post: { channel: "#finance-agent" }
guardrails:
approvals:
- tool: netvisor.purchase_invoices
when: amount >= 5000 or supplier.new or lines.unmatched > 0
approvers: ["finance-leads"]
max_runs_per_hour: 60
allowed_hours: "Mon-Fri 06:00-22:00 Europe/Helsinki"
handoff_to: "finance-queue"
triggers:
- type: email.received
mailbox: invoices@
evaluation:
dataset: invoices-2026-q2
min_accuracy: 0.98
Create it with POST /agents or bmc agents push agent.yaml from the CLI.