chaitin / chaitin/MonkeyCode

模型任务异常中断后取消任务失效导致状态卡死 + 上下文压缩无限循环问题

Open
#828 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
4.7k
Forks
719
Avg merge
4h 30m
Merged PRs (30d)
83

Description


反馈内容:

问题一:部分模型任务异常中断后,取消任务无法正常生效

在执行模型任务过程中,当模型 API 或中转服务出现异常时,部分情况下任务会进入异常状态。

目前观察到,该问题并不是所有 API 异常都会触发。

例如:

部分情况下,中转服务异常导致模型一直显示「调用中」,此时点击取消任务可以正常结束,功能正常;

但部分异常情况下,任务会进入无法取消的状态。

复现后的表现:

  1. 模型任务执行过程中出现异常;

  2. 点击「取消任务」;

  3. 页面提示任务已取消;

  4. 但实际界面状态仍然显示「正在执行」。

异常状态下:

任务实际已经停止,不再继续调用模型 API;

没有继续进行任何计算或执行;

页面状态无法更新;

刷新页面无效;

更换浏览器无效;

无法继续发送控制命令或交互消息;

当前会话被阻塞。

目前唯一恢复方式:

通过命令强制结束对应容器进程后,任务状态才会释放。

该问题已经多次出现,但暂时无法确定具体触发条件,希望开发进一步排查异常场景下任务取消流程和状态同步问题。


问题二:上下文压缩触发异常,并进入无限循环

当前上下文压缩机制存在异常。

测试情况:

已将上下文限制调整至较高数值;

更换多个不同服务商 API;

使用模型均为 GPT-5.5;

不同 API 环境下均出现相同现象。

实际表现:

上下文压缩触发比例不固定;

有时上下文占用约 50% 左右时就提前触发压缩;

达到某个临界占用比例后,无论自动压缩还是手动压缩,都会进入无限循环。

循环表现:

持续提示模型调用失败;

重复执行上下文压缩流程;

无法继续正常对话;

只有重置会话后才能恢复。

补充测试:

未达到异常临界占用比例时:

自动压缩正常;

手动压缩正常。

希望确认该问题是否属于平台自身上下文压缩流程异常。


期望效果:

关于任务取消:

  1. 即使模型 API、中转服务出现异常情况,用户手动点击取消任务后,也应该能够正常结束当前任务,并正确释放任务状态;

  2. 如果遇到极端异常情况,例如任务状态异常卡死、取消流程失效等,希望提供额外的兜底机制,例如快捷终止按钮、强制中断命令或其他可以直接结束当前任务/对话执行状态的操作,避免只能通过强制结束容器进程才能恢复;

  3. 取消操作需要确保任务状态真正释放,而不是只更新页面显示;

  4. 前端任务状态需要与实际任务状态保持一致;

  5. 异常情况下不能导致整个会话永久阻塞,并希望增加相关异常日志方便定位具体触发条件。


关于上下文压缩:

  1. 上下文压缩触发条件应该保持稳定,不应该出现明显随机波动;

  2. 压缩失败后不能持续无限循环;

  3. 需要增加压缩失败保护机制,避免重复执行失败流程;

  4. 压缩异常时应该返回明确错误信息;

  5. 保证当前会话可以恢复使用,而不是只能通过重置会话解决。


我的 UID:

019e5e9d-9963-70ac-9fcb-48a06905283b


Image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report names no files, tests, or entry points. Start by reproducing the failed cancellation and context-compression loop, then trace task state synchronization and compression failure handling; done means cancellation releases the task and session, compression failure stops retrying, and clear errors are shown.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ai, full-stack
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.