Videos zU4EagB311U
Agents Need Feature Flags - Sachin Gupta
Scene timeline
37 shot(s).
keyframes kept every frame deduplicated
What was stored
- cues
- 225
- whisperx 225
- chunks
- 36
- from 225 cues
- keyframes
- 20
- kept of 37 captured
- frames with text
- 20
- 433 lines read
- chapters
- 0
- from the source metadata
- keyframe bytes
- 4.1 MB
- word timings on 225 cues
Provenance
| stage | state | model | started | took |
|---|---|---|---|---|
fetch |
done | — | 2026-08-11 00:52 | 1m 10s |
stt |
done | — | 2026-08-11 00:53 | 19s |
chunk |
done | — | 2026-08-11 00:54 | 0s |
text_embed |
done | — | 2026-08-11 00:54 | 1s |
keyframe |
done | — | 2026-08-11 00:54 | 44s |
ocr |
done | — | 2026-08-11 00:54 | 15s |
frame_embed |
done | — | 2026-08-11 00:55 | 3s |
Frames, and what the machine read
-
- AGENTS NEED FEATURE0.99
- FLAGS.1.00
- What web and mobile engineering learned the hard way, Al teams are0.98
- about to learn faster — and at higher cost.0.99
- Sachin Gupta1.00
-
- WHAT YOU DO0.96
- 21.00
- TODAY1.00
- I0.99
- Most Al teams ship to 100% of users on every deploy.1.00
- The moment your prompt change merges, every user — every request — sees the new behavior. There is no middle0.99
- ground.1.00
- 100%0.91
- Instantly Affected1.00
- of users see every behavior change the moment it ships0.98
- What ships globally on one deploy:1.00
- Prompt rewrites & system-instruction edits0.99
- New tool additions0.98
- Model swaps1.00
- Memory-policy changes1.00
- Autonomy upgrades1.00
- "Your 'small' prompt tweak just broke a chunk of users. You found out from a Discord screenshot."1.00
-
- EVIDENCE1.00
- I0.98
- This already happened. Here's what it cost.0.99
- 10.99
- 21.00
- Apr 2025 — Cursor "Sam"0.97
- Jul 2025 — Replit Agent0.96
- Support bot confidently cited a single-device login policy that didn't exist.0.99
- Day 9 of a 12-day vibe-coding experiment, mid code-freeze. Agent ignored1.00
- Customers compared notes on HN. CEO Michael Truell apologized publicly.0.99
- ALL-CAPS "no changes" instructions, dropped the production DB, then1.00
- generated 4,000+ fake records to conceal it.1.00
- Cost: public apology + session bug fix0.99
- Cost: weeks of rebuild0.99
- 31.00
- 41.00
- Nov 2025 — LangChain A2A loop0.99
- Apr 2026 — PocketOS0.98
- 4-agent A2A pipeline. Analyzer + Verifier locked in a 264-hour loop with no0.99
- Cursor + Claude Opus grabbed an unrelated API token from another file,0.99
- termination predicate. Found via billing-dashboard threshold, not the agent0.99
- ran a Railway GraphQL drop on prod. Co-located backups gone too.0.99
- system.1.00
- Cost: $47K · 11 days0.96
- Cost: 9 seconds1.00
- Sources: vectara/awesome-agent-failures · The Register·Fortune · Washington Post0.97
- 31.00
-
- BORROWED DISCIPLINE1.00
- I0.87
- What web and backend engineering paid for, the hard way.1.00
- Canary Releases1.00
- Segment Targeting0.99
- Ship to 1% first. Watch the metrics. If they hold, expand. If0.98
- Different behavior for different users — beta cohort, paying0.99
- they don't, roll back without redeploying.1.00
- tier, region, risk class. Not everyone sees the same thing.1.00
- X0.93
- Kill Switches0.99
- Rollout Monitoring1.00
- A pre-wired off-toggle for any feature that touches users.1.00
- Treat every behavior change as an experiment with its own0.99
- Pulled in seconds, not in deploy cycles.0.99
- error-rate dashboard. No dashboard, no rollout.1.00
- 41.00
-
- WHY AGENTS ARE DIFFERENT0.97
- I0.98
- Six behavior surfaces a CRUD app doesn't have.0.99
- 1·Prompts1.00
- 2·Tools0.98
- The system prompt is your most behavior-altering code. It changes0.99
- Every tool the agent can call is a newly authorized action. Tools come0.99
- weekly — sometimes daily — with no compile step, no type check,1.00
- and go, each one expanding or shifting the blast radius.0.99
- no test suite.1.00
- 3·Models0.99
- 4·Memory1.00
- Model-of-the-week swaps change personality, latency, cost, and1.00
- What the agent remembers across sessions silently changes behavior1.00
- refusal patterns overnight. Same prompt, different behavior.0.99
- over time — creating drift no deploy ever triggered.0.99
- 5·Autonomy0.99
- 6·Sub-agents1.00
- Suggest vs. auto-approve vs. auto-execute. The single largest blast-0.99
- Spawned children inherit the parent's flags. Or they should. Mc0.98
- radius dial — and the easiest to silently misconfigure.0.99
- systems don't enforce this — so junior agents run with full0.99
- permissions.1.00
- 51.00
-
- THE TAXONOMY1.00
- 10.90
- Six flag types. One playbook.0.98
- Prompt Variant1.00
- Model-Routing1.00
- Autonomy-Level1.00
- A/B prompt routing to alternate1.00
- Route traffic to specific models0.99
- Suggest /approve / execute dial0.99
- behaviors1.00
- X0.65
- Tool-Access1.00
- Memory-Policy1.00
- Kill Switch1.00
- Per-tool,per-segment authorization1.00
- Define persistence, expiry, and sharing0.99
- Pre-wired off, agent-wide & per-0.98
- controls1.00
- surface1.00
- Each flag maps directly to a behavior surface. None require building a new flag backend — your existing feature-flag infrastructure handl0.98
- 61.00
-
- FLAG TYPE 1 / 60.95
- I0.99
- Prompt variant flags1.00
- What it does1.00
- Routes different users — or different requests — to different0.99
- Mandatory When1.00
- system-prompt versions, on the fly, without a deploy.1.00
- Operating across regulatory regimes — EU GDPR, UK,0.99
- US state laws. One prompt cannot legally serve all three0.99
- jurisdictions simultaneously.1.00
- Example:prompt.support_agent.tone1.00
- Different regions demand different disclosure language,1.00
- beta_cohort → experimental-v3 (concise, action-first)1.00
- different refusal behaviors, and different data-handling0.99
- paid_tier → v2 (warm, expansive)0.98
- promises. Without prompt variant flags, you either ship the0.99
- strictest version everywhere (degrading experience) or risk0.99
- everyone else → v1 (stable, well-tested)0.98
- non-compliance in every market.0.98
- 71.00
-
- FLAG TYPE 2 / 60.94
- I0.95
- Tool-access flags1.00
- What it does1.00
- Authorizes — or revokes — specific tools per user segment, per0.99
- Mandatory When1.00
- request type, or per risk class. The tool exists; whether the agent1.00
- Agent has money-moving, data-deleting, or compliance-1.00
- can call it is the flag.1.00
- sensitive tools. Scope per customer tier, or pay the0.99
- AML/SOX bill.0.99
- Typical controls1.00
- Per-tool boolean —on/off for any capability0.99
- Also prevents: broken tool ships, prompt + send_email mass-1.00
- mail incidents, beta tools leaking to prod via config drift.0.99
- Per-segment lists — different tools for different cohorts0.98
- Per-risk-class gates — high-risk actions require elevated context1.00
- Time-of-day windows — cap costly tools during peak hours0.98
- 81.00
-
- FLAG TYPE 3 / 60.94
- I0.97
- Model-routing flags1.00
- What it does0.99
- Decides which model handles which traffic — and lets you0.99
- Mandatory When1.00
- migrate, fallback, or canary new models without code changes.1.00
- Healthcare (HIPAA BAA), finance (PCI), multi-jurisdiction0.99
- PlI. Route PHI to the right endpoint or violate the law.0.99
- Example:model.summarizer.route0.98
- When a provider has an outage — or pulls a model — your1.00
- high-cost segment → large frontier model (best quality)0.99
- fallback should be a one-flag flip, not a hot patch written1.00
- free tier → cheap-fast model (cost ceiling enforced)0.99
- during the incident.1.00
- on incident → fallback-stable (one-flip degraded mode)0.99
- Router1.00
- Frontier1.00
- Cheap-Fast1.00
- Fallback-Stable1.00
- 91.00
-
- FLAG TYPE 4 / 60.98
- I0.98
- Memory-policy flags0.99
- What it does1.00
- Controls what the agent remembers across sessions — what0.99
- Mandatory When1.00
- persists, what expires, what's shared, what's deletable.1.00
- Serving EU users. GDPR Art. 17 (right to erasure) and0.98
- Art. 22 (automated decisions) require per-user memory0.99
- control, including deletion on demand.1.00
- memory.retention1.00
- → session only / 30 days / forever0.94
- memory.scope1.00
- →per-user/per-tenant/global0.99
- Memory is the most under-appreciated source of behavior0.99
- drift. The same user, asking the same question, gets different0.99
- memory.write_enabled1.00
- → agent can persist or not0.99
- answers on Monday and Friday — because of what1.00
- memory.user_visible0.99
- →0.98
- user can inspect/delete their0.99
- accumulated between them.1.00
- own1.00
- 101.00
-
- FLAG TYPE 6 / 60.99
- I0.98
- The kill switch.0.99
- Pre-wired off, agent-wide and per-surface. No deploy. No restart. No code change at incident time.0.99
- No deploy required1.00
- No restart required0.99
- No code change required1.00
- Kill in seconds, not in pipelines.0.98
- In-flight requests respect the flag at the next1.00
- Pre-wired during the agent's design phase —0.99
- decision point.1.00
- not as an afterthought.0.99
- WITHOUT IT1.00
- 21.00
- 31.00
- 41.00
- LangChain A2A· $47K0.97
- PocketOS · 9 seconds0.95
- Replit · day 90.92
- OpenClaw · Meta0.96
- Analyzer + Verifier loop, no termination0.99
- Cursor + Claude wiped prod DB and co-0.99
- Agent ignored ALL-CAPS "no changes,"0.99
- Director of Alignment's agent ignored1.00
- predicate. Billing dashboard found it,1.00
- located backups with one Railway0.99
- deleted prod, fabricated 4,000+ fake1.00
- stop commands. Physical disconnect1.00
- not the agent.0.99
- mutation.1.00
- records.1.00
- required.1.00
- MANDATORY WHEN0.99
- Any high-risk Al operating in the EU after Aug 2, 2026. EU Al Act Article 14(4)(e) requires a "stop button1.00
- law.1.00
- Sources: vectara/awesome-agent-failures · TechCrunch · Fortune · The Register · EU Al Act Article 14(4)(e)0.97
- 121.00
-
- DEMO 1 / 20.89
- I0.96
- Mid-conversation flag flip0.98
- S ET U P April 2025: Cursor's "Sam" support bot confidently cited a single-device login policy that didn't exist. A tool-access flag is the fix.1.00
- SUPPORT CONVERSATION0.99
- agent-flags1.00
- admin1.00
- Mock data1.00
- Email engineering about the outage?1.00
- tool.send_email1.00
- OFF1.00
- Sure — drafting that email now...0.97
- AUDIT1.00
- disabled at1.00
- 14:32:08 UTC0.99
- FLAG FLIPPED0.99
- ·tool.send_email0.99
- by1.00
- sachin1.00
- AFTER FLIP. next turn, same session0.96
- scope1.00
- all in-flight conversations0.99
- I can draft this for you, but I'm not able to send emails right now.0.99
- Want me to copy the draft into your clipboard instead?1.00
- applies at1.00
- next decision point1.00
- active sessions1.00
- 121.00
- 131.00
-
- DEMO 2 / 20.90
- I0.95
- The kill switch — stopping a runaway agent mid-sentence.0.98
- S E T U P November 2025: A 4-agent LangChain A2A pipeline looped 11 days, $47K. Billing dashboard found it, not the agent system. Here's the 30-0.99
- second version.1.00
- TOOL CALLS / MINUTE0.97
- Illustrative simulation1.00
- agent.global_kill1.00
- 3001.00
- 2501.00
- EMERGENCY1.00
- STOP1.00
- 2001.00
- 1501.00
- 14:32:221.00
- 1001.00
- 501.00
- pressed1.00
- -501.00
- -2m0.99
- -1m1.00
- 0m1.00
- +10s1.00
- +20s1.00
- +25s1.00
- +30s1.00
- +45s1.00
- +1m1.00
- Mitigated in 30 seconds. No deploy.0.98
- T+0:001.00
- Runaway loop detected — 12 tool calls in 90s0.99
- T+0:151.00
- On-call Slack alert from the rate guard1.00
- T+0:221.00
- agent.global_kill = true· flag propagates0.98
- T+0:261.00
- In-flight agents see flag mid-turn, shut down gracefully1.00
- 141.00
Transcript
225 cues· 2,836 words· 15,835 chars
- 0:00 Hello everyone, I'm Sachin Gupta and I'm a backend engineer.
- 0:04 And today we are going to talk about agent need feature flags.
- 0:08 If you have been a backend engineer for any length of time, you already know these tools.
- 0:14 Things like canaries, segment targeting, kill switches.
- 0:18 Your craft has had them for over a decade and none of them is new.
- 0:23 The boring infrastructure that keep deploy safe is already a solved problem.
- 0:29 what is new is that we are shipping the most behavior changing systems we have ever built agents that send money agent that send mail agent that modify databases agent that spawn child processes and we are shipping them with none of that infrastructure we are shipping them the way web team used to ship in 2008.
- 0:52 Over the next few minutes, here is the plan.
- 0:55 I will walk you through with the six Slack types that agents specifically need.
- 1:00 I will show you two live demo storyboards.
- 1:03 The first is flipping a tool mid-conversation.
- 1:06 The second is stopping a runaway agent mid-sentence.
- 1:10 Then I will cover a rollout playbook with the numbers your team should track from day one.
- 1:17 Let's go.
- 1:20 here is the situation today the moment your prompt change merges a hundred percent of your users see the new behavior there is no canary no segment and no rollback button look at what goes out under those small all or nothing rules
- 1:38 We get prompt rewrite, new tool addition, model swapping, memory policy changes, autonomy upgrades, system instruction edits, and we get all of it globally and instantly.
- 1:51 Web teams stopped doing this back in 2012, and they stopped doing it for changes that were less risky than this.
- 1:59 The story that you actually hear from teams almost word for word is that it's just a small prompt peak, maybe broke a couple of a chunk of users,
- 2:09 And then finally people are finding it out on discard links or tech talks, or maybe another social media platform.
- 2:18 So that is the failure mode.
- 2:20 This entire talk is built around.
- 2:22 And let me show you that it is not hypothetical.
- 2:31 These are the four named incident in the last 14 months.
- 2:35 The first one we have is CursorSAM that happened in April of 2025, where the support bot confidently told users about a policy that never existed.
- 2:46 The second one we have is Replit.
- 2:48 This was day nine of a 12-day wipe coding experiment.
- 2:54 Agent did not follow the instructions and ended up deleting the production database and then fabricated over 4,000 fake users to conceal what it had done.
- 3:03 The third one is LandChain.
- 3:06 It had a four agent pipeline, researcher, analyzer, verifier, and synthesizer where two of them ran in continuous loop and costed $47,000.
- 3:16 The fourth one is PocketOS where a developer was using cursor and cloud.
- 3:21 the AI coding agent grabbed an unrelated API token from another file, treated it as authoritative, and ran a Railway GraphQL prop on the production database.
- 3:34 On the bottom left, you will see the sources that I used to cite it.
- 3:42 Web engineers learned this lesson a decade ago.
- 3:44 Canary releases.
- 3:45 You ship to a few percentage of users.
- 3:47 You watch the metrics.
- 3:49 If it works, you expand.
- 3:50 If it doesn't, then you roll back.
- 3:53 Segment targeting, different behavior for different type of users.
- 3:56 Kill switches, pre-wired off toggles that take effect in seconds, not in deploy cycles.
- 4:02 Rollout monitoring, every change has its own error rate dashboard.
- 4:06 None of this is new.
- 4:07 The tooling already exists, like LaunchDoc, UnleashLift, or maybe your homegrown flag service.
- 4:13 This is already a solved problem.
- 4:14 The discipline is already there.
- 4:16 We just have to apply it.
- 4:19 But now the problem is that web feature flags covers one thing, whether a feature is on or off.
- 4:25 But agent has six behavior surfaces that a CRUD app does not have.
- 4:30 And each one needs its own kind of flag.
- 4:33 And in the next slide, we are going to see that.
loading