Runtime versions
Every agent function runs on a dated runtime version: the set of features its code can use, such as which modules it can import. A function's version never changes on its own. You move it to a newer version when you want what that version adds, and you can move it back.
Which version a function is on
Open the function. The status bar at the bottom of the editor shows Runtime and the version, for example Runtime 2026.10.19. When a newer version exists, it also shows Upgrade available. Click it to open the version panel.
- A new function starts on the newest version, with that version's starter code.
- A function created before versions existed is on 2026.08.29, and keeps working exactly as before.
What each feature needs
Pages in this section say Available from runtime 2026.10.19 (or another version) next to any feature that needs a version newer than the first one. Everything else works on every version.
| Feature | Available from |
|---|---|
Tables, APIs, global variables, crypto helpers, console logs, Buffer, URL, Intl | 2026.08.29 |
| Send messages while the function runs: text, buttons, cards, images, videos and files | 2026.10.19 |
| Work with voice calls | 2026.10.19 |
| Halt the agent's turn | 2026.10.19 |
Upgrade a function
- Save or discard your changes. The version can't change while the editor has unsaved changes.
- In the status bar, click Upgrade available (or the runtime version).
- The panel shows:
- What's new: what the version adds or changes.
- Why upgrade: what you can do with it.
- What you need to change: the changes your code needs. When the panel can make a change itself, it says We'll make this change for you when you upgrade.
- Your code on 2026.10.19: your code checked against that version. Fix any problems it lists first.
- Click Upgrade to 2026.10.19. The function now runs on that version, everywhere it's used.
Moving to 2026.10.19
The one required change is the shape of the default export. On 2026.10.19 it's an async generator, written with a *:
// 2026.08.29
export default async function (inputs, context) {
return { ok: true };
}
// 2026.10.19
export default async function* (inputs, context) {
return { ok: true };
}
The panel adds the * for you. A function that doesn't use any of the new features behaves exactly as it did, so upgrading is safe even before you use them.
If the * is missing on 2026.10.19, the function doesn't run. It stops with: on runtime 2026-10-19 the default export must be an async generator: export default async function* (inputs, context) { ... } — a function that never yields works as before.
Move back to an older version
Open the version panel and pick the older version under Move to. The panel lists What moving back gives up and checks your code against that version. If your code imports a module the older version doesn't have, such as @yellow/bot/responses, remove it first. Then click Move to and the version.
Versions
| Version | What it adds |
|---|---|
| 2026.10.19 (newest) | Talk to the user while your function works, with text, buttons, cards, images, videos and files; end or transfer calls; and halt the agent's turn. The default export becomes async function*. |
| 2026.08.29 | The first runtime for agent functions. |