llama.cpp 分支实现无损 prompt 去重,重场景省下数万 token
Odd_Cauliflower_8004 · reddit · 2026-09-26
一位开发者发布了一个针对 agent 循环常见成本问题的 llama.cpp 分支:同一段大内容被反复发送——文件十轮后重读、工具返回相同输出——每个副本都占着上下文并消耗 prefill 计算。
- 实现方式:在 llama-server 的 chat parser 中加一道处理,当后一条消息与前一条同角色、超阈值的消息字节级完全相同时,后者的副本替换为一行引用(注明与第 #3 个工具结果相同、自那时未变),首次出现永远保留全文
- 默认关闭,关闭时渲染结果与上游逐字节一致;无状态且确定,早期轮次每次渲染相同,prompt cache 持续命中
- 可配置:--message-dedup 开启,--message-dedup-min-bytes 和 --message-dedup-roles 调参,也支持单请求级 messagededup 字段;响应计时里报告 dedupn、dedupbytessaved、deduptokenssavedest
- 配套 15 个合成 agent 场景的 eval 套件,开关各跑两轮:关时通过的场景开时也全部通过;重型场景 prompt 显著缩水,如 18,092→6,820 tokens、108,197→71,697 tokens
限制:只识别完全相同的重复,不识别近似重复;尚未实测端到端耗时,目前只统计 token 数。
「编程与Agent」频道最新
- Matt Pocock:课程最惊艳的不是 Agent,而是 DDD 领域驱动设计 — mattpocockuk · 2026-11-11
- AI 智能体日夜运转一个月,复现法国气象局 AROME 天气模型 — IgorCarron · 2026-11-11
- 让 AI 角色扮演「高执行力传奇玩家」,提示词的隐藏秘诀 — tokenbender · 2026-11-11
- Agent 验证不设截止时间等于没验证:一份防护设计准则 — Key-Register-1969 · 2026-11-11
- 免费开源课程:从零构建 Claude Code 克隆,8 文章 6 视频讲透 harness 工程 — blaizedsouza · 2026-11-11
- 百度开源文心 5.5 Flash Preview:连写 11 小时代码做出武侠游戏 — xiaohu · 2026-11-11