Last updated: 2026-05-13 Related documents:
docs/AI_AGENT_BUILD_AND_OPERATION_DETAIL.mddocs/MIO_PERSONA_PROFILE.mddocs/P0_RUNTIME_ARCHITECTURE.md
This guide defines how AI assist is operated without violating deterministic-first runtime behavior. AI is advisory only and never replaces evaluator/arbiter decisions.
Recommended local model set:
- Analyst Primary:
qwen3.5:2b - Analyst Degraded:
qwen3.5:0.8b - Ops Coach Primary:
qwen3.5:2b - Ops Coach Fallback:
qwen3.5:2b,qwen3.5:0.8b
Operational rule:
- Do not place
4b+models on the default co-located runtime path.
- Tactical Engine performs first-minute triage.
- Evidence Plane normalizes and enriches context.
- NOC/SOC evaluators and Action Arbiter produce deterministic decisions.
- AI assist runs only when governance conditions allow.
- Audit logging records adopt/fallback outcomes.
- Governance in-scope:
- Calls that exchange normalized assist payloads with keys in
advice / summary / candidateand optionalrunbook_candidates / attack_candidates. - Typical entrypoint:
py/azazel_edge/ai_governance.py.
- Calls that exchange normalized assist payloads with keys in
- Governance out-of-scope:
- Runtime analyst inference in
py/azazel_edge_ai/agent.py(verdict/confidence/...contract). - Ops coach and manual query contracts in
py/azazel_edge_ai/agent.py.
- Runtime analyst inference in
- Required for out-of-scope paths:
- Keep deterministic path primary (no direct action execution by AI).
- Emit audit scope records with explicit
in_scope=falseand reason. - Keep output contracts bounded and fail closed to fallback behavior.
- Ambiguous band:
AZAZEL_LLM_AMBIG_MIN=60,AZAZEL_LLM_AMBIG_MAX=79 - Correlation controls:
AZAZEL_CORR_* - Queue limit:
AZAZEL_LLM_QUEUE_MAX - Ops memory guard:
AZAZEL_OPS_MIN_MEM_AVAILABLE_MB - Swap guard:
AZAZEL_OPS_MAX_SWAP_USED_MB
/run/azazel-edge/ai-bridge.sock/run/azazel-edge/ai_advisory.json/run/azazel-edge/ai_metrics.json/var/log/azazel-edge/ai-events.jsonl/var/log/azazel-edge/ai-llm.jsonl/var/log/azazel-edge/ai-deferred.jsonl
systemctl is-active azazel-edge-ai-agent
jq '{processed_events,llm_requests,llm_completed,llm_failed,last_error}' /run/azazel-edge/ai_metrics.json
tail -n 5 /var/log/azazel-edge/ai-llm.jsonlWhen latency/failure increases:
jq '{llm_requests,llm_completed,llm_failed,llm_fallback_count,last_error}' /run/azazel-edge/ai_metrics.json
sudo journalctl -u azazel-edge-ai-agent -n 100 --no-pager
sudo docker logs --tail 100 azazel-edge-ollama- Manual ask API:
POST /api/ai/ask - Command endpoint:
POST /api/mattermost/command - Message bridge:
POST /api/mattermost/message - Language prefixes:
ja:anden:are supported for operator requests.
- Runbook registry:
runbooks/**/*.yaml - Controlled execution remains gated by:
AZAZEL_RUNBOOK_ENABLE_CONTROLLED_EXEC=1- Runbook-level
requires_approval=true
- Operator handoff review baseline:
runbooks/ops/rb.ops.operator.handoff.audit-review.yaml- Review
trace_id, selected action, rejected alternatives, release condition, and evidence continuity before specialist escalation.
- This file is the English base document.
- Use Japanese only for supplemental operational examples when required.
- Full Japanese reference is available at
docs/AI_OPERATION_GUIDE_JA.md.