Skip to main content

Conversational Interface

TalkOps provides a natural language interface for interacting with complex DevOps operations.


How It Works​

Request Processing Flow​


Intent Recognition​

The system extracts structured data from natural language:

Example​

User InputExtracted Intent
"Deploy my app to staging"action: deploy, env: staging
"Scale Redis to 5 replicas"action: scale, resource: redis, replicas: 5
"Show Prometheus metrics"action: query, source: prometheus
"Rollback last deployment"action: rollback, target: last

Multi-Intent Requests​

Complex requests are decomposed:

"Deploy my app with monitoring and auto-scaling"

Intents:
β”œβ”€β”€ deploy_application
β”œβ”€β”€ configure_monitoring
└── configure_autoscaling

Conversation Context​

TalkOps maintains context across interactions:

Context Types​

TypeContents
SessionCurrent conversation history
UserPreferences, permissions, defaults
EnvironmentActive namespace, region, cluster
WorkflowOngoing multi-step operations

Context Usage​

User: "Deploy prometheus"
Agent: Deployed to default namespace in us-east-1

User: "Now scale it to 3 replicas"
Agent: (knows "it" = prometheus from context)
Scaled prometheus to 3 replicas

Response Formats​

Success Response​

βœ… Deployment Successful

Summary:
- App: my-service
- Environment: staging
- Replicas: 3
- Image: my-service:v1.2.3

Resources Created:
β”œβ”€β”€ Deployment: my-service
β”œβ”€β”€ Service: my-service-svc
└── ConfigMap: my-service-config

Next Steps:
1. View logs: "Show logs for my-service"
2. Check metrics: "Show my-service metrics"

Approval Required​

⏸️ Approval Required

This operation requires review:

Changes:
β”œβ”€β”€ Add: 3 x c5.xlarge instances
β”œβ”€β”€ Modify: Auto-scaling policy
└── Estimated cost: +$450/month

Requested by: developer@example.com
Approvers: admin@example.com

[Approve] [Reject] [View Details]

Error Response​

❌ Operation Failed

Error: Insufficient permissions

Details:
- Action: create_cluster
- Missing: eks:CreateCluster permission

Resolution:
1. Request access from administrator
2. Or use: "Deploy to staging" (allowed)

Need help? "Explain EKS permissions"

Clarification Dialogs​

When requests are ambiguous:

User: "Deploy the app"

Agent: Which application would you like to deploy?
1. my-frontend (last deployed 2 days ago)
2. my-backend (last deployed 1 hour ago)
3. my-worker (never deployed)

User: "2"

Agent: Deploy my-backend. Which environment?
1. development
2. staging
3. production (requires approval)

Progressive Disclosure​

Complex operations show summary first:

User: "Set up monitoring for my cluster"

Agent: Here's the monitoring plan:

πŸ“Š Metrics
β”œβ”€β”€ Prometheus server
β”œβ”€β”€ Node exporters
└── kube-state-metrics

πŸ“ˆ Dashboards
β”œβ”€β”€ Cluster overview
β”œβ”€β”€ Node health
└── Pod resources

πŸ”” Alerts
β”œβ”€β”€ High CPU (>80%)
β”œβ”€β”€ Memory pressure
└── Pod restarts

Estimated time: 5 minutes
Cost impact: +$25/month

[Deploy] [Customize] [Cancel]

Best Practices​

For Clear Requests​

  • βœ… Be specific about resources
  • βœ… Include environment/namespace
  • βœ… Specify version when relevant
  • βœ… Use consistent naming

Examples​

Less ClearMore Clear
"Deploy it""Deploy my-app to staging"
"Fix the issue""Rollback my-app to v1.2.3"
"More resources""Scale my-app to 5 replicas"
"Check things""Show health for production"