AutoGLM Agent 配置项全解(ModelConfig + AgentConfig + 环境变量)
三层配置体系
AutoGLM Phone Agent 框架的配置分三层,优先级从高到低:
- 命令行参数(
python main.py --max-steps 50 ...) - Python API 配置对象(
ModelConfig/AgentConfig构造时传入) - 环境变量(
PHONE_AGENT_*)
命令行参数 > API 配置 > 环境变量。你可以任选一层配置,也可以混合使用。
ModelConfig 全部字段
控制模型 API 调用的层:
| 字段 | 类型 | 默认值 | 说明 | 何时改 |
|---|---|---|---|---|
base_url | str | http://localhost:8000/v1 | 模型服务地址 | 本地部署用 localhost,云端 API 用对应的 URL |
model_name | str | autoglm-phone-9b | 模型名称 | 和部署时 --served-model-name 保持一致 |
api_key | str | EMPTY | 认证 Key | 智谱 BigModel / ModelScope API 需要 |
max_tokens | int | 3000 | 单次输出最大 token | 默认够用,复杂多步任务可调大到 4000~5000 |
temperature | float | 0.1 | 采样温度 | GUI 任务建议保持低值,越高越容易不稳定 |
frequency_penalty | float | 0.2 | 频率惩罚 | 防止模型在同一坐标反复点击的惩罚系数 |
AgentConfig 全部字段
控制 Agent 主循环行为的层:
| 字段 | 类型 | 默认值 | 说明 | 何时改 |
|---|---|---|---|---|
max_steps | int | 100 | 每个任务的最大步数 | 防止死循环。复杂长任务可调大到 150 |
device_type | str | adb | 设备控制协议 | 鸿蒙设备用 hdc,iOS 用 wda |
device_id | str | None | 指定设备 ID | 多设备时用,None 自动检测 |
lang | str | cn | 系统提示词语言 | 英文 App 场景换成 en |
verbose | bool | False | 打印详细调试信息 | 调试时开启,生产环境可关 |
全部环境变量
不想每次在命令行写一串参数,可以用环境变量:
| 变量名 | 对应配置 | 默认值 |
|---|---|---|
PHONE_AGENT_BASE_URL | ModelConfig.base_url | http://localhost:8000/v1 |
PHONE_AGENT_MODEL | ModelConfig.model_name | autoglm-phone-9b |
PHONE_AGENT_API_KEY | ModelConfig.api_key | EMPTY |
PHONE_AGENT_MAX_STEPS | AgentConfig.max_steps | 100 |
PHONE_AGENT_DEVICE_ID | AgentConfig.device_id | 自动检测 |
PHONE_AGENT_DEVICE_TYPE | AgentConfig.device_type | adb |
PHONE_AGENT_LANG | AgentConfig.lang | cn |
PowerShell 设置:
$env:PHONE_AGENT_BASE_URL = "https://open.bigmodel.cn/api/paas/v4"
$env:PHONE_AGENT_MODEL = "autoglm-phone"
$env:PHONE_AGENT_API_KEY = "sk-你的key"
python main.py "打开微信发送消息"
配置优先级示例
假设环境变量设置了 PHONE_AGENT_MAX_STEPS=50,命令行又传了 --max-steps 200,最终生效的是 200(命令行覆盖环境变量)。如果用 Python API 构造 AgentConfig(max_steps=80),命令行传 --max-steps 200,也是命令行 200 生效。
什么时候用哪一层
| 场景 | 推荐配置层 |
|---|---|
| 命令行单次使用 | 命令行参数 |
| 自己写 Python 脚本 | Python API 配置对象 |
| 固定模型服务地址不想每次写 | 环境变量 |
| 不同任务不同参数 | 命令行参数覆盖环境变量默认值 |