Pulse is a Phase 1 MVP for an AI operations cockpit. It demonstrates an end-to-end incident workflow: telemetry ingestion, incident creation, specialist investigation, human approval before remediation, mock execution, postmortem generation, and memory graph updates.
The current version is intentionally lightweight:
- FastAPI backend
- SQLite storage
- Vanilla JS dashboard
- Deterministic specialist agents for demo flow
- CLI helpers for seeding and triggering incidents
Pulse currently proves these pieces:
- Event ingestion opens an incident on high latency
- Supervisor orchestration calls specialist agents
- Metrics, logs, context, risk, and remediation findings are merged
- Remediation is blocked until approval
- Executor resolves the incident only after approval
- Postmortem data is generated after execution
- Memory graph is updated after resolution
This is a workflow MVP, not a full autonomous AI system yet.
Dashboard UI (Vanilla JS)
|
v
FastAPI App
|- Landing Page
|- Dashboard Page
|- API Routes
|
v
Event Ingestion
|
v
SQLite Store
|- Events
|- Incidents
|- Approvals
|- Memory Graph
|
v
Supervisor
|- Metrics Agent
|- Logs Agent
|- Context Agent
|- Risk Agent
|- Remediation Agent
|
v
Approval Gate
|
v
Executor
|
v
Postmortem + Memory Update
Pulse/
pulse/
agents/
api/
approvals/
context/
executor/
observability/
orchestration/
models.py
store.py
cli.py
tests/
Makefile
pyproject.toml
From the project root:
python3 -m pip install -e '.[test]'
make devThen open:
http://127.0.0.1:8000/http://127.0.0.1:8000/dashboard
Recommended demo flow:
- Click
Seed Demo - Click
Trigger Incident - Review the incident card, timeline, findings, and approval panel
- Click
Approve - Click
Execute - Show the postmortem preview and memory updates
Seed the demo data:
make seedTrigger an incident from CLI:
make trigger-incidentRun tests:
make testYou can also use the module entrypoints directly:
python3 -m pulse.cli seed
python3 -m pulse.cli trigger-incidentUI routes:
GET /GET /dashboardGET /memory
Core API routes:
POST /events/ingestGET /incidentsGET /incidents/{id}POST /incidents/{id}/investigateGET /approvalsPOST /approvals/{id}/approvePOST /approvals/{id}/rejectPOST /executor/run/{approval_id}GET /memory/graphGET /demo/seedPOST /demo/trigger-incident
The current specialist agents are deterministic Python functions, not live LLM-backed agents.
- Metrics Agent compares latency values
- Logs Agent groups repeated log summaries
- Context Agent builds a compact context pack
- Risk Agent marks remediation as approval-gated
- Remediation Agent returns a safe mock action
This keeps the MVP fast, testable, and easy to demo while preserving the intended architecture.
Short-term upgrades:
- Replace deterministic log/context analysis with Ollama or model-backed reasoning
- Add multiple incident scenarios instead of a single seeded path
- Improve memory graph usefulness with similarity search
- Move startup hooks to FastAPI lifespan
- Add richer dashboard visualizations for metrics and approvals
Longer-term scope:
- Real observability ingestion
- Background workers
- Multi-service incident correlation
- Safer remediation playbooks
- Deployable hosted frontend/backend split