Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Introduced a comprehensive deployment guide for AdvisoryAI, detailing local builds, remote inference toggles, and scaling guidance. - Created a multi-role Dockerfile for building WebService and Worker images. - Added a docker-compose file for local and offline deployment. - Implemented a Helm chart for Kubernetes deployment with persistence and remote inference options. - Established a new API endpoint `/advisories/summary` for deterministic summaries of observations and linksets. - Introduced a JSON schema for risk profiles and a validator to ensure compliance with the schema. - Added unit tests for the risk profile validator to ensure functionality and error handling.
43 lines
3.5 KiB
Markdown
43 lines
3.5 KiB
Markdown
# StellaOps Advisory AI
|
||
|
||
Advisory AI is the retrieval-augmented assistant that synthesizes advisory and VEX evidence into operator-ready summaries, conflict explanations, and remediation plans with strict provenance.
|
||
|
||
## Responsibilities
|
||
- Generate policy-aware advisory summaries with citations back to Conseiller and Excititor evidence.
|
||
- Explain conflicting advisories/VEX statements using weights from VEX Lens and Policy Engine.
|
||
- Propose remediation hints aligned with Offline Kit staging and export bundles.
|
||
- Expose API/UI surfaces with guardrails on model prompts, outputs, and retention.
|
||
|
||
## Key components
|
||
- RAG pipeline drawing from Conseiller, Excititor, VEX Lens, Policy Engine, and SBOM Service data.
|
||
- Prompt templates and guard models enforcing provenance and redaction policies.
|
||
- Vercel/offline inference workers with deterministic caching of generated artefacts.
|
||
|
||
## Integrations & dependencies
|
||
- Authority for tenant-aware access control.
|
||
- Policy Engine for context-specific decisions and explain traces.
|
||
- Console/CLI for interaction surfaces.
|
||
- Export Center/Vuln Explorer for embedding generated briefs.
|
||
|
||
## Operational notes
|
||
- Model cache management and offline bundle packaging per Epic 8 requirements.
|
||
- Usage/latency dashboards for prompt/response monitoring with `advisory_ai_latency_seconds`, guardrail block/validation counters, and citation coverage histograms wired into the default “Advisory AI” Grafana dashboard.
|
||
- Alert policies fire when `advisory_ai_guardrail_blocks_total` or `advisory_ai_validation_failures_total` breach burn-rate thresholds (5 blocks/min or validation failures > 1% of traffic) and when latency p95 exceeds 30s.
|
||
- Redaction policies validated against security/LLM guardrail tests.
|
||
- Guardrail behaviour, blocked phrases, and operational alerts are detailed in `/docs/security/assistant-guardrails.md`.
|
||
|
||
## Deployment & configuration
|
||
- **Containers:** `advisory-ai-web` fronts the API/cache while `advisory-ai-worker` drains the queue and executes prompts. Both containers mount a shared RWX volume providing `/app/data/{queue,plans,outputs}` (defaults; configurable via `ADVISORYAI__STORAGE__*`).
|
||
- **Remote inference toggle:** Set `ADVISORYAI__INFERENCE__MODE=Remote` to send sanitized prompts to an external inference tier. Provide `ADVISORYAI__INFERENCE__REMOTE__BASEADDRESS` (and optional `...__APIKEY`, `...__TIMEOUT`) to complete the circuit; failures fall back to the sanitized prompt and surface `inference.fallback_*` metadata.
|
||
- **Helm/Compose:** Packaged manifests live under `ops/advisory-ai/` and wire SBOM base address, queue/plan/output directories, and inference options. Helm defaults to `emptyDir` with optional PVC; Compose creates named volumes so worker and web instances share deterministic state. See `docs/modules/advisory-ai/deployment.md` for commands.
|
||
|
||
## CLI usage
|
||
- `stella advise run <summary|conflict|remediation> --advisory-key <id> [--artifact-id id] [--artifact-purl purl] [--policy-version v] [--profile profile] [--section name] [--force-refresh] [--timeout seconds]`
|
||
- Requests an advisory plan from the web service, enqueues execution, then polls for the generated output (default wait 120 s, single check if `--timeout 0`).
|
||
- Renders plan metadata (cache key, prompt template, token budget), guardrail state, provenance hashes, signatures, and citations in a deterministic table view.
|
||
- Honors `STELLAOPS_ADVISORYAI_URL` when set; otherwise the CLI reuses the backend URL and scopes requests via `X-StellaOps-Scopes`.
|
||
|
||
## Epic alignment
|
||
- Epic 8: Advisory AI Assistant.
|
||
- DOCS-AI stories to be tracked in ../../TASKS.md.
|