Automation Blueprint โ Agents Catalog
Agents that design, deploy and update 5G networks (BubbleRAN MX-PDK on Kubernetes) from natural language intent. The Network Operations Agent holds the conversation and the design. Hermes turns the design into the Kubernetes resource, shows it, and writes it only after human confirmation. Every agent is an A2A server built with BAT-ADK: talk to the Network Operations Agent directly, or put it behind a supervisor in an AIFabric.
Both agents and both MCP servers are modes of one CompositionModel, automation: in an AIFabric, reference each one as model: automation/<mode>. List Hermes in the Network Operations Agent's dependencies and the two MCP servers in its mcpServers. Give Hermes role: none, so that only the Network Operations Agent calls it. The blueprint is included in MX-PDK AI-RAN and CAMPUS. The catalog overview explains these terms and how to install a blueprint.
The Network Operations Agent has no credentials and never calls Kubernetes. Hermes alone writes resources, with its own Kubernetes permissions. Cluster View only reads the cluster. The one exception is Cluster View's throughput measurement, which needs pods/exec.
Agentsโ
Network Operations Agent โ Design and lifecycle of networks, UEs and RIC jobsโ
model: automation/netops ยท role: worker
Designs a deployment in two turns. It fills in every value it can from the lab's defaults and says what it filled, so it asks only for what it cannot choose for you, such as the products to use for the gNB and the core. Products, models and accepted values come from the MX-PDK catalog that ships with the agent. Code checks every design against 3GPP rules (PCI and ARFCN ranges, the frequency raster, TDD budgets, address pools, slices) and against the platform's own rules. When a rule leaves only one legal value, code applies it. Every other choice goes to the user, with its valid options. It covers:
- Networks: create one from a preset or the lab defaults, change any field in plain words, and open a deployed network as a live baseline before changing or removing it;
- Terminals (UEs): the network the UE joins, and whether its radio is emulated or a real module. RAT, band, access and slice come from that network, and the IMSI stays on the network's PLMN;
- RIC jobs: a policy or monitoring job on a network's near-RT RIC, when the deployment profile includes one;
- The cluster: what is deployed and in what state, which radios are attached, and whether a physical design fits the free capacity, through Cluster View.
Every deploy, update and delete goes through Hermes and needs the user's confirmation. A design with physical radios is deployed or updated only after Cluster View has judged that exact design deployable, so it needs Cluster View. The agent keeps one open design per kind in each conversation, so every step of one job must stay in the same conversation.
Hermes โ Execution gate to Kubernetesโ
model: automation/hermes ยท role: none
The internal gate that the Network Operations Agent calls. It is not a natural-language assistant. Each call carries one typed operation (deploy, update, delete, get or list) on a Network, Terminal or RIC job. Hermes renders it to the platform's custom resource, validates it against the schema and a server-side dry run, and returns the rendered resource as a preview. It writes only when the human's reply is an unconditional yes. It is tied to the exact resource that was shown, so if the resource changes, the result is a conflict, not an approval. Updates are JSON patches, so fields the design does not model stay untouched. Reads report readiness and any place where the live resource differs from its design.
MCP Serversโ
Knowledge โ Mobile-network documentation searchโ
model: automation/knowledge
Searches prose only: the BubbleRAN Studio lessons (UE attachment, ARFCN and the raster, MCS, TDD patterns, the NR resource grid, radio bearers, the O-RAN stack, RAN evolution), a note on MX-PDK RIC jobs and a 3GPP note on NR TDD patterns. Tool:
- search_docs: search by question, optionally limited to one kind (Network, Terminal, RicJob). Results from the lessons cite their page.
Knowledge never decides which values are allowed: products, devices and accepted values come from the MX-PDK catalog. Used by the Network Operations Agent.
Cluster View โ Observed cluster stateโ
model: automation/cluster-view
Reads the cluster fresh on every call (Networks, Terminals, Elements, RIC jobs, CompositionModels, Nodes and Pods) and never writes. Tools:
- cluster_overview: nodes, operator health, every network with its elements and their state, free capacity and radios per node;
- cluster_resources: what is deployed, filtered by kind or name;
- cluster_health: why something is not up, down to the Pod (waiting reason, restarts, unscheduled);
- cluster_capacity: free CPU, memory, hugepages and radio devices per usable node;
- cluster_feasibility: whether a given number of copies of a model fits on a given radio: deployable, blocked or unknown. The verdict is advisory: the scheduler decides;
- cluster_throughput: a measured iperf3 run between a UE and its data network (needs
pods/exec).
Used by the Network Operations Agent.
Evaluation Resultsโ
Each task is a conversation with the Network Operations Agent on a live MX-PDK testbed with two deployed networks, one of them with two gNBs. The expected outcome of every task gives the final design down to the values code must compute (ARFCNs, TDD frames, IMSIs) or, for a question, what the reply must report from the catalog and the cluster; no task deploys or writes anything. Tasks were run per model with bat eval run (BAT-CLI). The scores come from a judge model that reads the whole run, tool calls and results included, and the expected outcome; they go from 0 to 1, higher is better, and are averaged over the tasks of the section.
- Task completion: how close the run came to the expected outcome, and how cleanly it got there;
- Relevance: the agent stayed on the subject the user raised, without detours;
- Groundedness: every value in the reply and in the tool calls comes from the user or from a tool result, nothing invented;
- Time (s) and Tokens: wall time and total tokens, averaged per conversation.
Overallโ
All 28 tasks of the four sections below.
| Model | Task completion |
|---|---|
| gpt-6-luna | 0.87 |
| gpt-4.1-mini | 0.57 |
| gemma4 | 0.51 |
| qwen3.8 | 0.89 |
Designโ
Five conversations that design a new network from plain words: an emulated OAI gNB with Open5GS and FlexRIC, OCUDU on a Benetel RAN550 at 100 MHz, an OAI CU-DU split moved to band n41, an OAI gNB on a USRP B200 with a Quectel UE, and a Quectel UE refused on an emulated network.
| Model | Task completion | Relevance | Groundedness | Time (s) | Tokens |
|---|---|---|---|---|---|
| gpt-6-luna | 0.98 | 0.94 | 1.00 | 43 | 86,916 |
| gpt-4.1-mini | 0.24 | 0.90 | 0.88 | 13 | 50,474 |
| gemma4 | 0.44 | 0.89 | 0.88 | 71 | 72,141 |
| qwen3.8 | 0.92 | 0.93 | 1.00 | 56 | 118,625 |
Informationโ
Twelve questions with no change to any design: what the platform catalog offers (products, RF-simulator presets, RIC job categories, radios for OCUDU or 100 MHz, RF-simulator bandwidths, emulated UEs, EPC cores, TDD fields) and what the cluster holds (deployed networks and their state, one network shown, free radios).
| Model | Task completion | Relevance | Groundedness | Time (s) | Tokens |
|---|---|---|---|---|---|
| gpt-6-luna | 0.91 | 0.95 | 1.00 | 8 | 16,592 |
| gpt-4.1-mini | 0.73 | 0.94 | 0.98 | 4 | 10,899 |
| gemma4 | 0.51 | 0.88 | 0.88 | 15 | 11,040 |
| qwen3.8 | 0.88 | 0.90 | 0.93 | 20 | 25,789 |
Presetsโ
Six conversations that start from the rfsim preset and then edit it: band then bandwidth, frequency then lower latency, 100 MHz refused then 20 MHz, a UE whose IMSI code moves onto the network PLMN, and OCUDU refused then a band change.
| Model | Task completion | Relevance | Groundedness | Time (s) | Tokens |
|---|---|---|---|---|---|
| gpt-6-luna | 0.96 | 0.94 | 1.00 | 31 | 66,408 |
| gpt-4.1-mini | 0.62 | 0.91 | 1.00 | 9 | 26,896 |
| gemma4 | 0.73 | 0.90 | 0.97 | 59 | 56,417 |
| qwen3.8 | 0.88 | 0.92 | 1.00 | 33 | 64,277 |
Updateโ
Five conversations on a live network read off the cluster, where every change must stay local: a band change with the diff against the cluster, a frequency change in one turn, a band change on one of two gNBs with the diff, the low-latency TDD frame on both gNBs, and 100 MHz refused on the RF simulator.
| Model | Task completion | Relevance | Groundedness | Time (s) | Tokens |
|---|---|---|---|---|---|
| gpt-6-luna | 0.58 | 0.78 | 0.96 | 43 | 68,077 |
| gpt-4.1-mini | 0.46 | 0.91 | 0.64 | 10 | 37,109 |
| gemma4 | 0.34 | 0.85 | 0.88 | 68 | 44,762 |
| qwen3.8 | 0.92 | 0.92 | 1.00 | 34 | 55,116 |