运行时
运行时资源守卫
使用 Token、内存、进程数和空闲监控保护 Agent 任务与运行时宿主机。
运行时资源守卫
资源守卫监控已运行的 Agent 任务,防止 Token 异常消耗、内存泄漏、无限循环和 fork bomb。它不负责调度并发槽位;并发限制属于 Daemon。
监控项
| 守卫 | 默认约束 | 行为 |
|---|---|---|
| Token 预算 | 单任务净 Token 2.5M、总 Token 30M、300 turns | 80% 告警;达到硬限制时终止任务。 |
| Token 消耗速率 | 5 分钟 300k Token | 检测短时间异常消耗。 |
| 内存 | 单任务 RSS 4 GiB、运行时总量 10 GiB | 80% 告警;超限后经过宽限期终止。 |
| 进程数 | 单任务 200 | 递归检查子进程,限制 fork bomb。 |
| 空闲 | MOPHEUS_AGENT_IDLE_WATCHDOG | 没有输出且没有进行中工具调用时终止停滞任务。 |
采集与终止
Linux 上优先使用 cgroup v2 获取内存指标,并在需要时终止整个任务 cgroup。无法使用 cgroup 时,Daemon 回退到 /proc 采样并记录一次告警。资源守卫的终止是任务失败原因之一,不等同于 Daemon 并发调度或工作目录 GC。
诊断
告警和强制终止会同时写入本地诊断记录并上报控制面。管理员可使用以下命令查看任务的资源诊断:
mopheus runtime guard explain <task-id>配置与诊断
runtime_guard 功能开关控制系统级可用性(disabled、selected、enabled)。守卫配置依次取自代码默认值、工作区或 Runtime 策略、Agent 专属覆盖和 MOPHEUS_GUARD_* 宿主机环境变量;宿主机环境变量优先级最高。单任务的实际内存上限同时受单任务与 Runtime 总量限制。
工作区管理员可用 mopheus runtime guard config {get|set|reset} 查看或修改策略,并用 show、stats、events、explain 查看活动资源与事后诊断。