Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Memory
Aioom
Try itAI-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,重启守护进程后生效。
常见场景处理
场景:用户说"内存快满了,帮我清一下"
- 先用 psutil 展示当前内存状态
- 运行
--dryrun -v让用户确认目标进程 - 征得确认后,正式启动(去掉 --dryrun)执行清理
场景:用户说"启动aioom后台监控"
- 检查是否已有 aioom 进程在运行
- 如有,提示用户当前状态
- 如无,用后台模式启动守护进程
场景:用户说"打开aioom界面"
- 直接执行功能五,启动 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}
调用流程:
- 用户说"帮我看看存储" → 调用
aioom_storage_scan()生成报告 - 用户在 HTML 报告中点击清理按钮 → 报告调用
aioom_storage_clean(path, method) - 清理完成后报告页面实时更新状态
依赖: storage-clean 技能已安装,psutil 已安装在 managed venv 中。
Related skills
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Site audit, content writing, and competitor analysis for organic search rankings.
More from bettermen
Browse all skillsAI开发工程师全流程工作流。覆盖需求分析→技术选型→数据处理→AI核心开发(Prompt/Agent/RAG/微调)→后端服务→前端交互→测试评估→部署运维→性能优化→LLMOps→安全护栏10大阶段。面向LLM应用开发全链路,提供代码模板、架构决策框架、调试排查指南。触发词: AI开发, AI工程师, AI全栈...
AI产品经理全流程助手。覆盖需求洞察→竞品分析→PRD方案设计→AI能力设计(Prompt/Agent/RAG)→上线评估→迭代优化6大阶段。融合模型边界管理、Prompt工程、Agent编排、RAG数据工程、AI评估五大核心能力。触发词: AI产品经理, AI PM, 写PRD, 竞品分析, Prompt设计,...
MetricHub多租户指标平台全流程编排:指标目录浏览、查询构建执行(九条铁律/九条消歧规则/快速计算语法)、数据可视化推荐、仪表盘编排。触发:查询指标、同环比、占比、排名、时间限定、metricDefinitions、timeConstraint、filters、dimensions、查看指标目录、创建仪表盘...
为文章规划并生成可读性强的极简强线条手绘配图。先建立文章地图,识别段落适合流程图、架构图、对比图、关系图、结构图还是概念插图,再通过构思卡组织单一命题、原文指纹、信息单位、阅读顺序和固定橙白圆猫角色。构思通过可读性测试后默认直接生成。用户说配图、手绘配图、给文章配图、文章插图、技术文章插图、流程图、架构图、关系图...
绂诲搴旇瘔鎸囧崡AI鍔╂墜銆傚綋鐢ㄦ埛琚捣璇夌濠氶渶瑕佸簲璇夊府鍔╂椂锛屾彁渚涘叏娴佺▼鎸囧锛? 搴旇瘔娴佺▼瀵艰埅銆佺瓟杈╃姸鐢熸垚銆佹劅鎯呯牬瑁傝瘉鎹噯澶囥€佽储浜у垎鍓插垎鏋愩€佸瓙濂虫姎鍏绘潈璇勪及銆? 搴旇瘔绛栫暐寤鸿銆佹硶寰嬫潯鏂囬€熸煡銆傝鐩栦粠鏀跺埌璧疯瘔鐘跺壇鏈埌鍒ゅ喅鎵ц鐨勫...
AI时代职业规划助手。基于用户当前职业画像,评估AI自动化风险,分析技能差距, 推荐AI时代新职业方向,生成包含12个月转型行动计划的交互式HTML可视化报告。 覆盖技术/产品/运营/设计/市场/行政等核心岗位类别。 Triggers: 职业规划, AI时代职业, 职业转型, 未来职业, AI替代风险, 职业方向...