大赛项目提交
基于 vLLM PagedAttention 扩展,针对 LLM 智能体推理的 KV Cache 生命周期管理、分支推理共享、上下文压缩与分层存储优化。
AgentMem 是面向「操作系统创新赛题——智能体推理内存管理」的开源实现。它复用高性能内存工程模式(64 路分片、对象池、SeqLock、双缓冲快照、CRC32 校验、LRU/LFU 淘汰),并在 vLLM PagedAttention 基础上构建面向智能体长生命周期推理的显存优化系统。
在原有 6 大模块基础上,针对比赛场景进一步优化(详见 docs/performance_innovations.md):
docs/performance_innovations.md
编号说明:此处 P2/P3 为 v1.2 创新点编号(Performance 优化),与设计方案 2.2 节的性能指标编号 P1-P6 含义不同。指标 P1-P6 见上文「性能目标」表。
# 1. 核心包(纯 CPU 即可运行,含完整内存管理逻辑) pip install -e . # 2. 开发与测试依赖 pip install -e ".[dev]" # 3. GPU / vLLM 集成(可选) pip install -e ".[cuda]" # 4. 基准测试依赖(可选) pip install -e ".[bench]"
# 安装系统依赖 sudo yum install -y python3 python3-pip gcc cmake # 安装 NVIDIA GPU 驱动(如适用) sudo yum install -y nvidia-driver cuda # 安装 AgentMem git clone <repo-url> agentmem && cd agentmem pip3 install -e ".[dev,bench]" # 一键验证 python3 -m agentmem.verify --model mock --platform openEuler
from agentmem import AgentMemEngine, EngineConfig # 创建引擎(无 GPU 时自动回退到 CPUBackend) engine = AgentMemEngine(EngineConfig( num_gpu_blocks=1024, block_size=16, num_cpu_blocks=4096, enable_compression=True, enable_tiered_storage=True, # 创新点 I1/I2:量化压缩 + Markov 预测性预取 enable_kv_quantization=True, # CPU/Disk 占用降低 ~74% enable_markov_prefetch=True, # 预取命中率提升(S8 实测 40%) )) # 注册 system prompt(L0 永驻,自动加入 RadixTree) session = engine.create_session("agent-1") session.prefill("You are a helpful assistant.", lifecycle="permanent") # 多轮对话:system prompt 的 KV Cache 自动复用 session.prefill("[User] 你好", lifecycle="medium") reply = session.decode(max_tokens=32) # 工具调用:返回数据自动压缩,原始数据 offload 到磁盘 session.inject_tool_result('{"items": [...2000 行 JSON...]}', max_tokens=256) # Tree-of-Thought 分支推理:COW 共享父分支 KV Cache branch_a = session.fork() # ref_count 递增,零拷贝 branch_b = session.fork()
# 全量单元测试(248 个测试,含创新点 I1/I2/P2/P3 专项测试) pytest -q # 带覆盖率报告 pytest --cov=agentmem --cov-report=term-missing # 并行测试(加速) pytest -n auto # Benchmark(CPU mock 模式,S1-S8 全场景基线对照) python -m benchmarks.run_benchmark --scenarios all --backend cpu --report markdown # 指定场景 Benchmark(S7 量化 / S8 Markov 预取) python -m benchmarks.run_benchmark --scenarios s7,s8 --report markdown # 可选:编译原生 C 扩展(Linux/gcc,加速 RadixTree 与淘汰评分 3-10×) python setup_native.py build_ext --inplace # 运行示例 python -m examples.multi_turn_chat # 多轮对话(前缀复用) python -m examples.tot_branching # Tree-of-Thought(COW 共享) python -m examples.tool_calling # 工具调用(数据压缩)
AgentMem 提供基于 FastAPI + Chart.js 的可视化管理界面,适合比赛现场演示:
# 安装依赖 pip install fastapi uvicorn[standard] # 启动 Dashboard(默认 127.0.0.1:8000) python -m agentmem.dashboard # 比赛演示(监听所有网卡) python -m agentmem.dashboard --host 0.0.0.0 --port 8080 # 强制 CPU 后端 python -m agentmem.dashboard --backend cpu
浏览器打开 http://127.0.0.1:8000 即可访问。环境变量 AGENTMEM_BACKEND / AGENTMEM_GPU_BLOCKS / AGENTMEM_CPU_BLOCKS 可调整引擎参数。
http://127.0.0.1:8000
AGENTMEM_BACKEND
AGENTMEM_GPU_BLOCKS
AGENTMEM_CPU_BLOCKS
agentmem/ ├── agentmem/ # 核心包 │ ├── common/ # 公共层:类型、SeqLock、CRC32、哈希 │ ├── core/ # KVBlockPool、RadixTree、淘汰策略、PayloadStore │ ├── lifecycle/ # 5.2.1 生命周期管理器 │ ├── cow/ # 5.2.2 COW 引擎 │ ├── compression/ # 5.2.3 上下文压缩 + 工具数据优化 │ ├── storage/ # 5.2.4 分层存储引擎(TieredStorage/SwapCache/OffloadStore/PrefetchEngine) │ ├── scheduler/ # 5.2.5 任务调度(64 路分片 + 公平配额) │ ├── hal/ # 5.2.6 硬件抽象层(CUDA/DTK/CANN/CPU) │ ├── engine.py # AgentMemEngine 主编排器 │ ├── tokenizer.py # Mock 推理(真实部署替换为 vLLM) │ ├── verify.py # 一键验证工具 │ └── dashboard/ # 可视化管理界面(FastAPI + Chart.js) ├── benchmarks/ # S1-S8 Benchmark 场景 + 基线对照 + 报告 │ ├── framework.py # 基线/优化配置、指标采集 │ ├── run_benchmark.py # CLI 入口 │ ├── report.py # Markdown/JSON 报告生成 │ └── scenarios/ # S1-S8 场景实现(S7 量化 / S8 Markov 预取为 v1.2 新增) ├── tests/ # pytest 单元测试(248 个,覆盖率 80%+) ├── docs/ # 架构/部署/API/Benchmark 文档 ├── examples/ # 使用示例(多轮对话/ToT/工具调用) ├── pyproject.toml # 项目配置(依赖/pytest/coverage) └── README.md
AgentMem 采用插件式架构,作为独立 Python 包通过 vLLM 的 Scheduler/BlockManager 接口注入,核心改动全部位于 agentmem/ 目录下,最小化对 vLLM 核心的侵入(对应风险 R1 应对策略)。
Scheduler
BlockManager
agentmem/
MIT License — 见 LICENSE。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
AgentMem — 面向智能体推理的内存管理系统
AgentMem 是面向「操作系统创新赛题——智能体推理内存管理」的开源实现。它复用高性能内存工程模式(64 路分片、对象池、SeqLock、双缓冲快照、CRC32 校验、LRU/LFU 淘汰),并在 vLLM PagedAttention 基础上构建面向智能体长生命周期推理的显存优化系统。
✨ 核心特性
🚀 性能与创新点优化(v1.1+)
在原有 6 大模块基础上,针对比赛场景进一步优化(详见
docs/performance_innovations.md):📊 性能目标
📦 安装
环境要求
安装方式
openEuler 一键部署
🚀 快速开始
🧪 运行测试
测试覆盖
Benchmark 结果摘要
�️ 可视化管理界面(Dashboard)
AgentMem 提供基于 FastAPI + Chart.js 的可视化管理界面,适合比赛现场演示:
浏览器打开
http://127.0.0.1:8000即可访问。环境变量AGENTMEM_BACKEND/AGENTMEM_GPU_BLOCKS/AGENTMEM_CPU_BLOCKS可调整引擎参数。� 项目结构
📚 文档
🏗️ 设计哲学
AgentMem 采用插件式架构,作为独立 Python 包通过 vLLM 的
Scheduler/BlockManager接口注入,核心改动全部位于agentmem/目录下,最小化对 vLLM 核心的侵入(对应风险 R1 应对策略)。📄 许可证
MIT License — 见 LICENSE。
👥 团队