Skip to content

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

@liuruigang136-cell

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions