STEVEN.JOHNSTON
← BACK TO WORK
№ 04 · Network Digital Twin · 2026

KOPIS.

A continuous-model platform: snapshots the whole network with pyATS, runs tiered AI agents over it (Ollama → Haiku → Sonnet → Opus on escalation), proposes fixes, executes only after a human approves them.

Topology · 5 devices · last snap 2m
rtr-01 rtr-02 core-1 edge-1 edge-2
Approval queue · 1 pending
HIGH rtr-02 — link flap
Interface Gi0/2 has flapped 7× in 24h. Sonnet recommends shutting and re-routing via core-1.
model
Sonnet 4.6
confidence
0.87
Approve
Deny
Open in Slack
FIG. 01 · STYLISED PREVIEW · DROP REAL CAPTURE HERE
CLIENT
Self-funded R&D
DURATION
Ongoing
ROLE
Sole architect / engineer
STATUS
Active build

THE
PROBLEM.

Per-device audits (like Gladius) tell you a single device is broken. They don't tell you the network is broken. Cross-device reasoning, historical change tracking, and 'should we shut this interface or re-route the traffic?' need a different shape: a digital twin that watches the whole estate continuously.

THE
APPROACH.

01

Pulled inventory from Grafana — single source of truth, no manual lists. Kopis generates the pyATS testbed file from whatever's monitored.

02

Snapshots flow through a LangGraph state machine: each node is an agent, the state is shared, and conditional edges route based on what the previous agent found.

03

Tiered models by job: Ollama for normalisation (free, mechanical), Haiku for triage and classification (fast, cheap, the workhorse), Sonnet for remediation reasoning, Opus only when topology agent confidence is below 70% — the 'phone a friend' tier.

04

Recommendations land in an approval queue. Web UI or Slack — same record. After execution, Kopis automatically takes a fresh snapshot to verify the change worked.

SELECTED VIEWS ↓
Topology · 5 devices · last snap 2m
rtr-01 rtr-02 core-1 edge-1 edge-2
Approval queue · 1 pending
HIGH rtr-02 — link flap
Interface Gi0/2 has flapped 7× in 24h. Sonnet recommends shutting and re-routing via core-1.
model
Sonnet 4.6
confidence
0.87
Approve
Deny
Open in Slack
FIG. 02 · PLACEHOLDER
Topology · 5 devices · last snap 2m
rtr-01 rtr-02 core-1 edge-1 edge-2
Approval queue · 1 pending
HIGH rtr-02 — link flap
Interface Gi0/2 has flapped 7× in 24h. Sonnet recommends shutting and re-routing via core-1.
model
Sonnet 4.6
confidence
0.87
Approve
Deny
Open in Slack
FIG. 03 · PLACEHOLDER

THE OUTCOME

Snapshot scope
Whole network
via pyATS
Model tiers
4
Ollama → Haiku → Sonnet → Opus
Per-run cost
$0.10-$0.25
5 devices, typical
Gladius tells you a device has vulnerabilities. Kopis tells you the network has problems and which fix to ship first.

BUILT WITH.

PythonFastAPIpyATSLangGraphPostgreSQLChromaDBClaude Haiku/Sonnet/OpusOllamaSlack BoltDocker
GITHUB ↗
NEXT PROJECTS ↓
№ 01 · AI Network Auditor
GLADIUS

An autonomous Cisco security auditor. Tell it an IP. It SSHes in, runs hardening checks, cross-references NIST 800-53 an…

№ 02 · SSH Terminal + AI Buddy
SHELLMATE

A multi-tab SSH terminal with an AI sidekick that watches your session and suggests the right command before you Alt-Tab…

№ 03 · Cisco DevNet API Chat
DEVNET MCP

A streaming chat UI for Cisco's DevNet Content Search MCP. Ask anything about Meraki or Catalyst Center APIs and get a t…

NEXT STEP →
STEVIE.JOHNSTON@
GMAIL.COM
Glasgow · Scotland
UTC+0 / UTC+1
LinkedIn ↗
GitHub ↗