System tools

  • Updated

This page lists the built-in system tools provided and maintained by Optimizely. You and Opal can call these tools if they are enabled. Review the tools so you can see what actions are available for you and your workflows.

Click a tool's name to expand it and learn when to use it, its required and optional parameters, and example prompts for calling the tool. If you do not provide a required parameter, Opal prompts you for it.

System tools by functionality

Click a tool's name to expand it and learn more about when to use the tool, required and optional parameters, and example prompts on how to call the tool. If you do not provide a required parameter, Opal prompts you for it.

Audio and video

audio_video_processing – Process audio and video files for transcription, subtitle generation, summarization, and content analysis.
  • When to use
    • Extract speech as plain text transcription from uploaded audio or video files.
    • Generate .srt subtitle files with accurate timestamps from media.
    • Summarize the main points of an audio recording or video.
    • Answer specific questions about the content of a media file.
  • Parameters
    • action – What to do with the media file. Options include the following: 
      • transcribe' – Extract speech as plain text transcription.
      • srt – Extract speech with timestamps in SRT subtitle format.
      • summarize – Provide a summary of the content.
      • analyze – Answer a specific question about the media content.
    • file_id – The file ID as a plain GUID or UUID string. For example, 1c60cd99-430b-489e-9d94-6de725bff0d8. Do not pass a full file object, URL, or GCS path. Only pass the unique identifier.
    • (Optional) language – Target language for transcription or subtitles. For example, English, Spanish, or French. If not specified, auto-detects the spoken language.
    • (Optional) query – Additional instructions or question about the media. Required when action is analyze, optional for other actions to refine output.
  • Example prompts
    • Please transcribe this audio file, for example, using the action transcribe and the file ID.
    • Can you summarize the video I just uploaded, for example, to get a quick overview of the meeting?
    • Analyze the recording to answer my question, for example, "What were the next steps mentioned?"

Browse the web

browse_web – Opens and extracts content from multiple webpages concurrently and returns the content in Markdown or HTML format.
  • When to use
    • When you need to gather information from one or more specific URLs.
    • When you want to summarize the content of a webpage.
    • When you need to extract raw HTML content from a URL.
    • When you are provided with a list of URLs and need to process them.
  • Parameters
    • urls – A list of URL items. Each item is an object that must contain a url and can optionally contain information_needed to specify what information to extract from that particular URL, and output_format (either 'markdown' or 'raw') to specify the desired output format for that URL.
    • default_information_needed – A string representing the default query to use if information_needed is not specified for a particular URL. This parameter is required when the default_output_format is 'markdown'.
    • default_output_format – A string specifying the default output format ('markdown' or 'raw') if not specified per URL. 'raw' formats return content without LLM processing.
  • Example prompts
    • Please summarize the main points of the article at https://www.optimizely.com/insights/blog/ and also get the raw content from https://www.example.com.
    • Can you tell me what is on this page: https://www.optimizely.com/products/experiment/web/.
    • Browse these two links for me: https://www.example.org and https://www.another-example.net.
browse_web_html – Browses a single webpage, extracts information, and returns content in raw HTML format.
  • When to use
    • When you need the complete, unprocessed HTML source code of a specific webpage.
    • When you want to analyze the structure or elements of a page directly.
    • When you are not looking for a summary but the full content as rendered by a browser.
  • Parameters
    • url – The URL of the webpage to browse and return raw content from.
  • Example prompts
    • Get the raw HTML from https://www.optimizely.com.
    • I need the full content of this page: https://www.example.com/product-details.
    • Can you fetch the HTML source of https://support.optimizely.com/hc/en-us/articles/36354416686477-Optimizely-Opal-overview.
take_webpage_screenshot – Captures a screenshot of a webpage by given URL.
  • When to use
    • When you need a visual representation or preview of a webpage.
    • When you want to see how a specific URL (including images or PDFs) appears in a browser.
    • To get a visual overview of content without needing to browse it yourself.
  • Parameters
    • url – The URL of the webpage to take a screenshot of.
  • Example prompts
    • Take a screenshot of https://www.optimizely.com.
    • Can you show me what https://www.example.com looks like?
    • Get a preview of the page at https://www.optimizely.com/blog/latest-posts/.

Code execution

code_execute – Execute code in a sandboxed environment supporting Python, Bash, and Node.js.
  • When to use
    • Analyze data, run calculations, or generate charts using Python.
    • Process uploaded files such as CSV, Excel, images, or PDFs.
    • Run dev tools, shell commands, or automate workflows using Bash.
    • Generate PowerPoint or Word documents using Node.js or Python.
  • Parameters
    • code – Source code to execute. Read uploaded files from /workspace/input/. Write outputs to /workspace/output/.
    • (Optional) language – Programming language. Option include the following:
      • python for data science, document processing, and visualization. 
      • bash for shell commands, git operations, build automation, and dev tooling. 
      • node for JavaScript execution, PowerPoint and Word document generation.
  • Example prompts
    • Please execute a Python script to analyze the uploaded sales data, for example, creating a revenue chart.
    • Run a bash command to unzip the provided archive, for example, unzip /workspace/input/assets.zip -d /workspace/output/.
    • Use Node.js to generate a PowerPoint presentation, for example, reading the markdown file and outputting a slide deck.

Date

get_today – Returns the current UTC date and time in a human-readable Markdown format.
  • When to use
    • When you need to know the current date and time in UTC.
    • When a task or request requires a timestamp or a reference to the current day.
  • Parameters
    • This tool has no parameters.
  • Example prompts
    • What is today's date?
    • Can you tell me the current UTC time?
    • What is the date and time right now?

Email notifications

send_email – Composes and sends emails as a notification tool. Supports setting email triggers by specifying various parameters. See Email domain configuration.
  • Use for notifications – Send status updates and alerts only. Do not send email marketing campaigns. Use a dedicated email marketing platform instead.
  • Limit to internal recipients – Send emails to your employees or approved team mailboxes only. Do not send emails to customers or external audiences.
  • When to use
    • When you need to send an email to one or more recipients.
    • When the email needs to include a subject and a body.
    • When you want to include attachments from the Opal backend.
    • When you need to CC or BCC other recipients.
  • Parameters
    • recipient_emails – A comma-separated list of primary recipient email addresses.
    • subject – The email subject line.
    • body – The email body content (HTML or plain text, auto-detected).
    • (Optional) from_email – The sender email address. This can be left blank, and Opal uses a default sender.
    • cc_emails – A comma-separated list of CC recipient email addresses.
    • bcc_emails – A comma-separated list of BCC recipient email addresses.
    • attachments – A comma-separated list of Opal file IDs or file links for attachment.
  • Example prompts
    • Send an email to john.doe@example.com with the subject "Project Update" and the body "The project is on track."
    • Please email the marketing team at marketing@optimizely.com about the new campaign, and CC my manager at manager@optimizely.com.
    • I need to send a quick note to the sales team, subject "New Product Launch", body "See attached for details", and attach file_id_123 and file_id_456.

File operations

convert_to_pdf – Converts a file or webpage to PDF.
  • When to use
    • When you need to convert a document (identified by a file ID or URL) into a PDF.
    • When you want to save a webpage as a PDF.
  • Parameters
    • source – The file ID, file URL, or webpage URL to convert to PDF (string). This accepts UUID format file IDs, Opal Backend file links, or any webpage URL.
  • Example prompts
    • Convert the file with ID 'file_12345' to PDF.
    • Can you convert the webpage at https://www.optimizely.com/products/web-experimentation/ to a PDF?
    • I need a PDF version of this document: https://example.com/report.docx.
