展示 HN: MemStitch - 无复制上下文桥接用于 vLLM (25 倍 TTFT 提速)
上下文拼接器 🪡 无复制上下文桥接网关,用于多智能体 GPU 推理。💡 核心价值主张 在多智能体协作工作流中,单独的智能体通常会顺序处理相同的长文本上下文。例如:智能体 A(法律审计员):阅读一份 200 页的合同并进行合规分析(填充 GPU KV 缓存)。智能体 B(财务合规):阅读同一份 200 页的合同并审计财务责任。在标准推理引擎下,智能体 B 被迫重复昂贵的预填充阶段,重复 GPU 激活,并遭受高达首次令牌(TTFT)延迟。上下文拼接器通过在内存级别桥接缓存解决了这一问题:上下文拓扑哈希:将提示分段为物理块大小,并映射到加密指纹(默克尔链)。无复制块拼接:通过将智能体 B 的逻辑注意力表直接映射到智能体 A 的缓存块的物理 GPU 内存地址,绕过匹配前缀的预填充。零信任安全网关:强制边界控制列表,以防未授权的智能体会话访问共享物理块。📊 性能概况 以下是上下文拼接器与标准 vLLM 冷预填充在执行连续的智能体处理共享 200 页文档时的基准分析:⚡ TTFT 预填充延迟(智能体 B 响应时间)——越低越好 基线(vLLM 冷):████████████████████████████████ 1200 毫秒 上下文拼接器:█ 48 毫秒(25.0 倍预填充提速!🚀)💾 分配的 GPU 物理缓存块(总 VRAM)——越低越好 基线(vLLM 冷):████████████████████████████████ 53 块(无共享) 上下文拼接器:███████████████ 30 块(节省 43.4% 的内存!📉)⚙️ 安装和快速开始 1. 安装依赖 pip install -r requirements.txt 2. 启动网关和仪表盘 python run.py 启动后,网关路由在 http://localhost:8000 上激活:API 代理网关:http://localhost:8000/v1/chat/completions 实时开发者控制台:在您的网络浏览器中打开 http://localhost:8000。🖥️ 可视化开发者门户 上下文拼接器包含一个响应式开发者门户,以实时监控物理缓存块状态(空闲、私人分配、共享/拼接页面、安全警报)。🛠️ 客户端集成与使用指南 上下文拼接器支持 Python SDK 装饰器和 OpenAI 兼容 REST API,用于跨应用集成:模式 A:Python SDK 装饰器(用于基于 Python 的智能体编排)如果您的智能体管道是用 Python 编写的,您可以利用 StitcherMesh 和 @stitch_agent 装饰器链接上下文内存:from context_stitcher import StitcherMesh , stitch_agent # 1. 初始化指针共享推理控制网(参考:vLLM) mesh = StitcherMesh ( backend = "vllm" , model = "meta-llama/Llama-3.1-8B-Instruct" ) # 配置安全网关策略:允许智能体 B 读取智能体 A 的 KV 缓存块 mesh . sg . add_policy ( "agent_a" , "agent_b" ) # 2. 装饰您的智能体工作流程 @ stitch_agent ( mesh ) def agent_a (): prompt = "[长文档上下文...] \n 分析知识产权条款。" # 首次执行:填充缓存并注册拓扑哈希 res = mesh . generate ( prompt = prompt , fingerprint = "legal_doc_v1" ) return "legal_doc_v1" @ stitch_agent ( mesh ) def agent_b ( context_fingerprint ): prompt = "[长文档上下文...] \n 评估财务合规风险。" # 后续执行:自动拼接块,绕过预填充阶段 res = mesh . generate ( prompt = prompt , fingerprint = context_fingerprint ) print ( f"智能体 B 响应:{ res [ 'generated_text' ] } " ) print ( f"节省的时间:{ res [ 'prefill_time_saved_ms' ] } 毫秒" ) 模式 B:OpenAI 兼容 REST API(用于多语言客户端、Dify或Flowise)网关暴露标准 OpenAI 端点。将您的 LLM 客户端基础 URL 指向上下文拼接器以激活共享。 1. Python OpenAI SDK 客户端:from openai import OpenAI # 直接客户端指向上下文拼接器代理网关 client = OpenAI ( base_url = "http://localhost:8000/v1" , api_key = "不需要" ) # 发送标准完成请求,内部带有 agent_id 元数据 response = client . chat . completions . create ( model = "context-stitcher-sim" , messages = [ { "role" : "user" , "content" : "[长文档上下文...] \n 评估合规风险。" } ], extra_body = { "agent_id" : "AgentB" , # 标识请求的智能体 "session_id" : "session_legal_audit" # 标识共享会话缓存 } ) print ( "生成的输出:" , response . choices [ 0 ]. message . content ) 2. 原始 HTTP cURL 请求:curl -X POST http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d ' { "model": "context-stitcher-sim", "messages": [ {"role": "user", "content": "[长文档上下文...]\n评估合规风险。"} ], "agent_id": "AgentB", "session_id": "session_legal_audit" } ' 模式 C:通过 API 控制安全规则(零信任)
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