The channel the assistant lives on.
Field crews carry phones with messaging apps already on them. The assistant lives inside that messaging app instead of asking anyone to open a new one.
Today the architecture runs through Telegram. The same four constraints — fixed role, fixed source, fixed scope, citation or refusal — apply to any channel. Adding another (Teams, Slack, SMS) means routing inbound messages through the same retrieve-and-cite pipeline.
Telegram
The crew's Telegram group becomes the interface. A field user sends a voice message describing what is in front of them, and the reply lands in the same thread. A photo of an unfamiliar fitting comes back with a name and a usage note. A PDF submittal dropped into the chat becomes a queryable document. Voice, photo, text, and document all enter the same retrieve-and-cite pipeline.
Voice, text, and photo inputs all carry the same four constraints: fixed role, fixed source, fixed scope, citation or refusal. The interface changes with the channel; the rules do not.
Why Telegram, not Teams or Slack
The channel needed three properties: voice as a first-class input, runs on every phone, no per-seat licensing. Four options were considered.
SMS / MMS. Carrier-level reliability is strongest in the field, but voice attachments are inconsistent, no read receipts, no threading, MMS payload limits break long answers. Out.
Microsoft Teams. Fits a company already standardized on Microsoft 365, but per-seat licensing forces every apprentice to be provisioned, which doubles onboarding friction. Voice-message UX is buried two taps deep. The bot framework is workable, but the channel is wrong for crews that come and go on projects.
Slack. Same per-seat problem; mobile UX is desktop-first; the workspace boundary fights against multi-employer crews common in union work.
Telegram. Voice messages as a primary input type, free at any scale, runs on the same phone the apprentice already carries, no provisioning. The trade-off accepted: Telegram's servers sit outside US borders, and the question text and final answer text transit those servers as message transport. The mitigation: retrieval, generation, the citation gate, and the audit log all run on the company's own server inside the company's office — document content and the model's reasoning over the corpus never leave the LAN. Telegram is the wire to the field, not where the corpus lives. See Controls & Data for the perimeter description.
Adding another channel
The channel layer is an adapter contract: an inbound message resolves to a known user, a known role, and a known project, and is then handed to the same retrieve-and-cite pipeline. A Teams or Slack adapter implements the same contract. SMS would route through a separate provider, with voice transcription substituted for the Telegram-native voice path. The four constraints apply identically across channels — nothing about role, source, scope, or the citation gate depends on the channel.