-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
114 lines (100 loc) · 5.53 KB
/
Copy path.env.example
File metadata and controls
114 lines (100 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# ── Simulator + Appium ────────────────────────────────────────────────────
# SIMCTL_UDID is auto-detected from the booted iPhone simulator if left blank.
# DEVICE_NAME must match the name of a sim you've booted in Xcode.
SIMCTL_UDID=
PLATFORM_VERSION=26.2
DEVICE_NAME="iPhone 17 Pro"
APPIUM_URL=http://127.0.0.1:4723
# ── LLM: pick a supported runner ─────────────────────────────────────────
# Pick a provider + model below and set the matching API key further down. CUA /
# native computer-use mode is auto-detected from the model name for the
# Anthropic, OpenAI, and Gemini frontier models. See the per-provider
# blocks lower in this file for the exact API-key env vars.
#
# Opus 4.6 — LLM_PROVIDER=anthropic LLM_MODEL=claude-opus-4-6
# Sonnet 4.6 — LLM_PROVIDER=anthropic LLM_MODEL=claude-sonnet-4-6
# GPT-5.4 — LLM_PROVIDER=openai LLM_MODEL=gpt-5.4
# GPT-5.4 Mini — LLM_PROVIDER=openai LLM_MODEL=gpt-5.4-mini
# Gemini 3 Flash — LLM_PROVIDER=gemini LLM_MODEL=gemini-3-flash-preview
# Qwen3.5 35B-A3B — LLM_PROVIDER=vllm LLM_MODEL=qwen3.5-35B-a3
LLM_PROVIDER=vllm
LLM_MODEL=qwen3.5-35B-a3
# The vLLM provider path reads VLLM_BASE_URL / VLLM_API_KEY (not LLM_BASE_URL).
VLLM_BASE_URL=http://localhost:8000/v1
VLLM_API_KEY=EMPTY
ARTIFACT_DIR=results
# ── Between-task reset ───────────────────────────────────────────────────
# Path to the app manifest (created by bootstrap). Enables automatic data
# wipe + reseed between tasks so every task starts from a clean slate.
APP_MANIFEST=iphone/bootstrap/.app_manifest.json
# Optional per-target overrides (fallback to PLATFORM_VERSION/DEVICE_NAME above)
PHONE_PLATFORM_VERSION=26.2
PHONE_DEVICE_NAME="iPhone 17 Pro"
IPAD_PLATFORM_VERSION=26.2
IPAD_DEVICE_NAME="iPad Pro 11-inch (M5)"
# Optional: pre-set UDIDs to skip auto-pick
PHONE_SIMCTL_UDID=
IPAD_SIMCTL_UDID=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
# ── LLM config (per-provider reference) ─────────────────────────────────
# Supported providers:
# openai, anthropic, gemini, vllm
#
# Common model presets:
# OpenAI: gpt-5.4, gpt-5.4-mini
# Anthropic: claude-opus-4-6, claude-sonnet-4-6
# Gemini: gemini-3-flash-preview
# vLLM: Qwen/Qwen3.5-35B-A3B
# ── API keys (set the one matching your provider) ────────────────────────
# OpenAI
# OPENAI_API_KEY=
# Optional for OpenAI-compatible endpoints (OpenRouter/local/etc)
# LLM_BASE_URL=https://api.openai.com/v1
# Gemini (Google)
# GEMINI_API_KEY=
# GOOGLE_API_KEY= # alias
# Optional for custom Gemini endpoints
# GEMINI_BASE_URL=https://generativelanguage.googleapis.com
# Claude (Anthropic)
# ANTHROPIC_API_KEY=
# Optional for custom Anthropic endpoints
# ANTHROPIC_BASE_URL=https://api.anthropic.com
# vLLM (self-hosted Qwen3.5-35B-A3B via the cookbook mobile_use contract;
# see docs/qwen_vllm_cluster.md).
# Launch the server with:
# vllm serve Qwen/Qwen3.5-35B-A3B \
# --enable-auto-tool-choice --tool-call-parser qwen3_coder --port 8000
# Then port-forward locally and point VLLM_BASE_URL at it.
# VLLM_BASE_URL=http://localhost:8000/v1
# VLLM_API_KEY=EMPTY
# Optional: amortize GPU cost into the per-step token logger.
# VLLM_INPUT_PRICE_PER_M=0
# VLLM_OUTPUT_PRICE_PER_M=0
# Optional: cap screenshot dim before sending (default 1280).
# QWEN_CU_MAX_IMAGE_DIM=1280
# Optional: last-N user turns whose screenshots stay in context (+ the first
# turn's anchor). Follows OSWorld's qwen35vl_agent image_max=20 for the
# Qwen3.5 family. Set to 4 for smaller Qwen3-VL/Qwen2.5-VL (qwen3vl_agent).
# All text history (assistant/tool messages) is always preserved. 0 = keep all.
# QWEN_CU_SCREENSHOT_HISTORY=20
# Shared key (used as fallback by all providers)
# LLM_API_KEY=
# ── Reproducibility ────────────────────────────────────────────────────
# LLM_TEMPERATURE=0 # Default 0 (deterministic)
# LLM_SEED=42 # Default 42 (OpenAI / Gemini / Qwen vLLM; Anthropic API has no seed)
# ── Tuning ───────────────────────────────────────────────────────────────
# LLM_MAX_TOKENS=1024 # Max output tokens
# LLM_MAX_IMAGE_DIM=1536 # Screenshot longest-edge cap (default 1536)
# LLM_SOURCE_MAX_CHARS=8000 # Truncate UI XML in prompt
# LLM_MAX_INTERACTIVE_ELEMENTS=30 # Max elements in interactive summary
# LLM_HISTORY_MAX_ITEMS=12 # Max action history items in prompt
# LLM_OBS_HISTORY_MAX=3 # Max observation history items
# LLM_MAX_RETRIES=3 # Retry count for transient API errors
# LLM_RETRY_BASE_DELAY=2.0 # Base delay for exponential backoff
# ── Trajectory judge (--evaluate / scripts/judge_trajectories.py) ────────
# The judge is GPT-5.4 Mini by default.
# OPENAI_API_KEY is required even when the agent itself is Qwen/Claude/Gemini.
# EVAL_PROVIDER=openai # openai | anthropic | gemini | vllm
# EVAL_MODEL=gpt-5.4-mini # Judge model name
# EVAL_MAX_WORKERS=4 # Parallel judge calls