目录

AROS Agent: 面向 openEuler 的自适应资源管控 Agent

第三届中国研究生操作系统开源创新大赛社区赛题作品。AROS Agent 是一个基于用户态决策的资源管控框架:Agent 感知 workload 特征,调用标准化 Skill/Tool 能力,选择 sched_ext 调度策略,并可扩展 eBPF hook、cgroup 资源控制、network/security policy 等 OS Agent。

本仓库当前实现了一个可运行的最小闭环:

  • workload 感知:采集 CPU 利用率、任务数、运行队列压力、进程画像、cgroup 信息。
  • 自适应策略:内置 Mixture-of-Schedulers 路由器,按 latency/batch/balanced 三类场景选择策略。
  • scx 集成:支持调用 scx_rustyscx_lavdscx_bpfland 等 sched_ext 调度器;无内核能力时自动 dry-run。
  • 可扩展 Skills:使用 JSON manifest 描述传感器、策略、执行器和安全约束,便于新增 network/security/resource-control Agent。
  • 可视化展示:自带本地仪表盘,展示实时指标、策略切换、行动日志和可复现实验结果。
  • 可复现实验:提供 benchmark 脚本,对比 baseline 与 agent 策略下的吞吐、延迟和 CPU 压力。

快速启动

在 Windows/macOS/Linux 上都可以先用演示模式观察作品:

python -m agentx.main --demo --port 8765

打开浏览器访问:

http://127.0.0.1:8765

在 openEuler 24.03-LTS-SP4 上接入真实 sched_ext:

bash scripts/setup_openeuler.sh
python -m agentx.main --apply --port 8765

--apply 会尝试真正执行调度器命令或 cgroup 写入;普通展示建议先使用 --demo 或默认 dry-run。

目录结构

agentx/                 Agent 核心实现
configs/agent.json      策略、scx 命令和安全参数
skills/                 标准化 Skill 能力 manifest
scripts/                openEuler 安装、演示和测试脚本
web/                    本地可视化仪表盘
docs/                   设计方案和实验方案
tests/                  关键策略单元测试

openEuler 环境

目标环境:

  • openEuler 24.03-LTS-SP4
  • Linux kernel 6.6,开启 sched_ext
  • Python 3.9+
  • 可选:scx 调度器工具、bpftoolclang/llvmlibbpf-devel

检查内核是否支持 sched_ext:

test -d /sys/kernel/sched_ext && echo "sched_ext ready"

如未安装 scx,可参考官方项目:

git clone https://github.com/sched-ext/scx.git

运行基准测试

python scripts/benchmark.py --seconds 20 --output reports/benchmark.json

然后启动仪表盘,页面会自动读取 reports/benchmark.json 展示对比结果。

创新点

  1. Agentic OS 控制闭环:将 sensing、routing、actuation、audit 四步做成标准接口,使调度策略不再是静态单点,而是可被 Agent 持续调整的操作系统能力。
  2. Mixture-of-Schedulers 路由器:把 sched_ext 调度器视为专家策略,按 workload 画像选择 latency、batch 或 balanced 目标。
  3. Skill 化 OS 能力接口:CPU 调度、cgroup、network policy、security policy 都以 manifest 方式注册,便于扩展和答辩展示。
  4. 安全可回退执行:默认 dry-run,只有显式 --apply 才执行系统级操作;所有 action 都写入审计日志。
  5. 可视化可复现:同一套 Agent 同时提供 CLI、HTTP API、仪表盘和 benchmark 报告,便于现场演示。

常用命令

# 演示模式
python -m agentx.main --demo

# 真实执行模式
sudo python -m agentx.main --apply

# 运行测试
python -m unittest discover -s tests

# 生成基准报告
python scripts/benchmark.py

注意事项

  • 本项目不会自动下载或替换内核;openEuler SP4 环境需要提前准备。
  • scx 调度器名称和路径可在 configs/agent.json 中调整。
  • network/security eBPF hook 当前提供可扩展接口和审计闭环,真实生产规则需按比赛机器内核能力继续补充。
关于
8.3 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号