Skip to main content
A skill is a playbook your agent opens only when the moment calls for it. Its one-line trigger sits in the prompt every turn; the full instructions load when the agent invokes the skill mid-meeting, and are dropped when the flow completes. You define a skill once on your account and attach it to any number of scenarios — the same shape as tools and guardrails.
Skills currently run on the Gemini Live pipeline only. A skill attached to a scenario that runs on the cascaded pipeline is fetched but never registered — the agent will not see its trigger and cannot invoke it. Check your scenario’s model configuration before relying on one.
For the conceptual walkthrough — how invoke/revoke works, and the built-in Create Scenario skill — see Meeting Skills. This page is the API surface.

Why a skill instead of a longer prompt

Without skills, every capability lives in the prompt all the time, which causes two specific failures:
  • Over-eager behaviour. The agent acts on a capability the participant only mentioned. A skill has to be deliberately invoked, so a passing remark cannot trigger it.
  • Prompt dilution. Instructions for a rarely-used flow compete with the persona’s core behaviour on every single turn. A skill costs one line until it is needed.
Reach for a skill when the behaviour is a multi-step flow with a clear start and end. If it is a single rule that always applies, use a guardrail. If it is one function call, use a tool.

The Skill object

Single-object endpoints return the object directly. List endpoints wrap their rows in data, which is where cursor pagination merges has_more and next_cursor.

Gating tools behind a skill

gated_tool_names is what makes a skill more than a prompt trick. Names listed there refer to tools on your account, and those tools refuse to execute until the skill is invoked.
Now schedule_demo cannot fire because the participant said the word “demo” in passing — the agent has to commit to the flow first. This is the fix for over-eager tool calls, and it is enforced at execution time, not by asking the model nicely. A name that matches no tool on your account simply gates nothing; it is not an error. An empty array means the skill is purely behavioural.

Attaching to a scenario

A skill does nothing until it is attached. Attach is idempotent, and re-attaching a disabled pair re-activates it.
Changes apply from the scenario’s next meeting. A call already in progress keeps the skill set it started with.

Writing a good trigger

The trigger is the only part the agent sees every turn, and it is what decides whether the skill fires at the right moment.
  • Name the observable request, not an inferred mood. “Seems interested” is a guess; “asks to see the product” is something the participant actually said.
  • Keep it under a line or two. It is charged on every turn of every meeting.
  • Prefix with the skill name. It reads naturally in the trigger list the agent receives and makes your logs easier to follow.
Instructions are the opposite: they are only loaded on demand, so be explicit. Number the steps, say what to confirm before acting, and say what “done” means so the agent knows when to revoke.

Lifecycle

If the skill lookup fails at meeting start, the meeting proceeds without skills rather than failing to connect. Attaching a skill can never stop a call from starting — but it also means a misconfigured fetch degrades silently, so verify a new skill on a test meeting before relying on it.

Endpoints

Errors