~/ work/ tps-securities
CASE.01 · CAPITAL MARKETS · 2025–26

TPS Securities — AI in every
investing touchpoint.

We co-launched TPS Mobile AI with Tien Phong Securities — a multi-agent investment assistant embedded across the trading flow, from watchlist to order ticket. Now serving 200,000+ retail investors.

CLIENT
Tien Phong Securities
DURATION
9 months · live
TEAM
8 eng · 2 PMs
USERS
200K+ retail
STACK
Bedrock · Go · React

§ 01 / SUMMARYAn AI assistant that doesn’t trade for you — it makes you better at trading.

TPS came to us with a thesis: retail investors don’t need a robo-advisor — they need a research analyst, a risk officer, and a compliance assistant in their pocket. The product, TPS Mobile AI, is the first capital-markets app in Vietnam built around that idea.

We delivered the agent platform end-to-end: 12 specialist agents, an in-VPC inference layer on AWS Bedrock, and a streaming UI that renders agent reasoning in plain Vietnamese while your order ticket sits one tap away. Now in production with 200,000+ users and growing.

09:41●●●●
VN30F1M
FPT+2.4%
VIC−0.8%
HPG+1.1%
VCB+0.6%
▸ Research agent
FPT Q1 earnings beat by 12%. Cloud segment +38% YoY. Insider buys past 30d: +$2.1M. Risk note: SBV rate decision Thurs.

The product surface

The agent ribbon sits below the live ticker. Tap it for full reasoning; tap a stock for a research-agent briefing inline. Order ticket is always one tap away — the agent never blocks the trade.

SCREENSHOT REPLACED WITH ASCII PREVIEW · production UI under NDA

§ 02 / PROBLEMVietnamese retail investors face a research vacuum.

70% of TPS’s active traders are under 35. They came in during the 2020–22 retail boom. Most have a brokerage account but no analyst relationship, no Bloomberg terminal, no risk desk. Their research substitute is Telegram groups and YouTube influencers.

TPS wanted to give them a real research stack — but a copy-paste of a Bloomberg AI clone would have failed three ways: (1) regulatory — the State Securities Commission rules out unlicensed advice; (2) language — off-the-shelf models are weak on Vietnamese financial vernacular; (3) trust — one hallucinated price target and the brokerage license is at risk.

§ 03 / APPROACHTwelve specialist agents, one compliance gate.

We rejected a single-prompt design from week one. A monolithic LLM is impossible to audit and impossible to constrain — both deal-breakers for a regulated brokerage. Instead, we shipped a multi-agent graph where each agent has a single, narrow responsibility, a hard-typed I/O schema, and a separate eval suite.

The twelve agents fall into three layers:

  • Research layer — Earnings, Insider Activity, Macro, Technicals, News Sentiment, Sector Comp.
  • Execution layer — Order Ticket, Risk Check, Margin Calculator, Watchlist Builder.
  • Governance layer — Compliance Gate, Audit Logger.

Every output that touches the user passes through the Compliance Gate — a deterministic rule layer that strips advice, flags speculation, and rewrites tone where needed. The brokerage’s legal team owns the rule set; we don’t.

§ 04 / ARCHITECTUREHow the graph runs.

The platform is a streaming agent graph orchestrated by a Go control plane, with model calls routed through Bedrock to Claude Haiku (fast path) and Claude Sonnet (research-grade), plus a self-hosted Vietnamese-tuned Qwen for vernacular passes. Inference latency at p95 is 1.4s for the fast path.

ARCH/TPS-MOBILE-AI · v3.2 · prod 12 NODES · STREAMING
MOBILE APP React Native CONTROL Go · gRPC COMPLIANCE deterministic EARNINGS INSIDER MACRO SENTIMENT ORDER · RISK CLAUDE SONNET Bedrock · research CLAUDE HAIKU Bedrock · fast path QWEN-VN self-hosted · VPC MARKET DATA HOSE · HNX feed AUDIT LOG SBV-compliant · S3

Why a deterministic compliance gate, not an LLM judge?

We tested an LLM-as-judge for compliance early. It scored 96% on our eval set — not good enough. The remaining 4% included exactly the failure mode that gets a brokerage fined: hallucinated price targets phrased as opinion. We swapped to a hand-tuned rule layer and a sentence-level classifier; eval rose to 99.97%. The 0.03% are escalated to human review, not shipped.

§ 05 / TIMELINENine months, one phased rollout.

  • 2025.04▸ KICKOFFDiscovery sprint. Two weeks on-site at TPS Hanoi. Mapped the trader journey, met compliance, signed the data agreement.
  • 2025.05▸ PLATFORMControl-plane v0. Go service, Bedrock client, first three research agents. Bench-tested against a 1,200-question eval set.
  • 2025.07▸ COMPLIANCECompliance Gate v1. Co-designed with TPS legal. 47 deterministic rules, sentence-level classifier on top.
  • 2025.09▸ BETAClosed beta · 500 users. Internal staff + opted-in retail. Caught two p1 issues: stale earnings dates, slow Vietnamese tokenizer. Both fixed in 8 days.
  • 2025.11▸ LAUNCHPublic release. Phased: 5% → 25% → 100% over 4 weeks. No production incidents above sev-3.
  • 2026.02▸ SCALE200,000 users. Added Sentiment, Sector Comp, Watchlist Builder. Latency held at p95 = 1.4s.

§ 06 / OUTCOMESWhat actually moved.

200K+
Active users
retail investors on TPS Mobile AI
+34%
Daily session length
vs. pre-launch app baseline
99.97%
Compliance pass rate
eval suite, monthly recertified
1.4s
p95 latency
fast-path agent response
+19%
Trades / active user
without compliance escalations
12
Production agents
each with its own eval suite
0
Sev-1/2 incidents
since public launch
9mo
Kickoff to GA
discovery through phased rollout
The compliance gate is the reason we shipped. CoderPush understood from week one that we’re a brokerage first and a tech company second. — DUNG L., HEAD OF DIGITAL · TPS

§ 07 / TRADE-OFFSWhat we’d do differently.

1. We over-built the eval harness in month 2. Spent three weeks on a perfect harness before we had three agents to evaluate. Should have shipped a 100-line eval runner in week one and grown it.

2. The Qwen-VN swap took a month longer than budgeted. Self-hosting Vietnamese tokenization is a research project, not an engineering one. We’d budget a research spike up front next time, rather than treating it as a stack swap.

3. Streaming UI on flaky 4G. Production retail traffic in Vietnam includes a long tail of weak connections. Our first streaming protocol assumed clean WebSockets. We rewrote to Server-Sent Events with reconnect-from-offset in month 7. That should have been the day-one design.

§ 08 / CREDITSThe people who shipped this.

▸ CODERPUSH ENGINEERING

  • Nguyen LongSTAFF · AGENT GRAPH · COMPLIANCE GATE
  • Tran MinhSR · GO CONTROL PLANE · BEDROCK INTEGRATION
  • Pham ThuSR · DATA · HOSE/HNX FEED · AUDIT LOG
  • Do HieuSR · REACT NATIVE · STREAMING UI
  • Vo KhanhSR · QWEN-VN FINE-TUNE · INFERENCE
  • Le HuongPM · DELIVERY · COMPLIANCE LIAISON
  • Bui TanPM · DISCOVERY · USER RESEARCH