news 2026/8/23 12:21:49

为什么Whale这么便宜?深挖提示缓存命中率与1M上下文下的Token成本控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么Whale这么便宜?深挖提示缓存命中率与1M上下文下的Token成本控制

为什么Whale这么便宜?深挖提示缓存命中率与1M上下文下的Token成本控制

【免费下载链接】WhaleWhale — blazingly fast, terminal-first AI coding agent for DeepSeek. ~98% prompt cache hit rate, 1M context, MCP tools, dynamic workflows.项目地址: https://gitcode.com/gh_mirrors/de/Whale

Whale 是一款面向 DeepSeek 的终端 AI 编程代理(terminal AI coding agent),官方标称其提示缓存命中率(prompt cache hit rate)高达 ~98%,配合 1M 级长上下文,让每次会话的 Token 成本降到"几分钱"量级。本文带你拆解它为什么便宜:缓存命中率的背后机制、1M 上下文的成本控制策略,以及你可以直接上手验证的方法。

Whale 的交互式 TUI 界面:底部状态栏实时展示模型、思考强度等运行信息(深色主题)


💰 一、为什么Whale这么便宜?答案:提示缓存命中率

理解"便宜"之前,先搞清楚一个概念:大模型 API 对"命中缓存"的输入 Token 收费远低于"未命中缓存"的 Token

DeepSeek 的计价规则正是如此——同一份前缀内容如果在短时间内重复请求,第二次开始大部分输入都按"缓存命中"的低价计费。也就是说:

成本 ≈ 未命中 Token × 高价 + 命中 Token × 低价

Whale 把命中比例做到了约 98%,意味着几乎整条对话历史每次请求都只付"缓存价"。它的计费模块会把每次响应里的cached_tokens(缓存命中 Token)单独解析出来,再按"命中/未命中"分别计价:

  • 缓存命中 Token 的解析:responses.go
  • 命中/未命中分别计价、以及"省了多少钱"的估算:stats.go

这正是它敢在首页打出prompt cache-98%徽章的原因——省的不是小数目,是每次请求整段前缀的差价


🧩 二、98%缓存命中率背后的三个设计细节

缓存命中的前提是:两次请求的输入前缀必须逐字节一致。任何一点点变化(时间戳、随机顺序、动态段落)都会让缓存"失效"。Whale 围绕这一点做了刻意设计。

1. 字节级稳定的系统提示词

系统提示词是每条消息最前缀、最长也最"贵"的部分。Whale 在生成系统提示词时明确要求输出字节稳定(byte-stable),避免把会变化的内容混进前缀。相关约束可以在 system_prompt.go 中看到注释说明:"this output is byte-stable and does not affect prompt cache"。

2. 稳定的工具集与"历史整形"

工具定义(tool schema)同样占据前缀。Whale 会维护一个缓存形状分析器,对系统段、工具段、历史消息分别计算哈希与字节数,把历史拆成"头部(可整体缓存)+ 尾部 8 条(活跃区)",保证绝大部分内容前缀跨请求不变:

  • 缓存形状分析与前后缀划分:cache_shape.go
  • 缓存形状是否跨请求稳定的回归测试:cache_shape_test.go

3. 上下文压缩按 Token 数触发,而非按成本

一个反直觉的设计值得注意:Whale 的自动压缩(auto-compact)按Token 占用而非花费触发。原因是"缓存命中的前缀虽然几乎免费,但仍然占用上下文窗口"——长会话必须照常压缩,否则 1M 窗口会被撑爆。这个取舍在 configuration.en.md 中有明确说明。


📏 三、1M上下文下的Token成本控制方法

Whale 默认面向 DeepSeek 的 1M Token 长上下文构建,"长上下文 + 高缓存命中"才是低成本的关键组合。你可以通过以下方式控制成本:

手段说明相关位置
自动压缩阈值环境变量WHALE_COMPACT_THRESHOLD设定触发压缩的窗口占比(如0.85),防止上下文无限膨胀compact.go
窗口感知上下文窗口由模型属性推导,可在 whale-acp 等入口按需覆盖main.go
费用统计会话内即可查看命中量、未命中量与节省金额,成本透明usage_log.go

