Install
openclaw skills install byted-ai-mobileuse-agentExecutes mobile automation tasks on Volcengine Cloud Phone using natural language commands, returning run IDs and progress in JSONL format.
openclaw skills install byted-ai-mobileuse-agentMobile Use is an end-to-end mobile automation AI agent solution. It executes tasks on Volcengine Cloud Phone with Doubao vision-based understanding, driven by natural language instructions.
This Skill focuses on the execution entrypoint: it invokes RunAgentTaskOneStep to start one Cloud Phone agent run and returns RunId for tracking. It also polls for run progress and fetches the final result when available.
volcenginesdkcore)Install (use the repository shared dependency):
pip install -r "skills/byted-ai-mobileuse-agent/references/requirements.txt"
Other inputs are provided via CLI arguments.
Authentication:
ARK_SKILL_API_BASE and ARK_SKILL_API_KEY are present in the runtime environment; in this case, no Volcengine AK/SK is needed.VOLCENGINE_ACCESS_KEY and VOLCENGINE_SECRET_KEY as an alternative credential pair.Required:
--product-id: Cloud Phone product ID--pod-id: Cloud Phone instance (pod) ID--prompt: Natural language instruction--thread-id: Thread ID (pass arkclaw session_id to correlate runs within the same session)Optional:
--max-step: Max agent steps (1~500)--timeout: Timeout in seconds (1~86400)--is-screen-record: Enable screen recording (default: off)--tos-bucket: TOS bucket for screen recording storage (default: not set)--tos-endpoint: TOS endpoint for screen recording storage (default: not set)--tos-region: TOS region for screen recording storage (default: not set)The execution script outputs a JSONL stream (one JSON object per line) so the main agent can consume progress in real time:
type=started: Run created (contains run_id/thread_id)type=progress: Latest progress snapshot from polling (contains status and raw payload)type=result: Final summary after terminal status or timeout (contains agent_result_raw when available)type=error: Fatal errorExample type=result line:
{
"type": "result",
"ok": true,
"run_id": "756729984938989****",
"run_name": "test-run",
"thread_id": "thread-123",
"raw_response": {},
"current_step_status": 3,
"current_step_raw": {},
"agent_result_raw": {}
}
export VOLC_ACCESSKEY="<VOLC_ACCESSKEY>"
export VOLC_SECRETKEY="<VOLC_SECRETKEY>"
python "skills/byted-ai-mobileuse-agent/scripts/run_agent_task_one_step.py" \
--product-id "<PRODUCT_ID>" \
--pod-id "<POD_ID>" \
--prompt "Open Xiaohongshu and go to the Search page" \
--thread-id "<SESSION_ID>" \
--max-step 300 \
--timeout 1800
When ListAgentRunCurrentStep returns a terminal Status (3/5/6/7: completed/cancelled/failed/interrupted), you can fetch the final result:
python "skills/byted-ai-mobileuse-agent/scripts/list_agent_run_current_step.py" \
--run-id "<RunId>" \
--thread-id "<SESSION_ID>" \
--wait 10 \
--interval 2 \
--pretty
python "skills/byted-ai-mobileuse-agent/scripts/get_agent_result.py" \
--run-id "<RunId>" \
--thread-id "<SESSION_ID>" \
--pretty
When the user explicitly asks to stop, check the current status first. If the run is not in a terminal status (Status not in 3/5/6/7), call the cancellation API:
python "skills/byted-ai-mobileuse-agent/scripts/cancel_task.py" \
--run-id "<RunId>" \
--thread-id "<SESSION_ID>" \
--wait 20 \
--interval 2 \
--pretty
When users ask console-related questions (authorization, enabling service, creating business, purchasing resources, uploading operation guides, configuring skills, publishing apps), refer to:
references/MUA_Agent_Instructions.mdYou can also use the helper script to return the relevant procedure by keyword:
python "skills/byted-ai-mobileuse-agent/scripts/console_help.py" \
--question "How do I grant first-time authorization?" \
--pretty
This guide provides deterministic instructions for preparing prerequisites before executing tasks with Mobile Use Agent Skills. Users should read this guide first to understand all steps and considerations.
The MUA console provides the following core capabilities. Complete these actions:
Before any operation, follow these global constraints:
ServiceRoleForIPaaS role.PaasServiceRole role.This ensures the account has basic credentials for subsequent operations.
This ensures the account has all required permissions.
ServiceRoleForIPaaS role:
PaasServiceRole role:
ServiceRoleForIPaaS and PaasServiceRole.product_id) for later operations.pod_id) for later operations.tos://bucket-name/folder/).The source document includes example files for demonstration only (not production-ready):
file_get_time_utc8.py: Example Python implementation.file_SKILL.md: Example skill description.IsScreenRecord=true): configure object storage in the Cloud Phone console, otherwise the recording request may fail.IsScreenRecord=true, you can optionally pass TosBucket/TosEndpoint/TosRegion to override the object storage target; when omitted, the service may use the business-level default object storage configuration.references/mobile_use.md.