RIA agents — substrate for training, not launching
Most software vendors serving RIAs are launching AI agents. Holistiplan, eMoney, Wealthbox, and others are adding "AI assistant" features. Protocol Wealth is building one layer underneath: the substrate that lets any RIA train, operate, audit, and govern their own AI agents — on their own infrastructure, against their own client data, under their own CCO. The agent UX is commodity within 18 months. The substrate that makes agents safe to deploy in a fiduciary context is the durable thesis. That substrate is what we built; it's what we open-sourced as pwos-core; it's what you can fork and run today.
The gap
Vendors give you agents. They don't give you:
- The training-data preparation substrate (PII-safe; structurally enforced)
- The audit substrate (every agent action recorded immutably for seven years)
- The principal chain (which advisor authorized which agent session that invoked which tool)
- The privacy substrate (inference-time data never trains a model; canary fail-closed)
- The governance review queue (human-in-the-loop before client-facing output)
- The memory layer (per-client; per-advisor; per-firm)
Without these, an AI agent in an RIA context is policy on top of a vendor's claims. With them, an agent is auditable substrate. The first major AI scandal in our industry will not come from agents that fail; it will come from agents that succeed at something they should not have done, and the firm cannot prove afterwards what happened.
The reference stack
Opinionated. Categorical. Concrete. Forkable.
| Agent capability | Substrate primitive | Why this shape | Source |
|---|---|---|---|
| Training data preparation | pwos-core/pii-guard |
4-layer PII defense; structural exclusion of high-PII fields from any training corpus | Apache 2.0 |
| Agent action audit | pwos-core/audit-log |
Hash-chained immutable rows; 7-year retention horizon | Apache 2.0 |
| Authorization trace | Principal chain (in audit-log) |
Captures advisor → session → tool; answers "who is accountable" without ambiguity | Apache 2.0 |
| Inference-time privacy | Anthropic ZDR workspace + egress canary | No retention; no training; byte-identical canaries across three independent surfaces | Apache 2.0 (canary patterns) |
| Human-in-the-loop | pwos-core/workflow-engine review queue |
Tier 2 HITL; CCO sign-off gate before client-facing output | Apache 2.0 |
| Tool authorization | pwos-core/mcp-tools confirmGate |
4-tier write-tool authorization; two-turn gate for client-affecting actions | Apache 2.0 |
| Compliance retention | GCS bucket-level retention lock | 7-year retention; empirically validated against operator override attempts | Cloud-vendor primitive |
| Model alias enforcement | ESLint rule + alias map | Prevents hardcoded model strings; survives vendor model deprecations | Apache 2.0 |
If you were building an AI agent for an RIA today, here is the stack:
- Cloud: GCP (single-cloud sovereignty posture)
- LLM provider: Anthropic, with ZDR contractually enforced at the workspace level; US-only inference
- Database: Postgres with hash-chained audit substrate
- Audit mirror: GCS with bucket-level retention lock
- Edge: Cloudflare for marketing surfaces; direct-to-GCP for authenticated surfaces
- Substrate primitives:
pwos-core(Apache 2.0) - MCP foundation:
nexus-core(Apache 2.0; deployed at nexusmcp.site)
The three-tier memory model
An AI agent in an RIA context has three legitimate memory scopes. Each requires different substrate enforcement.
| Memory tier | Scope | What it remembers | Substrate enforcement |
|---|---|---|---|
| Per-client | One client across all advisor sessions touching that relationship | Goals, history, preferences, prior decisions, document signatures, communication style | Row-level security on shared schema + principal-chain queries against audit-log |
| Per-advisor | One advisor across their book of business | Methodology preferences, common workflows, expertise areas, prior interactions | Session-scoped + advisor-scoped derived from audit-log views |
| Per-firm | All advisors and clients; firm-wide state | Compliance state, vendor relationships, policies, ADRs, CCO-approved patterns | Derived from firm-wide compliance state, policy records, and the architecture-decision index |
Aspirational: each client portal of the future surfaces this organized around the client's own goals, not around our internal data model. The substrate is what makes that aspiration tractable rather than a marketing claim.
What makes substrate-based training safe
Every agent threat model has a structural answer:
| Threat | Structural answer |
|---|---|
| Agent sees PII it shouldn't | PII canary fail-closed; 4-layer defense across three byte-identical re-implementations; layers cannot share a single bug |
| Agent recommends a product it has been engineered to sell | Governance review queue routes every client-facing output through CCO sign-off; Marketing Rule §206(4)-1 review applies pre-delivery |
| Agent retains client conversation outside ZDR window | Workspace-level ZDR contractually enforced; no inference data crosses retention boundary |
| Agent action goes unrecorded | audit-log write is structurally enforced at the application layer; no agent path bypasses |
| Agent operates without human signoff | Tier 2 HITL substrate; principal chain captures who authorized the AI session |
| Agent's model gets deprecated mid-deployment | ESLint-blocked hardcoded model strings; a model alias map survives vendor changes |
| Agent's audit records get tampered with | GCS retention lock; bucket-level immutability empirically validated against operator-level access |
These are not features. They are substrate. The difference matters: features can be turned off, deprecated, or de-prioritized when vendor economics shift. Substrate enforces commitments structurally and survives every kind of operator failure.
How to verify
The substrate is publicly inspectable:
- github.com/Protocol-Wealth/pwos-core — open-source primitives under Apache 2.0
- protocolwealthllc.com/security — public security posture; PDF + on-site rendering
- protocolwealthllc.com/changelog — public substrate changelog; sanitized cross-repo shipping ledger
- protocolwealthllc.com/factsheets — four substrate-education fact sheets including the advisor's AI vendor audit checklist
- pwos.app/live — engineering substrate transparency dashboard; aggregate metrics
pwos.app/agents— functional substrate view- nexusmcp.site —
nexus-coreproduction MCP foundation
We expect to publish high-level ADR summaries and posture attestations over time; fuller records — ADRs, specific audit_log row samples, the vendor due-diligence bundle, and signed posture attestations — are available to qualified reviewers via the verification pathway on the /security page.
Three concrete actions any RIA can take today
- Fork
pwos-core. Apache 2.0; no NDA, no contact form. Run the audit substrate against their own GCP project. Audit the patterns. - Use the advisor's AI vendor audit checklist at /factsheets/advisor-ai-vendor-audit-checklist. Twenty structural questions any RIA can run against any AI-enabled vendor.
- Subscribe to /changelog. If we ship something compliance-interesting, they see it. If we ship something rough, they see that too. Build-in-public both ways.
A note on scope
This page describes the substrate Protocol Wealth built and operates for AI agents in an RIA context. It does not describe specific agent products, performance, or advisory services. Anyone evaluating Protocol Wealth as an investment adviser should read our Form ADV Part 2A at adviserinfo.sec.gov/firm/brochure/335298.
The Marketing Rule §206(4)-1 framework treats engineering substrate transparency as separable from advertising of advisory services. We hold to that separation deliberately.
Related reading
- /how-we-work — the plain-English anchor for substrate posture across all of our public surfaces
- /security — public security posture
- /changelog — public substrate changelog
- /factsheets — four substrate-education fact sheets
- pwos.app/demo — advisor IDE demo
- pwportal.app/demo — client portal demo
- pwos.app/live — live engineering substrate dashboard