What we've built.
Client work is confidential by default, so these are engineering case studies from systems we build and operate ourselves — written from the code, not from a pitch deck.
Every mechanism described here is running in production and inspectable during an engagement.
An AI operations platform, run in production
A multi-tenant productivity platform where AI is the operating layer, not a feature: assistants, voice, automations, retrieval, and dashboards for teams working in nine languages. We build and run it — which means every architecture decision on this site has been paid for at least once.
What's in it
One agent seam
Every completion runs through a single instrumented path — budget check, model selection with fallback chains across five providers, the call, per-call usage logging with cost in dollars. Pydantic AI is the framework; switching models is a routing rule.
Assistants with grounding
Streaming chat where citations are verified against the evidence actually retrieved — unverifiable citations get flagged, not shown. Tool calls that need confirmation render as approval prompts, and risky writes wait for a human.
Full-duplex voice
Streaming speech-to-text, the same governed agent runtime as text chat, and sentence-chunked speech back — with barge-in that stops playback the instant the caller speaks.
Retrieval that knows its limits
Hybrid search — pgvector similarity fused with Postgres full-text through reciprocal rank fusion — behind a deterministic gate that decides whether a turn needs retrieval at all, and a sufficiency check that re-retrieves once when grounding is thin.
Memory with consent
The agent proposes memories; a human approves them before they enter any prompt. Deleting one leaves a tombstone that prevents the fact from being re-derived.
MCP in both directions
The platform's own API is served as an MCP server with OAuth 2.1, scopes, and rate limits — and users connect external MCP servers from a curated catalog, with SSRF-guarded egress.
Evals as the gate
A pydantic-evals harness with fifteen committed suites and baseline regression gates. Thumbs-up and thumbs-down from real usage flow nightly into candidate eval cases.
Governance that executes
One policy decision point resolving deny over ask over allow, a rule that untrusted content is never instructions, write-approval gates, and an operator kill switch on outbound calls.
The part that was hard
Context economics. An agent with a large tool surface was spending roughly 53,000 tokens per call just describing its tools; deferred tool loading — names and one-liners up front, full schemas fetched on demand — brought that to roughly 8,000. Add prompt caching on the stable prefix and batch APIs for background pipelines, and the platform's model spend became a tunable, attributable line item instead of a mystery.
What it proves
The studio components on this site are not a proposal — they are extracted from this system. When an engagement needs an assistant, a voice line, an eval harness, or an MCP integration, the pattern arrives already debugged.
Making a product agent-accessible
A public product site rebuilt so AI agents are first-class visitors. The bet: buyers increasingly ask their assistant about a product before they ask a search engine, and the site an agent can read cleanly wins that conversation.
What's in it
A public MCP server
The marketing site's content served as callable tools — list pages, search the site, fetch a page — hosted at the edge, so any MCP-aware client can query the product directly.
Agent Skills, published
Two dozen skill documents under /.well-known/, generated from the site's own content, so agents that support the format can load exactly the procedure they need.
llms.txt and discovery
A curated, LLM-readable index of the site, plus OAuth discovery documents — one fetch tells an agent what the product is and where the canonical answers live.
WebMCP in the page
In-page tools registered through navigator.modelContext — pricing lookup, page search, early access — so a browser-resident agent acts through a sanctioned surface instead of scraping the DOM.
The part that was hard
Keeping four discovery surfaces truthful at once. The skills, the MCP tools, and llms.txt are generated from the same content source in the build pipeline, so a copy change cannot leave an agent reading a stale version of the product.
What it proves
This site practices what it recommends: groupemedia.ca itself publishes llms.txt and registers WebMCP tools. Making your product legible to agents is a build task measured in days — and we've done it more than once.
Want the same discipline applied to your operation?
See how engagements work