edit_file – Replace an exact string in an existing text file.
  • When to use
    • Modify specific configuration values, settings, or variables inside an existing text file.
    • Replace deprecated code blocks, functions, or imports with updated versions inside a source file.
    • Correct typos, outdated information, or formatting in a text or Markdown document.
  • Parameters
    • old_string – Exact string to replace (whitespace and indentation matter).
    • path – File to edit. Relative paths resolve against your CWD; absolute paths under /workspace/ or /context/ escape the CWD. /workspace/input/ is read-only.
    • new_string – Replacement string.
    • (Optional) commit_message – Optional commit message recorded in Space history.
    • (Optional) replace_all – If true, replace every occurrence. If false, old_string must match exactly once.
  • Example prompts
    • In config.env, replace the DATABASE_URL line with the new database connection string.
    • Replace the old function signature in src/index.js with the updated parameters.
    • Find the typo "recieved" in welcome.md and change it to "received".
get_file_metadata – Retrieves metadata for a file, such as dimensions or alt text.
  • When to use
    • When you have a file ID (from a previous upload or generation) and need to access its associated metadata.
    • When you want to confirm details about a file, such as its name, type, or size.
  • Parameters
    • file_id – The file ID from a previous upload in Opal.
  • Example prompts
    • What is the metadata for file ID 'file_abc123'?
    • Can you give me the details of the file with ID '40026099-7bf5-4e36-b5b5-86ffdf4f1de0'?
    • Retrieve information about the uploaded document, its ID is 'doc_xyz789'
list_files – Lists files in the workspace.
  • When to use
    • Locate a specific configuration file in the project.
    • Verify the workspace directory structure before running a script.
    • Retrieve a list of assets in a folder.
  • Parameters
    • (Optional) path – The relative path of the directory to list files from.
    • (Optional) recursive – Specifies whether to list files recursively in all subdirectories.
  • Example prompts
    • List files in the /src directory.
    • Show me all files recursively in the /assets folder.
    • List files in the current directory.
read_file – Reads the contents of a file.
  • When to use
    • Read text or binary files in the workspace or context directories.
    • View specific sections of text files using line number ranges.
    • Read binary or Office files (Word, Excel, PowerPoint) which are automatically converted to PDF or base64.
  • Parameters
    • path – File to read. Relative paths resolve against your current working directory (CWD); absolute paths starting with /workspace/ or /context/ address the tree directly. For example: brand_guide.pdf (relative to CWD) or /workspace/input/instructions/guid/brand_guide.pdf (absolute).
    • (Optional) from_line – 1-based inclusive start line. Text files only — ignored for binary and office files. Omit to start from line 1.
    • (Optional) to_line – 1-based inclusive end line. Text files only. Omit to read through EOF (subject to the ~40 KB per-response byte cap).
    • (Optional) chunk_index – Zero-based chunk index for binary/office files. Ignored when from_line/to_line are set on a text file.
  • Example prompts
    • Read the file brand_guide.pdf from line 1 to 50.
    • Show me the contents of /workspace/output/report.csv from line 100.
    • Read chunk 0 of the binary file image.png.
read_file_content – Reads a file from the Opal backend with configurable encoding.
  • When to use
    • When you need to access the textual or binary content of a file that has been previously uploaded to or generated within the Opal Backend.
    • When you know the file_id of a file and want to retrieve its content for further processing or display.
  • Parameters
    • file_id – The file ID from the Opal Backend.
    • encoding – The file encoding to use, or 'binary' for binary files.
  • Example prompts
    • Read the content of file 'file_12345'.
    • Can you show me what is inside the document with ID 'doc_xyz789'?
    • Retrieve the binary content of the image file 'image_id_001'.
retrieve_file_from_gcs_uri – Read file content directly from a Google Cloud Storage (GCS) URI.
  • When to use
    • When you need to access the content of a file that is stored in GCS.
  • Parameters
    • gcs_uri – The GCS URI of the file.
    • (Optional) mime_type – The expected MIME type of the file. Should only be provided if you are certain of the MIME type.
  • Example prompts
    • Retrieve the content of the file located at gs://my-bucket/documents/report.pdf.
    • Can you get the data from this GCS URI: gs://data-lake/analytics/sales_data.csv?
    • Fetch the image from gs://product-images/new_product.png.
search_files – Searches for files in the workspace by filename or content.
  • When to use
    • Locate files in the workspace by specific terms or regex patterns.
    • Scan files using targeted inclusions or exclusions (such as bypassing node_modules).
    • Perform high-speed literal or concept-based searches over files.
  • Parameters
    • query – Search query — meaning depends on mode.
    • (Optional) mode – Search mode: 'bm25' (default, concept-style with stemming/stopwords), 'literal' (exact substring per line), or 'regex' (Python re-style pattern per line, ReDoS-resistant with a per-file timeout).
    • (Optional) case_sensitive – Case-sensitive matching for literal/regex modes.
    • (Optional) include – VS Code-style glob patterns to include. Absolute (start with '/') match the full virtual path; relative match the workspace-relative path. For example: ['**/*.py'], ['src/**/*.test.ts'], ['/workspace/output/**'].
    • (Optional) exclude – VS Code-style glob patterns to exclude. Same syntax as include. For example: ['**/node_modules/**', '**/.git/**'].
  • Example prompts
    • Search for the term "database" inside Python files using include glob '**/*.py'.
    • Find exact matches of "import React" with case_sensitive enabled.
    • Search for "TODO" across the workspace, but exclude the 'node_modules' directory.
write_content_to_file – Saves generated content by Opal as a file in the backend. 
  • When to use
    • When you need to save any generated content (text, code, markdown) as a file.
    • To store temporary or permanent content that might be used by other tools (for example, as an attachment for an email).
  • Parameters
    • content – The content to write to the file.
    • filename – The desired filename with its extension (for example, "document.pdf" or "image.png").
    • (Optional) content_type – The MIME type of the content, auto-detected if not provided.
  • Example prompts
    • Save this markdown content as "my_report.md".
    • Write the following HTML code to a file named "index.html".
    • Create a text file called "meeting_notes.txt" with the content "Discussed Q4 strategy and next steps."
write_file – Creates a text file in the workspace or persistent context directory.
  • When to use
    • Create a new text-based file such as a Markdown document, CSV, HTML page, or script.
    • Save a report, configuration file, or code snippet to the workspace for later use.
    • Write a final deliverable to /workspace/output/ so it appears as a downloadable artifact.
    • Persist a file across conversations by writing it to /context/.
  • Parameters
    • content – UTF-8 text content for the new file.
    • path – Path to create. Relative paths resolve against your current working directory (CWD); absolute paths under /workspace/ or /context/ escape the CWD. /workspace/output/ becomes a user-visible artifact tile; /context/ persists per-user across threads; anywhere else under /workspace/ is invisible scratch. /workspace/input/ is read-only.
    • (Optional) overwrite – If true, replace the file's entire content when it already exists. If false (default), return error='file_exists' on conflict. Only use overwrite=true when you intend to replace the whole file.
    • (Optional) commit_message – Optional commit message recorded in Space history.
  • Example prompts
    • Create a Markdown file called "campaign-brief.md" with an outline for the Q3 product launch.
    • Write a Python script to /workspace/output/analysis.py that reads a CSV and calculates conversion rates.
    • Save the meeting notes as an HTML file in the output folder so I can download them.
    • Create a JSON config file at /context/settings.json with my default preferences so it persists across conversations.

Ideate and reason

evaluate_response – Evaluates LLM responses as a quality assurance tool. Takes an original prompt and the LLM's response, then uses another LLM to provide a quality score (0-100) and feedback for improvement.
  • When to use
    • When you need to verify if your generated answer meets expected format and quality standards before finalizing your response.
    • To get objective feedback on an LLM's output against a given prompt and criteria.
  • Parameters
    • original_prompt – The original prompt or question that you asked the LLM.
    • llm_response – The LLM's response that needs to be evaluated for quality and format.
    • (Optional) evaluation_criteria – Specific criteria to focus on during evaluation.
  • Example prompts
    • Evaluate my response to the user's request for a campaign brief.
    • Check if this generated code adheres to the specified formatting guidelines.
    • Assess the quality of my explanation for the browse_web tool based on the original prompt.
ideate – Generates a plan and suggests available tools for complex or ambiguous tasks. Use this tool when Optimizely Opal is overwhelmed with how to proceed or needs a plan for how to address a given problem or topic.
  • When to use
    • When you are unsure how to proceed with a complex request or problem.
    • When you want a strategic plan or a step-by-step approach to address a query.
    • When you need to break down a large problem into smaller, manageable steps.
    • When you want to explore different ways to use the available tools to achieve a goal.
  • Parameters
    • what_to_ideate – The topic or problem to ideate on. This should be a clear description of what you want to brainstorm or plan for.
    • list_of_tools – A list of tools that can be suggested during the ideation process. This helps the ideation process focus on practical applications of the available functionalities.
  • Example prompts
    • Ideate on how to create a new marketing campaign using the available tools.
    • I need a plan to analyze website performance and suggest improvements.
    • How can I use the tools to generate customer segments and then create targeted content.
reasoning_step – Articulates internal intermediate reasoning steps, plans, or observations for complex questions to help Opal continue multi-step work. This is particularly useful for complex questions that require careful consideration or decomposition before formulating a final answer.
  • When to use
    • Whenever Opal needs to think through a complex problem or user request.
    • To break down a multi-step task into a clear plan.
    • To analyze the user's query and determine the best approach using available tools.
    • To record my internal observations or decisions before generating a response.
  • Parameters
    • thought_process where Opal articulate its detailed internal reasoning, step-by-step plan, analysis of the query, or any scratchpad notes needed to arrive at the final answer.
  • Example prompts
    • I need to determine the best sequence of tool calls to fulfill this request.
    • Let me analyze your intent and identify any ambiguities.
    • My plan is to first search for relevant information, then synthesize it, and finally present it to the user.

Images

analyze_image_content – Helps Opal understand and interpret the visual content of images, whether they are screenshots you provide or images Opal has found through a search. Opal can answer your questions based on what it "sees" in the image.
  • When to use
    • Describe what is present in an image.
    • Identify objects, people, or scenes within a picture.
    • Answer specific questions about the visual information in an image.
    • Extract context or details from a screenshot or any other image.
  • Parameters
    • file_id – The ID of the image file you want me to analyze. This would typically be an ID you received from Opal after uploading an image or if Opal generated an image for you.
    • query – The question or analysis request you have about the image.
  • Example prompts
    • What is in this image?
    • Describe the main elements of this screenshot.
    • What is the person in this image doing?
    • Can you tell me about the product shown in this picture?
generate_or_edit_image – Generate new images from text descriptions or edit existing images. Supports style transfers, object manipulation, zoom, and more.
  • When to use
    • When you need to generate a new image based on a textual description.
    • When you want to edit an existing image, such as removing an object, changing the background, or adjusting lighting.
    • When you want to create multiple variations of an existing image.
    • When performing operations like style transfer, object addition, or artistic enhancement on an image
  • Parameters
    • prompt – A text description for image generation or detailed instructions for image modification.
    • image_links – A comma-separated string of image file links. This can be used for editing existing images or generating variations. The first image is considered primary, and additional images provide context.
    • number_of_images – The number of variations (integer, 1-4) to generate or edit.
    • edit_type – The type of edit operation for temperature optimization (edit mode only). Options include the following:
      • style_transfer
      • object_removal
      • object_addition
      • background_change
      • lighting_adjustment
      • color_correction
      • artistic_enhancement
      • aspect_ratio_change
    • historical_context – Previous conversation context or editing history (edit mode only).
  • Example prompts
    • Generate a picture of a futuristic city at sunset.
    • Edit this image to remove the person in the background.
    • Change the style of this photo to a watercolor painting.
    • Create three variations of this product image with different lighting.
    • Add a dog to the image at 'image_link_1'.
present_images – Displays generated or edited images to you as a rich visual card in the chat interface. Opal calls this tool after generate_or_edit_image when images are the final output.
  • When to use
    • Display the results of an image generation or editing task as the final deliverable.
    • Present a collection of image variants, for example, multiple hero image options for a campaign, in a carousel or grid.
    • Show a single generated image after applying edits such as style transfer, object manipulation, or aspect ratio changes.
    • Surface a set of branded visuals so the user can review and select a preferred option.
  • Parameters
    • image_links – Ordered list of image file links from the generate_or_edit_image tool results.
    • title – Short five to six word title for the image collection. Sentence case, no quotes.
  • Example prompts
    • Generate three hero image variants for our Spring 2026 campaign and show them to me.
    • Create a product shot on a white background and display it.
    • Edit this banner image to remove the background, then show me the result.
    • Generate a 16:9 social media graphic for our webinar and present it.
    • Show me four variations of our logo on a dark background.

Keywords

figure_out_search_keywords – Generates 8-15 related search keywords for comprehensive information about a topic, presented in a markdown table format.

Search

search_web – Searches the web for a given query using Google.
  • When to use
    • Find general information, news, or external resources related to marketing, experimentation, or digital experience.
    • Look for best practices, industry trends, or competitive analysis that extends beyond Optimizely's product features.
    • Search for images or other media files.
    • Gather information from specific websites (site search).
    • Find definitions or explanations of general concepts.
  • Parameters
    • search_query – The main query you want to search for.
    • (Optional) num_results – The number (integer) of search results you want to retrieve.
    • (Optional) country_code – A two-letter ISO country code (for example, 'us' or 'gb') to localize your search results.
    • (Optional) exact_terms – A phrase that all documents in the search results must contain.
    • (Optional) exclude_terms – A word or phrase that must not appear in the search results.
    • (Optional) file_type – If you are looking for specific file formats (for example, 'pdf' or 'docx').
    • (Optional )site_search – Specifies a particular website to include or exclude from the search results (for example, 'optimizely.com').
    • (Optional) search_type – Set to 'image' if you are looking for images.
      • (Optional) image_size – If search_type is 'image', you can specify the desired image size (for example, 'large', 'medium', or 'icon').
      • (Optional) image_type – If search_type is 'image', you can specify the desired image type (for example, 'photo', 'clipart', or 'face').
  • Example prompts
    • What are the latest trends in e-commerce personalization?
    • Find articles about A/B testing strategies.
    • Search for images of successful landing page designs.
    • What is the definition of 'customer lifetime value'?
    • Find information on optimizely.com about feature flags.
    • Search for marketing automation tools, excluding HubSpot.

User input

ask_user_question – Presents the user with one or more structured questions and selectable options to gather input before proceeding with a task.
  • When to use
    • A request is ambiguous and requires clarification before taking action.
    • Present the user with a defined set of options to choose from instead of asking open-ended questions.
    • Gather preferences, such as tone, format, or target audience, before generating content.
    • Let users select multiple applicable options, for example the channels a campaign should target.
    • Resolve ambiguity when two or more valid approaches exist and a user preference determines the correct path.
  • Parameters
    • questions – JSON array of question objects. Each object must have the following: question, type, and options. Example: [{"question": "What is your goal?", "type": "single_select", "options": ["A", "B"]}]
  • Example prompts
    • I need a blog post. Can you ask me what tone and audience I want before you start writing?
    • Before creating the campaign brief, ask me which channels and goals apply.
    • Help me choose the right experiment type for my homepage redesign.
    • Ask me which content formats I want before building the editorial calendar.
    • I’m not sure what kind of report I need. Can you ask me a few questions first?

Webpage analysis

analyze_pagespeed – Analyze a webpage's performance, SEO, or accessibility using Google PageSpeed Insights
  • When to use
    • Before launching a new webpage or website, to ensure it meets performance, SEO, and accessibility standards.
    • When a webpage is experiencing slow loading times, high bounce rates, or poor user engagement, to identify underlying technical issues.
    • To regularly check and improve the accessibility of a website, ensuring it is usable by individuals with disabilities.
    • To identify technical SEO opportunities and issues that might be impacting search engine rankings.
    • After implementing performance or SEO improvements, to verify their effectiveness and measure the impact.
  • Parameters
    • url – The URL of the webpage to analyze.
    • analysis_type – The type of audit to perform. It can be one of the following:
      • 'seo_audit' – Technical SEO analysis with performance metrics (SEO + Performance categories).
      • 'accessibility' – Accessibility audit (WCAG/ARIA compliance).
      • 'page_speed' – Page speed and performance analysis (Performance + Best Practices categories).
    • (Optional) device – The device to emulate for the analysis. It can be 'desktop' or 'mobile'.
  • Example prompts
    • Can you run a page speed analysis for https://www.optimizely.com on mobile?
    • I need an SEO audit for my new product page at https://www.example.com/products/new-product.
    • Check the accessibility of our homepage https://www.mycompany.com.
    • Give me a performance report for https://blog.optimizely.com on desktop.
    • Perform an SEO and performance audit for https://www.marketingcampaign.com/landing-landing-landing-landing.page.

Workspace

list_workspace_mounts – Lists the canvas spaces mounted into the workspace for the current conversation, along with the files each mount contains.
  • When to use
    • Check which canvas spaces Opal reaches during a code run.
    • Confirm that a mount succeeded before you request an edit.
    • Review the files a mounted space contains.
    • Find the ID of a mounted space so you detach it.
    • Check whether a space from an earlier turn is still mounted.
  • Parameters
    • This tool takes no parameters.
  • Example prompts
    • Which canvas spaces are mounted right now?
    • Show me the files available in my workspace.
    • Is my brand assets space still mounted?
mount_space_to_workspace – Makes the files in a canvas space available to a code run, so Opal reads and edits them in place. Mounting reaches images and other binary files that canvas editing cannot change.
  • When to use
    • Edit an image stored in a canvas space.
    • Process several files from one space in a single pass.
    • Work with a file type that canvas editing does not support.
    • Keep a space available across several turns of a conversation.
    • Save edited files back to the space they came from.
  • Parameters
    • space_id – The ID of the canvas space to mount.
    • (Optional) element_ids – The specific files to mount. Omit this value to mount every file in the space.
  • Example prompts
    • Mount my brand assets space so you can resize the logos.
    • Make the images in that space available for editing.
    • Mount only the header image from my campaign space.
    • Crop every screenshot in my product space.
unmount_space_from_workspace – Detaches a mounted canvas space and removes its files from the workspace. The canvas space and its files remain in Opal. Save pending changes before you unmount, because Opal discards unsaved edits.
  • When to use
    • Clear a space from the workspace when the work is complete.
    • Remove a space you mounted by mistake.
    • Replace one mounted space with another.
    • Reduce the number of mounted spaces in a long conversation.
  • Parameters
    • space_id – The ID of the mounted canvas space to detach.
  • Example prompts
    • Unmount the brand assets space.
    • Detach that space now that the edits are saved.
    • Clear the mounted spaces from my workspace.

System tools in beta

Tools labeled Preview are not available in Opal Chat by default and are in beta. Contact your Customer Success Manager to add your instance to the beta and then Opal administrators can go to the Tools tab and enable them in Opal Chat.

Screenshot of the System Tools with the preview label highlighted.

Memory

The memory tools are in beta. Contact your Customer Success Manager for more information.
recall – Searches stored memories and returns matching entries with snippets and content.
  • When to use
    • Search saved memories for a specific topic, keyword, or question.
    • Retrieve the most recently updated memories to review what was stored.
    • Find memories within a specific time window, such as the past week or month.
    • Look up previously saved facts, preferences, or decisions from past conversations.
  • Parameters
    • (Optional) query – What to search for. Keywords, topic, or natural language question. May be empty when sort_by='recency'.
    • (Optional) scope – Which memory subtree(s) to search when the caller has an active CWD. 'ancestors' (default) matches load-parity with the system prompt — searches root + all ancestor CWDs. 'cwd' restricts to the current CWD only. 'root' restricts to the root /memories/ (pre-CWD behavior). When no CWD is active, all values behave the same as 'root'.
    • (Optional) sort_by – 'relevance' (default) for keyword match; 'recency' for most recently updated first.
    • (Optional) since – Only include memories updated after this point. ISO-8601 (for example, '2026-05-01') or relative ('7d', '24h', '30m').
    • (Optional) until – Only include memories updated before this point. Same format as 'since'. Combine for a window (since='14d', until='7d' = 'last week, not this week').
  • Example prompts
    • What do you remember about my campaign strategy?
    • Search my memories for anything related to brand guidelines.
    • Show me the most recent memories from the past seven days.
    • Do you recall my preferred tone of voice for blog posts?
remember – Stores a memory for future conversations, persisting facts, preferences, or decisions across sessions.
  • When to use
    • Save an important fact, preference, or decision so Opal recalls it in future conversations.
    • Store project context such as goals, deadlines, or stakeholder details for ongoing reference.
    • Persist a correction or clarification so Opal applies it going forward.
    • Record domain-specific knowledge, internal terminology, or team structure for later retrieval.
  • Parameters
    • content – What to remember. Can be a fact, preference, decision, correction, or any context worth persisting.
  • Example prompts
    • Remember that my team's quarterly review is on the last Friday of each quarter.
    • Save this: the primary brand color is #0037FF and the secondary color is #00C2FF.
    • Remember that my manager is Alex Chen and my team is the Growth Marketing team.
    • Store the fact that all blog posts need approval from the legal team before publishing.

Video

The video tools are in beta. Contact your Customer Success Manager for more information.
generate_video – Generates videos from text descriptions and optional starting images. It supports various aspect ratios and durations, and includes automatic prompt enhancement and audio generation.
  • When to use
    • Create a new video based on a textual description.
    • Generate a video using an existing image as a starting point.
    • Produce video content for marketing, social media, or other digital experiences.
    • Experiment with different video styles, durations, or aspect ratios.
  • Parameters
    • prompt – A text description of the video you want to generate.
    • (Optional) starting_image_link – The URL or link to a starting image to be used for image-to-video generation.
    • (Optional aspect_ratio – The aspect ratio of the video. Options include '16:9' (Widescreen), '9:16' (Portrait), or '1:1' (Square). If not specified, it defaults to '16:9'.
    • (Optional) duration_seconds – The desired duration of the video in seconds. Options are 4 or 8. If not specified, it defaults to 8 seconds.
    • (Optional) generate_audio – Set to True to include audio generation in the video. If not specified, it defaults to True.
    • (Optional) generation_mode – Determines the balance between generation speed and quality. Options are 'standard' or 'fast'. If not specified, it defaults to 'standard'.
    • (Optional) number_of_videos – The number of video variations to generate. You can request 1 or 2 variations. If not specified, it defaults to 1.
    • (Optional) resolution – The resolution of the video. Options are '1080p' or '720p'. If not specified, it defaults to '1080p'.
  • Example prompts
    • Generate a video of a futuristic city at sunset.
    • Create a 16:9 video, 8 seconds long, showing a product being unboxed.
    • Generate a video from this image: https://example.com/image.jpg with a prompt about a serene forest.
    • Make a short portrait video (9:16) of a person dancing.
    • Generate two variations of a video about a new software feature.

If you use Opti ID, administrators can turn off generative AI in the Opti ID Admin Center. See Turn generative AI off across Optimizely applications.