A fourth FlowAgent takes a real trouble ticket, diagnoses the fault in Arista EOS terms, and proposes a fix instead of just flagging that something’s wrong, then writes its findings straight back onto the ticket.
Home Lab Series · Part 4 of 6
1. Closed-Loop Config Backup2. First FlowAI Agents3. Continuous Compliance4. Ticket-Driven Diagnostics5. Coming soon6. Coming soon
Three agents into this lab, none of them told me what to actually do about a problem. One answers questions, one investigates a live device, one continuously checks that intent and reality still agree. All three stop at reporting. This fourth one is the first that reasons toward a fix, and building it made me stop and actually sit with what I’d put together.
Put simply: hand this agent a trouble ticket, and it figures out which device and symptom it’s dealing with, looks up the matching remediation in a knowledgebase, and writes a proposed fix back onto the ticket itself. It never touches the device. Tiered autonomy was a deliberate call here: this agent proposes now, and earns the right to act later, not the other way around.
Network Diagnostics is the fourth agent in the same project as the first three. Its description is direct about the boundary: “Diagnoses network issues on Arista EOS devices from a ticket, recommends remediation from a knowledgebase, and records findings back on the ticket.” Recommends, not applies.
Agent Prompt
“You are a NOC network diagnostics agent for an Arista EOS network. You are fluent in Arista EOS CLI syntax. You only recommend remediations, you never apply configuration changes to devices yourself.
Given a ticket sys_id ({{ sys_id }}), do the following in order:
Three tools, each doing exactly one job, running on Claude Sonnet 5: check the ticket, look up the fix, write it back.
Every prior agent in this lab had something real to call, NetBox, a live Arista switch, a Studio workflow. This one needed a ticketing system, and the lab didn’t have one. So I built a small, real, containerized mock ServiceNow-compatible REST API: FastAPI, HTTP basic auth, seeded incidents and a knowledgebase table behind it. Then I wired it into Platform as a genuine Integration Model, the same pattern a real ServiceNow connector would use. Swap the mock for the real thing later, and nothing about the agent or its workflows has to change.
The first version of this didn’t work, and it was my mistake, not the platform’s. I built one workflow trying to do the ticket lookup, the knowledgebase check, and the write-back all in a single pass. Passing a value cleanly from an early step to a much later one got messy fast. I just hadn’t broken the problem into small enough pieces yet.
The fix was simple once I stopped overengineering it. Three small, single-purpose tools instead of one big one: check the ticket, look up the knowledgebase fix, write it back. The FlowAgent became the layer that ties them together. Turns out an LLM has zero trouble holding a value from one tool call and passing it into the next, I just needed to get out of its way and let it do that job.
First real test: a ticket reporting a BGP neighbor down on ceos2. Unedited session, start to finish.
The first tool call resolves the ticket to a device and a symptom category, and confirms the device actually answers, no config pulled, just a reachability check:
ceos2 and category bgp_down out. The same Itential initiator tag from Part 3’s workflow engine shows up here too.
After the knowledgebase lookup, the third call writes the findings straight onto the ticket, as a structured field, not a comment someone has to go dig up:
Second test, a different symptom entirely: a high CPU ticket on dist1. Same three tools, same order, a different root cause and a different set of commands, diagnosed in 19.6 seconds and written back the same way.
show processes top and show logging, then written back the same way.A summary in a chat window is easy to take on faith. So instead of trusting the agent’s own account, I went around it and queried the mock ServiceNow API directly for the same ticket. The record it returned matches, field for field: the same device, the same symptom category, the same work notes, the state already sitting at Awaiting Approval.
Ticketing
Mock ServiceNow-Compatible APIIntegration Model
Itential Platform
FlowAgentsAgent ProjectsStudio WorkflowsItential Gateway
Devices
Arista cEOS-lab (arm64)Containerlab
Agentic Ops
Claude Sonnet 5Itential MCP Server
Four agents now share this lab, and the workflows behind them keep piling up. Every one of them, this one included, is only as trustworthy as the engine actually running it. So far the only way to know that engine was healthy was to go dig through logs by hand. The next entry stops looking at what the agents do and starts looking at what they run on.
Want to follow along with me? Connect with me on LinkedIn.
See how Itential connects AI reasoning to governed execution across your entire infrastructure.