Advisory AI

Verified against commit 942a18727c on 2026-09-26 (UTC). Re-verify: git grep -n "serviceName: \"advisoryai\"\|AddServiceDoctorChecks" -- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs and grep -nE "^ advisoryai-(web|worker|data-init):" devops/compose/docker-compose.advisoryai.yml devops/release/bundle/docker-compose.yml.

Service rows (host project, image, database and role, compose file, bundle presence, Doctor registration) are generated in docs/architecture/service-inventory.md; where this page and the inventory differ, the inventory is authoritative.

Advisory AI is the retrieval-augmented assistant of Stella Ops. It turns advisory, VEX, policy, SBOM and finding evidence into cited summaries, conflict explanations, remediation plans, chat answers and Evidence Packs, and it hosts Knowledge Search, Unified Search and the OpsMemory decision ledger.

Purpose

Advisory AI answers operator questions from the platform’s own evidence and records what it answered. Every generated output carries its inputs’ digests and citations. Inference is pluggable: a local in-house gateway, or signed LLM provider plugin bundles admitted at startup. OpsMemory, the decision ledger with playbook suggestions, is a module of this family, not a separate service.

Deployables

RoleHost projectCompose serviceRelease bundle
Websrc/AdvisoryAI/StellaOps.AdvisoryAI.WebService/advisoryai-webnot in devops/release/bundle/docker-compose.yml
Workersrc/AdvisoryAI/StellaOps.AdvisoryAI.Worker/advisoryai-workernot in the bundle
Volume initimage stellaops/advisoryai-webadvisoryai-data-init (one-shot)not in the bundle

Database

API surface

The web host maps each family below on its legacy path and again under the native root /api/advisoryai/v1 (Endpoints/AdvisoryAiConsolidatedRouteAliases.cs).

FamilyLegacy pathSource
Pipeline, outputs, explain, justify, remediation, policy studio, consent, rate limits/v1/advisory-ai/*Program.cs
Conversations/v1/advisory-ai/conversations*Program.cs
Chat gateway/api/v1/chat/*Endpoints/ChatEndpoints.cs
Runs ledger/v1/advisory-ai/runs/*Endpoints/RunEndpoints.cs
Attestations/v1/advisory-ai/attestations/*, /v1/advisory-ai/runs/{runId}/attestationEndpoints/AttestationEndpoints.cs
Evidence Packs/v1/evidence-packs*, /v1/runs/{runId}/evidence-packsEndpoints/EvidencePackEndpoints.cs
Knowledge Search/v1/advisory-ai/search, /v1/advisory-ai/index/rebuildEndpoints/KnowledgeSearchEndpoints.cs
Unified Search, analytics, feedback/v1/search/*Endpoints/UnifiedSearchEndpoints.cs, SearchAnalyticsEndpoints.cs, SearchFeedbackEndpoints.cs
LLM adapters/v1/advisory-ai/adapters/*Endpoints/LlmAdapterEndpoints.cs
OpsMemory/api/v1/opsmemory/*src/AdvisoryAI/__Libraries/StellaOps.OpsMemory.Application/Endpoints/OpsMemoryEndpoints.cs
Plugin probe/internal/plugins/status, /internal/plugins/probeEndpoints/AdvisoryAiPluginProbeEndpoints.cs

Scopes: advisory-ai:view, advisory-ai:operate, advisory-ai:admin, ops-memory:read, ops-memory:write (StellaOpsScopes.cs). The generated reference is api-reference.md.

Configuration

SectionOptions type
AdvisoryAI (queue, storage, inference, guardrails, SBOM)AdvisoryAiServiceOptions (StellaOps.AdvisoryAI.Hosting)
AdvisoryAI:ChatAdvisoryChatOptions
AdvisoryAI:KnowledgeSearchKnowledgeSearchOptions
AdvisoryAI:UnifiedSearchUnifiedSearchOptions
AdvisoryAI:LlmProviders, AdvisoryAI:LlmProviders:RuntimePluginsLlmProviderOptions, MountedLlmProviderRuntimePluginLoader
AdvisoryAI:Adapters:Llm, AdvisoryAI:Adapters:Scmplugin bridges in StellaOps.AdvisoryAI.WebService/Services/
AdvisoryAI:RuntimeBindingsAdvisoryAiRuntimeBindingOptions
AdvisoryAI:EvidenceRetrievalAdvisoryAiExplanationRuntimeBindings
AdvisoryAI:RateLimitsRateLimitsService
AdvisoryAi:AuthorityAdvisoryAiAuthorityOptions

Guardrail and operator knobs are described in ../policy/guides/assistant-parameters.md.

Doctor checks

Integrations

Retention

Every table carries a retention class (SPRINT_20260916_001 RFC-13, settled under owner ruling Q-41 on 2026-09-23). advisoryai.entity_alias is derived-rebuildable: the unified indexer rewrites it on every pass and rebuild (migration 007). Idle conversations are reclaimed after 7 days with their turns (migration 006); the chat audit lineage keeps its 90-day window (migration 003). Receipt: retention-classification-verification-20260923.json. The overlay still ships SearchAnalyticsRetentionEnabled off, so the search telemetry Doctor check reports unhealthy until an operator enables it.

Retired predecessors

Subordinate documents

DocumentStatus
architecture.mdcurrent; section 15 is the OpsMemory design
api-reference.md, openapi/v1.jsongenerated from the consolidated host
consolidation-design.mddesign record of the AAI programme, not re-verified 2026-09-26
deployment.mdcurrent for volumes, storage and model gateway; the frontdoor route list was not re-verified 2026-09-26
knowledge-search.md, unified-search-architecture.md, unified-search-ranking-benchmark.md, unified-search-release-readiness.mddesign record, not re-verified 2026-09-26
chat-interface.md, runs.md, orchestration-pipeline.mddesign record, not re-verified 2026-09-26
overview.md, architecture-detail.mddesign record (2025 drafts), not re-verified 2026-09-26
llm-setup-guide.md, guides/operator and API guides, not re-verified 2026-09-26
implementation_plan.md, CHANGELOG.mdplanning stub and change log
retention-classification-verification-20260923.jsonRFC-13 receipt

The Knowledge Search document manifest (src/AdvisoryAI/StellaOps.AdvisoryAI/KnowledgeSearch/knowledge-docs-manifest.json) records every markdown file in this directory that knowledge search indexes, by path and sha256 (pages carrying a retirement banner are skipped; the rule is in AGENTS.md). Adding, editing, moving or deleting a file here commits the regenerated manifest (python tools/scripts/validate/check-advisoryai-docs-manifest.py --write) in the same change; the Repo hygiene CI lane fails otherwise. See knowledge-search.md.