Skip to content

Improvement: onboard forces Codex login — reuse existing Pi config and offer a provider choice for new users #38

Description

@zhangweijian97

背景

今天在本地把新版(17461d8,Pi-only)用 GLM(zai provider)跑通了一张真实任务的全链:Scout → Implement → Review 三角色全程 zai/glm-5.3(effort high),纯执行耗时约 2.5 分钟,测试 8/8 通过,PR 正常发布。GLM 本身工作得很好。

但过程中被 onboard 挡在了门外,最终靠读源码手写配置文件绕过。想反馈这个向导的两个问题。

问题 1:onboard 不尊重 Pi 已有的配置

configureCodex(src/agents/pi/onboard.ts)硬编码 provider = "openai-codex"。README 说 "Existing Pi credentials are reused",但实现上只对 Codex 凭据生效——

我的 Pi 在 onboard 之前就已经配置好了 zai provider + 默认模型(~/.pi/agent/models.json + settings.json 的 defaultProvider/defaultModel)。这是完全合法的 Pi 状态,但 onboard 完全不看它,仍然强制走 Codex 登录 + Codex 连通测试。

问题 2:没有 ChatGPT 订阅的新用户在向导里没有出口

对全新环境的用户,向导只有 Codex 一条路。README.details 的 provider 切换方法("onboard 完成后用 /model 换 zai/anthropic")对他们形成一个前提循环:

  • 换模型的前提是 onboard 完成
  • onboard 完成的前提是登录 ChatGPT 账号并通过 Codex 连通测试

没有订阅的用户走不完这个循环,向导也不会告诉他其实还有别的路。GLM/Claude 在 README 里是 "advanced provider options",但目前对无 Codex 订阅的用户,这个选项实际上不可达(除非像我们一样读源码手写 ~/.pi/agent/settings.json + ~/.config/roc/settings.json)。

建议(两层,任一都能解开现状)

  1. 尊重现状:onboard 启动时检测 Pi 是否已设 defaultProvider/defaultModel 且该 provider 有可用凭据——有就直接对当前模型做连通测试(等价于现在对 Codex 做的那步),跳过登录环节。改动集中在 configureCodex 的调用点。
  2. 新用户出口:向导加一步 provider 选择(codex / anthropic / zai),或至少提供一个 "skip model setup" 的出口,让已知道自己要什么的用户直接完成其余步骤。

实证数据(GLM 全链,本地模式,供参考)

角色 模型 effort 结果 耗时
scout zai/glm-5.3 high succeeded ~37s
implement zai/glm-5.3 high succeeded ~65s
review zai/glm-5.3 high succeeded ~33s

任务:给一个 CSV 统计小工具加 sum/stdev 统计与 --json 输出(含新增测试)。三棒 token 合计约 75k input / 6.5k output。实现与测试质量都不错,评审棒正常行使了独立审查。

绕过路径(供同样被挡住的用户参考):手写 ~/.pi/agent/settings.json(defaultProvider/defaultModel/defaultThinkingLevel)+ ~/.config/roc/settings.json(cycle / skills.allowlist / execution.allowUnsandboxed),跳过技能安装直接 task import 出票即可运行。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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