📌实用建议

  1. 保持会话连续:同一任务尽量在一个会话内完成,前缀缓存才能持续命中;
  2. 别频繁切换模型/工具配置:前缀变化会击穿缓存;
  3. 长任务依赖自动压缩:把阈值留在默认值附近,让 1M 窗口"装得多、花得少"。

同一会话在浅色主题下的效果:Agent 连续执行 git add / commit / push,多轮工具调用全部复用同一份缓存前缀


🚀 四、上手验证:三步看到真实命中率

# 1. 安装 npm install -g @usewhale/whale # 2. 配置 DeepSeek API Key whale setup # 3. 启动交互式会话 whale

安装脚本见 install.sh,完整配置项参考 configuration.md。会话中进行几轮工具调用后,通过统计面板查看本次会话的缓存命中比例与费用构成——你会直观看到"98%"意味着什么。


✅ 小结

关键点一句话总结
便宜的核心提示缓存命中率 ~98%,绝大多数输入 Token 按缓存低价计费
命中的前提系统提示词、工具集、历史前缀逐字节稳定
长上下文策略按 Token 数触发自动压缩,1M 窗口不浪费、不爆窗
成本可见性命中/未命中分开统计,节省金额可量化

Whale 用"DeepSeek 原生 + 缓存优先"的设计证明了一件事:AI 编程 Agent 的成本,不取决于你用了多少上下文,而取决于你复用了多少上下文

【免费下载链接】WhaleWhale — blazingly fast, terminal-first AI coding agent for DeepSeek. ~98% prompt cache hit rate, 1M context, MCP tools, dynamic workflows.项目地址: https://gitcode.com/gh_mirrors/de/Whale

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 12:21:29

概率模型:从核心概念到蒙特卡洛与贝叶斯实战应用

1. 从确定性到不确定性:为什么概率模型是建模的“另一只眼睛” 在数学建模的早期阶段,我们接触的大多是确定性模型。比如,用微分方程描述种群增长,用线性规划求解最优运输方案。这些模型有一个共同点:给定输入&#xf…

作者头像 李华
网站建设 2026/8/23 12:20:25

ProperTree:一款让 OpenCore 配置不再靠猜的 GUI plist 编辑器

ProperTree:一款让 OpenCore 配置不再靠猜的 GUI plist 编辑器 【免费下载链接】ProperTree Cross platform GUI plist editor written in python. 项目地址: https://gitcode.com/gh_mirrors/pr/ProperTree 第一次改 OpenCore 的 config.plist,我…

作者头像 李华
网站建设 2026/8/23 12:19:22

从数学建模到工程实践:高速列车操纵策略优化全解析

1. 项目概述:从一道赛题到工业级优化思维的实战 去年带队参加亚太赛,B题“高速列车的优化设计”一出来,我们团队就意识到,这绝不仅仅是一道数学建模题,而是一个高度凝练的、面向真实工程问题的优化沙盘。它把我们从课本…

作者头像 李华
网站建设 2026/8/23 12:19:19

Agent技术面试指南:核心架构与实战解析

1. 为什么Agent技术成为面试新宠? 最近两年,无论是硅谷巨头还是国内一线大厂,技术岗面试中关于Agent的提问频率明显攀升。上周我刚面完某AI Lab的Senior岗位,三轮技术面中有两轮都涉及多Agent系统设计。这背后反映的是行业正在发生…

作者头像 李华
网站建设 2026/8/23 12:18:46

以太坊弃用波塞冬哈希:从技术路线修正看公链工程化演进

最近在社区里看到不少关于以太坊“弃用波塞冬哈希”的讨论,很多朋友的第一反应是“我的ETH是不是不安全了?”或者“这会不会影响质押收益?”。这种担忧很自然,毕竟“哈希算法”和“量子计算”听起来就充满了技术黑盒和未来不确定性…

作者头像 李华