> ## Content Index
> Fetch the complete content index at: https://vill.ar/llms.txt
> Use this file to discover other available public pages before exploring further.

# Context Beats Intelligence: Building an AI That Actually Knows Me
- URL: https://vill.ar/context-beats-intelligence-building-an-ai-that-actually-knows-me/
- Published: 2026-10-11T07:49:15.000Z
- Updated: 2026-10-11T07:49:39.000Z
- Author: Mike Villar

*Four and a half months, 885 commits, and one very opinionated assistant named TARS.*

I run a digital marketing agency. On any given day my attention is split across a dozen clients, two inboxes, two calendars, a stack of recorded meetings, a Drive full of decks, and a training log for long-distance cycling. None of that context lives in one place, and every AI assistant I tried started each conversation knowing nothing about any of it.

So in late May I started building my own. I named it TARS, after the robot in *Interstellar*: direct, capable, no padding, humor setting at 75%. It now runs my day.

## The problem with off-the-shelf assistants

ChatGPT, Claude.ai and the rest are very good at answering questions. They are not very good at knowing *my* questions.

**They start from zero.** Every chat begins with me re-explaining who a client is, what we agreed last week, and which project is late. The intelligence is there; the context isn't.

**They wait to be asked.** A chat box only works when I remember to open it and know what to type. Most of what slips through the cracks is something I never thought to ask about: the email I read and forgot to answer, the action item I agreed to in a meeting, two meetings booked on top of each other.

**They live outside my tools.** My real work happens in Gmail, Google Calendar, Drive, Fireflies and Strava. An assistant that can't read and act on those is a very smart notepad.

**They lock you into one model.** No single model is the best and cheapest at everything. I wanted to send a quick lookup to a fast, cheap model and a client deliverable to a frontier one, and switch providers the day something better ships.

Agent frameworks and "bring your own tools" harnesses get closer, but they hand you a toolkit, not a finished system. I didn't want to assemble an assistant every morning. I wanted one that was already running when I woke up.

## The real strength: context that compounds

