ContextIQ Talk to us
On-device agent engines

A fully on-device assistant.

ContextIQ is the core library behind voice-first, on-device assistants. Private by architecture, fast by design, and genuinely useful in the hand.

7:42ON DEVICE
Today · offline
What's on my calendar tomorrow?

Three things tomorrow. Your first is a 9:00 stand-up, and you're clear after 3pm.

CALENDAR · TOMORROW

Wed, 3 free hours

3 events · nothing after 15:00

CLEAR PM
09:00Team stand-up
11:30Design review
14:001:1 with Sam
Block focus time Share
Move the 11:30 What about Friday?
calendar.lookup · 0.96 Why this?
On device
The model runs locally. Nothing is sent to a server.
Zero cost
No API keys, no per-request billing to worry about.
Offline
Full function in airplane mode, with no signal.
Instant
Routing and first speech in well under a second.
Why on-device

Privacy, speed and functionality.

The whole model runs locally. There are no API keys, no per-call cost, and no round trip to a server for the user to worry about. That constraint is what makes the experience both trustworthy and instant.

Private by architecture

Requests, transcripts and results never leave the device. Privacy isn't a policy bolted on afterwards — it's a property of where the compute happens. Cloud escalation, if it exists at all, is opt-in and always announced.

Fast by design

Embedding retrieval routes each request in under a millisecond, with no token cost. Speech is chunked at sentence boundaries so the agent starts talking after the first sentence, not the whole reply. It feels immediate because it is.

Genuinely useful

Every tool call renders as its own view — an event card, a pass, a preview — not a paragraph of text. The agent picks the right tool from a large catalogue, validates every argument, and shows its work when asked.

Architecture

Five layers, cleanly separated.

The tool and routing layers never import model-specific types, so the same engine ports to a second platform later. The hard constraint everything is designed around: a small on-device context window, read at runtime and never hardcoded.

LAYER 05UI
Message list, live transcription, and a first-class view per tool call — generative UI, not text.
LAYER 04Voice
Streaming speech-to-text, sentence-chunked text-to-speech, echo cancellation and barge-in.
LAYER 03Orchestration
Session lifecycle, rolling context budgeting, argument validation, and approval gating.
LAYER 02RoutingSUB-MS
Embedding retrieval first, a classifier only when it's close, and a real "no tool needed" path.
LAYER 01Tools
~30 tools behind one platform-agnostic protocol, grouped by user intent, each with a measured token cost.
The central libraries

The reusable core we build once, and depend on everywhere.

These are the components that make an on-device agent viable inside a tiny context window. Each is independently testable, portable, and owns one hard problem.

TOOL REGISTRY

One catalogue, measured

A single source of truth for every tool, wrapped behind a protocol that never leaks model internals. Descriptions are treated as production code, because the summary is the prompt.

  • Grouped by user intent, not API surface
  • Constrained argument types so invalid values can't be produced
  • Token cost measured at build time and asserted in tests
HYBRID ROUTER

Retrieval, then reason

Never attach thirty schemas to one session. Cosine-match the utterance against cached embeddings, and only spend a model pass when the top candidates are genuinely close.

  • Sub-millisecond embedding retrieval, zero token cost
  • Conditional classifier fallback with a confidence floor
  • A first-class "none" path — most turns need no tool
CONTEXT BUDGETER

The window never overflows

Before every request it counts history, prompt and reserve against the runtime context size. When it would exceed, it summarises the oldest turns rather than throwing an error at the user.

  • Reads the context size at runtime, never hardcoded
  • Rolling summarisation to stay under budget
  • Full decision log from day one — the only real quality signal
VOICE PIPELINE

Feels good in the hand

Hardware echo cancellation stops the agent hearing itself. Output is cut on real sentence boundaries and queued so speech starts almost immediately, and the user can interrupt at any moment.

  • Voice-activity endpointing — no tap to stop
  • Sentence-chunked synthesis for instant playback
  • Barge-in that cuts speech within a couple of hundred ms
GENERATIVE UI

Answers as objects

Each tool supplies its own result view through a shared protocol. A calendar lookup is an event card; a draft is an editable preview. Nothing destructive runs until the user approves what they can see.

  • Tool calls modelled as a first-class message type
  • Editable action previews instead of yes/no dialogs
  • An on-demand "Why?" that reveals the routing decision
VALIDATION & SAFETY

Assume the model misfires

The model is quantised and will hallucinate arguments. Between the call and execution, every argument is checked against its schema, the tool ID is confirmed present, and destructive actions wait for approval.

  • Schema validation before anything executes
  • Fuzzed arguments in tests — nothing runs on malformed input
  • Routing eval set run on every registry change
One request, start to finish

Raise the phone. Hear the answer.

The whole loop runs locally, in airplane mode, in under two seconds from the end of the sentence.

01

Raise

Gravity-vector gesture with dwell and hysteresis arms the listener.

gesture
02

Listen

Streaming transcription with voice-activity endpointing. Live on screen.

on-device STT
03

Route

Embedding match narrows ~30 tools to a handful and attaches only those.

~0.4 ms
04

Execute

Arguments validated, tool runs, result rendered as its own card.

validated
05

Speak

Reply chunked by sentence and spoken back — interruptible any time.

<2 s total

Built for portability from the first line.

Because the tool and routing layers stay free of any model-specific types, the same registry and the same router move to a second platform without a rewrite. We design the core once and reuse it — the constraint that keeps everything small is also what keeps it clean.

Contact

Building an on-device agent?

We build the core libraries — tool registries, routing, context budgeting, voice and generative UI — and the products on top of them. Based in London. Reach out for pilots, partnerships or product work.

Start a conversation
Studio
86–90 Paul Street
London EC2A 4NE
United Kingdom
Focus
On-device AI · voice interfaces · native iOS · agent tooling