- 24tools on the digital-employee server through which a model acts as the employee
Answering calls as the employee
Helix puts a governed digital employee into Teams calls and meetings, and Microsoft Graph is the surface it acts through. The first problem was calling: no single Microsoft principal can both answer a call as the employee and own the media session. I composed two Graph Communications clients. The employee's identity answers inbound calls under its own name, and a transport-only client owns the native media platform that carries the audio. That composition is the core of A self-hosted colleague in a Teams call.
the employee answers
Outbounda calling bot rings; it never impersonates the employee
Acting in meetings under one identity
The second problem was acting in meetings with attribution any model could rely on. I built a Rust MCP server for those meeting actions. The acting employee is an explicit argument of every tool, so the server decides attribution.
The meeting tool catalog is data, so a new action reaches every model client, the voice engine included, with no client change.
Reading the room, refusing what Graph cannot do
A room-state projector turns Graph's participant data into a current picture of who is present and whose hand is up. A join counts only once Graph shows the employee on the roster, because only the roster shows the employee is actually in the room. Graph lets a bot read a raised hand and gives it no supported way to raise its own, so that tool returns a typed refusal. See A meeting attendee that will not fake it.
Hands are read from Graph; the employee cannot raise its own. Seats are illustrative.
- Join and leaveroster
- Post in the meeting chatas the employee
- Present, share a terminal or browseras the employee
- Call on a raised handroom state
- Raise its own handtyped refusal
Provisioning the employee
Graph also carries provisioning: the tenant installer creates and configures the employee. The identity design is in Solving the digital-employee identity.
I use Graph's public APIs as Microsoft publishes them; the composition, token handling, roster checks and refusals are my engineering.
I can turn Microsoft Graph into a governed action surface for an AI colleague, where every call, message and screen share is attributed to one identity and grounded in what Graph reports.