...
Itential Platform Pricing Explore flexible plans and options for your team
Itential logo
Home Lab Series: Part 2

Building Agentic Network Diagnostics FlowAgents With NetBox & Itential Platform

Picking up where Part 1 left off: NetBox joins the lab as its system of record, and two Itential FlowAgents go live. One that answers questions, one that safely diagnoses real devices.

Headshot of author and solutions engineer elliot conner
Elliot Conner
Solutions Engineer

Want to catch up on Part 1? Read it here.

Key Takeaways

    • NetBox joins the lab as the network’s authoritative record, syncing device names, IPs, sites, and platforms into Itential Inventory Manager, which every agent below reads from instead of a hardcoded list.
    • Two FlowAgents go live in a single Agent Project: a NetBox Source of Truth agent that answers questions by querying NetBox directly, and an Arista Device Ops agent scoped to read-only diagnostics against real Arista EOS devices.
    • Tool scoping is explicit and auditable. The NetBox agent gets four NetBox lookup tools. The device agent gets exactly two: is-alive and get-config, nothing that can write to a device.
    • The lab now spans seven devices, five tracked as real nodes in NetBox and Inventory Manager (access1, dist1, ceos1, ceos2, isp1), plus two end hosts that exist on the wire but are deliberately left out of that authoritative record.
    • The standout moment: asked to check a device and report its hostname, the Arista Device Ops agent noticed the device’s inventory name didn’t match its configured hostname, and explained why that mismatch was expected instead of flagging it as an error.

The lab that started as two virtual Arista switches connected to Itential Platform just grew up. I brought in NetBox as a real system of record, and built my first two agents on Itential’s FlowAI agent harness. Both changes turned out to be bigger unlocks than I expected.

Put plainly: instead of an agent that just chats about your network from whatever it remembers, you get one that reasons over your actual inventory and takes real, scoped actions against real devices. That distinction is the whole point of this entry.

The Short Version

Two things changed this round, and they compound: NetBox becomes the network’s authoritative record, feeding real device data into Itential Platform, and FlowAI agents get wired to Claude through the Model Registry so they can query that same data and take scoped action, live, against real infrastructure.

Terms Worth Knowing First

  • NetBox
    An open source tool for modeling network infrastructure, devices, IP addresses, sites, and how they relate. It’s a common choice for a network’s source of truth, the one system everything else is supposed to match.
  • Source of Truth
    The authoritative system of record for what your network is supposed to look like. When something else, a device, a script, an agent, disagrees with it, the source of truth wins.
  • FlowAI
    Itential’s agent harness. It lets you build AI agents inside Platform that reason over real data and call real workflows as tools, instead of just chatting about your infrastructure in the abstract.
  • Agent Project
    A structured container in Itential Platform that holds one or more agents together with their scope, tools, and model configuration explicit and auditable.
  • Model Registry
    The part of Platform that connects an LLM, in this case Claude, to the FlowAI agent framework, so an agent has a model to actually reason with.
  • Tool Scoping
    Deliberately limiting which actions an agent can call. An agent can only do what its tools allow, nothing more, regardless of what it’s asked to do.

NetBox Becomes the Source of Truth

Real device data, names, IPs, sites, platforms, now flows from NetBox into Itential Inventory Manager, then into Itential Gateway. Every agent in this post reads from that same pipeline, not a hardcoded device list I typed in by hand. If NetBox says a device exists, Inventory Manager knows about it. If it doesn’t, no agent below can see it either.

2
DEVICES · BEFORE

7
DEVICES · NOW

2
FLOWAI AGENTS LIVE 

Two Agents, Two Different Jobs

Both agents are built on FlowAI, both wired to Claude through the Model Registry, and both live inside a single Agent Project. One reads NetBox. The other operates on live devices, and only ever reads them.

Agent 01

NetBox Source of Truth

Answers questions about the network by querying NetBox directly. Its toolset is four NetBox lookups: list devices, get a specific device, get IP addresses, and list prefixes. Every answer traces back to a single, real query, never a guess.

Agent 02

Arista Device Ops

Read-only diagnostics for real Arista EOS lab devices via Itential Gateway. It gets exactly two tools: check whether a device is alive, and pull its running configuration. It can investigate a device. It cannot change one.

Neither toolset was obvious on the first pass. For each agent I went back and forth with Claude on exactly which tools it actually needed, starting broader than necessary and narrowing until the list matched the job: four NetBox lookups for one agent, is-alive and get-config for the other, a reachability check and a running-config pull, nothing more exotic than that. What wasn’t up for negotiation was whether Arista Device Ops could write to a device. That was decided before a single tool was chosen, not discovered partway through scoping. This agent investigates. It does not change anything. Everything else about these two agents got worked out through iteration. That part didn’t.

Fig. 1 – Not a one-off script. A structured Agent Project, holding both agents’ scope, tools, and model configuration in one auditable place.
Fig. 2 – Both agents, ready to launch, inside the same project.

Straight From NetBox, No Guessing

The NetBox agent’s toolset is scoped to querying NetBox directly. Every answer is traceable back to a single, real lookup, not a language model guessing from whatever it remembers about network conventions.

Fig. 3 – The NetBox agent’s entire toolset: four scoped lookups, nothing more, running on Claude Sonnet 5.

Prompt

“What is the IP address of ceos1, and what site is it in?”

