AI agents
FurniOps' AI agents file categories, repair mappings, draft new sources and explain failed runs. They never change your catalogue themselves. What each agent does, autonomy from off to applying low-risk changes, daily budgets, and the shadow record.
FurniOps has four AI agents that take on the catalogue's chores. They never change your catalogue: each one proposes a change, FurniOps proves it against your data before anyone sees it, and your organisation decides how much each agent may do on its own.
AI agents are a plan feature (ai_agents): without it the agents do not run, and the dashboard
shows Proposals and AI agents as part of higher plans. See
Plans and features.
The agents
| Agent | What it does | It looks at | It proposes |
|---|---|---|---|
Categories (categories) | Files a source's category paths that no rule files yet. | A source with a new snapshot. | Category rules for paths without one. |
Column repair (repair) | Maps the columns a mapping left unplaced. | A source with a new snapshot. | Fields for those columns, added to the mapping. |
Onboarding (onboarding) | Drafts a new source from a probe of a vendor's site. | A probe that succeeded. | A source, when FurniOps can run one for the site now. |
Run triage (triage) | Explains why a run failed or could not use some cells, and who can fix each cause. | A source's latest run. | A note to read. It changes nothing. |
Each agent asks AI only what it cannot work out itself, and only from closed sets: a path's number, a category from the taxonomy, a field from the field list, a fixer from a fixed list. What the vendor wrote (paths, headers, cell values) is quoted to the model as data, never as instructions, and whatever the model answers still has to pass the proof.
- The categories agent never changes a person's rule: it files only paths without one.
- The repair agent never maps a column a person deliberately left out.
- The onboarding agent takes the kind, platform and URL from the probe. AI chooses only the name, whose prices the feed shows, the licence basis and how often to read it (every 6 hours, daily or weekly), each with a reason. Its proposals are always a person's call.
- The triage agent cites only what the run itself recorded, and says who can fix each cause: the column repair or categories agent, a person in the mapping or the source's settings, the vendor, or FurniOps support.
Autonomy
Each agent's autonomy is your organisation's choice:
autonomy | Dashboard | What happens |
|---|---|---|
off | Off | The agent does not run. |
shadow | Shadow | It records proposals nobody is asked about, to see what it would do. |
propose | Propose | Every proposal waits for a person. |
auto_low_risk | Apply low-risk | Low-risk proposals apply at once; the rest wait for a person. |
Every agent starts in shadow: it works, and you can measure it, before anyone lets it act.
Whatever the autonomy, a proposal that fails its proof is recorded as failed and never offered.
What counts as low risk is decided by the proof, not the model; see
Proposals.
Budget
Each agent has a daily budget: what it may spend asking AI in a UTC day, from $0 to $1,000.
The default is $0.50. When the day's budget is spent the agent stops, and what it had not yet
looked at waits for the next day. spent_today_micros shows the day's spend so far; every
proposal carries the model that made it and its cost_micros. Amounts are in micro-USD
(1,000,000 is one dollar).
The shadow record
For each agent, FurniOps compares what it would have done, over the last 30 days, with what your people then did by hand:
| Field | Meaning |
|---|---|
shadow.proposals | Proposals of the last 30 days no person decided (shadow, or superseded first), failed ones left out. |
shadow.agreed | Of those, how many a person later made by hand, the same way. |
shadow.differed | Of those, how many a person later decided otherwise. |
A proposal whose subject nobody touched since counts in neither. A triage note changes nothing, so it is never measured. Use the record to decide when to let an agent propose, or act.
Settings
Under Settings › AI agents, each agent's card shows its autonomy, its daily budget, what it spent today and its shadow record; Save sends what changed.
- Reading the settings (
GET /v1/agents) needsagent:read, which owners, admins and developers hold, and which an API key can hold.updated_atisnullwhile an agent is at FurniOps' defaults. - Changing them (
PATCH /v1/agents/{agent}) needsagent:write: owners and admins. Neither API keys nor OAuth apps can hold it, so an agent's autonomy and budget are changed by a signed-in member, in the dashboard. - Settings belong to a mode: the sandbox's agents have their own.
What agents can and cannot do
| Agents can | Agents cannot |
|---|---|
| Propose category rules, mapping columns, sources and triage notes. | Change anything without passing the proof. |
| Apply low-risk proposals, when you allow it. | Apply a high-risk proposal, ever. |
| Spend up to their daily budget. | Create a source, or choose its licence basis, without a person. |
Everything an agent applies goes through the same services a person uses, recorded in the audit log with the agent as the actor.
Review and merges
The pairs matching could not decide alone, and the merges it and your people made. Reading a pair's evidence and the AI judge's answer, merging or dismissing it, and undoing any merge.
Proposals
Every change an AI agent wants to make, with the proof FurniOps ran on it. What a proposal holds, how it is proved and rated low or high risk, its statuses, accepting and rejecting it, and the webhooks that announce it.