Skip to content

Writing from CMW AI Labs

Research-backed, cited writing on enterprise RAG, voice AI, AI agents, and AI governance from the CMW AI Labs engineering team.

Voice AI10 min read

Multilingual and Code-Switching Voice Agents

Supporting two languages is not the same as supporting callers who mix them mid-sentence. Utterance-level language identification commits to one language before the switch happens, which no tuning can fix, so mid-sentence switching needs frame-level identification or an end-to-end multilingual model. Then retune turn detection, synthesis and tool calling per language.

Voice AI10 min read

Turn Detection and Interruption Handling in Voice Agents

Voice agents that cut callers off and voice agents that leave dead air have the same bug: deciding when a turn has ended. Treat turn detection and interruption handling as separate problems, layer semantic detection over acoustic VAD, filter backchannels rather than treating every sound as a barge-in, and set thresholds by what the caller was just asked.

Evals and LLMOps10 min read

Monitoring LLM Quality in Production

Passing evals prove only that the feature worked on the cases you thought of. In production, run your validated judges on a stratified sample of live traffic, track the silent failures infrastructure monitoring misses (refusals, truncation, cache hit rate), and alert only on joint conditions with a named owner. Then feed every failure back into the eval set.

Voice AI11 min read

Voice Agent Telephony: SIP, PSTN, and Narrowband Audio

A phone call reaches your agent over SIP, not WebRTC, as 8 kHz G.711 audio that has already lost the consonant detail speech recognition relies on. Keep one transport-agnostic agent runtime, put your media edge near both callers and inference, transcode once at most, and get caller ID attestation right before blaming the agent for low answer rates.

Evals and LLMOps10 min read

Regression Testing AI Features in CI

A CI gate has to be cheap, fast, and statistically meaningful, and most designs manage two of the three. Split it instead: deterministic assertions and critical-slice invariants block every pull request, while the judge suite runs nightly and gates on a paired comparison rather than a raw threshold. Size the eval set for the regression you actually need to catch.

Evals and LLMOps10 min read

LLM Observability and Tracing

Capture the whole tree for every interaction, not just the final call: each model call, retrieval and tool invocation, with token counts, finish reason, retry and fallback state, and tenant, feature and prompt version on every span. Use OpenTelemetry's gen_ai names rather than inventing your own, and treat content capture as a data-governance decision.

Evals and LLMOps11 min read

How to Run Error Analysis on LLM Failures

Read your own system's traces before you build a single metric. Sample about a hundred, write free-text notes on the first thirty yourself, then group those notes into specific named failure categories and count them. The ranked list tells you which evaluators are worth building, and which failures a one-line prompt fix would remove.

Evals and LLMOps11 min read

How to Validate an LLM Judge

Using an LLM to grade outputs is easy; knowing whether the grader is right is the hard part. Have one domain expert label real outputs pass or fail with written critiques, build the judge prompt out of those critiques, then hold out a test set and report true positive and true negative rates rather than raw agreement.

Adding AI to Existing Products11 min read

Build In-House, Hire, or Partner: How to Staff AI Features

Decide first whether AI is a core differentiator or a supporting feature, because most products are the second and plan as though they are the first. For a first feature the structure that usually wins is a partner building it with your engineers embedded, handing over the gateway, evals and telemetry, with hiring deferred until you know what the role requires.

Pillar guideEvals and LLMOps13 min read

LLM Evals and LLMOps: A Practical Guide

Read a hundred real traces and categorize the failures before you design a single metric. Generic helpfulness and coherence scores diagnose nothing, because your failures are specific. Build the test set from production traffic, validate any LLM judge against human labels the way you would a classifier, and run the suite in CI on every prompt and model change.

Adding AI to Existing Products10 min read

AI Copilot UX Patterns for B2B SaaS

Most AI features fail in the interface, not the model. Put the output where the work already happens rather than in a side chat panel, show sources the user can check in seconds, make editing the expected path, and confirm before the feature acts. Then measure repeat use and acceptance, not activation.

Adding AI to Existing Products10 min read

How to Make LLM Features Reliable

Model APIs fail, throttle, and slow down, so treat one as a remote call that can be slow or unavailable rather than a function call. Set a latency budget per feature, retry with backoff and jitter under a capped budget, fail over to a second provider that passed the same evals, and make sure the product still works with every AI feature off.

Adding AI to Existing Products11 min read

How to Choose an LLM for Your Product

There is no single best LLM, only the best model for each task your product performs. Choose the smallest one that clears a written quality bar on your own data, at a cost and latency you can live with, and name a fallback from a second provider. Put model IDs behind a gateway: releases, price cuts and retirements will change the answer within months.

AI Agents8 min read

Why AI Agents Fail in Production

Agents rarely fail because the model is weak. They fail because the engineering that makes them observable, measurable, and reliable isn't there. Why agents break in production, and the discipline that fixes it.

AI Agents8 min read

How to Choose an AI Agent Framework

The agent framework landscape shifted more in early 2026 than in all of 2025. Which frameworks matter for production, how to choose by workload, when you don't need one, and the thing every framework leaves out.

AI Agents8 min read

Model Context Protocol (MCP) Explained

An AI agent that can't reach your tools is just a clever conversationalist. MCP is the open standard that changed that. What MCP is, the integration problem it solves, how it works, why it matters, and the security caveats.

Enterprise AI Governance8 min read

AI Agent Governance

Agents don't just produce outputs, they take actions, which opens an accountability gap traditional governance doesn't close. The novel risks, the control layers that actually work, and why agent governance is an enforcement problem, not a policy one.

Pillar guideEnterprise AI Governance8 min read

Enterprise AI Governance

AI governance has become a board-level priority, driven by binding regulation and real risk. The frameworks that define it, the pillars of a program, and how governance translates into architecture, not just policy documents.

Pillar guideAI for Associations7 min read

AI for Associations: A Practical Guide

Start with one bounded, member-facing use case. Build it on content you already own. An assistant that answers member questions from your own body of knowledge, and cites every answer. Everything else builds on top of that. The groups that stall are the ones waiting for a full AI strategy first.