16.5 C
New York
Sunday, September 7, 2025

Bringing Some Supply of Fact to Your NetAI Agentic Playground


Hey everybody, I’m again to exploring how agentic AI would possibly match right into a community engineer’s workflow and turn into a useful device in our device chest.

In my weblog submit, Making a NetAI Playground for Agentic AI Experimentation, I started this journey by exploring how we are able to make the most of Mannequin Context Protocol (MCP) servers and the idea of “instruments” to allow our AI brokers to work together with community gadgets by sending present instructions. For those who haven’t learn that submit but, positively test it out as a result of it’s some actually fabulous prose. Oh, and there may be some actually cool NetAI stuff in there, too. 😉

Whereas it was fascinating to see how effectively AI may perceive a community engineering process offered in pure language, create a plan, after which execute that plan in the identical means I might, there was a limitation in that first instance. The one “device” the agent had was the flexibility to ship present instructions to the community gadget. I needed to explicitly present the small print in regards to the community gadget—particulars which are available in my “supply of fact.”

To appreciate the facility of agentic AI, NetAI must have entry to the identical info as human community engineers. For at the moment’s submit, I wished to discover how I may present source-of-truth knowledge to my NetAI agent. So, let’s dig in!

NetBox presents an MCP server

NetBox has lengthy been a favourite device of mine. It’s an open-source community supply of fact, written in Python, and accessible in numerous deployment choices. NetBox has been with me via a lot of my community automation exploration; it appeared becoming to see the way it may match into this new world of AI.

Initially, I anticipated to place a easy MCP server collectively to entry NetBox knowledge. I rapidly realized that the workforce at NetBox Labs had already launched an open-source primary MCP server on GitHub. It solely supplies “learn entry” to knowledge, however as we noticed in my first NetAI submit, I’m beginning out slowly with read-only work anyway. Having a place to begin for introducing some supply of fact into my playground was going to considerably pace up my exploration. Completely superior.

Including NetBox to the NetAI playground

Have you ever ever been engaged on a challenge and gotten distracted by one other “cool concept?” No? I suppose it’s simply me then… 🙂

Like most of my community labs and explorations, I’m utilizing Cisco Modeling Labs (CML) to run the community playground for AI. This wasn’t the primary time I wished to have NetBox as a part of a CML topology. And as I used to be prepping to play with the NetBox MCP server, I had the thought…

Hank, wouldn’t it’s nice if there have been a CML NetBox node that could possibly be simply added to a topology, and that may routinely populate NetBox with the topology info from CML?

After all I answered myself…

Heck yeah, Hank, that’s an incredible concept!

My thoughts instantly began figuring out the small print of the right way to put it collectively. I knew it will be tremendous straightforward and quick to knock out. And I figured different individuals would discover it helpful as effectively. So I took a “quick detour.”

network topology shows NetBox node in Cisco Modeling Labs (CML) workbenchnetwork topology shows NetBox node in Cisco Modeling Labs (CML) workbench
Including NetBox to my Cisco Modeling Labs (CML) topology

I’m positive lots of you raised your eyebrows after I mentioned “tremendous straightforward” and “quick.” You had been proper to be skeptical, in fact. It wasn’t fairly as straightforward or simple as I anticipated. Nevertheless, I used to be in a position to get it working, and it’s actually cool and helpful for anybody who needs so as to add not solely a NetBox server to a CML community but additionally have it pre-populated with the gadgets, hyperlinks, and IP particulars from the CML topology.

I nonetheless must compile the documentation for the brand new node definition earlier than I can submit it to the CML-Neighborhood on GitHub for others to make use of. Nevertheless, think about this weblog submit my public accountability submit, indicating that it’s forthcoming. You’ll be able to maintain me to it.

However sufficient of the facet observe on this weblog submit, let’s get again to the AI stuff!

Including NetBox MCP server to LM Studio

As I discussed within the final weblog submit, I’m utilizing LM Studio to run the Giant Language Mannequin (LLM) for my AI agent regionally on my laptop computer. The primary cause is to keep away from sending any community info to a cloud AI service. Though I’m utilizing a “lab community” for my exploration, there are particulars within the lab setup that I do NOT need to be public or danger ending up in future coaching knowledge for an LLM.

If this exploration is profitable, utilizing the method with manufacturing knowledge can be the following step; nevertheless, that’s positively not one thing that aligns with a accountable AI method.

Cloning down the netbox-mcp-server code from GitHub was straightforward sufficient. The README included an instance MCP server configuration that supplied every little thing I wanted to replace my mcp.json file in LM Studio so as to add it to my already configured pyATS MCP server.

