Skip to content

fix: 任务结束后清理旧 agent 进程,避免跨轮累积 - #331

Merged
MistEO merged 1 commit into
MistEO:mainfrom
MarchSnow-1:fix/agent-cleanup-after-tasks-completed
Aug 26, 2026
Merged

fix: 任务结束后清理旧 agent 进程,避免跨轮累积#331
MistEO merged 1 commit into
MistEO:mainfrom
MarchSnow-1:fix/agent-cleanup-after-tasks-completed

Conversation

@MarchSnow-1

@MarchSnow-1 MarchSnow-1 commented Aug 25, 2026

Copy link
Copy Markdown

问题(#329

每次 startTasks 都会无条件 spawn 新的 agent 子进程,任务结束后旧进程不回收,导致:

  • agent 进程数随运行次数线性增长
  • 同一 Tasker 的事件被多个残留进程重复消费
  • 每个残留进程不清理,内存持续上涨

改动

  1. handle_task_callback:实例内全部任务结束后(all_done)调用 stop_agent_impl 清理本实例的旧 agent
  2. stop_agent_impldisconnect() 改为同步执行,修复"旧 agent 反注册晚于新 agent 注册、误删新 agent 的 custom 条目"的竞态;子进程收尾保留超时强杀兜底,避免泄漏

为什么是"清理"而不是"复用"(与 #330 的区别)

下游还有大量不同开发者维护的 MaaXXX 类似项目

它们的功能都是基于这个 每次运行新开进程 的实际行为上开发、测试、发布出来的

由于长期无人发现此问题,这个 bug 事实上可能已经成了结构设计的一部分

如果真的进行改动(复用已有 agent ),无法确认下游其他项目是否会出现某些功能依赖此 bug 而导致完全不可用的情况

所以 cleanup 旧的 agent 是对当前状况下保证向后兼容的最小修复

本 PR 在保留当前事实语义的情况下清理旧 agent 进程,不影响兼容性


Sourcery 总结

在任务全部结束时清理 agent 资源,防止跨轮累积并确保新旧 agent 注册状态一致。

错误修复:

  • 在实例内所有任务完成后自动停止并清理旧 agent,避免 agent 进程跨轮累积。
  • 同步完成 agent client 断开和 custom 注册清理,避免旧 agent 的延迟反注册误删新 agent 条目。

功能增强:

  • 将子进程退出等待和超时强杀保留为后台收尾,减少任务完成时的阻塞并防止进程泄漏。
Original summary in English

Summary by Sourcery

在任务全部结束时清理 agent 资源,防止跨轮累积并确保新旧 agent 注册状态一致。

Bug Fixes:

  • 在实例内所有任务完成后自动停止并清理旧 agent,避免 agent 进程跨轮累积。
  • 同步完成 agent client 断开和 custom 注册清理,避免旧 agent 的延迟反注册误删新 agent 条目。

Enhancements:

  • 将子进程退出等待和超时强杀保留为后台收尾,减少任务完成时的阻塞并防止进程泄漏。

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

你好——我已经审阅了你的更改,看起来很棒!


Sourcery 对开源项目免费——如果你喜欢我们的审查结果,请考虑分享 ✨
帮助我变得更有用!请对每条评论点击 👍 或 👎,我会利用这些反馈来改进审查结果。
Original comment in English

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@ocsin1

ocsin1 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

@zmdyy0318 佬可以看看这个

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.

3 participants