AI Assistant
The backoffice includes an AI agent engine. Two scheduled agents check the platform in the background and report problems to an inbox. An assistant answers staff questions in plain language, using live platform data and this product manual. It lives on the AI agents page under Administration and in the ⌘K command center. Both are available to admins only, like the rest of Administration.
The engine is built so a buyer can turn it on without trusting a model with money: agents read, report and suggest where to go. When staff ask for a change, the assistant proposes a plan, and only a staff click carries out each step.
What it does
Scheduled checks. Two agents run as ordinary scheduled jobs:
| Agent | Runs | What it looks at |
|---|---|---|
| Ops watchdog | Hourly | Failed or stalled background jobs (including ledger integrity and payment reconciliation), casino rounds stuck pending or in reconciliation, deposits and payouts stuck open, recent application errors |
| Sports catalog hygiene | Every three hours | Events waiting for manual resolution, markets overdue for settlement, events players see with no odds, missing crests and badges, lagging or silent odds feeds |
Each problem becomes a finding in the inbox, with a severity (info, warning or critical), the numbers behind it, and where in the backoffice to look. The same problem seen on the next run updates the existing finding instead of creating a duplicate. When a problem clears, the agent resolves its own finding. Staff can acknowledge or resolve findings by hand. Critical findings can also be paged to a Telegram chat. The next page is sent after six hours if the finding is still open.
Because the agents are registered as jobs, the Jobs screen gives each one the usual controls: pause, resume, trigger now, change the schedule and read the run history.
The assistant. Staff ask questions in the Assistant tab, or type one into the ⌘K command center's Ask AI scope. Examples:
- How does the rolling reserve work? The assistant answers from this manual.
- Why does this event show no odds? or Which payouts are stuck? The assistant answers from live data.
- How are today's KPIs? or Anything unusual this week? The assistant compares daily revenue figures with the same weekdays in the past two weeks.
- Is this player's claim valid? Staff paste the player's message or a support-conversation link. The assistant checks the claim against the player's account and recent bets, rounds, deposits and payouts.
Suggested questions are offered for feed health, recent application errors, today's KPIs, anomalies today or this week, and player claims. Each answer:
- leads with the direct answer, in short Markdown text;
- is written in the language the staff member used for the question;
- knows which backoffice page the question came from, so "this page" and "today" mean what staff expect;
- ends with buttons that open the relevant backoffice pages or records. The buttons are built only from the backoffice's real routes, so the model cannot invent a link;
- shows which data sources it read and what the answer cost.
Plans: asking the assistant to do something. Staff can also ask for a change: Create a free-bet promotion for the VIP tier and switch it on or Lower the default RTP for slots to 95%. The assistant then:
- finds the backoffice actions that do it, and reads what each one accepts;
- looks up what the change needs (real ids, existing records, current settings), so nothing is guessed;
- answers with a plan: numbered steps, each one backoffice action with a title, the values it will send and why.
Nothing has happened yet. The plan opens beside the conversation, and staff review it, then click Execute on one step at a time or Execute remaining, which stops at the first failure. Each step runs exactly as if the staff member had made that change on its screen: with their sign-in, their role's permissions, the screen's own validation and its own audit-log entry. A step can use what an earlier one returned, such as the id of a promotion it just created. A step runs once, even on a double click, and only after the steps before it.
The assistant sees every result. When a step fails, it is told at once, reads the error and offers a corrected plan for the steps not yet run; steps already run are never changed. Staff can cancel a plan at any time. If a step's request never finishes (for example, the server restarted mid-step), staff can mark it failed after two minutes, check whether it took effect, and retry or move on.
Conversations are kept and are private to the staff member who started them. A Runs tab lists every scheduled run and conversation. Each one records every model call and tool call, so staff can always see why an agent said what it said.
Guardrails
- No write access of their own. Agents can only use a fixed list of read tools, the ability to file findings, and the backoffice's own actions. They cannot run raw database queries, make outside web requests or reach the source code. A change happens only when staff execute a plan step.
- The AI agent role. The assistant works within the permissions of both the staff member asking and a dedicated AI agent role on the Roles page. It never goes beyond the staff member, and admins narrow it further by granting the role only the areas and powers they want the assistant to plan in. The role starts with nothing, so the assistant can plan no change until an admin grants it something. No person can be given the role. Sign-in settings and the AI engine itself are never within its reach.
- Every change is audited under the staff member who executed it, and the audit entry names the conversation that proposed it.
- Documentation only from this manual. The only documentation agents can read is this product manual. Internal design notes, source code, environment files and configuration are out of reach, and a request for any other file is rejected.
- Player data is masked before it reaches the model provider. Player ids, statuses, balances and records are sent. Emails are reduced to their first letters, and names and payout addresses are removed. A support message is sent as the player wrote it, because the claim is the point.
- Off by default, off in one click. A switch on the AI agents page controls the whole engine and starts in the off position. When it is off, scheduled checks skip without calling the model, the assistant refuses new questions and disappears from ⌘K, and a run already in progress stops before its next model call. Changing the switch is recorded in the staff audit log.
- Spend caps in USD. A daily cap (default $10) and a monthly cap (default $100) cover every agent and every conversation together. Staff can edit both caps in the backoffice, and each change is audited. The engine checks both caps before every model call, so it can overshoot by at most one call. At the cap, scheduled checks skip and the assistant stops answering until the cap resets or is raised. Spend is an estimate from token usage, and the estimate is deliberately on the high side.
- Per-run limits. Each agent also has its own limit on steps and tokens for a single run.
Model providers
The engine works with Anthropic Claude (the default), Google Gemini or OpenAI. You choose one provider for the whole engine, plus an optional model, in configuration. The provider's API key is required. Prices are built in for the Claude models. For any other model you must set a price, and without one the engine refuses to run it, because it could not enforce the spend caps. Recent application errors come from the error-tracking service and are only available when its access token is configured. Support conversations are read from the support desk.
Scope & Roadmap
Implemented. The engine with its on/off switch, USD spend caps and per-run limits. Two scheduled agents that file findings to an inbox, with de-duplication and optional Telegram paging for critical findings. The backoffice assistant, reachable from the AI agents page and the ⌘K command center, with suggested questions, answers in the staff member's language, page-aware context and buttons into real backoffice routes. Plans of backoffice actions that staff execute step by step, bounded by the AI agent role, with failed steps sent back to the assistant for a fix. Insight tools for daily KPIs, anomalies, application errors and player claims. Masked player data. A full record of every run. Support for Claude, Gemini and OpenAI.
Not built. File uploads cannot be part of a plan. Access to the assistant is not a role setting: it belongs to Administration, so only admins can use it, and it cannot be granted to other roles (see Staff, roles and sign-in). Findings go only to the inbox and Telegram. There is no email or other paging channel.