flowchart LR
A[Agent Runtime] --> B[Context DAG]
B --> C[Agent-aware Cache Controller]
C --> D[vLLM Adapter]
D --> E[GPU Hot Tier]
D --> F[CPU Warm Tier]
D --> G[Filesystem Cold Tier]
A --> H[Tool Artifact Store]
H --> B
快速开始
要求 Python 3.9 或更高版本。下面的 Windows 命令均在 PowerShell 中执行。
AgentMem
初赛作品材料
项目概述
AgentMem 是面向长生命周期智能体的分层 KV Cache、上下文和工具中间数据管理系统。 它使用不可变上下文 DAG 表示多轮对话与推理分支,通过引用计数和 Copy-on-Write 共享公共前缀;缓存控制器根据复用频率、分支扇出、活跃租约、重计算成本和数据语义, 在 GPU、CPU 与文件系统冷层之间管理 KV。大型工具输出保存在租户隔离的内容寻址 存储中,Prompt 只保留摘要和按需读取句柄。
最新验证状态
d70f097;两轮顺序相反且方向一致,正确性与工具协议均为 100%,判定PROMOTE_CURRENT_CANDIDATE证据版本与运行环境
d70f09713bcf826c8a3398f1a7113283e60e86b3和 source tree SHA-256dab9fc520af97eb5d7dc815cb6199f68211319cf8c19e0e6df33788a02a4a90f。154b4ccdd927c1785b27c2692bf6dd0db698ac7444ee0d9f91e9ac9b71774bd5; 该版本没有重新执行或声明新的 3B/7B 端到端 GPU 收益。主要证据:
stage10-local-7b-awq-probe本轮主要优化
on_new_request转发, 让请求标签、准入、完成回调和审计指标在 EngineCore 中形成闭环。Counter,避免重复全量扫描。Transfer-Encoding请求体并关闭连接,补充 keep-alive 与请求边界回归测试。store_threshold >= 2现在会在分配并缓存 物理 manager 之前被拒绝,避免首次调用报错后再次调用绕过校验;新增桩运行时测试覆盖 有界淘汰、保护块、语义排序、新请求转发、配置解析和 manager 复用。功能
typing-extensions只为 Python 3.9+ 上的 vLLM 适配器提供兼容类型标记。flowchart LR A[Agent Runtime] --> B[Context DAG] B --> C[Agent-aware Cache Controller] C --> D[vLLM Adapter] D --> E[GPU Hot Tier] D --> F[CPU Warm Tier] D --> G[Filesystem Cold Tier] A --> H[Tool Artifact Store] H --> B快速开始
要求 Python 3.9 或更高版本。下面的 Windows 命令均在 PowerShell 中执行。
1. 创建基础控制面与开发测试环境
.[dev]会安装 AgentMem、明确声明的typing-extensions运行依赖,以及pytest、pytest-cov。如果还要启用工具对象的可选 Zstandard 压缩,可将安装命令改为:本节只安装可直接在 Windows 上运行的控制面、无 GPU 演示和开发测试环境,不会 安装 vLLM、CUDA、模型权重或完整 GPU 数据面。真实模型推理由后文的 vLLM Docker 容器提供,不要在 Windows 虚拟环境中额外执行
pip install vllm。如果命令行同时显示
(.venv) (base),表示 Conda 基础环境与项目虚拟环境同时激活; 只要Get-Command python指向项目的.venv\Scripts\python.exe就可以继续运行。2. 运行无 GPU 演示
该命令不会下载模型,也不需要 GPU。它会演示会话、上下文 DAG、分支共享、缓存、工具 对象存储和生命周期回收。
3. 运行测试与模拟 Benchmark
结果写入
my-test-results\results.json和my-test-results\report.md。复现 20 轮、8 分支压力测试时,为避免覆盖仓库证据,请使用单独目录:4. 启动离线控制面
第一个 PowerShell 窗口运行:
--simulation-tokenizer表示只验证 AgentMem 控制面,不连接真实模型。第二个 PowerShell 窗口检查服务:创建测试会话:
返回
session_id和branch_id即表示创建成功。PowerShell 默认把复杂的cache字段显示成@{...},这不是错误;使用ConvertTo-Json -Depth 10可以展开查看。第一阶段:Qwen 3B AWQ
环境与模型
真实模型运行需要 NVIDIA 驱动、支持 GPU 的 Docker Desktop/WSL2 和本地模型文件。 当前 Windows 配置默认使用:
运行前检查:
Test-Path必须返回True。文档中的其他盘符只是示例,不能直接复制不存在的路径。1. 启动 vLLM 数据面
如果离线控制面仍在运行,可以先保留;vLLM 使用端口 8000,不会与控制面的 8080 冲突。执行:
模型位于默认目录时也可以省略
-ModelPath。查看容器和模型加载日志:日志查看窗口按
Ctrl+C不会停止容器。模型加载完成后检查:返回 HTTP 200 表示 vLLM 已就绪。
2. 启动真实 AgentMem 控制面
如果之前启动了带
--simulation-tokenizer的控制面,先在对应窗口按Ctrl+C,避免 端口 8080 被占用。然后运行:真实模型模式不要添加
--simulation-tokenizer。3. 执行完整验收
在另一个已激活
.venv的 PowerShell 窗口运行:脚本验证 Qwen 非流式与 SSE 流式 Chat API、AgentMem 控制面、真实生成和回答回写。 固定环境、权重哈希和实测指标见第一阶段实测报告。
4. 停止服务
AgentMem 窗口按
Ctrl+C,然后停止 vLLM:常见问题:
Model directory does not exist:-ModelPath指向了不存在的示例目录;先用Test-Path检查,并改为真实模型目录。Address already in use:已有进程占用 8080;先停止之前的模拟控制面。docker logs -f agentmem-vllm查看模型加载或显存错误。真实配置与正交消融
仓库保留
native、prefix、prefix-offload、agentmem四个核心固定配置,并新增lru-artifact、agent-inline两个正交附加配置。模型、缓存、KV 冷层和结果默认都放在D:\AgentMem:单独运行“LRU/Agent-aware × 工具内联/外置”四格消融:
prefix-offload使用受限的 1GB CPU KV 层;完整agentmem额外将D:\AgentMem\kv-cache作为文件系统冷层,并启用工具结果外置和 Agent-aware 策略。配置、真实日志证据和四组结果见第二至第四阶段报告。第五至第七阶段默认使用更适合本机的 Qwen2.5 1.5B AWQ,并执行每组预热 5 次、正式重复 3 次的公平实验。下载校验、7B 服务器限制、完整指标和原始结果见第五至第七阶段实测报告。
第八至第十阶段增加真实
tool_calls/read_artifact闭环、120 请求并发矩阵、置信区间、 冷层回读压力、完整请求复用准入和 7B 服务器矩阵。3B 已完成本地真实机制探针与两轮 顺序平衡性能 A/B;7B 已形成服务器四轮矩阵和独立的本地受限机制探针,但只有 能耗/任务约 0.90% 的配对改善可以作为稳定正向加分项。详见 第八至第十阶段实施与实测报告、 3B V4 机制结果和 7B 矩阵分析。vLLM 集成
AgentMem 不重复实现 vLLM 已有的 CUDA KV 搬运内核。控制面负责智能体生命周期、 稳定上下文和工具外置;
AgentMemTieringOffloadingSpec实现 vLLM 0.23 的物理CachePolicy接口,根据跨请求复用、活跃请求、分支扇出、语义提示和前缀位置选择 CPU KV 淘汰块。冷层淘汰使用有界衰减 ghost history,回读时恢复长期价值而不恢复过期 租约。prefix-offload继续使用 LRU,作为严格物理消融基线。当前物理语义提示是请求级标量,并非逐物理块标签;自定义策略作用于 CPU offload 主层, 不替换 GPU block allocator。块级语义映射只有在 vLLM 块顺序、工具模板和 KV Group 均可 验证时才适合启用,因此当前结果不得据此宣称 GPU 侧语义淘汰收益。
可通过以下代码生成完整 AgentMem 启动参数;运行进程必须能通过
PYTHONPATH导入 本项目的src目录:真实 Benchmark 示例:
文档
当前边界
本仓库实现的是可运行的 AgentMem 控制面、工具对象存储和 vLLM 0.23 物理策略适配器。 当前 3B GPU 主结果 E1 已由相反顺序的两轮 A/B、正确性门禁和原始结果支撑,并绑定 commit
d70f097。它只适用于报告所列 RTX 5060 Laptop GPU 8GB、 Qwen2.5-3B-Instruct-AWQ、固定容量和任务集,不能外推到其他模型、硬件或生产负载。 后续控制面与淘汰热路径优化属于 E3/E4 工程证据,尚未用最新源码重跑端到端 GPU A/B。物理 Agent-aware 策略作用于 vLLM CPU offload 主层,不替换 GPU block allocator。 固定 GPU blocks 条件下两组 GPU 峰值相同,因此项目不宣称已经直接降低 GPU 显存。 本轮控制面微基准和 CPU 模拟压力结果也不能替代真实模型端到端 A/B。
7B 服务器矩阵可以陈述 16/16 子运行正确和能耗/任务配对均值降低约 0.90%,能耗 95% CI 为 +0.36%~+1.75%;但 P95 与吞吐区间跨 0,且两臂文件冷层配置不完全对称, GPU 峰值没有下降。本地 8GB 7B 独立分支只证明受限配置下的真实复用机制。
3B A/B 中,AgentMem 控制面、任务驱动和证据采集位于 openEuler 容器,GPU 推理由独立 vLLM 容器提供,宿主为 Windows 11 + Docker Desktop/WSL2。因此可以陈述 openEuler 控制面集成验证完成,但不能表述为“原生 openEuler GPU 正式 A/B 已完成”。
演示视频
若项目中的演示视频不能查看,请到百度网盘下载观看。 通过网盘分享的文件:演示视频.mp4 链接: https://pan.baidu.com/s/1fv5rfBpuYEFGRWXyKZ2NfQ?pwd=1wbc 提取码: 1wbc
License
MIT