Mobile 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):
bash
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:
json
{
"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": {}
}
bash
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:
bash
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
bash
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:
bash
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:
bash
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:
Authorization constraints:
ServiceRoleForIPaaS role.PaasServiceRole role.Resource readiness constraints:
Tool configuration constraints:
Environment constraints:
This ensures the account has basic credentials for subsequent operations.
Input: Volcengine account.
Steps:
Expected output: AccessKey ID and SecretAccessKey created successfully.
This ensures the account has all required permissions.
Prerequisite: Logged in to Volcengine account.
Input: Volcengine account.
Decision branches & steps:
Check ServiceRoleForIPaaS role:
Check PaasServiceRole role:
Expected output/state: Account has both ServiceRoleForIPaaS and PaasServiceRole.
Prerequisite: Flow 2 completed.
Input: Volcengine account.
Steps:
Expected output: “Create Business” button appears.
Prerequisite: MUA service enabled.
Input: Business name (custom).
Steps:
Expected output/state:
product_id) for later operations.Prerequisite: Business created.
Input: Target business.
Steps:
Expected output/state:
pod_id) for later operations.Failure handling:
Prerequisite: Business created.
Entry: Business Management -> Tool Configuration -> App Operation Guide
Input: Markdown guide file (see template: App Operation Guide Template).
Decision branches & steps:
Scenario A: Create new guide
Scenario B: Upgrade guide
Prerequisite:
Entry: Business Management -> Tool Configuration -> Skill Configuration
Input: Object storage folder path containing the skill files (e.g., tos://bucket-name/folder/).
Steps:
Expected output/state: Skill configuration saved successfully.
Prerequisite:
Entry: Cloud Phone Business -> Enter Business -> App Management -> Add App
Input: App package file (e.g., .apk).
Steps:
Expected output/state: “App published successfully” is shown.
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.Console entry:
Authorization:
Resources & templates:
Screen recording:
Before calling Mobile Use Agent OpenAPI, you must complete cross-service access authorization.
Screen recording prerequisites (required when IsScreenRecord=true): configure object storage in the Cloud Phone console, otherwise the recording request may fail.
Screen recording console setup (see StartRecording):
If 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.
API QPS limits: overall 50 QPS, per-user 10 QPS. Requests above the limit may be throttled.
Reference: references/mobile_use.md.