自定义 AutoGLM System Prompt 指导模型行为
两套默认 Prompt
Open-AutoGLM 框架内置了两套系统提示词:
| 文件 | 语言 | 配置方式 |
|---|---|---|
phone_agent/config/prompts_zh.py | 中文 | --lang cn(默认) |
phone_agent/config/prompts_en.py | 英文 | --lang en |
系统提示词告诉模型:
- 你是一个手机 GUI Agent
- 你能执行 10 种原子操作(Launch / Tap / Type / Swipe / Back / Home / Long Press / Double Tap / Wait / Take_over)
- 输入格式:自然语言任务 + 设备截图
- 输出格式:think 标签包裹推理过程 + answer 标签包裹结构化动作 JSON
- 遇到登录验证码等敏感场景要调用 Take_over
- 支持的 App 名称映射表
修改方式
直接编辑对应的 Python 文件即可。比如要修改中文 prompt:
# phone_agent/config/prompts_zh.py
SYSTEM_PROMPT = """
你的原始 prompt 内容...
# 在这里添加你的自定义指令,比如:
# "对于小红书 App,先点开笔记再进入详情页,不要直接在列表上操作"
"""
修改后不需要重新启动模型服务——System Prompt 是每次 Agent 调用时由 Phone Agent 框架注入给模型的,改了框架代码下次跑 Agent 就生效。
常见定制场景
禁用某些 App
如果你不想让 Agent 操作某个敏感 App(比如银行 App、微信支付),可以在 prompt 里加:
注意:禁止操作支付宝、微信支付等金融类应用。
某类 App 的特殊规则
对于淘宝 App,搜索框始终在顶部;如果看到"聚划算"banner,跳过直接点搜索框。
调整输出风格
默认 prompt 让模型输出 think + answer 两段式。如果你想简化(比如嵌入到自己的项目里只关心动作),可以让模型少输出 think 或增加更详细的 reasoning。
App 名称映射表
prompt 里还包含一个 App 名称映射表,告诉模型"美团"对应 Android 包名 com.sankuai.meituan。这个映射表在 phone_agent/config/apps.py 里维护,不是在 prompt 文件里。
如果想让 Agent 支持一个框架没内置的 App,需要同时做两件事:
- 在
apps.py里添加新的 App 名称 → 包名映射 - 在 prompt 里告诉模型这个新 App 存在
环境变量 vs 文件修改
框架目前没有提供命令行参数或环境变量来直接覆盖 System Prompt。如果需要动态切换 prompt,可以在 Python API 层做:
import phone_agent.config.prompts_zh as zh_prompts
zh_prompts.SYSTEM_PROMPT = "你的自定义 prompt"
# 然后正常创建 PhoneAgent
agent = PhoneAgent(model_config=model_config)
修改后的验证
- 启动 Agent 的 verbose 模式(
--verbose) - 执行一条简单任务
- 观察模型的输出是否符合你加的新规则