Skip to content

[功能请求] 增加可配置的超时和自动重试机制,以应对间歇性网络中断 #13

Description

@liuruigang136-cell

我在使用 deepcode-cli 时频繁遇到 Request failed: Connection errorFailed to report new prompt: fetch failed 错误,尤其是在处理长任务且上下文较大(20万+ tokens)时更为明显。该错误会临时中断会话,需要手动重试。如果软件能原生支持超时配置和自动重试机制,将极大提升网络不稳定环境下的可靠性。

运行环境

  • deepcode-cli 版本: Deep Code (v0.1.14)
  • 操作系统: Windows 11
  • API 地址:https://api.deepseek.com
  • 网络环境: 中国电信

复现步骤

  1. 启动一个复杂的编码或解题任务,会产生大量 tokens(例如 20万以上)。

  2. 一段时间后,交互界面出现:
    Assistant
    Request failed: Connection error.
    Failed to report new prompt: fetch failed

  3. 有时点击“继续”后可恢复,有时错误会再次出现。

  4. 问题是间歇性的,但严重影响开发效率。

期望行为

  • settings.json 支持 timeout 参数(例如 "timeout": 120000),用于自定义请求超时时间。
  • settings.json 支持 maxRetries 参数(例如 "maxRetries": 3),在发生网络故障时按指数退避自动重试。
  • 工具能从容处理 fetch failed 错误,不会丢失上下文。

实际行为

  • 目前未提供超时或重试的相关配置选项。
  • 出现连接错误后,必须手动干预,有时需多次重复操作。
  • 不确定内部是否有自带重试逻辑(观察到的表现似乎没有)。

可能的实现方案

可以参考 aider--timeout)或 OpenAI Python 客户端(maxRetries)的做法,在配置文件中增加:

{
"timeout": 120000,
"maxRetries": 3
}

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