Skip to content

本地phone模型的system promt和云端phone模型的不一样吗? #300

@skyroot

Description

@skyroot

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 重复输出(无限循环) ❌ 无

关键发现

  1. 智谱云 autoglm-phone 模型根本不输出 / 标签格式 - 无论使用什么 System Prompt,模型都输出自然语言混合 do() 动作 - 这与本地 vLLM 部署的行为完全不同
  2. 实际输出格式:
    用户想要打开微博并查看热搜。当前在系统桌面。我需要:
    1. 启动微博应用
    2. 查看热搜

    首先,我应该使用Launch功能打开微博应用。
    do(action="Launch", app="微博")
  3. 空 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions