Memory

Aioom

Try it

AI-powered memory guardian for Windows. Manage system memory, kill high-risk processes, monitor in background, and view real-time Web GUI dashboard. Triggers...

What it does

**AI 内存守护工具技能** 智能监控并清理 Windows 系统内存,基于 AI 评分机制识别高风险进程。

The skill document

aioom — AI Memory Guardian Skill

AI 内存守护工具技能 智能监控并清理 Windows 系统内存,基于 AI 评分机制识别高风险进程。

aioom — AI内存守护工具技能

概述

aioom 是一个 AI 驱动的内存守护进程,参考 earlyoom 设计,通过 AI 评分机制智能识别内存泄漏进程并执行清理。支持 CLI 守护模式和 Web GUI 可视化面板两种形态。

项目路径: C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom\ Web 端口: http://localhost:8866 日志文件: C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom.log


调用方式自动检测

优先使用打包后的 exe,回退到 Python 脚本:

import os, subprocess

PROJECT_DIR = r"C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom"
EXE_PATH    = r"C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom\dist\aioom.exe"
WEB_EXE     = r"C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom\dist\aioom-web.exe"
PY_AIOOM    = os.path.join(PROJECT_DIR, "aioom.py")
PY_WEB      = os.path.join(PROJECT_DIR, "web.py")

def get_runner(target="cli"):
    """返回 (cmd_prefix, cwd)"""
    if target == "cli":
        if os.path.exists(EXE_PATH):
            return [EXE_PATH], PROJECT_DIR
        return ["python", PY_AIOOM], PROJECT_DIR
    else:  # web
        if os.path.exists(WEB_EXE):
            return [WEB_EXE], PROJECT_DIR
        return ["python", PY_WEB], PROJECT_DIR

功能一:查看系统内存状态

使用 psutil 快速获取当前内存信息(无需启动 aioom 守护进程):

import psutil

mem = psutil.virtual_memory()
swap = psutil.swap_memory()
print(f"内存:{mem.percent:.1f}% 已用 | 可用 {mem.available / 1024**3:.2f} GB / 总计 {mem.total / 1024**3:.2f} GB")
print(f"SWAP:{swap.percent:.1f}% 已用")

# 列出前10个内存占用最高的进程
procs = sorted(psutil.process_iter(['pid','name','memory_percent']),
               key=lambda p: p.info['memory_percent'] or 0, reverse=True)
for p in procs[:10]:
    print(f"  PID {p.info['pid']:6d}  {p.info['memory_percent']:.1f}%  {p.info['name']}")

功能二:干跑分析(只分析不清理)

适合在执行清理前确认目标进程:

# CLI 方式
python "C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom\aioom.py" --dryrun -v
# 或 exe 方式
"C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom\dist\aioom.exe" --dryrun -v
  • --dryrun:只打印分析结果,不执行任何 kill 操作
  • -v:详细输出,显示每个进程的 AI 评分

功能三:启动守护进程(后台持续监控)

import subprocess

cmd, cwd = get_runner("cli")
# 后台运行,日志输出到文件
proc = subprocess.Popen(
    cmd + ["--interval", "5", "-v"],
    cwd=cwd,
    stdout=open(r"C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom.log", "a"),
    stderr=subprocess.STDOUT,
    creationflags=subprocess.CREATE_NO_WINDOW  # Windows 无窗口后台运行
)
print(f"aioom 守护进程已启动,PID: {proc.pid}")

常用参数:

参数说明默认值
--interval N检测间隔秒数2
--dryrun干跑模式关闭
-v详细输出关闭
--config path自定义配置文件config.toml

功能四:停止 aioom 守护进程

import psutil

killed = []
for proc in psutil.process_iter(['pid', 'name', 'cmdline']):
    try:
        cmdline = ' '.join(proc.info['cmdline'] or [])
        if 'aioom' in cmdline.lower() and 'aioom-web' not in cmdline.lower():
            proc.terminate()
            killed.append(proc.info['pid'])
    except (psutil.NoSuchProcess, psutil.AccessDenied):
        pass
print(f"已停止 {len(killed)} 个 aioom 进程:{killed}")

功能五:打开 Web GUI 面板

import subprocess, webbrowser, time

cmd, cwd = get_runner("web")
proc = subprocess.Popen(cmd, cwd=cwd, creationflags=subprocess.CREATE_NO_WINDOW)
time.sleep(2)  # 等待服务启动
webbrowser.open("http://localhost:8866")
print(f"Web GUI 已在 http://localhost:8866 启动,PID: {proc.pid}")

Web 面板功能:

  • 实时内存/CPU 折线图(Chart.js)
  • 进程列表及 AI 评分
  • 一键终止高风险进程
  • 配置阈值调整

配置文件说明

配置文件路径:C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom\config.toml

[threshold]
mem_percent = 85        # 触发清理的内存占用百分比
swap_percent = 80       # 触发清理的 SWAP 占用百分比

[ai]
term_confidence = 0.8   # SIGTERM 置信度阈值
kill_confidence = 0.95  # SIGKILL 置信度阈值

[protect]
ignore_patterns = ["sshd", "bash", "powershell", "explorer", "python.*aioom"]
ignore_root = true
protect_foreground = true

[notify]
log_file = "aioom.log"
verbose = true

修改配置时,直接编辑 config.toml,重启守护进程后生效。


常见场景处理

场景:用户说"内存快满了,帮我清一下"

  1. 先用 psutil 展示当前内存状态
  2. 运行 --dryrun -v 让用户确认目标进程
  3. 征得确认后,正式启动(去掉 --dryrun)执行清理

