Try it on a broken app
The best way to see what the agents do is to point them at something that's actually broken. The repo ships a deliberately-broken two-service app, Broken Shop, so you can watch the agents root-cause a real failure end to end before you connect your own app.
browser ──▶ storefront ──calls──▶ pricing
│ │
└──── each logs ──────┘ (its own token-protected /_logs)A checkout that prices orders by country, with a backend pricing dependency. Each service has its own logs, so it's a real multi-source setup, and the root cause often lives in a different service's logs than where the symptom appears.
1. Run it
cd examples/broken-shop
cp .env.example .env
docker compose up -d --build
open http://localhost:88002. Pick a failure to debug
Edit .env to switch scenario, each is a different class of failure:
| Scenario | What breaks | Ask the agents |
|---|---|---|
| data bug (default) | Germany is priced in USD, not EUR | "Why are German customers charged in USD at checkout?" |
| dependency down | checkout 500s, service unreachable | "Checkout returns 500, find the cause." |
| firewall / timeout | checkout hangs then 500s | "Checkout is failing and slow, what's wrong?" |
| DNS | the dependency hostname won't resolve | "Checkout 500s, investigate." |
| auth | a wrong API key between services | "Checkout fails with an auth error, why?" |
| config | a required env var is unset | "Checkout 500s, is something misconfigured?" |
3. Connect the logs
In Settings → Server logs → Multiple log sources, connect both services so the agents can correlate across them:
[
{"type":"http","label":"storefront","url":"http://host.docker.internal:8800/_logs","token":"devlogtoken"},
{"type":"http","label":"pricing","url":"http://host.docker.internal:8810/_logs","token":"devlogtoken"}
](host.docker.internal is how the in-container agents reach an app on your machine. The /_logs endpoints are token-protected, set the same token both sides.)
4. Fire the agents
In the assistant, ask the question for your scenario, or just "find what's broken in checkout." The agents fan out across both log sources, follow the failure to its cause, and report the layer, the cause, and the fix, read-only. With the data-bug scenario, try connecting only the storefront source first: the agents see checkout succeed but can't explain the USD, because the cause is in the pricing logs. Add the second source and they find it. That's the whole point of multi-source debugging.
Full scenario details (the seven failure modes, the env toggles, the root cause each reproduces) are in
examples/broken-shop/README.md. When you're ready, point the same setup at your app: connect your real log sources and ask the agents about a real failure. See the autonomous agent and connecting server logs.