Skip to content

fix(agent): recover long-running tool loops - #151

Merged
Rfym21 merged 1 commit into
Rfym21:mainfrom
GrothKeiran:codex/fix-agent-long-running-loops
Aug 6, 2026
Merged

fix(agent): recover long-running tool loops#151
Rfym21 merged 1 commit into
Rfym21:mainfrom
GrothKeiran:codex/fix-agent-long-running-loops

Conversation

@GrothKeiran

Copy link
Copy Markdown
Contributor

说明

这是已合并 #150 的后续修复。进一步使用 Codex、Claude Code、OpenClaw 等 Agent 验证后,确认提前停止并非只有 SSE 分片问题,还包含干净 EOF、空 Agent 回合、工具调用占位文本和长上下文触发 WAF 等情况。

修复内容

  • 将 Qwen Web 的干净 HTTP EOF 视为正常完成;只有 ECONNRESET、premature close 等真实传输异常才返回流错误
  • OpenAI 与 Anthropic 的流式、非流式接口均支持只有思考但没有正文或工具调用时补偿重试一次
  • Agent 仅输出“我将执行”或 “I will inspect” 等动作描述但未真正调用工具时,自动重试为可执行工具调用
  • 强化工具协议提示,禁止用计划或完成声明代替工具调用,并保留参数描述及空工具结果
  • 请求接近 Qwen Web 约 128 KiB WAF 限制时,将完整 Agent 上下文通过官方文件上传及解析接口外置;实时请求保留工具协议和当前回合
  • 附件外置失败时安全压缩上下文,同时保留工具定义和最近任务状态
  • 识别 HTTP 200 裸 JSON 的 WAF/captcha 业务响应并显式返回 upstream_waf_challenge
  • 保留 length、max_tokens、content_filter、refusal 和残缺工具调用的原始错误语义

验证

  • npm test:33/33 通过
  • 覆盖 OpenAI/Anthropic 工具循环、无 DONE 干净 EOF、真实连接重置、空回合重试、动作占位重试、长上下文外置、多模态上下文、附件失败降级和裸 JSON WAF
  • git diff --check 通过

本 PR 仅包含功能、测试和文档修改,不包含独立镜像仓库使用的 GitHub Actions 或镜像名称配置。

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants