COMPOSIO_REMOTE_WORKBENCHDestructiveExternalRuns Python in a persistent remote sandbox to process large remote files and script bulk or repeated tool executions.
When to use it
Reach for `COMPOSIO_REMOTE_WORKBENCH` when data lives in a remote file rather than inline in the chat, when you need to run a known tool in bulk (for example, label 100 emails), or when you want to call an API via `proxy_execute` because no Composio tool exists for it.
State persists across calls like a Jupyter notebook, and helper functions such as `run_composio_tool` and `invoke_llm` are preloaded. There is a hard 3-minute execution limit per cell, so split work into steps and checkpoint intermediate results to `/mnt/files/`. Do not use it for data you can already see inline.
Input parameters
code_to_executestringRequiredPython to run inside the persistent remote Jupyter sandbox. State (imports, variables, files) is preserved across executions. Keep code concise. Avoid unnecessary comments. Hard 3-minute (180s) execution limit — break large tasks into smaller cells.
thoughtstringBrief objective for this step.
current_stepstringShort enum for current step of the workflow execution. Eg FETCHING_EMAILS, GENERATING_REPLIES. Always include to keep execution aligned with the workflow.
current_step_metricstringProgress metrics for the current step - use to track how far execution has advanced. Format as a string "done/total units" - example "10/100 emails", "0/n messages", "3/10 pages".
session_idstringPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call.
Response
dataobjectData from the action execution
errorstringError if any occurred during the execution of the action
successfulbooleanWhether or not the action execution was successful or not