Use one workspace path model
All workspace paths are relative to the selected Agent workspace.- Read text with
POST /workspace/read. - Browse with
/workspace/list,/workspace/find, and/workspace/search. - Write or edit text with
/workspace/writeand/workspace/edit. - Preview or download a file with
GET /workspace/previewor/workspace/download. - Upload with multipart
POST /workspace/upload. - Delete one file or empty directory with
DELETE /workspace/delete?path=....
workspace/write always accepts complete text. To write a JSON file, pass the serialized document
as the request body’s content string; do not pass the document as a nested object. Zero-byte files
are supported through multipart upload.
Canvas source is also workspace content. Address its app directory directly even though it does
not appear in a root listing, and use the Canvas publish action rather than editing generated
public files. See Computer Agent Canvas.
Understand the helper contract
GET /helpers lists exact callable functions for the selected Computer Agent. Each entry includes:
- registered name
- argument schema
- whether Browser access is required
- owning skill slug
- declared managed-credential IDs
POST /helpers/execute and {name, arguments}. Never send credential values as arguments. Check both the transport response and the helper’s returned status and business result.
Author a reusable helper
Reusable source belongs with its owning skill underskills/{skillSlug}/helpers/.
- Use
@browser_function(...)when the operation requires the Agent’s Browser session. - Use
@computer_function(...)when the operation can run without opening or consulting the Browser. - Declare required credential IDs in source and resolve them at execution time.
- Keep the helper contract narrow, independently invocable, and based on durable inputs rather than hidden prior state.
POST /helpers/refresh before listing or executing the helper.
Example: call an API without opening the Browser
Create an owning skill such asskills/customer-records/SKILL.md, then write this helper to
skills/customer-records/helpers/lookup_customer.py:
computer_function and managed_secret from the stable vida_helper_runtime; never place a token
in source, workspace data, helper arguments, or a returned result.
Complete this workflow for the selected Computer Agent:
- Write the owning
SKILL.mdand helper source withPOST /workspace/write. - Save
example_api_tokenwithPOST /secretsusing{secretId, value}. - Call
POST /helpers/refresh. Requireok: true, no validation errors, and the expected helper contract infunctions. - Confirm the same contract through
GET /helpers. - Run a safe lookup through
POST /helpers/executewith{name: "lookup_customer", arguments: {customer_id: "..."}}. - Check the helper’s structured status and business result. For a write operation, also read the destination system before retrying after a timeout or uncertain response.
- Discover the Agent’s available functions, stage the exact
computeraction and argument mapping, run a conversational test, then publish only after it succeeds.
Record and generate a Browser workflow
For an agent-controlled workflow:- Create
POST /browser/automation-sessionsand retain itscdpUrl, headers, slot, and expiration. - Read
{cdpUrl}/json/versionwith the returned header and connect browser tooling to itswebSocketDebuggerUrl. For local automation, Browser Harness is the recommended client: provide that ticket-bearing WebSocket URL asBU_CDP_WS. Do not provide the protected discovery URL asBU_CDP_URLwhen the client cannot attach the required discovery header. - Confirm no recording or generation is active.
- Start recording with the automation session’s exact slot.
- Perform the representative workflow through the CDP connection.
- Stop recording and retain
domainKey,recordingId, andevidenceRoot. Requirefinalized: trueandanalysisStatus: completedbefore generation. - Start generation, optionally supplying a neutral
skillName. - Retain the returned
generationIdand immutablerecordingIdsevidence snapshot. New recordings require a new generation; they are not appended to work already in progress. - Poll
phase,updatedAt, andlastActivityAtuntil terminal and use the returned conversation reference to inspect work and tool calls. - Re-list helpers and test every required operation.
POST /browser/ticket instead when a person needs temporary interactive access, such as signing in. Open the returned launchRef.href; do not construct a different link.
Expose a helper to a conversational Agent
A Computer Agent uses helpers on its own Computer automatically. SetcomputerDelegateAccountId
only when the helper belongs to a different Agent’s Computer. Discover the function catalog and
configure the exact computer action. Its instructions must map conversation values to the helper’s
exact argument names.
The computer function can call an exact helper or perform broader work. The browser function is
for ad hoc work in the live Browser, not registered helpers. Test staging with safe data before
publishing.
Accept a reusable helper
Verify three separate boundaries before relying on a helper:- Registry:
/helpersexposes its exact inputs, result metadata, owner, Browser requirement, and required credential IDs. - Execution: a safe representative
/helpers/executecall works and its normalized runtime fields match the registered result metadata. Verify the destination effect when one is expected. - Conversation: Agent function discovery exposes Computer, and a staged conversational test can select and use the helper in the intended environment.
For executable request templates and error-handling rules, use the Vida API Skill.