Modular voice first agent framework with extensible skill routing
PRI Voice Agent — modular voice assistant with intent-based skill routing; flagship portfolio analytics (Monte Carlo GBM + sentiment + Entry/Hold/Exit) plus extensible modes for interactive audio demos.
Portfolio mode
- Run Monte Carlo / GBM simulations for stock price paths
- Optionally summarize news sentiment (via NewsAPI)
- Provide a simple Entry / Hold / Exit suggestion
- Generate a simulation video (
.webm) ifffmpegis available
Scope note: This repository is for the PRI Voice Agent (portfolio assistant).
It is not associated with PRI OS, the separate self-optimizing operating system project.
Disclaimer: This project is for educational and demo purposes only and is not financial advice.
- Demo / Presentation
- Features
- How it Works
- Project Structure
- Setup
- Run
- Configuration
- Outputs
- Troubleshooting
- Roadmap
- License
- Project deck:
docs/Portfolio-PRI.pdf
- Wake word: “hey”
- Records your question for a configurable time window
- Text-to-speech via a practical robot voice (macOS
sayby default)
- Uses recent historical price data to estimate drift + volatility
- Simulates multiple price paths over a horizon (e.g., 30–60 days)
- Outputs:
- Expected return estimate
- Range of possible prices (min/max from simulation endpoints)
Simple decision logic combining:
- Expected return (from simulations)
- News sentiment (optional)
- Produces frame-by-frame plots
- Converts them into a video using
ffmpeg - Saves video to
data/<TICKER>_simulation.webm
- Wake word detection (voice mode)
- Speech recording for a fixed duration
- Text intent parsing
- portfolio mode triggers: simulate/stock/portfolio
- fuzzy matching helps map misheard names (e.g. “matter” → “meta”)
- Market data fetch
- primary:
yfinance - fallback logic can use cached data (if available)
- primary:
- Simulation
- GBM-based Monte Carlo runs
trials × days
- GBM-based Monte Carlo runs
- Sentiment (optional)
- fetch headlines via NewsAPI
- classify sentiment
- Decision signal
- Entry / Hold / Exit
- Outputs
- summary text
- plot + optional video
PRI/
├─ src/
│ ├─ app.py # Core logic: simulation, sentiment, CLI commands
│ └─ continuous.py # Voice mode: wake word, recording, routing to app.py
├─ docs/
│ └─ Portfolio-PRI.pdf # Presentation deck
├─ .env.example # Environment variable template (no secrets)
├─ .gitignore
└─ README.md