Identity from company sign-in
The client's Microsoft Entra ID in front of the panel. The model runs with a managed identity, no keys in the configuration.
aiv is a working environment for AI agents inside the client's infrastructure. At the top, the path that runs at a client today. Below it, what we set up in every deployment.
This is how the agent works at our first production client. We describe the mechanism, without the client's name or systems.
Customer correspondence arrives. The agent starts on its own, without an employee's command.
Through seven named, read-only tools. The code has no instruction to write, change or delete.
Azure OpenAI in the client's tenant, with a managed identity. There is no API key in the configuration.
The agent leaves a draft reply in the browser panel. The employee signs in with their company account.
Sending only after a person approves the draft. The approval goes into the log.
Eleven scenes from one case to a network of agents across the company. Badges in the picture show what runs at a client today.
S1
An agent's work starts with a case. The agent takes it from the queue and breaks it into steps.
Who decides this at your company
The process owner decides which cases go to the agent.
A diagram of the aiv engine, sample data. The “Live at a client” badge marks an element running at a client today.
| Scene | Registry entry | State |
|---|---|---|
| S1 | Event-driven work (a new message starts the agent) | Live at a client |
| S2 | CRM access through seven named tools, read-only | Live at a client |
| S2 | Database adapters MS SQL, PostgreSQL, SQLite | |
| S2 | The client's file share as the knowledge source | Live at a client |
| S2 | Tools that write to client systems | |
| S4 | Azure OpenAI in the client's tenant | Live at a client |
| S4 | Claude in Microsoft Foundry, Anthropic, OpenRouter | |
| S4 | Locally hosted model | |
| S5 | Company knowledge in agent-ready form (source, date, confidence, expiry) | |
| S6 | Skills (written process instructions) and agent plugins | |
| S6 | API / MCP / CLI — Named tools with defined permissions | |
| S7 | ML predictions in the agent's work | |
| S8 | Confidence threshold routing a case to a person | |
| S9 | Sending only after a human approves the draft, approval in the log | Live at a client |
| S9 | Browser panel | Live at a client |
| S9 | Engine log (sessions, tools, model) and panel log (who, when, which file) | Live at a client |
| S9 | Decision identity from authentication, rejection and logging of requests without identity | |
| S10 | Several agents with separate scopes in one environment | |
| S10 | Delegation to sub-agents with verification | |
| S10 | Finance | |
| S10 | Back office | |
| S10 | Network of department agents with a supervisor | |
| S10 | Board report from agents' work | |
| S11 | Customer service: correspondence, CRM, draft | Live at a client |
| S11 | Process guardian agent (autonomy within set limits) |
State as of 26 September 2026. Full registry of all capabilities: /status.
Five scenes: permissions, log and audit, a reviewing agent, the SOC, a board report. Badges show what runs at a client today.
C1
Today at a client, the panel is opened with an Entra ID company account. Live at a client The agent reads the CRM through seven named tools, read only. Live at a client
Who decides this at your company
IT grants access and reviews it regularly. The board approves who signs what.
An aiv diagram with sample data, as of 26.09.2026. “Live at a client” marks what runs at a client today.
The language model can be swapped. The control layer stays: identity, log, permission limits and ways of working. The agent gets exactly as much access as its task requires. The scope is written down, not a default.
The client's Microsoft Entra ID in front of the panel. The model runs with a managed identity, no keys in the configuration.
Engine log: sessions, tools, model. Panel log: who, when, which file.
A decision carries identity from authentication, never from a form. Requests without identity are rejected and recorded.
CRM access through seven named, read-only tools. For each deployment we build a narrow, named set.
MS SQL, PostgreSQL, SQLite. We build tools for the client's databases on top of them.
The agent starts when a message arrives, or on a schedule.
Each with its own permission scope. Delegating work to sub-agents, with a check that the task really went out.
We connect writing through an approved interface at deployment.
MCP is a standard for connecting tools to a language model. Each tool has a name, a description and a scope. We design access to client systems as named tools with a defined scope, not as a console. The reason: the agent reads messages from unknown senders, so the content of a message must not become a command for a system. The engine also has tools for files and commands. Which of them are enabled is set at deployment.
Sign-in with corporate identity. Case queue, draft replies, operator decisions.
The same engine without a browser.
For repeatable tasks and engineering work.
How it runs today. Client subscription, no public address.
When data cannot leave the building.
When there are to be more deployments.