# Break a kind cluster on purpose, then watch an Observe agent

> Source: <https://dev.to/muhtalipdede/break-a-kind-cluster-on-purpose-then-watch-an-observe-agent-2ceg>
> Published: 2026-08-16 11:47:42+00:00

One command from kprompt-examples: kind up, seven failure scenarios, verify they actually broke, then run the Observe agent offline in heuristic mode — $0, no silent auto-heal.

*Originally published at https://kprompt.ai/blog/observe-agent-kind-demo.*

v0.5 shipped the optional [Observe agent](https://kprompt.ai/docs/agent): always-on watch → correlated Incident → gated Slack/webhook, with Autopilot still propose-only. The missing piece for a live walkthrough was a `payments`

namespace that actually misbehaves — not a slide claiming CrashLoopBackOff.

[kprompt-examples](https://github.com/kprompt/kprompt-examples) is that fixture set. Break the cluster on purpose, then watch the agent react without spending an LLM token.

Needs Docker, kind, kubectl, and kprompt with the `agent`

subcommand. Heuristic mode — no API key, no spend. `DEMO_SECONDS=60`

stretches the agent window for recordings.

```
git clone https://github.com/kprompt/kprompt-examples.git
cd kprompt-examples
make walkthrough   # up → break-all → verify → agent-full (~45s)
```

Or step by step when you want to film each failure:

```
make up
make break SCENARIO=01-crashloop
make verify
kprompt agent run -n payments \
  --emit-initial --analyze --fetch-logs --health --heuristic \
  --memory --patterns --autopilot-propose
```

`--emit-initial`

matters: a live watch stays quiet until new Pod/Event traffic. Already-broken workloads may not re-emit until the next `BackOff`

. Emitting current state first makes demos and CI deterministic.

Seven scenarios in one namespace, with a healthy baseline so the health score has something Ready to weigh against:

| Scenario | Rough signal |
|---|---|
| CrashLoop | Restarting container / BackOff |
| ImagePull | ImagePullBackOff / ErrImagePull |
| OOM | OOMKilled / Exit 137 |
| Stalled rollout | Progress deadline / unavailable replicas |
| Unbound PVC | Pending Pod waiting on volume |
| Failing CronJob | Job failures / backoff |
| Missing Redis hostname | DNS / connection errors to a stub Service name |

Expect:

`web`

stays Ready`--autopilot-propose`

: a propose-only rollback suggestion on the stalled checkout rollout (`Applied`

stays That last point is the product claim: Observe never applies, patches, or deletes by default ([ADR-0013](https://github.com/kprompt/kprompt-architecture/blob/main/decisions/ADR-0013-in-cluster-agent.md)). Autopilot emits PlanResult-shaped proposals ([ADR-0015](https://github.com/kprompt/kprompt-architecture/blob/main/decisions/ADR-0015-autopilot-mode.md)); apply stays gated.

| Surface | Job |
|---|---|
| Laptop CLI | Reactive: NL → PlanResult → approve → apply |
| Observe agent | Always-on: watch → Incident → severity/confidence gate → notify |
| Autopilot | Opt-in propose-only; apply needs policy + explicit approve |

K8sGPT-style tools are great at on-demand scan → explain. Observe is a different job: continuous watch with threaded alerts from live Events/Pods. Do not expect fleet-scanner or multi-agent-framework parity — we ship one kprompt-native pipeline.

`brew install kprompt/tap/kprompt`

or `curl -fsSL https://kprompt.ai/install | bash`

**Try:** [kprompt.ai](https://kprompt.ai) · [GitHub](https://github.com/kprompt/kprompt) · [kprompt-examples](https://github.com/kprompt/kprompt-examples)

Muhtalip