{
  "mcpServers": {
    "pyats": {
      "url": "http://localhost:8002/mcp"
    },
    "netbox": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/hapresto/code/netbox-mcp-server",
        "run",
        "server.py"
      ],
      "env": {
        "NETBOX_URL": "http://{{MY NETBOX IP ADDRESS}/",
        "NETBOX_TOKEN": "{{MY NETBOX API TOKEN}}"
      }
    }
  }
}

As quickly as I saved the file, LM Studio found the instruments accessible.

NetBox MCP server added to LMStudioNetBox MCP server added to LMStudio
NetBox MCP server added to LM Studio

There are three instruments supplied by the NetBox MCP server.

  • netbox_get_objects: Generic device that bulk retrieves objects from NetBox. It helps “filters” to restrict the returned objects.
  • netbox_get_object_by_id: Instrument to retrieve a single object of any sort from NetBox given an ID.
  • netbox_get_changelogs: Instrument to search for audit and alter occasions

I used to be, and proceed to be, within the method utilized by the NetBox Labs of us on this MCP server. Slightly than offering instruments to “get_devices” and “get_ips,” they’ve a single device. NetBox’s APIs and object mannequin are effectively thought out, and make a generic method like this doable. And it definitely means much less code and improvement time. Nonetheless, it basically provides API entry to the LLM and shifts the load for “thought” and “processing the information” again to the LLM. As Agentic AI and MCP are nonetheless very new requirements and approaches, there aren’t actual greatest practices and particulars on what works greatest in design patterns right here but. I’ll come again to this method and what I see as some doable downsides afterward within the submit.

I then loaded the newly launched open mannequin by OpenAI, gpt-oss, and despatched the primary question.

Asking AI how many devices are in NetBoxAsking AI how many devices are in NetBox
Asking AI what number of gadgets are in NetBox

My first thought… Success. After which I scratched my head for a second. 10 gadgets? Scroll again as much as the CML topology picture and depend what number of gadgets are within the topology. Go forward, I’ll wait…

Yeah. I counted seven gadgets, too. And if I test NetBox itself, it additionally reveals seven gadgets.

NetBox shows 7 devicesNetBox shows 7 devices
NetBox reveals seven gadgets

So what occurred? LM Studio reveals the precise response from the device name, so I went and checked. Certain sufficient, solely seven gadgets’ value of data was returned. I then remembered that one of many notoriously meme-worthy failings of many AI instruments is the flexibility to depend. Blueberries anybody?

So this became a pleasant teachable second about AI… AI is incredible, however it may be unsuitable. And it will likely be unhealthy with a number of the strangest issues. Keep vigilant, my associates. 😉

After resolving the problem with the ten gadgets, I spent a substantial period of time asking extra questions and observing the AI make the most of the instruments to retrieve knowledge from NetBox. Generally, I used to be fairly impressed, and getting access to source-of-truth knowledge shall be key to any Agentic NetAI work we undertake. While you do that out by yourself, positively mess around and see what you are able to do with the LLM and your NetBox knowledge. Nevertheless, I wished to discover what was doable in bringing instruments collectively.

Combining source-of-truth instruments with community operations instruments

I wished to begin out with one thing that felt each helpful and fairly simple. So I despatched this immediate.

I would prefer to confirm that router01 is bodily linked to the 
right gadgets per the NetBox cable connections.  

> Notice: The credentials for router01 are: `netadmin / 1234QWer`

Are you able to: 

1. Examine NetBox for what community gadgets router01 is meant to be 
   linked to, and on what interfaces
2. Lookup the Out of Band IP handle and SSH port from NetBox, use 
   these to hook up with router01.
3. Use CDP on router01 to test what neighbors are seen
4. Examine the NetBox to CDP info. 

I nonetheless needed to inform the LLM what the credentials are for the gadgets. That’s as a result of whereas NetBox is a incredible supply of fact, it does NOT retailer secrets and techniques/credentials. I’m planning on exploring what device choices exist for pulling knowledge from secret storage afterward.

If you’re questioning why I supplied a listing of steps to sort out this drawback fairly than let the LLM “determine it out,” the reply is that whereas GenAI LLMs can appear “sensible,” they’re NOT community engineers. Or, extra particularly, they haven’t been skilled and tuned to BE community engineers. Seemingly, the long run will provide tuned LLMs for particular job roles fairly than the general-purpose LLMs of at the moment. Till then, the perfect follow for “immediate engineering” is to offer the LLM with detailed directions on what you need it to do. That dramatically will increase the probabilities of success and the pace at which the LLM can sort out the issue.

Let’s have a look at how the LLM dealt with step one within the request, wanting up the gadget connections.

The AI plans and executes the cable lookup.The AI plans and executes the cable lookup.
The AI plans and executes the cable lookup

