Exos Systems · White paper
Approval Is a Policy, Not a Boolean
Human-in-the-loop control for agentic BSS
Agentic BSS tends to stall at the same moment: when an agent stops reading records and starts changing them. The usual safeguard is a yes/no approval on every change, and before long it becomes a rubber stamp. The alternative is to write the operator's approval policy into the layer between every agent and the systems of record. Exosphere Agentic from Exos Systems executes what that policy allows, stops for the right person where it does not, and proves afterwards who decided what, and why.
Exosphere Agentic runs on Azure and integrates with the Microsoft AI platform, deployed into the customer's own tenant — so context, data and governance stay where they belong.
01 · Two conversations
Two conversations, one answer
In a recent post, following an earlier field note on governance, I argued that agentic BSS should start with agents that diagnose and recommend, and people who confirm. My reason was simple: “BSS is where mistakes have invoices attached.” A wrong credit changes a customer's bill and the revenue line.
A telecom operator executive pushed back with a sharper point, paraphrased here. Operators insist on a human sign-off for each transaction mainly because legacy BSS cannot catch, contain or reverse its own errors, and a sign-off repeated all day soon stops being a judgement. Yet every care role already has a ceiling: a supervisor may grant more than a rep, and some adjustments no one may make. Encode the limits not yet written down where the system can apply them, and software and staff answer to identical rules.
We ended up in the same place. Approval matters where the stakes are real, and the way to protect it is to stop spending it where they are not. As I put it, “Insight was never the scarce thing in telecom. Capacity was.” Every routine sign-off spends some of it.
Approval is a control. Execution is a cost.
Glenn Stetson · Exos Systems
02 · The reflex
Why approval became a reflex
As I wrote in that post, “The AI moved the reading. The ‘doing’ didn't move at all.” Agents now read a bill and the account's history faster than an analyst can, but the write path still runs through systems built to record what happened, not to judge what should happen next. The person placed in front of every write sees a stream of near-identical requests, most plainly fine, and approval turns from a control into a queue.
Agent platforms offer a per-tool setting that makes an agent ask before calling a tool. That setting is a boolean. It cannot weigh a credit's value, the customer's segment, cumulative exposure or who holds the authority to decide.
Beneath the agent platforms, Azure API Management handles transport, identity and quotas, and Exosphere builds on it rather than around it. In February 2026, Microsoft's telecommunications industry blog described an agentic BSS platform, created in partnership with Exos Systems, that demonstrates how agents built in Microsoft Copilot Studio can modernise core BSS workflows.
Microsoft Foundry's documentation for hosted-agent toolboxes is explicit: an instruction in the system prompt does not, on its own, enforce approval. The agent runtime has to pause, show the call and resume only once approval arrives. Enforcement lives in the path the call takes. The question is what that path should know.
03 · Approval as policy
Write the policy down, then enforce it
Every operator already has an approval policy. It lives in credit policies, a delegation-of-authority matrix and regulatory obligations, and much of it is applied from memory. Exosphere makes it executable. The operator authors the rules: thresholds set per loop (an end-to-end task, such as handling a billing query) and per commercial exposure, rather than per AI model; routing to the approver who holds the authority; and hard blocks. Exosphere enforces those rules in the layer every agent call passes through, not in the agent's instructions.
Each proposed action receives one of three outcomes. Execute: it is inside policy and goes ahead without waiting. Route: it needs a decision from a specific role, which need not be the person in the conversation. Block: policy forbids it, and no approval overrides that.
The same rules bind people. A credit keyed by a care rep meets the same check as one proposed by a Billing Sherpa, Exosphere Agentic's billing agent, and the cumulative exposure on an account counts both.
Rules enforce; the corpus grounds. Exosphere also reads the operator's own policy documents, and every recommendation cites the clause it relies on. When an action is routed, the approver sees which paragraph of that policy calls for their decision; when it executes, the audit record keeps the clause.
flowchart TD A["Billing Sherpa<br/>proposes a credit"] B["Care rep<br/>keys a credit"] RU["Operator rules<br/>thresholds · routing · hard blocks"] C["Operator policy corpus<br/>credit policy · delegation matrix<br/>regulatory obligations"] P["Exosphere policy check<br/>value · customer segment<br/>cumulative exposure · open disputes"] E["Execute<br/>inside policy"] R["Route<br/>to the role with authority"] K["Block<br/>hard rule, no override"] H["Supervisor or<br/>named account owner"] S["System of record<br/>via TM Forum Open APIs"] U["Audit record<br/>actor · authority · clause cited"] A --> P B --> P RU -->|"enforce"| P C -.->|"grounds · cites the clause"| P P -->|"allowed"| E P -->|"needs authority"| R P -->|"forbidden"| K R --> H H -->|"approves"| S H -->|"declines"| U E --> S S --> U K --> U classDef exec stroke:#009688,stroke-width:2px classDef route stroke:#e68a00,stroke-width:2px classDef block stroke:#d93025,stroke-width:2px classDef human stroke:#0077b6,stroke-width:3px class E exec class R route class K block class B,H human
Why a billing credit
It is one illustration of a pattern every loop follows: the same check, three outcomes and one audit record, whatever the action.
- Goodwill credit up to £20 on a consumer account with no open disputeExecuteCites: Credit policy §3.1
- Goodwill credit above £20 and up to £150 on a consumer accountRoute → Care supervisorCites: Delegation-of-authority matrix, care row
- Any credit above £50 on an enterprise accountRoute → Named account ownerCites: Enterprise commercial policy §4.2
- Credits to one account above £200 in a rolling 30 days, agents and people combinedRoute → Billing managerCites: Credit policy §3.4, cumulative exposure
- Credit against a bill on hold for an open disputeRoute → Disputes teamCites: Dispute handling procedure §2.3
- Any credit on an account under fraud reviewBlockCites: Revenue protection policy §1.2
TM Forum's process framework already distinguishes adjustments that policy allows the system to make automatically from those that need management authority, and treats the billing policy itself as a managed artefact (eTOM GB921 v25.5). Its application framework describes account adjustments made against a “schedule of authorization policies” (TAM GB929D v26.0, §5.10.3). Exosphere turns that schedule into something enforced at the moment of action.
04 · The loop
The human sits at decide
I put the loop in one line: “Detect, understand, decide, act, confirm. The human sits at decide.” Every loop in Exosphere Agentic runs that sequence, and every Sherpa agent reports in five parts that map onto it: Facts for detect, Assessment for understand, Recommendation for decide, Action for act and Audit for confirm.
Sherpa agents are named for their role: the Billing Sherpa, the Order Sherpa. They detect and understand, turning bills, usage, account history and interactions into evidence a person can judge quickly.
At decide, Exosphere applies the policy. Sitting at decide does not mean deciding every case: people decide once by writing the policy, then in person where it routes a case to them. A routed proposal reaches the approver where they work, for example as an Adaptive Card in Microsoft Teams, posted through Power Automate, or in Sherpa Approvals, the approval console inside Exosphere Agentic. It carries the evidence, the recommendation and the clause relied on. The first decision wins; anyone who opens it later sees it is already decided.
Exosphere is an overlay, not a replacement. At act, it writes to the operator's existing BSS through TM Forum Open APIs, connected per engagement to that operator's stack: TMF678 for the bill, TMF666 for the account, and whichever surfaces the estate exposes for the adjustment itself. As I wrote, “The action lands in the system of record — audited, reversible, attributable.” A reversal is itself a governed action under the same policy. At confirm, Exosphere checks what the system of record actually did (applied, refused or unconfirmed), so a failed write is flagged rather than assumed, and writes one audit entry linking intent, actor, authority, API operation and the resulting record.
flowchart LR
subgraph SA["Sherpa agents"]
D["Detect<br/>Facts"]
U["Understand<br/>Assessment"]
end
subgraph DC["Decide · Recommendation"]
P["Exosphere<br/>policy check"]
H["Person with authority<br/>Teams card or<br/>Sherpa Approvals"]
end
A["Act · Action<br/>system of record"]
F["Confirm · Audit<br/>one audit record"]
D --> U
U --> P
P -.->|"only where<br/>policy routes"| H
H -->|"approve or<br/>decline"| P
P -->|"allowed or<br/>approved"| A
A -->|"actual<br/>outcome"| F
classDef human stroke:#0077b6,stroke-width:3px
class H human05 · Assembling context
A policy is only as good as its facts
For a business customer, an approver needs to know how the relationship really stands. The evidence sits in systems that were never designed to agree: open disputes, payment behaviour, the tone of recent interactions, contract terms. The fix is not consolidation but a telecom-specific map of meanings and relationships, so an agent can retrieve against defined terms rather than guess.
Exosphere's shared entity model is aligned with TM Forum's SID (Information Framework), so a bill, a billing account, an interaction and an agreement mean the same thing to every agent and every rule.
Context also tells policy who should decide. A major decision on a high-value business account is, as I have said before, “a good case for human in the loop”, and policy says which human: the named account owner, who holds commercial context no rule can capture.
06 · Earning autonomy
Earning autonomy, one action at a time
The Exos method, which the operator executive proposed in that exchange, is to measure disagreement before any action type executes on its own. Each action type usually starts with a person approving every instance, and every decision is recorded with its reason. When people rarely overrule the recommendation, and the reasons they do are understood, the operator can move that action type a step towards executing within policy, with a sample still reviewed by people. A new pattern of disagreement is the operator's cue to move it back. Nothing promotes itself; the operator makes every move.
TM Forum's Autonomous Networks levels offer a yardstick, by analogy only, since they are defined for network operations (whitepaper Release 1.0, May 2019, §2.2). At L2 people own each decision; at L3 the decision is shared between people and system; at L4 the system decides while people and system still share the intent. Always approving is L2-like, approving above a threshold is L3-like, and executing within policy, with sampling, is L4-like. Throughout, people own the policy and every case it does not anticipate.
flowchart BT
subgraph L["One action type, such as a goodwill credit"]
direction BT
S1["Always approve<br/>every case goes to a person<br/>L2-like"]
S2["Approve above threshold<br/>policy executes the rest<br/>L3-like"]
S3["Execute within policy<br/>people review a sample<br/>L4-like"]
end
M["Evidence<br/>disagreement rate and<br/>the reasons recorded"]
O["Operator<br/>makes every move"]
S1 -->|"promote when disagreement<br/>is low and understood"| S2
S2 -->|"promote"| S3
S3 -.->|"demote on a new<br/>disagreement pattern"| S2
S2 -.->|"demote"| S1
M --> O
O -.->|"approves each promotion<br/>and demotion"| L
classDef exec stroke:#009688,stroke-width:2px
classDef route stroke:#e68a00,stroke-width:2px
classDef human stroke:#0077b6,stroke-width:3px
class S1,O human
class S2 route
class S3 execNext step
Bring your delegation-of-authority matrix. We'll show which approvals become policy, which stay with a person, and what each one costs you today.
Book a policy review with Exos Systems
Every loop follows the same governed pattern, which is what makes the first one worth starting and the next one cheap to add. Part two sets out the architecture: the policy model, the approval path, audit and reversal, and the TM Forum mapping.
Explore the Exosphere Agentic wiki: the telecom ontology, BSS meets OSS, governed agents and the standards behind them, open to everyone.
Start with one loop. There are many more.
Sources
References
- Glenn Stetson, LinkedIn post and replies on human-in-the-loop approval in agentic BSS, 2026. Source of the quotations in this paper Exos
- Glenn Stetson, Agentic BSS Has a Governance Problem Before It Has a Technology Problem, Exos Systems field note, 10 March 2026, exos-systems.com Exos
- Exos Systems, Approval Is a Policy: The Architecture, part two of this series, September 2026, read part two Exos
- Microsoft Tech Community, Telecommunications Industry Blog, The Rise of Agentic BSS in the IQ Era: from Systems of Record to Systems of Outcome, 19 February 2026, techcommunity.microsoft.com Public
- Microsoft Foundry documentation, using a toolbox with a hosted agent (approval for MCP tools), updated July 2026, github.com/MicrosoftDocs Public
- TM Forum, eTOM GB921 Customer Process Decompositions, v25.5: processes 1.3.10.4.3 and 1.3.1.8.2 TM Forum member
- TM Forum, TAM GB929D Application Framework, v26.0: §5.10.3, adjustments TM Forum member
- TM Forum, Autonomous Networks whitepaper, Release 1.0, May 2019, §2.2, tmforum.org Public
- TM Forum Open API specifications: TMF678 Customer Bill Management v5.0, github.com/tmforum-apis; TMF666 Account Management v5.0, github.com/tmforum-apis Public