场景:用户说"启动aioom后台监控"

  1. 检查是否已有 aioom 进程在运行
  2. 如有,提示用户当前状态
  3. 如无,用后台模式启动守护进程

场景:用户说"打开aioom界面"

  1. 直接执行功能五,启动 web.py 并打开浏览器

场景:用户说"查看aioom日志"

log_path = r"C:\Users\PC\WorkBuddy\2026-05-15-task-3\aioom.log"
with open(log_path, encoding='utf-8') as f:
    lines = f.readlines()
print(''.join(lines[-50:]))  # 最后50行

功能六:存储清理(调用 storage-clean)

当用户说"帮我看看存储"、"清理磁盘垃圾"等,调用 storage-clean 技能:

import subprocess, os, webbrowser

STORAGE_CLEAN_DIR = r"C:\Users\PC\.workbuddy\skills\storage-clean"
SCANNER_PY = os.path.join(STORAGE_CLEAN_DIR, "scripts", "scanner.py")
PYTHON_EXE = r"C:\Users\PC\.workbuddy\binaries\python\envs\default\Scripts\python.exe"

def aioom_storage_scan():
    """运行存储扫描,生成 HTML 报告"""
    result = subprocess.run(
        [PYTHON_EXE, SCANNER_PY],
        cwd=STORAGE_CLEAN_DIR,
        capture_output=True,
        text=True,
        timeout=300
    )
    # 解析报告路径
    html_path = None
    for line in result.stdout.strip().split("\n"):
        if line.startswith("REPORT:"):
            html_path = line[7:].strip()
            break
    if html_path and os.path.exists(html_path):
        webbrowser.open(f"file://{html_path}")
        return True, html_path
    return False, result.stdout

def aioom_storage_clean(path, method="recycle"):
    """清理指定路径(调用 storage-clean/cleaner.py)"""
    CLEANER_PY = os.path.join(STORAGE_CLEAN_DIR, "scripts", "cleaner.py")
    result = subprocess.run(
        [PYTHON_EXE, CLEANER_PY, "--path", path, "--method", method],
        capture_output=True,
        text=True
    )
    import json
    try:
        return json.loads(result.stdout)
    except Exception:
        return {"success": False, "message": result.stdout or result.stderr}

调用流程:

  1. 用户说"帮我看看存储" → 调用 aioom_storage_scan() 生成报告
  2. 用户在 HTML 报告中点击清理按钮 → 报告调用 aioom_storage_clean(path, method)
  3. 清理完成后报告页面实时更新状态

依赖: storage-clean 技能已安装,psutil 已安装在 managed venv 中。

Related skills

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

More from bettermen

Browse all skills

AI开发工程师全流程工作流。覆盖需求分析→技术选型→数据处理→AI核心开发(Prompt/Agent/RAG/微调)→后端服务→前端交互→测试评估→部署运维→性能优化→LLMOps→安全护栏10大阶段。面向LLM应用开发全链路,提供代码模板、架构决策框架、调试排查指南。触发词: AI开发, AI工程师, AI全栈...

by bettermen5 installs1 stars

AI产品经理全流程助手。覆盖需求洞察→竞品分析→PRD方案设计→AI能力设计(Prompt/Agent/RAG)→上线评估→迭代优化6大阶段。融合模型边界管理、Prompt工程、Agent编排、RAG数据工程、AI评估五大核心能力。触发词: AI产品经理, AI PM, 写PRD, 竞品分析, Prompt设计,...

by bettermen4 installs1 stars

MetricHub多租户指标平台全流程编排:指标目录浏览、查询构建执行(九条铁律/九条消歧规则/快速计算语法)、数据可视化推荐、仪表盘编排。触发:查询指标、同环比、占比、排名、时间限定、metricDefinitions、timeConstraint、filters、dimensions、查看指标目录、创建仪表盘...

by bettermen5 installs

为文章规划并生成可读性强的极简强线条手绘配图。先建立文章地图,识别段落适合流程图、架构图、对比图、关系图、结构图还是概念插图,再通过构思卡组织单一命题、原文指纹、信息单位、阅读顺序和固定橙白圆猫角色。构思通过可读性测试后默认直接生成。用户说配图、手绘配图、给文章配图、文章插图、技术文章插图、流程图、架构图、关系图...

by bettermen4 installs

绂诲搴旇瘔鎸囧崡AI鍔╂墜銆傚綋鐢ㄦ埛琚捣璇夌濠氶渶瑕佸簲璇夊府鍔╂椂锛屾彁渚涘叏娴佺▼鎸囧锛? 搴旇瘔娴佺▼瀵艰埅銆佺瓟杈╃姸鐢熸垚銆佹劅鎯呯牬瑁傝瘉鎹噯澶囥€佽储浜у垎鍓插垎鏋愩€佸瓙濂虫姎鍏绘潈璇勪及銆? 搴旇瘔绛栫暐寤鸿銆佹硶寰嬫潯鏂囬€熸煡銆傝鐩栦粠鏀跺埌璧疯瘔鐘跺壇鏈埌鍒ゅ喅鎵ц鐨勫...

by bettermen4 installs

AI时代职业规划助手。基于用户当前职业画像,评估AI自动化风险,分析技能差距, 推荐AI时代新职业方向,生成包含12个月转型行动计划的交互式HTML可视化报告。 覆盖技术/产品/运营/设计/市场/行政等核心岗位类别。 Triggers: 职业规划, AI时代职业, 职业转型, 未来职业, AI替代风险, 职业方向...

by bettermen4 installs