At first look, this appears to be like fairly good. It “knew” that it wanted to test the Cables from NetBox. Nevertheless, there are some issues right here. The LLM crafted what seems to be a legitimate filter for the lookup: “device_a_name”: “router01.” Nevertheless, that’s truly NOT a legitimate filter. It’s a hallucination.

A whole weblog submit could possibly be written on the rationale this hallucination occurred, however the TL;DR is that the NetBox MCP server does NOT present specific particulars on the right way to craft filters. It depends on the LLM to have the ability to construct a filter primarily based on the coaching knowledge. And whereas each LLM has benefited from the copious quantities of NetBox documentation accessible on the web, in all of my testing, I’ve but to have any LLM efficiently craft the right filter for something however essentially the most primary searches for NetBox.

This has led me to begin constructing my very own “opinion” on how MCP servers ought to be constructed, and it includes requiring much less “guessing” from the LLMs to make use of them. I’ll most definitely be again extra on this matter in later posts and shows. However sufficient on that for now.  

The LLM doesn’t know that the filter was unsuitable; it assumes that the cables returned are all linked to router01. This results in different errors within the reporting, because the “Thought” course of reveals. It sees each Cable 1 and Cable 4 as linked to Ethernet 0/0. The reality is that Cable 4 is linked to switch01 Ethernet0/0. We’ll see how this components in later within the abstract of knowledge.

As soon as it has the cable info, the LLM proceeds and completes the remainder of the device’s use to collect knowledge.

The AI succeeds in getting CDP informationThe AI succeeds in getting CDP information
The AI succeeds in getting CDP info

Discovering the Out of Band IP and SSH port was simple. However the first try to run “present cdp neighbors” failed as a result of the LLM initially didn’t use the SSH port as a part of the device name. However this is a wonderful instance of how Agentic AI can perceive errors from MCP servers and “repair them.” It realized the necessity for SSH and tried once more.

I’ve seen a number of circumstances the place AI brokers will resolve errors with device calls via trial and error and iteration. Actually, some MCP servers appear to be designed particularly with this because the anticipated habits. Good error messages may give the LLM the context required to repair the issue. Much like how we as people would possibly react and regulate once we get an error from a command or API name we ship. This is a wonderful energy of LLMs; nevertheless, I feel that MCP servers can and ought to be designed to restrict the quantity of trial and error required. I’ve additionally seen LLMs “surrender” after too many errors.

Let’s check out the ultimate response from the AI agent after it accomplished gathering and processing the outcomes.

The NetAI agent reports it's findings.The NetAI agent reports it's findings.
The NetAI agent studies its findings

So how did it do?

First, the great issues. It appropriately acknowledged that the hyperlink to switch01 from NetBox matched a CDP entry. Glorious. It additionally referred to as out the lacking CDP neighbor for the “mgmt” change. It’s lacking as a result of “mgmt” is an unmanaged change and doesn’t run CDP.

It could have been actually “cool” if the LLM had seen that the gadget sort of “mgmt” was “Unmanaged Swap” and commented on that being the rationale CDP info was lacking. As already talked about, the LLM is NOT tuned for community engineering use circumstances, so I’ll give it a cross on this.

And now the errors… The issue with the filter for the cable resulted in two errors within the findings. There aren’t two cables on Ethernet0/0, and the “Different unused cables” aren’t linked to router01.

Hank’s takeaways from the take a look at

I used to be positively a bit of disillusioned that my preliminary checks weren’t 100% profitable; that may have made for an incredible story on this weblog submit. But when I’m sincere, working into a couple of issues was even higher for the submit.

AI could be downright superb and jaw-dropping with what it may possibly do. However it isn’t good. We’re within the very early days of Agentic AI and AIOps, and there’s a lot of labor left to do, from growing and providing tuned LLMs with domain-specific information to discovering the perfect practices for constructing the perfect functioning instruments for AI use circumstances.

What I did see on this experiment, and all my experiments and studying, is the true potential for NetAI to offer community engineers a strong device for designing and working their networks. I’ll be persevering with my exploration and sit up for seeing that potential come to fruition.

There’s a lot extra I realized from this challenge, however the weblog submit is getting fairly lengthy, so it’ll have to attend for one more installment. Whereas I’m engaged on that, let me know what you consider AI and the potential for making your day by day work as a community engineer higher.

How has AI helped you lately? What’s the perfect hallucination you’ve run into to this point?

Let me know within the feedback!

Learn subsequent:

Making a NetAI Playground for Agentic AI Experimentation

Wrangling the Wild West of MCP Servers


 

Join Cisco U. | Be a part of the  Cisco Studying Community at the moment without cost.

Study with Cisco

X | Threads | Fb | LinkedIn | Instagram | YouTube

Use  #CiscoU and #CiscoCert to hitch the dialog.

Share:



Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles