Videos 0vphxNt4wyk
Don't Ship Skills Without Evals — Philipp Schmid, Google DeepMind
Scene timeline
52 shot(s).
keyframes kept every frame deduplicated
What was stored
- cues
- 275
- whisperx 275
- chunks
- 39
- from 275 cues
- keyframes
- 30
- kept of 52 captured
- frames with text
- 30
- 644 lines read
- chapters
- 19
- from the source metadata
- keyframe bytes
- 6.0 MB
- word timings on 275 cues
Provenance
| stage | state | model | started | took |
|---|---|---|---|---|
fetch |
done | — | 2026-08-10 11:51 | 1m 48s |
stt |
done | — | 2026-08-10 11:53 | 23s |
chunk |
done | — | 2026-08-10 11:53 | 0s |
text_embed |
done | — | 2026-08-10 19:49 | 1s |
keyframe |
done | — | 2026-08-10 11:53 | 2m 09s |
ocr |
done | — | 2026-08-10 11:55 | 15s |
frame_embed |
done | — | 2026-08-10 19:49 | 5s |
Frames, and what the machine read
-
- AlEngineer0.95
- World's Fair0.97
-
- AlEngineer0.95
- World's Fair0.99
-
- LAB & PLATINUM SPONSORS0.99
- Amazon AGI Lab0.98
- ANTHROP\C1.00
- Google DeepMind1.00
- MINIMAX0.94
- OpenAI0.92
- Akamai0.99
- arize1.00
- aws1.00
- Braintrust bright data0.99
- B1.00
- Browserbase1.00
- docker1.00
- :neo4j0.91
- ORACLE1.00
- PayPal1.00
- qodo1.00
- reducto1.00
- Sonar1.00
- Makers of0.99
- togetherai1.00
- Unblocked1.00
- WorkOS1.00
- SonarQube1.00
-
- World's Fair0.97
- ORI0.85
-
- AlEngineer0.99
- World's Fair1.00
-
- THE PROBLEM0.90
- AlEngineer0.98
- Vibe Checks Fail in Production1.00
- World'sFair1.00
- Why shipping untested skills breaks production0.99
- PRESENTED BY1.00
- SkillsBench indexed 47k+ unique skills across 6,300 repos.1.00
- Microsoft1.00
- Almost none have tests.1.00
- Most skills are tested with two manual runs and shipped.0.99
- Bad skills don't crash; they quietly corrupt outputs.1.00
- The Rule: You wouldn't merge code without tests. Why ship skills without evals?1.00
- 2 / 250.88
- World'sFair1.00
- Engineering the future of Al1.00
-
- • CONTEXT0.89
- AlEngineer0.98
- Agents We Use vs. Agents We Build0.99
- World'sFair1.00
- The hidden reliability gap1.00
- PRESENTED BY1.00
- Agents We Use1.00
- Agents We Build0.98
- Microsoft1.00
- - Antigravity, Cursor, Claude Code, Codex0.99
- - Customer support bot, internal workflow agent0.99
- You (engineer who can recover from errors)1.00
- End users who leave on the first failure0.99
- You say "No, use /commit-skill" and it recovers0.99
- Customer leaves (won't debug your agent)1.00
- Model-invoked or user-invoked (slash command)0.99
- Model-invoked only (no human fallback)1.00
- Human in the loop compensates for errors1.00
- Non-negotiable (saves your customers)1.00
- The further the user is from the skill system, the higher the reliability bar. Automated evals become essential.1.00
- 3 / 250.93
- World's Fair0.94
- TRACK 5• JULY 1, 20260.96
- Evals1.00
-
- ANATOMY0.94
- AlEngineer0.99
- What Is a Skill?0.96
- World's Fair0.98
- Customizing agent behavior without retraining1.00
- SKILL FILE LAYOUT1.00
- my-skill/0.92
- SKILL.md1.00
- - The only required file0.97
- scripts/1.00
- - Reusable code agent can run0.98
- A skill is a versionable folder containing a SKILL. md file0.99
- references/1.00
- - Docs agent reads when needed0.98
- and supporting assets.0.99
- -assets/0.94
- - Templates or files used in output0.99
- Three Layers of Progressive Disclosure:1.00
- SKILL.MD EXAMPLE1.00
- • Layer 1: Frontmatter (name + description)1.00
- description: Use this skill for generative video editing.0.99
- name: gemini-omni-flash-api0.99
- • Layer 2: SKILL.md Body0.99
- • Layer 3: References & Scripts0.97
- # Gemini Omni Flosh Skill0.99
- This skill uses the Gemini Omni Flash model ('g0.98
- 4 / 250.84
- World's Fair0.95
- TRACK 5· JULY 1, 20260.95
- Evals1.00
-
- •CATEGORIES0.95
- AlEngineer0.98
- Capability vs. Preference Skills0.98
- World'sFair1.00
- Knowing when skills expire1.00
- Capability Skills1.00
- Preference Skills1.00
- Teach models what they can't do consistently yet1.00
- Encode team workflows and conventions1.00
- Temporary (retire as models improve)1.00
- Durable (must match team process)1.00
- Evals tell you when to retire a capability skill!0.99
- Evals protect against workflow regressions1.00
- EXAMPLES1.00
- EXAMPLES1.00
- PDF parsing, custom internal APIs, database schemas, framework migration rules.0.99
- Code review checklists, PR formatting rules, git workflow patterns, deployment procedures.1.00
- 5 / 250.85
- World's Fair0.98
- TRACK 5· JULY 1, 20260.95
- Evals1.00
-
- EFFICACY DATA0.94
- AlEngineer0.98
- Do Skills Work? (SkillsBench 1.1)0.98
- World's Fair0.99
- Curated skills jump resolution rate from 33.9% → 50.5% (+16.6 pts)0.97
- 0.71.00
- Skill Lifl0.88
- 0.61.00
- 0.51.00
- 0.41.00
- 0.31.00
- 0.20.99
- 0.11.00
- 0.01.00
- GCL0.61
- PT.550.52
- Curated human-written skills boost task resolution by +16.6 points overall (33.9% → 50.5%).0.99
- 6 / 250.84
- World's Fair0.99
- TRACK 5· JULY 1, 20260.94
- Evals1.00
-
- EFFICACY WARNINGS0.98
- AlEngineer0.99
- Self-Generated & Bloated Skills Fail1.00
- World'sFair1.00
- Why auto-generated skills and bloat destroy accuracy1.00
- 1001.00
- No Skills0.98
- Claade0.98
- SKILL LENGTH VS. PERFORMANCE LIFT1.00
- 801.00
- Self-Gienerated0.97
- Curated Skills0.95
- Codex1.00
- Gemini1.00
- Compact (< 200 lines): +19.0% Lift0.99
- Pas l ()0.52
- 601.00
- Fast, low token overhead, high precision.1.00
- 401.00
- 43.00.91
- 34.90.95
- 46.80.99
- 35.50.98
- Standard (200-500 lines): +21.5% Lift (Sweet Spot)0.99
- Optimal balance of guidance and reasoning headroom.0.99
- 201.00
- Detailed (500-1000 lines): +14.5% Lift0.99
- (Claude Code)0.98
- Opus 4.70.99
- GPT-5.51.00
- (Codex)1.00
- Gemini 3.1 Pro0.99
- (Gemini CLI)1.00
- Instruction drift begins to degrade reasoning.1.00
- Comprehensive (> 1000 lines): +0.7% Lift (No-Op)0.99
- Self-generated skills hurt accuracy: -8.1 to -11.5 point loss.1.00
- Bloat burns reasoning tokens with zero gain.0.99
- 7 / 250.89
- World's Fair0.96
- TRACK 5· JULY 1, 20260.95
- Evals1.00
-
- TRIGGERS1.00
- AlEngineer0.97
- Triggering Skills: Model vs. User0.99
- World'sFair1.00
- Deciding how and when the skill is injected into context0.99
- MODEL-INVOKED (AUTONOMOUS)1.00
- USER-INVOKED (SLASH COMMAND)0.98
- name: commit-formatter0.98
- name: cleanup-worktree1.00
- description: Format git commit messages using team rules1.00
- disable-model-invocation: true1.00
- • Agent fires it autonomously based on the frontmatter0.99
- Only triggered when explicitly called by name (e.g. /commit).0.99
- PRESENTED BY1.00
- description.1.00
- Zero ambient context cost until invoked.0.99
- Microsoft1.00
- Frontmatter sits in context window on every single turn.0.99
- Use for workflows you execute intentionally.0.99
- Use when the agent must decide on its own when to trigger.0.99
- Set disable-model-invocation: true in frontmatter.1.00
- Model-invocation is the only option available for production1.00
- agents.1.00
- 8 / 250.82
- World's Fair0.98
- TRACK 5· JULY 1, 20260.96
- Evals1.00
-
- • TIP 10.93
- AlEngineer0.99
- Nail the Description (The Trigger)1.00
- World'sFair1.00
- The trigger mechanism causes 50%+ of all skill failures0.99
- • The frontmatter description is the primary trigger mechanism1.00
- DESCRIPTION TRIGGER COMPARISON1.00
- for model-invoked skills.1.00
- Vague descriptions cause the skill to miss triggers or hijack1.00
- X Too Vague0.93
- unrelated prompts.1.00
- "Helps with documents"0.99
- "API helper"1.00
- Include both the "what" (capability) and the "when" (trigger0.99
- context) in the description.1.00
- Specific & Actionable1.00
- "Create, edit, and analyze .docx files. Use for tracked changes, comments,0.99
- Real Result: Rewriting the description alone fixed 5 of 7 failures0.99
- formatting, or text extraction."0.99
- in our evaluation suite.1.00
- 9 / 250.86
- World's Fair0.97
- TRACK 5· JULY 1,20260.96
- Evals1.00
-
- • TIP 20.92
- AlEngineer0.97
- Write Directives Instead of Essays1.00
- World'sFair1.00
- Models follow clear directives better than inferring passive trivia0.99
- Directives drive action; passive explanations become ignored1.00
- trivia.1.00
- GOOD VS. BAD DIRECTIVES1.00
- A 5-line code snippet beats a 5-paragraph explanation every0.99
- XPassive Essay0.96
- time.1.00
- handles session state automatically."0.99
- "The Interactions API is recommended for multi-turn chat because it1.00
- Explain the reasoning behind rules to help the model1.00
- generalize across edge cases.1.00
- Active Directive1.00
- "Always use client.interactions.create() for chat. Never use the0.99
- Avoid overfitting to specific prompts by writing directives that1.00
- legacy generate_content API."1.00
- scale.1.00
- 10 / 250.95
- World's Fair0.95
- TRACK 5· JULY 1, 20260.95
- Evals1.00
-
- • TIP 30.84
- AlEngineer0.97
- Keep It Lean (Layer Information)1.00
- World'sFair1.00
- Progressive information loading saves context for the actual task0.99
- Frontmatter (name + description) sits in context on every turn1.00
- – keep it minimal.0.95
- Layer 1: Frontmatter (Always Loaded)0.99
- name + description sit in context on every turn.0.98
- Keep the main SKILL. md body under 500 lines to preserve0.99
- reasoning token headroom.0.99
- Layer 2: SKILL.md Body (Loaded on Trigger)0.99
- Move detailed docs, scripts, and multi-page guides into1.00
- Core instructions injected into context when skill activates.1.00
- external reference files.1.00
- Layer 3: References & Scripts (Loaded on Demand)0.99
- External references incur zero context cost until the agent0.99
- External files read or executed only when explicitly needed.1.00
- explicitly reads them.0.99
- 11/ 250.96
- World's Fair0.94
- TRACK 5· JULY 1, 20260.96
- Evals0.91
-
- • TIP 40.93
- AlEngineer0.99
- Set the Right Level of Freedom0.97
- World's Fair0.96
- Describe what you want, not the step-by-step path to get there1.00
- Dictating every step strips an agent's ability to adapt, recover0.99
- FREEDOM LEVEL COMPARISON0.99
- from errors, or find better approaches.1.00
- XRigid Step-by-Step0.98
- Describe the desired outcome rather than enforcing a rigid1.00
- "Step 1: Read config.json0.99
- Step 2: Extract port1.00
- procedural path.0.97
- Step 3: Edit line 40.99
- Step 4: Save file"1.00
- Provide constraints, not procedures ("Always run tests before1.00
- opening PR", not "Step 1, Step 2...").1.00
- Goal & Constraints0.99
- If exact step-by-step execution is required, write a script0.99
- Ensure file parses correctly.1.00
- "Update database port in config.json to 5432.0.99
- instead of a skill.1.00
- Always run tests before opening PR."1.00
- 12 / 250.87
- World's Fair0.89
- TRACK 5· JULY 1,20260.96
- Evals1.00
Transcript
275 cues· 3,742 words· 19,875 chars
- 0:12 Yeah, so hi, everyone.
- 0:13 My name is Philipp.
- 0:14 I'm based out of Germany.
- 0:16 I am part of the Google DeepMind team, mostly working on Gemini API and agents.
- 0:20 And we are going to talk about why you should not ship skills without evals.
- 0:25 And maybe before we start, I need a little bit of your help.
- 0:27 So if you could raise your hands if you use coding agents to write code.
- 0:32 So yeah, hopefully every hand goes up, right?
- 0:35 And do you use skills with it?
- 0:38 OK.
- 0:39 Do you have evals for those skills?
- 0:41 OK, that's not a lot of hands.
- 0:44 Everyone uses skills.
- 0:45 No one has evals.
- 0:46 Hopefully, we can fix that today.
- 0:48 And very important is wipe checks fail in productions.
- 0:51 And SkillBench is a very popular and nice eval or benchmark, which indexed over 50,000 skills from GitHub and tried to look into them.
- 1:01 And almost none of those skills had evals.
- 1:04 Most of them were AI written.
- 1:07 not really tested, and it's very hard to know if your skill is good or bad because agents are really non-deterministic.
- 1:14 So you might not know if your task fails because your skill is bad or if your task fails because it's way too challenging for the model.
- 1:23 Very important, before we go into it, I want to really make sure that we know the difference between the agents we use and the agents we build.
- 1:31 Most of us use agents for writing code, doing productivity work, that's the agents we use.
- 1:36 It's like anti-gravity, cursor, cloud code, and there you are the engineer, and you have context about skills.
- 1:43 If you write some prompt to, I don't know,
- 1:46 help me build a new Gemini API feature.
- 1:49 And if your agent does not invoke the skill on the first time, you will notice it very quickly.
- 1:54 You stop your task and reprompt it or use slash commands for triggering those skills.
- 2:00 When you build an agent inside your application for consumer or customers, they have no idea about what a skill is.
- 2:07 They don't start their prompt with use customer support skill to help me refund or use refund skill to
- 2:15 help me solve my problems.
- 2:16 So there's a big difference between the agents we use and how we use skills and the agents we build and how our customers might want to use skills in like the context there.
- 2:27 And what is a skill?
- 2:28 I mean, every one of us knows, hopefully by now what a skill is.
- 2:31 It's like basically really a folder with a skills MD file in it and then some additional assets to make that skill really work.
- 2:38 And the big difference with skills is that they work on progressive disclosure.
- 2:43 So most of the skills start very small.
- 2:45 So you have the title and the description.
- 2:48 The description is normally part of the model's context.
- 2:52 So the model knows when to use the skill.
- 2:54 Second layer is we have the skills body with more instructions, more details, and hopefully more references to external files.
- 3:01 And then you can really go deep in those reference files where there's all of the context the model needs to discover to solve the task.
- 3:08 And I like to differentiate between two kinds of skills.
- 3:11 So there are capability skills and preference skills.
- 3:13 Capability skills teach models something they cannot do consistently at the moment.
- 3:19 Maybe it's like, I don't know, like tracing some logs, creating a new React app,
- 3:24 And those capability skills are temporary.
- 3:27 So the better our model gets, the more likely it is that we can remove those skills.
- 3:32 And evalts will tell us when we can retire skill and when not.
- 3:36 And then we have preference skills.
loading
Chapters
- 0:00 Introduction: Why skills need evals
- 0:25 The problem with current agent workflows
- 1:25 Agents we use vs. agents we build
- 2:28 Defining a 'Skill' and progressive disclosure
- 3:08 Capability skills vs. preference skills
- 4:17 Do skills actually work? (Skillsbench data)
- 5:39 Model-triggered vs. user-invoked skills
- 6:39 Best practices for writing skill descriptions
- 8:30 Structuring complex, multi-layered skills
- 9:04 Defining goals and constraints (avoiding rigid steps)
- 9:56 Don't skip negative cases
- 10:36 Testing strategy: Evals and regressions
- 11:05 Removing 'no-ops' for cost efficiency
- 11:47 Knowing when to retire a skill
- 12:22 Practical example: Gemini interactions API
- 13:36 Building a lightweight eval harness
- 14:35 Using regex and LLMs as judges
- 17:14 Top 10 best practices summary
- 20:20 Homework: How to start testing your skills