An AIOps Diagnostic Engine for PeopleSoft Production Support β powered by a Local LLM, Model Context Protocol (MCP), and Cache-Augmented Generation (CAG).
PeopleSoft Sentry is a production-ready Proof of Concept that automates first-line diagnosis of PeopleSoft incidents. Instead of having support engineers manually query Process Monitor and Integration Broker logs, Sentry:
- Pulls live data from PeopleSoft DB tables via MCP tools.
- Matches errors to curated Standard Operating Procedures (SOPs) stored in a CAG cache.
- Generates a root-cause analysis and prioritised remediation steps using a fully local LLM (no data leaves your network).
- Presents results in a clean Streamlit dashboard with a one-click health check and a freeform chat interface.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Streamlit (app.py) β
β ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β Health Dashboard β β AI Chat Interface β β
β ββββββββββ¬ββββββββββ ββββββββββββββββ¬ββββββββββββββββ β
βββββββββββββΌββββββββββββββββββββββββββββββΌββββββββββββββββββ
β HTTP (REST) β
βββββββββββββΌββββββββββββββββββββββββββββββΌββββββββββββββββββ
β FastAPI (main.py) β
β β
β βββββββββββββββββ βββββββββββββββββ βββββββββββββββ β
β β MCP Server β β CAG Cache β β Ollama LLM β β
β β (mcp_server) β β (cag_cache) β β llama3.3 / β β
β β β β β β deepseek-r1 β β
β β get_ib_errors β β SOP Library β βββββββββββββββ β
β β get_proc_errs β β lookup_sop() β β
β β get_summary β β β β
β βββββββββ¬ββββββββ βββββββββββββββββ β
βββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββ
β SQLAlchemy
βββββββββββββΌββββββββββββββββββββ
β PeopleSoft Oracle DB β
β βββββββββββββββ ββββββββββββ β
β β PS_MSG_INST β βPSPRCSRQSTβ β
β βββββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββ
| Layer | Technology |
|---|---|
| Frontend | Streamlit |
| Backend API | FastAPI + Uvicorn |
| LLM | Ollama (llama3.3 or deepseek-r1) |
| DB ORM | SQLAlchemy (SQLite for POC / Oracle for production) |
| Intelligence: MCP | Custom tool definitions for PS DB inspection |
| Intelligence: CAG | In-memory SOP cache baked into the system prompt |
peoplesoft_sentry/
βββ mcp_server.py # MCP tool definitions + DB queries
βββ cag_cache.py # SOP library + CAG system-prompt builder
βββ main.py # FastAPI orchestration server
βββ app.py # Streamlit dashboard
βββ requirements.txt # Python dependencies
βββ README.md # This file
| Tool | Version | Purpose |
|---|---|---|
| Python | β₯ 3.11 | Runtime |
| Ollama | latest | Local LLM server |
llama3.3 or deepseek-r1 |
via Ollama | Reasoning model |
# Install Ollama (macOS / Linux)
curl -fsSL https://ollama.ai/install.sh | sh
# Pull the model (choose one)
ollama pull llama3.3
# or
ollama pull deepseek-r1git clone https://github.com/yourorg/peoplesoft-sentry.git
cd peoplesoft-sentry
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt# .env
SENTRY_LLM_MODEL=llama3.3 # or deepseek-r1
OLLAMA_HOST=http://localhost:11434 # default
# DATABASE_URL=oracle+oracledb://user:pass@host:1521/SID # for real Oracleuvicorn main:app --host 0.0.0.0 --port 8000 --reloadThe API will be available at http://localhost:8000.
Interactive docs: http://localhost:8000/docs
streamlit run app.pyOpen http://localhost:8501 in your browser.
Click "Run One-Click Health Check" to trigger a full automated scan:
- Queries
PS_MSG_INSTfor IB errors in the last 24 hours. - Queries
PSPRCSRQSTfor Process Monitor errors in the last 24 hours. - Matches each error to an SOP from the CAG cache.
- Sends all findings to the LLM for RCA synthesis.
- Displays metric cards, error details, SOPs, and the AI analysis.
Ask natural-language questions like:
- "Are there any IB errors right now?"
- "Why did AEMINILOAD fail and how do I fix it?"
- "Give me a full system health summary."
The AI will call MCP tools autonomously, apply SOP knowledge, and respond.
| Tool | Table | Description |
|---|---|---|
get_ib_errors |
PS_MSG_INST |
IB messages with MSG_STATUS = '7' (Error) |
get_process_errors |
PSPRCSRQST |
Processes with RUNSTATUS = '14' (Error) |
get_system_summary |
Both | Health counts and overall status |
SOPs are pre-loaded into the LLM system prompt at startup for zero-latency retrieval:
| SOP Key | Trigger Pattern | Summary |
|---|---|---|
ora-01555 |
ORA-01555, snapshot too old |
Increase UNDO_RETENTION + undo tablespace |
ib-connection-refused |
Connection refused |
Fix node URL / firewall / Gateway config |
ib-timeout |
Timeout, No response |
Increase connector timeout, check payload size |
pychkusa-company-not-found |
Company not found, PYCHKUSA |
Validate Company in Run Control |
generic-process-error |
(fallback) | Review message log and escalate |
To add new SOPs, edit the _SOP_LIBRARY list in cag_cache.py.
- Install
oracledb:pip install oracledb - Set
DATABASE_URLin your environment:DATABASE_URL=oracle+oracledb://PSFT_APP:password@db-host:1521/HRPRD - Remove the
seed_mock_data()call inmcp_server.py. - Ensure the DB user has
SELECTonPS_MSG_INSTandPSPRCSRQST.
- Vector-store SOP retrieval (RAG) for large SOP libraries
- Slack / Teams alerting integration
- PeopleSoft Application Engine trace log analysis
- Automated ticket creation in ServiceNow / Jira
- Multi-environment support (DEV / QA / PRD toggle)
- Historical trend charts in dashboard
MIT License β see LICENSE for details.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Built with β€οΈ by the PeopleSoft and AI Enthusiast.