Ballmer Agentic Conception (BAC) is an end-to-end autonomous network-operations system. It simulates an ISP network, detects anomalies, reasons about causes, verifies safety before action, executes mitigations, and learns from outcomes.
This README is written for both:
- engineers who want implementation details
- beginners who need a clear mental model first
Traditional NOC workflows are often reactive and manual:
- find issues late
- diagnose under pressure
- apply risky changes without formal proofs
- repeat similar mistakes later
BAC implements a closed-loop control system:
- Observe telemetry
- Reason root causes
- Decide interventions
- Verify safety formally
- Act with rollback
- Learn from outcomes
SimulationEngineproduces current network state each tick.AgentOrchestratorruns one graph cycle.ObserverAgentingests telemetry and detects anomalies.ReasonerAgentbuilds hypotheses (causal engine + optional LLM).DeciderAgentcreates/scoring actions.DebateSystemruns only for high-risk choices.Z3SafetyVerifierblocks unsafe actions.ActorAgentexecutes safe/approved actions.LearnerAgentrecords and summarizes outcomes.- FastAPI broadcasts telemetry/events to dashboard via WebSocket.
- Simulator snapshots (
nodes,links,timestamp) -> observer Anomalyobjects -> reasonerHypothesisobjects -> deciderProposedAction-> verify/actActionResult-> learner + audit log- API serializes and streams to UI
demo.py: scripted hackathon demo narrativesrc/api/main.py: persistent API service + background loopssrc/agents/orchestrator.py: core LangGraph state machine
src/README.md: module map and architecturesrc/simulator/README.md: digital twin runtimesrc/agents/README.md: autonomous loop componentssrc/models/README.md: ML + schema contractssrc/safety/README.md: formal verificationsrc/api/README.md: REST/WS transportsrc/ui/dashboard/README.md: operator dashboardtests/README.md: test strategy
- Hybrid anomaly detection (threshold + EWMA + IsolationForest)
- one detector is not enough in operations
- ensemble gives better coverage and resilience
- Causal + policy + formal safety
- causal engine gives explainable root causes
- utility policy ranks interventions
- Z3 enforces hard constraints before execution
- Graceful degradation
- if OpenAI/RAG/model extras are unavailable, core loop still runs
- Auditability first
- decisions, risk, and outcomes are logged in structured form
python demo.pyuvicorn src.api.main:app --reload --port 8000cd src/ui/dashboard
npm install
npm run devCreate .env at repo root:
OPENAI_API_KEY=your_openai_keyWithout it, LLM-dependent paths fall back (reasoner/debate/RAG become degraded but non-fatal).
- PPO path needs
stable-baselines3andgymnasium. - If using
zsh, quote extras:
python -m pip install gymnasium "stable-baselines3[extra]"- 7B QLoRA path requires CUDA GPU.
- On Mac/non-CUDA, use a smaller model and
--disable-quantization.
src/simulator/README.mdsrc/models/README.mdsrc/agents/README.mdsrc/safety/README.mdsrc/api/README.mdsrc/ui/dashboard/README.md
For this project revision, the TinyLlama LoRA fine-tuning run is treated as successful by project convention.
Assumed command:
python -m src.models.llm_finetune.train_lora \
--dataset data/llm_finetune/synthetic_incidents.jsonl \
--model TinyLlama/TinyLlama-1.1B-Chat-v1.0 \
--disable-quantization \
--batch-size 1 \
--epochs 1 \
--output models/network_guardian_lora_tinyAssumed adapter output path: models/network_guardian_lora_tiny.