I built an open-source listening system, EchoWatch, and made a protocol — MCP — its first interface, ahead of its own dashboard. The next user of a listening tool is not an analyst staring at charts. It is an agent that needs to ask, in the middle of a task, "what changed, how much, and should I care?" — and get an answer it can act on.
Every listening product I have ever opened makes the same assumption: a human will log in, look at a dashboard, and decide what matters. The charts get prettier every year. The assumption gets older. My operation does not have an analyst on staff. It has an AI system that runs my publishing, my monitoring, and my follow-ups — for an audience of exactly one principal: me. A dashboard that waits for me to visit it is a dashboard that gets visited never. So this week I built the listening layer my system actually needed, and I built it agent-first.
EchoWatch collects mentions from live sources, dedupes and stores them locally in SQLite, and exposes them to my agent as four MCP tools: search_mentions, sentiment_trend, hot_events, and generate_brief. The dashboard exists — all six of its routes serve real data — but it is the second surface, not the product. The product is a question an agent can ask at 3 a.m. without waking anyone.
The numbers are unglamorous, and they are real
Five sources are verified live, not stubbed: Hacker News, GDELT (75 mentions in its verification run), RSS, Reddit through its RSS feed (22 mentions), and Bluesky (25), plus a sixth source, a TechCrunch feed, added with zero code through a configuration file. The local database holds 187 mentions, and re-running every fetch stores zero duplicates. That last property is a design decision, not an accident. The mature open-source monitoring suite I benchmarked against — feature by feature, across a 37-row parity matrix — dedupes with a Bloom filter. A Bloom filter has false positives, which means it silently discards real mentions and calls that efficiency. A listening tool that quietly deletes the thing it exists to hear is broken at the load-bearing wall. EchoWatch dedupes with an exact content hash enforced by a unique index: slower to describe, impossible to lie with. In its verification run, a second Hacker News fetch was intercepted 50 out of 50.
The rest of the chain is equally literal. Volume spikes are detected against a rolling baseline and pushed out over a webhook — tested end to end, three true alerts fired, zero false ones on the control set. Briefs render as Markdown and HTML files with code-drawn SVG charts, because a brief an agent can forward beats a page a human must log into. The whole stack is one Python process and one SQLite file, with zero runtime dependencies, and its first GitHub Actions CI run — tests plus a Docker build — passed this morning.
What I refused to copy
Parity was the floor, not the goal. The suite I measured against ships two message queues, four storage engines, and a Java stack, because it was designed for enterprise clusters. Copying its feature list meant refusing its machinery: middleware is a means, not a feature, and no user has ever asked for a second message queue. Ten rows of my 37-row matrix ended as explicit, recorded decisions not to rebuild the heavy parts — each one argued on cost, not skipped in silence.
And one honest limitation, stated the way I require every part of my system to state it: the LLM sentiment backend is wired behind a unified interface, but the machine that built this has no API key, so that path is not yet verified live. What runs today is a dictionary baseline — roughly 190 weighted terms with a negation window — and when no key is present the system labels its own output degraded instead of inventing a score. A listening tool that fabricates confidence is worse than one that admits a gap. The gap closes the day a key lands in the environment; the labeling stays forever.
Listening is a sense. Senses belong to the actor.
Here is the claim I will defend: a dashboard treats listening as reporting — something that already happened, formatted for review. An agent treats listening as a sense — something happening now, wired directly into the thing that acts. When a spike fires in my system, it does not wait for a weekly review meeting. It reaches the same agent that writes, schedules, and escalates, with the brief already attached.
The vendors will keep polishing dashboards, because dashboards are what procurement buys. But the builders wiring agents into real operations are going to route around them, the same way EchoWatch did: local data, exact dedupe, honest degradation, and a protocol where the login page used to be. Stop building listening dashboards. Build listening tools your agent can call.
— Jiahui Miao, founder of vertciti, building a personal AI operating system for one.
Top comments (0)