Agent

“ceos1 has the primary IP address 10.255.255.11/32 and is located at the Home Lab Campus site.”

Prompt

“Is ceos1 alive? If so, show me the hostname line from its running config.”

Agent

“Yes, ceos1 is alive. Here’s the hostname line: hostname core1. Note: the device’s inventory name is ceos1, but its configured EOS hostname is core1, this mismatch is normal in lab environments where the inventory label differs from the device’s actual hostname setting.”

One tool call, straight to NetBox, correct answer. No hallucination, it looked it up.

Seven Real Devices, Tracked in One Place

The lab now runs seven devices end to end, but only five of them are meant to live in NetBox: access1dist1ceos1ceos2, and isp1, a small campus-style topology with access, distribution, and edge roles. The other two are plain end hosts sitting on the wire behind access1, useful for generating real traffic, but intentionally left out of that authoritative record since they aren’t network infrastructure themselves. Every agent in this post is reading from the same five-node table NetBox and Inventory Manager actually see.

Fig. 4 – The expanded lab, as NetBox and Inventory Manager see it: five tracked nodes, tagged by role and site.

Reasoning Over a Live Device, In the Open

This is what the Agent Sessions tab is actually for. Every run gets logged start to finish, the exact prompt, every reasoning step, every tool call in order, and the final answer, each with its own timestamp. Below is one real session, unedited: asked to pull the running-config for every device in the inventory.

Fig. 5 – The same trace above, as it actually renders in Agent Sessions.

From there the agent works its way down the confirmed device list the same way every time, an is-alive check paired with a get-config pull, one device at a time, six more tool calls before it writes up a single answer.

Session ID
3aad1242…180101a
Trigger Type
Manual
Tool Calls
7
Elapsed Time
41s 878ms
Output Tokens
3,474

P
Agent Prompt
“You are a read-only network diagnostics assistant for Arista EOS devices in the ‘Arista EOS Inventory’ (cluster_1, via Gateway5). You can check whether a device is alive (is-alive) or retrieve its running configuration (get-config). Use getNodesByInventory first if you need to confirm valid device names. You must NEVER attempt to change device configuration, only is-alive and get-config are available to you, and that is intentional. The request is: Give me the config for all the devices”

R
Agent Reasoning1s · 6:53 PM
“I’ll first check the inventory to confirm the valid device names before retrieving configurations.”

T
Tool Called GETNODESBYINVENTORY10ms · 6:53 PM
✓ Succeeded

C
Conclusion15s · 6:54 PM
“All configurations retrieved successfully. Here’s the running-config for each device in the Arista EOS Inventory:”
1. access1
hostname access1 · interface Ethernet1, description to-dist1 · interface Ethernet2, description to-host1 · interface Ethernet3, description to-host2, and so on for every tracked device.
Fig. 6 – The conclusion of that same session, seven tool calls and 41.9 seconds after the prompt: real running-config, pulled live, device by device.

It Didn’t Just Answer, It Noticed Something

The moment that actually got me came from a smaller, more targeted prompt against a single device. Not a bulk pull, just a status check.

Prompt

“Is ceos1 alive? If so, show me the hostname line from its running config.”

Agent

“Yes, ceos1 is alive. Here’s the hostname line: hostname core1. Note: the device’s inventory name is ceos1, but its configured EOS hostname is core1, this mismatch is normal in lab environments where the inventory label differs from the device’s actual hostname setting.”

It didn’t just retrieve data. It noticed a discrepancy between the inventory label and the device’s actual configuration, and proactively explained why that was expected instead of flagging it as an error. That’s the difference between an AI that runs a command and an AI that reasons about a network.

Real Sessions, Run Against Real Infrastructure

Both agents were tested end-to-end with real prompts against real infrastructure, and every run left a full reasoning trace behind, exactly how the agent selected and used its tools, not just the final answer.

Fig. 7 – Not a single staged demo. Repeated real runs, all completed, none failed.
  • 💡 Agentic AI Meets Deterministic Automation

    Reasoning over real infrastructure data, with safety boundaries built in from the start.

The Pieces Wired Together

System of Record

NetBoxItential Inventory Manager

Itential Platform

FlowAgentsAgent ProjectsModel RegistryItential Gateway

Devices

Arista cEOS-lab (arm64)Containerlab

Agentic Ops

Claude Sonnet 5Itential MCP Server

Where the Lab Goes Next

Two read-only agents are a good start, but read-only only gets you so far. Part 3 adds a third agent focused on compliance: checking the live network against NetBox as a stored “golden” reference and flagging drift before it becomes an outage. Same underlying data, same platform, a step closer to an agent that doesn’t just notice a problem, but tells you exactly what changed.

Want to follow along with me? Connect with me on LinkedIn.

 

Headshot of author and solutions engineer elliot conner
Elliot Conner is a Solutions Engineer at Itential, where he helps enterprises turn fragmented network automation into governed orchestration. A CCNP Enterprise certified network automation engineer, he has built more than 70 automation tools for multi-vendor networks using Python, pyATS, Ansible, and Nornir. He documents his own Itential Platform lab builds in public, testing the platform the way customers actually deploy it.
Keep Learning

The Latest in Agentic Operations

Get Started

Agentic infrastructure operations starts here.

See how Itential connects AI reasoning to governed execution across your entire infrastructure.