Skip to content
LinkState
Go back

Two-Pass Generation for Safer NetOps Agents

Introduction to Evidence-Backed Planning

Model-driven planning is a paradigm that leverages models to generate, verify, and execute plans. This approach has gained significant traction in recent years due to its ability to improve the efficiency, accuracy, and reliability of planning processes.

Architecture for Evidence-Backed Planning

The architecture for evidence-backed planning consists of the following components:

Plan Generation and Verification

To force the model to emit typed evidence-backed plans, the following steps can be taken:

Execution Step Generation

The execution steps should be separated from the planning process to ensure that the planning process is not affected by the execution of the plan. To emit typed execution steps post-verification, the following steps can be taken:

CLI Example for Automated Execution Step Emission

# Define the plan structure
plan_structure = { "name": "string", "description": "string", "steps": "array" }

# Define the execution step structure
execution_step_structure = { "name": "string", "description": "string", "action": "string" }

# Generate the execution steps
execution_steps = []
for step in plan_structure["steps"]:
  execution_step = { "name": step["name"], "description": step["description"], "action": step["action"] }
  execution_steps.append(execution_step)

# Verify the execution steps
for execution_step in execution_steps:
  if execution_step["action"] != "valid_action":
    echo "Invalid action"
    break

Troubleshooting Common Issues

To debug plan generation failures, the following steps can be taken:

Scaling and Limitations

To scale horizontally for high-volume planning, the following steps can be taken:

Code Examples and Implementations

Example Model Implementation in Python

import numpy as np

class Plan:
  def __init__(self, name, description, steps):
    self.name = name
    self.description = description
    self.steps = steps

class ExecutionStep:
  def __init__(self, name, description, action):
    self.name = name
    self.description = description
    self.action = action

# Define the plan structure
plan_structure = { "name": "string", "description": "string", "steps": "array" }

# Define the execution step structure
execution_step_structure = { "name": "string", "description": "string", "action": "string" }

# Generate the execution steps
execution_steps = []
for step in plan_structure["steps"]:
  execution_step = ExecutionStep(step["name"], step["description"], step["action"])
  execution_steps.append(execution_step)

# Verify the execution steps
for execution_step in execution_steps:
  if execution_step.action != "valid_action":
    print("Invalid action")
    break

Best Practices for Deployment and Maintenance

To implement continuous integration and deployment for planning models, the following steps can be taken:


Share this post on:

Previous Post
Scan loop or failover triaging a neighbor spike
Next Post
More NIC queues do not mean linear scaling