I wanted to answer a question that sounds simple and isn't: can AI agents run a disciplined investment process better than a human alone? Not “can a chatbot pick stocks” — can agents run the whole desk: source ideas, do the research, argue about it, and decide.
So I built one. Four named agents, each on its own machine and git branch, work a pipeline of 24 investor-framework “skills” — Munger's inversion, Mauboussin's expectations investing, Ackman's quality gate, Helmer's Seven Powers. They've produced over 2,000 research documents across 309 companies in 13+ markets. Every memo gets red-teamed by a council of outside models prompted to falsify it, not praise it. Then a deterministic gate — plain code, not an LLM — decides whether a name is even eligible for capital. About fourteen separate conditions have to pass.
The uncomfortable result
The system keeps an anti-portfolio: every stock it researched and passed on, tracked and graded. That cohort returned +323%against SPY's +78%. The idea engine works. The problem is conversion: of 238 researched names, exactly two became action — a 0.84% rate against a 2–15% target. The system's own post-mortem found a recurring blind spot: five weeks running, it dismissed AI-infrastructure “picks-and-shovels” names as beta. They kept going up.
That's a more honest finding than a good backtest: the bottleneck in investing isn't idea generation, it's pulling the trigger. Building the machine surfaced the exact same bias in the machine's operator.
Why it can't go rogue
The desk can reach a real Interactive Brokers account, and that demanded paranoia in the design. Three independent layers stand between an agent and a live order: a live-trading policy file, an environment variable that must literally be set to I_UNDERSTAND_THIS_CAN_PLACE_REAL_ORDERS, and a per-order human approval in Telegram. The approval requirement is force-overridden in code — setting approval_required: false in config does nothing. Able, but never automatic.