Three sources in parallel, not one
Variance above 5% raises a flag. Resolution requires 2-of-3 agreement — otherwise the agent reports that it doesn't know.
WHY — In research, a confident wrong number costs more than a missing one.
NVDA · Forward P/E · same day, two sources
Consensus not reached. Third source requested → 2-of-3 agreement → value released to the model as VerifiedMetric. Without this step the agent answers fluently, confidently, and wrong.
I built CagentOS — a financial research agent that treats its own input as the thing most likely to be wrong.
A financial agent that reads a wrong number doesn't fail loudly. It produces a fluent, well-structured, entirely wrong answer — and every conclusion downstream inherits the error silently.
Most agent frameworks treat retrieved data as input. In investment research it is the single highest-risk surface in the system, and almost nothing is built to guard it. That gap is what CagentOS is organised around.
Python. No LangChain, no LangGraph. A ReAct loop on event sourcing, a plugin tool system, cross-session memory, and a data integrity layer standing in front of the model. Live at cagentos.com in invite-only beta.
Variance above 5% raises a flag. Resolution requires 2-of-3 agreement — otherwise the agent reports that it doesn't know.
WHY — In research, a confident wrong number costs more than a missing one.
Every state change is an immutable journal entry. The model transcript is rebuilt from the event stream on each turn.
WHY — Replayable debugging, crash recovery, and an audit trail you get for free instead of bolting on.
Models invent tool names. A per-agent allow-list rejects the call before it ever reaches the dispatcher.
WHY — What the agent is permitted to do is a system decision, not a model output.
Ten golden cases across seven scenario types, 25 criteria, LLM-judge scoring with history comparison.
WHY — Without a score you cannot tell a fix from a regression. Most agent projects never find out.
I make every product and architecture decision. I don't hand-write the code.
I specify, direct and verify the implementation with AI coding tools. The four decisions above are mine — the reasoning behind them, the trade-offs, and the failure cases they were chosen against. The typing is delegated.
I put this up front because it's how I work, and increasingly how the teams I want to work with do too.
Two years as an investment analyst on a secondary-market fund — participating in trading decisions and producing 600+ research reports. The asset class was digital assets; the framework was fundamentals.
Currently — AI data product manager at NashNova, working on data engineering. Shanghai.