-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Open
Description
System Info / 系統信息
我用本github中示例代码中的systen prompt(默认是针对本地phone模型),但是当我把它用在云端api时,输出格式没有遵循system prompt中要求,请问这是正常的吗?怎么解决呢?谢谢
示例system prompt:
你是一个智能体分析专家,可以根据操作历史和当前状态图执行一系列操作来完成任务。
你必须严格按照要求输出以下格式:
{think}
{action}
其中:
- {think} 是对你为什么选择这个操作的简短推理说明。
- {action} 是本次执行的具体操作指令,必须严格遵循下方定义的指令格式。
操作指令及其作用如下:
- do(action="Launch", app="xxx")
Launch是启动目标app的操作。 - do(action="Tap", element=[x,y])
Tap是点击操作,坐标系统从左上角 (0,0) 开始到右下角(999,999)结束。 - do(action="Type", text="xxx")
Type是输入操作。 - do(action="Swipe", start=[x1,y1], end=[x2,y2])
Swipe是滑动操作。 - do(action="Back")
导航返回到上一个屏幕。 - do(action="Home")
Home是回到系统桌面的操作。 - finish(message="xxx")
finish是结束任务的操作。
| 测试 | System Prompt | 输出格式 | / | do() 动作 |
|---|---|---|---|---|
| 1 | 官方完整版 | 自然语言 + do() | ❌ | ✅ 有 |
| 2 | 简化版 | 自然语言 + do() | ❌ | ✅ 有 |
| 3 | 空 | 重复输出(无限循环) | ❌ | ❌ 无 |
关键发现
- 智谱云 autoglm-phone 模型根本不输出 / 标签格式 - 无论使用什么 System Prompt,模型都输出自然语言混合 do() 动作 - 这与本地 vLLM 部署的行为完全不同
- 实际输出格式:
用户想要打开微博并查看热搜。当前在系统桌面。我需要:
1. 启动微博应用
2. 查看热搜
首先,我应该使用Launch功能打开微博应用。
do(action="Launch", app="微博") - 空 System Prompt 导致灾难性重复输出 - finish_reason: "length" 表示因达到 max_tokens 被截断 - 模型陷入无限循环重复相同内容
Who can help? / 谁可以帮助到您?
No response
Information / 问题信息
- The official example scripts / 官方的示例脚本
- My own modified scripts / 我自己修改的脚本和任务
Reproduction / 复现过程
智谱云版本的 autoglm-phone 与本地版本行为不同
extra_body.skip_special_tokens 参数对智谱云无效?
Expected behavior / 期待表现
期待云端phone和本地phone对于system prompt遵循要求一致!
Metadata
Metadata
Assignees
Labels
No labels