Skip to content

GPT 调用失败无重试机制 #125

Closed

Description

@Sun-sunshine06

问题描述

使用 CPA 中的 GPT 模型时,调用失败直接报错,没有重试机制。用户需要手动重新发送消息。

复现步骤

  1. 配置使用 CPA 中的 GPT 模型
  2. 发送消息触发 API 调用
  3. 调用失败后直接报错,无自动重试

期望行为

调用失败时应提供自动重试机制(如指数退避重试 2-3 次),并在所有重试失败后给出友好的错误提示,允许用户一键重试。

Activity

  1. github-actions commented on Apr 22, 2026

    @github-actions
    Contributor

    感谢反馈,问题描述很清楚。根据当前代码,默认生成链路下你说的现象是可以成立的:调用失败后可能直接进入错误态,没有做通用的指数退避重试。

    已核实到两条不同调用路径行为不一致:

    • 旧的非 Agent 路径有自动重试:completeWithRetry 默认最多 3 次(指数退避 + jitter),并处理 429/5xx/网络错误。
    • 默认开启的 Agent Runtime 路径目前是单次调用失败即抛错,没有接入同样的重试层。
    • ChatGPT Codex 路径目前只在 401 时做一次 token 刷新后重试,不包含 429/5xx/网络退避重试。

    Relevant code:

    • packages/providers/src/retry.ts:205 — completeWithRetry,默认 maxRetries 为 3,带指数退避
    • packages/core/src/index.ts:320 — 旧生成链路调用 completeWithRetry
    • apps/desktop/src/main/index.ts:85 — USE_AGENT_RUNTIME 默认开启
    • apps/desktop/src/main/index.ts:264 — 默认走 generateViaAgent()
    • packages/core/src/agent.ts:767 — Agent 路径单次 agent.prompt(),失败直接走错误处理
    • packages/providers/src/codex/client.ts:84 — Codex 仅对 401 做一次刷新后重试
    • apps/desktop/src/renderer/src/components/PreviewPane.tsx:491 — 失败后前端有“重试”按钮(手动重试)
    • website/roadmap.md:10 — 当前仍处于 v0.1 阶段(pre-alpha 迭代中)

    Need more info:

    • 你使用的具体版本号(如 v0.1.x)?
    • 当时选择的 provider / model 是什么(例如 OpenAI、OpenRouter、自定义网关、或 ChatGPT Codex)?
    • 报错原文或错误码(可脱敏)?

    open-codesign Bot

  2. added
    enhancementNew feature or request
    area:providerspackages/providers (pi-ai adapter, model calls)
    triageAwaiting maintainer review
    on Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:providerspackages/providers (pi-ai adapter, model calls)enhancementNew feature or requesttriageAwaiting maintainer review

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions