---
title: "AI Control"
canonical: https://agentlaire.com/docs/ai-control
lastUpdated: 2026-11-03
---

# AI Control

AgentLaire AI Control is the free base module (`agentlaire_core`) for Odoo 18, 19 and 20 Community, self-hosted. It connects Odoo to a model provider and lets managers see, limit and stop AI work. [See the product page](https://agentlaire.com/ai-control).

## What does the AI Control overview show?

AgentLaire AI Control opens on **AI Control › Overview**. It shows runs today and this week, the success rate, the cost this month against the budget, and whether the active providers are healthy. Below that, tiles show runs per day and other activity. Modules you install add their own tiles under their own heading.

![AgentLaire AI Control overview: runs today, success rate, open approvals and cost this month above a runs per day chart, with the kill switch off](https://agentlaire.com/_astro/D7.BHER0PXA_HejRa.webp)

You can filter by period (today, 7 days, 30 days or a custom range), by company and by agent. Every figure is computed as the person looking at it, so a tile shows "Not available to you" when your Odoo access rights do not cover its data. A click on a tile opens the matching list.

## How do I connect a provider?

AgentLaire AI Control supports four provider types: Anthropic (Claude), OpenAI, OpenAI-compatible servers (Ollama, vLLM, LiteLLM) and Google Gemini.

1. Open **AI Control › Configuration › Connections › Providers** and click **New**.
2. Fill in the name, provider type, base URL, API key and default model. A local OpenAI-compatible server needs a base URL and no API key.
3. Click **Save and test connection**.

Only AI Managers can read or change the API key. It is shown masked and never written to logs or the audit log. To set the provider that runs use when an agent names none, choose **Default provider** in **AI Control › Configuration › Settings**.

![Claude provider form in AgentLaire AI Control with budget, health, calls and cost in the header](https://agentlaire.com/_astro/D9.BwKS_I_9_2kkwus.webp)

## How do I test a provider's connection?

AgentLaire AI Control tests a provider with one small request. Open the provider and click **Test connection**. The form shows the latency, or the error without the key, and the provider's health changes accordingly.

The form also shows calls in the last 24 hours, average latency, errors, rate-limited calls and the cost this month. Health is OK, Degraded (more than 20% of calls in 24 hours failed or were rate limited) or Down. **Refresh models** reads the models the provider offers. Prices per million tokens are filled from a shipped price table and you can edit them.

## How do I allow data sharing on a provider?

AgentLaire AI Control sends no business data to a provider until an AI Manager allows data sharing on it. A new provider starts as Not allowed.

1. Open the provider in **AI Control › Configuration › Connections › Providers**.
2. Read the Data sharing statement on the form.
3. Click **Allow data sharing**. The form then shows who allowed it and when.

Until then, a run that uses the provider fails with a message that names it. **Test connection** works without the opt-in because it sends no business data. Changing a provider's type or base URL withdraws the opt-in, and **Withdraw** does the same at any time. Runs stop sending from their next model call. Every change is written to the audit log.

## How do budgets work?

AgentLaire AI Control checks two monthly budgets before every model call: one per provider and one for the company. When a budget is reached, the run fails with the reason `budget_exceeded` and the audit log records a `budget_exceeded` event.

- The provider budget is the **Monthly Budget** field on the provider form, in the provider's billing currency.
- The company budget is **Company monthly budget** in **AI Control › Configuration › Settings**, with its budget currency. 0 means no limit.

Costs in another currency are converted at the run date. If no exchange rate exists, the run fails with `budget_rate_missing` instead of counting the cost as zero. Costs are estimates from token counts and the model's prices.

## What does the kill switch stop?

AgentLaire AI Control's kill switch stops all AI work at once: no new run starts, a running run stops before its next model call, MCP calls are refused and approved changes are not executed. It is off by default.

AI Managers turn it on or off from the filter bar of **AI Control › Overview**, or with **Turn on** and **Turn off** in **AI Control › Configuration › Settings**. Both ask for confirmation and write a `kill_switch` event that names the manager. Other users see its state on the Overview without the control. Starting a run while it is on fails with a clear message.

![Turn the kill switch on confirmation dialog over the AgentLaire AI Control overview](https://agentlaire.com/_astro/D8.BScEgWBT_Z29J9PR.webp)

## How do I see what the AI did?

AgentLaire AI Control keeps two records: runs and the audit log.

**AI Control › Runs** lists every run with its state, user, trigger, duration, tokens and cost. Open one to see its steps, input, output, linked records and any error. A run is Queued, Running, Awaiting approval, Done, Failed or Cancelled. Users see their own runs, approvers also see runs behind proposals they review, and managers see all runs of their companies. A manager can retry a failed run, which resumes from its last committed step. The owner or a manager can cancel a run that is not finished.

![Agent runs list in AgentLaire AI Control with the filter panel open, showing done and failed runs](https://agentlaire.com/_astro/D10.BrD1k_5I_Z1Frj8K.webp)

**AI Control › Audit** is the audit log. It records runs started, finished and failed, tool calls and denials, proposals created, approved, rejected, executed and reverted, automatic writes, kill switch changes, policy and provider changes, data sharing, MCP requests, budget events and skipped triggers. Only AI Managers can read it, and nobody can edit or delete an event. Only the retention cleanup removes old events. Payloads never hold API keys or MCP key values.

## How do redaction rules work?

AgentLaire AI Control uses redaction rules to keep sensitive values out of what is sent to a provider and out of logs. Open **AI Control › Configuration › Governance › Redaction rules**.

A rule has a name, a regular-expression pattern, an action and a target:

- **Mask** replaces each match with a placeholder such as `[redacted:email]`. **Drop** removes the whole value that holds a match.
- **Apply To** is Sent to providers, Logs and audit, or Both.
- A rule can be limited to one model or one field. Without that, it applies to all text.

Install creates four presets, Email, IBAN, Payment card (checked with the Luhn test) and Phone, all disabled. Nothing changes until a manager enables a rule. A pattern that does not compile or runs too slowly is rejected on save. Creating, changing, enabling or disabling a rule writes a `policy_changed` audit event.

## Which groups control access?

AgentLaire AI Control adds three groups under one entry, AI Control, in a user's access rights. Each includes the one before it.

| Group | Can do |
| --- | --- |
| AI User | Open the AI Control app, see their own runs, use agents they are allowed to use |
| AI Approver | Everything an AI User can, and review proposals |
| AI Manager | Everything an AI Approver can, plus Configuration, all runs, the audit log, the kill switch and data sharing |

Installing the module makes the database administrator an AI Manager and adds nobody else. The **AI Control** app is hidden from users in none of the groups, and **Configuration** is visible to AI Managers only. **AI Control › Configuration › Settings** also needs the Odoo administrator role.

## How long does AgentLaire AI Control keep data?

AgentLaire AI Control deletes finished runs older than 90 days, with their steps, and audit events older than 365 days. The cleanup also runs on databases whose scheduled actions are disabled. Audit events of a deleted run stay under their own retention. Change both periods in **AI Control › Configuration › Settings**.

## What are the AgentLaire AI Control settings?

AgentLaire AI Control keeps its settings in **AI Control › Configuration › Settings**, which needs an AI Manager who is also an Odoo administrator. Numeric settings must be positive whole numbers, except the budget, which can be 0.

| Setting | Default | What it does |
| --- | --- | --- |
| Kill switch | Off | Stops all new runs, MCP calls and proposal execution. |
| Default provider | None | Provider used when an agent names none. |
| Concurrent runs | 4 | Runs processed at the same time. |
| Tool calls per run | 20 | Most tool calls one run may make. |
| Model calls per dispatcher batch | 5 | Model calls before a run is handed back to the queue. |
| Run timeout (minutes) | 10 | Time without progress before a run is retried or fails. |
| Audit events (days) | 365 | How long audit events are kept. |
| Runs (days) | 90 | How long finished runs are kept. |
| Company monthly budget | 0 (no limit) | Monthly spend limit for the company. |
| Budget currency | USD | Currency of the company budget. |
