AI

Space MCP tools in the AI scope (ai). Reach these with a wks_live_ key over space-mcp or space-api.

Tools in the ai scope, callable over space-mcp (tools/call) or space-api (REST) with a wks_live_* key that grants ai.

check_generation

Scope: ai:run

Check an async generation job by job_id. Returns status and asset URLs when completed.

ParameterTypeRequiredDescription
job_idstringyes

close_browser

Scope: ai:run

Close a browser: release its hold, stop it, and put a shared browser's machine to sleep now (nothing billed while closed; tabs and sign-ins are kept). Use it when asked to turn something off, when a task that kept a browser open is finished, or when an alarm you set says so. Default = your own browser; a shared one by id, key or name.

ParameterTypeRequiredDescription
browserstringThe browser's id, key or name. Omit for your own.

evaluate

Scope: ai:run

Judge a piece of text with typed questions and get probabilities back — cheaper and steadier than asking a chat model and reading its words. Use for routing (which team?), grading (score 1-5), checks (did the reply answer? is it polite?). Several questions per call. Billed to the space wallet (fractions of a cent).

ParameterTypeRequiredDescription
state—yesThe text (or a JSON object) to judge
questionsobjectyes{ name: { type: 'boolean', instructions } | { type: 'choice', instructions, criteria: { option: null | 'when to pick it' } } | { type: 'score', instructions, criteria: ['worst', …, 'best'] } }
modelstringOptional evaluation model; default typesafe-ai/jev

generate_image

Scope: ai:run

Generate an image from a text prompt (billed to the space wallet). Returns hosted image URLs. Omit model to use the space's default image model. Pass image_urls to keep a SUBJECT consistent — reference images make this an identity-locked edit (same face/product across shots) instead of a fresh invention each time; pair them with an image-EDIT model from list_ai_models.

ParameterTypeRequiredDescription
promptstringyesWhat to draw
modelstringOptional image model id from list_ai_models. Use an image-edit model when passing image_urls.
image_urlsstring[]Reference image URLs that define the subject's identity (e.g. a character's identity image + close-ups). Preserves the same face/product across generations.
image_urlstringSingle reference image — shorthand for a one-entry image_urls.
aspect_ratiostringe.g. '9:16', '16:9', '1:1', '4:5'. Translated to each provider's own size parameter.

generate_media

Scope: ai:run

Generate video, music, SFX or other media with any gateway model (billed to the space wallet). Long renders return a job_id — poll check_generation.

ParameterTypeRequiredDescription
modelstringyesModel id from list_ai_models (e.g. a video or audio model)
promptstringConvenience: becomes input.prompt
inputobjectProvider parameters for the model

generate_speech

Scope: ai:run

Turn text into spoken audio (TTS, billed to the space wallet). Returns a hosted audio URL.

ParameterTypeRequiredDescription
textstringyesText to voice
modelstringOptional TTS model id from list_ai_models
paramsobjectOptional provider params (voice, etc.)

get_my_model

Scope: ai:run

Read YOUR OWN current brain model and the list of models your owner allows you to switch to (with pricing and context windows). Only works for an agent's own key.

list_ai_models

Scope: ai:run

List AI models this space's gateway allows (chat, image, video, audio/music, voice). Use before generate_* to pick a model.

ParameterTypeRequiredDescription
categorystringFilter: llm | image | video | audio | tts | embedding

list_browsers

Scope: ai:run

Your browsers — the one you were born with (access: own, on your machine) and every SHARED browser the owner gave you access to (access: shared: a browser on a machine of its own; other agents, and the owner, may be working in it too — you get your own tab there, and what anyone signed in to is there for you). Each browser is an identity toward the web: its own address (place), its own cookies and logins, and a card: about — the owner's description of the browser, what it is and what it is for — and accounts signed in (platform, handle, account name, email/username, how it signs in, where the 2-step code goes — never a password). READ THE CARD BEFORE USING A BROWSER — it says which account you are acting as. How to behave in it comes from your own instructions, not the card. Use the default unless a task names another. Driving one happens through the chrome browser_* tools (browser_use <key> switches); this tool only lists.

open_browser

Scope: ai:run

Open a browser and KEEP IT OPEN — awake and billed — until someone closes it. You do not need this to browse: your browser is there whenever a browser_* tool asks, and closes on its own a few minutes after you finish. Use open_browser only when you were asked to LEAVE something running with nobody driving it (a video, a stream, a page kept up) — then set an alarm with schedule_task to close it when asked, and close_browser when the time comes. The owner, another agent, or the owner's assistant may close it too; who opened it does not matter. A browser nobody touches for hours closes itself. Default = your own browser; a shared one by id, key or name (list_browsers).

ParameterTypeRequiredDescription
browserstringThe browser's id, key or name. Omit for your own.

request_model

Scope: ai:run

Ask for an AI model this space doesn't have on — a video, image, voice or text model the person told you to use (e.g. Seedance for video). A card appears in this chat showing the model, what it's for and what it costs; the space's owner or an admin turns it on with one tap and you get a message when it's done. The model's other versions (Fast, Image-to-Video…) come on the same card unless include_family is false. If the space already allows every model, or already has it, the answer says so and no card is shown. Use this instead of describing any settings page.

ParameterTypeRequiredDescription
modelstringyesThe model — key, name or vendor/key, e.g. seedance-2.0, "Seedance 2.0", bytedance/seedance-2.0.
purposestringyesOne sentence on the card: what you'll make with it.
include_familybooleanAlso offer the model's other versions on the same card. Default true.

set_my_model

Scope: ai:run

Switch YOUR OWN brain model. Pick the best tool for the job — e.g. a stronger model for hard reasoning, a cheaper/faster one for routine work — from the allowed list in get_my_model. Takes effect on your very next model call (no restart). Tell the user when you switch and why.

ParameterTypeRequiredDescription
modelstringyesvendor/model_key from get_my_model, e.g. anthropic/claude-sonnet-4.6
reasonstringOne line on why you're switching — shown to your owner in the Brain panel.

transcribe_audio

Scope: ai:run

Turn a recording into text (speech-to-text, billed to the space wallet — about a tenth of a cent a minute). Pass audio_url: a link to the file (an asset's url works). Returns the text, and the language when detected.

ParameterTypeRequiredDescription
audio_urlstringyesPublic https link to the recording (mp3, wav, m4a, ogg, webm…), 25 MB at most
modelstringOptional transcription model from list_ai_models; default google/gemini-3.5-transcribe
languagestringOptional language hint (e.g. 'fr')

update_browser_card

Scope: ai:run

Keep a browser's card current — your own, or a shared one you have access to. Use it when you learn what is inside: after signing in (add the account: platform, handle, account name, email/username, sign_in method, where the 2-step code goes) or when an account is signed out. accounts REPLACES the whole list, so send every account still inside. Never put a password or a code on the card. about is the owner's description of the browser — what it is and what it is for; change it only when the owner asks you to.

ParameterTypeRequiredDescription
browserstringyesThe browser's id, key or name (from list_browsers).
accountsobject[]The full list of accounts signed in, replacing the old one.
aboutstringThe owner's description of the browser, whole (replaces). Only when the owner asks.

On this page