![](https://vill.ar/content/images/2026/10/11-memory-all.png)

Every feature below is built on one thing: a very large, very personal, long-term context that keeps getting sharper.

After four and a half months, TARS draws on 638 facts it has learned about me and my work, 190 recorded meetings, more than 480 conversations, two email accounts, two calendars, and a contact graph of over 3,100 people. On every message it pulls the slice of that history that matters for the question, so it answers like someone who has been in the room for months, because in a sense it has.

Size alone isn't the point. What matters is that the context is **shaped by signals** from how I actually live and work:

- **Who I meet.** My list of active clients isn't something I maintain. TARS rebuilds it from the last 60 days of meetings, matching attendees against my contacts, so a new client appears on their own and a finished engagement fades out.
- **What changes.** When I say something that contradicts an older fact, the new one wins and the old one is retired rather than deleted. 57 facts have been retired that way so far, and I can see and restore every one.
- **What I care about.** Anything I star in my knowledge base ranks higher when TARS decides what to bring into a reply.
- **What I ignore.** When I dismiss something on Today, it stays dismissed. The board learns what isn't worth my attention, and it never nags me twice about the same thing.
- **How I want things done.** Standing instructions I've given TARS over time, about tone, formatting or how to handle a particular client, ride along with every message.

That is the difference between an assistant that is smart and one that is *mine*. A frontier model without this context is a brilliant stranger. TARS is the same intelligence with months of my working life behind it, and that gap widens every week I use it.

## What TARS actually does

### Today: the screen that does the remembering

![](https://vill.ar/content/images/2026/10/01-today-1.png)

Today is the first thing I see. Every four hours TARS sweeps my email, meeting transcripts, calendar and projects, and turns anything that needs a decision into a **signal**: an email I read but never answered, an action item I committed to on a call, an invitation I haven't responded to, a double booking, a project that's past due.

Each signal comes with one clearly named action. *Accept* answers the invite. *Move Ops sync* reschedules the conflicting meeting. *Draft reply* writes a reply from the actual email thread, right in the card, for me to edit and send. *Add 3 to Projects* turns meeting commitments into tracked tasks. I can clear the whole board with the keyboard in a couple of minutes.

The hard part was teaching it what *not* to show. An early version flagged emails addressed to other people and meeting tasks that belonged to my team. Now Jev, a fast decision model I'll come back to in the stack section, screens every email first (is this actually for Mike? is it automated?) before anything more expensive looks at it, and a dismissed signal never comes back. A triage screen that nags is a triage screen you stop opening.

It works on the phone too, installed as an app.

### Chat that knows my world

![](https://vill.ar/content/images/2026/10/05-chat-memory-bike-build.png)

Chat is where I ask for things, and TARS has around 50 tools behind it. It can search and read both Gmail accounts, draft and send email (always behind a confirm step), create and move calendar events, read meeting transcripts, search Drive and edit Google Docs and Sheets, check my rides on Strava, look up places, check my Tesla, set reminders, and generate Word, PDF, PowerPoint and Excel files.

When the answer is data, it shows the data. Tables can be sorted and sent straight to Google Sheets. Charts are rendered server-side and appear inline. Asking it to compare the top NBA shooting guards produced a six-panel dashboard in a single turn.

![](https://vill.ar/content/images/2026/10/09-chat-chart-dashboard-1.png)

For bigger jobs it can split a request into up to eight parallel sub-agents (one researching pricing, one reading reviews, one checking specs) and combine what they find. It can also drive a real web browser to get things done on sites with no API, with a live view so I can watch what it's clicking and take over if it needs me to log in. It never types a password itself.

### Memory I can see and correct

![](https://vill.ar/content/images/2026/10/11-memory-all-2.png)

TARS has two kinds of memory. **Long-term memory** holds what happened: decisions, preferences and facts that come out of conversations and meetings. **Second Brain** holds what I know: articles, notes, PDFs and decks I've saved. Both are searched before every reply, by meaning and by keyword, so I don't re-explain my clients.

![](https://vill.ar/content/images/2026/10/10-memory-cycling.png)

The important part is that the memory is mine to inspect. I can browse it, edit it, and see when a newer fact has replaced an older one ("switched to a new crankset" retires the old crankset rather than keeping both). Nothing is silently deleted, and nothing is a black box.

### It talks, and it reminds

Conversation mode is a hands-free voice loop. I talk, TARS answers out loud, and I can interrupt it mid-sentence the way you would a person. Speech recognition and the voice itself both run on my own server, not a third-party API.

Reminders are proactive. A reminder fires as a push notification with useful context pulled from memory, repeating ones (medication, for example) come back on schedule, and if I don't respond it follows up once and then logs it as missed.

### Everything else

- **Meetings:** Fireflies transcripts get summarized, with action items attributed to the person who actually said them.

![](https://vill.ar/content/images/2026/10/image-2.png)

- **Feed:** an RSS, YouTube and podcast reader where any article can be saved to Second Brain or discussed with TARS in one click.
- **Artifacts:** a searchable library of every file TARS makes, plus useful email attachments (boarding passes, invoices, tickets) filed automatically.
- **AR glasses:** an experimental bridge that streams TARS replies onto a Rokid glasses display.

## I decide which model does what

![](https://vill.ar/content/images/2026/10/13-model-routing.png)

TARS isn't tied to one AI company. It runs on models from Anthropic (Claude Haiku, Sonnet and Opus), Z.ai (GLM) and Moonshot (Kimi), and I decide which one does which job from a settings screen, with no code changes.

- **By weight of the work.** Every message is sorted into one of three tiers: quick lookups, everyday work, and frontier work like client deliverables and long analysis. Each tier gets the model I assign it.
- **By kind of work.** I can also pin a model to a type of task, whatever its tier: one model for writing, another for coding, another for deep research, another for charts and data.
- **By sub-task.** When TARS splits a job across parallel sub-agents, each one can run on a different model: a long-context model for heavy research, a cheap fast one for quick lookups.
- **With a backup for everything.** Each tier has a second model on standby. If the primary errors out or stalls before it starts answering, the backup picks up the request and stays in charge until the primary recovers.

New models ship constantly, so TARS checks every provider's model list daily. When a newer version of a model I'm using appears, or one I rely on disappears, it shows up on Today as a signal. It never switches on its own; I decide.

Because every call is costed, these choices are informed ones. When one model turned out to be slow on everyday questions, the timing logs showed it within minutes, and moving that work to a different model was a dropdown change, not a migration.

## How it's different, in one list

- **Context:** instead of starting each chat from zero, TARS pulls from memory, my inbox, calendar and meetings on every turn.
- **Initiative:** instead of waiting for a prompt, it finds what needs a decision and puts it on Today.
- **Models:** instead of one model from one vendor, each request goes to the right model, with automatic backups.
- **Memory:** instead of a hidden memory, mine is browsable, editable and reversible.
- **Safety:** anything that sends, deletes or spends asks me first.
- **Integration:** it lives in my tools (Gmail, Calendar, Drive, Fireflies, Strava), not in a browser tab.
- **Cost:** instead of a monthly invoice, every call is costed, per model and per purpose.

## The stack, briefly

You don't need any of this to understand TARS, but people always ask.

- **Interface:** a Next.js web app, installable on phone and desktop.
- **Brain:** a Python (FastAPI) service that assembles context, routes requests and runs the tools.
- **Memory:** Postgres with vector search, so memory is found by meaning and by keyword.
- **Models:** Anthropic's Claude (Haiku, Sonnet and Opus), Z.ai's GLM and Moonshot's Kimi, assigned to work as described above.
- **Jev:** the quiet hero. Jev, from TypeSafe, is a decision model: instead of writing text, it answers typed questions with calibrated probabilities in about a third of a second. TARS asks it a handful of questions about every message. How hard is this? What kind of task is it? Does it need my email, my calendar, my rides, a browser? Jev's answers pick the model, decide which context to load and trim the tool list, so a simple question doesn't pay for a heavyweight setup. It also screens every email before it reaches Today, and decides which one-click follow-up actions are worth offering after a reply. Thousands of these calls a month cost a few cents, and if Jev is ever unavailable TARS falls back to its older routing without missing a beat.
- **Voice:** faster-whisper for speech-to-text and Kokoro for the voice, both open source and self-hosted.
- **Browser:** a real Chrome in its own sandboxed container.
- **Hosting:** one virtual server that costs about the same as a streaming subscription.

As for what it costs to run: about six dollars for a week of heavy use (11.4 million tokens across every model and routing call). Most of that is cached tokens, which cost a fraction of normal ones.

I built nearly all of it with Claude Code as my pair programmer, working in short sessions with a single spec document that every session reads first. That document is also fed to TARS itself, so when I ask "what version are you?" or "how does your routing work?" it can answer accurately.

## What I learned

**Context beats intelligence.** A frontier model with no context loses to a mid-sized model that knows your clients. Most of the work in TARS isn't the model; it's getting the right 2% of my life into the prompt.

**Proactive is the whole point.** The chat box is the least important screen. The value is in the things I didn't have to ask about.

**Silent failures are the real enemy.** The worst bugs weren't crashes. They were features that quietly fell back to doing nothing and looked fine: memory extraction that stopped saving for weeks, a renderer that skipped every table. Now every fallback logs loudly, and there's a timing line for every single message.

**Build for one person.** TARS doesn't need settings for a thousand users or onboarding for strangers. It needs to fit one person exactly, and that turned out to be a much easier and much more rewarding problem.

TARS isn't a product, and I'm not selling it. But if you've ever wished your assistant knew what you know, it's more buildable than you might think.

*Humor setting: 75%.*