<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Token on Code Plato</title><link>https://CodePlato3721.github.io/zh/tags/token/</link><description>Recent content in Token on Code Plato</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sat, 06 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://CodePlato3721.github.io/zh/tags/token/index.xml" rel="self" type="application/rss+xml"/><item><title>Tokenmaxxing的排行榜应该反着看</title><link>https://CodePlato3721.github.io/zh/post/tokenmaxxing%E7%9A%84%E6%8E%92%E8%A1%8C%E6%A6%9C%E5%BA%94%E8%AF%A5%E5%8F%8D%E7%9D%80%E7%9C%8B/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/tokenmaxxing%E7%9A%84%E6%8E%92%E8%A1%8C%E6%A6%9C%E5%BA%94%E8%AF%A5%E5%8F%8D%E7%9D%80%E7%9C%8B/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/06/why-the-tokenmaxxing-leaderboard-might-be-backwards/banner.png" alt="Featured image of post Tokenmaxxing的排行榜应该反着看" /&gt;&lt;p&gt;嗯，我承认这个标题有点夸张了。当你把不用 AI 写代码的人排除掉之后，确实有可能出现一种情况：Token 使用量更少的人，反而生产效率更高。我讲一个故事，你们可能就开始有点理解了。&lt;/p&gt;
&lt;h2 id="一个真实的故事"&gt;一个真实的故事
&lt;/h2&gt;&lt;p&gt;在软件发展的早期，也就是 60 年代到 80 年代，曾经流行过一个公式：LOC，全称 Lines of Code per Man-Month。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Productivity = LOC / MM
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;简单来说，就是按程序员写出的代码行数来衡量工作效率。今天听起来很荒谬，但在那个时代，这确实是一种被广泛使用的指标。然后它引发了一些很有趣的现象。比如程序员宁愿自己手搓代码，也不愿意导入公共库，因为导入库不会增加代码行数。&lt;/p&gt;
&lt;p&gt;Bill Gates 曾经说过一句很经典的话（他真的说过）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;用代码行数衡量软件开发进度，就像用飞机重量衡量造飞机进度一样。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果把 LOC 换算成 TOC（Tokens of Code），放到今天，其实就是用 Token 消耗量来衡量一个人的工作效率。&lt;/p&gt;
&lt;h2 id="上下文的困境"&gt;上下文的困境
&lt;/h2&gt;&lt;p&gt;看到这里，你可能会觉得：&amp;ldquo;嗯，这个类比我也能想到。但用了 Token 说明用了 AI，而 AI 确实比人写代码快啊。&amp;ldquo;真的吗？接下来我要说的是一些很多老板并不知道的事情。首先，我们现在说的 AI 并不是真的 AGI，而是 LLM。很多人天天在用 LLM，但其实并不理解它的工作原理。&lt;/p&gt;
&lt;p&gt;你有没有对 LLM 的&amp;quot;记忆能力&amp;quot;感到困惑过？为什么我用一个 Chat App 和 LLM 聊天，它会记住我？为什么我在一个聊天窗口里说过的事情，换一个聊天窗口它就不记得了？LLM 究竟怎么判断要记住多少事情？LLM 真的有记忆吗？&lt;/p&gt;
&lt;h3 id="上下文困境"&gt;上下文困境
&lt;/h3&gt;&lt;h4 id="llm-记忆原理"&gt;LLM 记忆原理
&lt;/h4&gt;&lt;p&gt;这件事情的原理其实非常简单。一个纯 LLM 模型是完全没有记忆的。对它来说，每一次请求都是全新的开始。那为什么我们用 Chat App 的时候，它看起来又认识我们呢？因为 Chat App 自己把你和模型之间的对话保存了下来，然后在每次提问时重新拼接进 Prompt 里。换句话说，它手搓了一个记忆系统。&lt;/p&gt;
&lt;p&gt;哪怕你只是对 AI 说一句简单的&amp;quot;你好&amp;rdquo;，在 App 内部实际上也可能会被拼接成这样：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;你是一个名叫 XX 的 AI 助手。用户的名字叫 XXXXX。他喜欢 blah blah blah。你现在根据他说的信息进行回复。以下是用户输入：你好。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;所以模型知道你是谁，也知道你的偏好。没有魔法，就是这么简单。&lt;/p&gt;
&lt;h4 id="session-记忆"&gt;Session 记忆
&lt;/h4&gt;&lt;p&gt;那为什么我们在一个 Chat 里聊过的事情，换一个 Chat 模型就不记得了呢？在 LLM 应用领域里，Chat 更专业的叫法其实是 Session。因为记忆系统通常分成两个层级：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App 级别记忆&lt;/li&gt;
&lt;li&gt;Session 级别记忆&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Session 级别记录的内容更细，但它并不是全局共享的。听到这里，你可能会想：&amp;ldquo;那为什么不把所有事情都记住呢？&amp;ldquo;答案很简单，因为 LLM 可以接受的上下文长度是有限的。如果你尝试让它记住所有事情，那么上下文很快就会爆掉。所以 Session 的存在是必要的。&lt;/p&gt;
&lt;p&gt;但新的问题又来了。即便分了 Session，当一个 Session 持续很长时间后，上下文依然会变得越来越长。那该怎么办？&lt;/p&gt;
&lt;h4 id="上下文压缩"&gt;上下文压缩
&lt;/h4&gt;&lt;p&gt;于是人们想出了一个办法：压缩上下文。这个过程其实非常朴素，就是把大量历史内容总结成几句摘要。毕竟大部分记忆并没有那么重要。&lt;/p&gt;
&lt;p&gt;这件事情放在聊天记录上通常没有什么问题，但放到写代码场景里问题就比较大了。你可能曾经明确告诉模型&amp;quot;不要这样做&amp;rdquo;，结果很多轮对话之后，它突然又开始干同样的蠢事。原因往往不是模型故意犯傻，而是你触发了上下文压缩，那些它认为不重要的细节，被压缩过程丢掉了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="上下文压缩示意图" class="gallery-image" data-flex-basis="360px" data-flex-grow="150" height="1024" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/06/why-the-tokenmaxxing-leaderboard-might-be-backwards/01.png" srcset="https://CodePlato3721.github.io/01_4878265236278025876_hu_a63077c40d9d5291.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/06/why-the-tokenmaxxing-leaderboard-might-be-backwards/01.png 1536w" width="1536"&gt;&lt;/p&gt;
&lt;h4 id="注意力稀释"&gt;注意力稀释
&lt;/h4&gt;&lt;p&gt;当上下文过长的时候，问题还不仅仅是达到上限，更大的问题是注意力稀释。上下文越长，模型需要关注的信息就越多，于是它可能开始关注一些无关紧要的内容，同时忽略真正重要的信息。&lt;/p&gt;
&lt;p&gt;这其实和人很像。如果你在阅读一篇又长又枯燥的论文，你的注意力往往会逐渐分散，到最后甚至不知道论文到底在讲什么。很多时候，还不如先看一份大纲，再针对自己感兴趣的部分深入阅读。模型也存在类似的问题，这就是所谓的 Attention Dilution（注意力稀释）。因此，一个超长上下文并不会让模型工作得更好，很多时候，它反而会产出质量更差的代码。&lt;/p&gt;
&lt;p&gt;&lt;img alt="注意力稀释示意图" class="gallery-image" data-flex-basis="360px" data-flex-grow="150" height="1024" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/06/why-the-tokenmaxxing-leaderboard-might-be-backwards/02.png" srcset="https://CodePlato3721.github.io/02_4709693984729583449_hu_4e21ffdbe57b49f9.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/06/why-the-tokenmaxxing-leaderboard-might-be-backwards/02.png 1536w" width="1536"&gt;&lt;/p&gt;
&lt;h3 id="tokenmaxxing-排行榜的问题"&gt;Tokenmaxxing 排行榜的问题
&lt;/h3&gt;&lt;p&gt;我用的是 Claude 的包月套餐。有一次我让模型总结 10 个并不算长的 Markdown 文档，结果居然遇到了&amp;quot;达到 1M 上下文上限&amp;quot;的错误。系统提示我必须购买 API Token，才能继续使用超过 1M 的上下文。我当时非常震惊，因为那 10 个文档按字数加起来，肯定远远不到 1M。天知道 Claude 客户端到底给我塞了多少前置上下文。&lt;/p&gt;
&lt;h4 id="怎样拿到排行榜的高名次"&gt;怎样拿到排行榜的高名次
&lt;/h4&gt;&lt;p&gt;回到文章主题。当一个人想冲 Tokenmaxxing 排行榜的时候，他会怎么做？其实很简单：不停加载大文档，或者不断提出特别宽泛的问题。这样模型的上下文一定会疯狂增长，上下文增长之后，Token 消耗自然也会跟着暴涨。&lt;/p&gt;
&lt;p&gt;但最大的问题其实并不是 Token 费用。当上下文越来越长时：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模型思考速度会明显下降；&lt;/li&gt;
&lt;li&gt;注意力分散导致代码质量下降；&lt;/li&gt;
&lt;li&gt;上下文压缩导致最佳实践逐渐丢失；&lt;/li&gt;
&lt;li&gt;模型开始重复犯同样的错误。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;代码质量下降之后，Bug 数量增加；Bug 增加之后，又要消耗更多 Token 去修复。于是形成一个对员工有利、对公司有害的循环：&lt;/p&gt;
&lt;p&gt;上下文越来越长 → Token 越来越多 → 代码越来越差 → Bug 越来越多 → Token 消耗继续增加。&lt;/p&gt;
&lt;h4 id="怎样拿到排行榜的低名次"&gt;怎样拿到排行榜的低名次
&lt;/h4&gt;&lt;p&gt;我现在几乎 100% 的代码都是 Claude Code 生成的。但这并不意味着：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;我写代码特别快；&lt;/li&gt;
&lt;li&gt;我不知道 Claude Code 在写什么。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;恰恰相反，和很多 AI 编程用户相比，我的速度甚至算比较慢的。&lt;/p&gt;
&lt;p&gt;我曾经把一个使用 Streamlit 作为前端的 Python 项目，重构成了&amp;quot;Python 后端 + React 前端&amp;quot;的架构。如果让 Claude Code 一次性完成，大概十几分钟就能跑出来，但我花了三天。&lt;/p&gt;
&lt;p&gt;原因有两个。第一，其中很多技术我自己也不熟悉。有了 Claude Code 之后，我敢使用以前没有接触过的技术栈，而不用担心项目彻底失控或者时间线无限拉长。我可以一边开发，一边学习。第二，我把任务拆得非常细。我会逐行阅读它生成的代码，不断重构，不断调整规则，再让 Claude Code 记住这些新的最佳实践。除此之外，我还使用了很多别的方法。这些方法太多了，不可能在一篇文章里全部讲完，我会在后续文章里慢慢展开。&lt;/p&gt;
&lt;p&gt;最终，我写出了一个代码相当简洁、相当优雅的项目。虽然用了三天时间，但我有信心它在未来很长一段时间里的 Bug 数量都会比较低。更重要的是，如果没有模型帮忙，其中很多技术我根本不会，我可能需要一个月才能完成。从一个月缩短到三天，我已经非常满意了。&lt;/p&gt;
&lt;p&gt;随着我使用 Claude Code 经验的积累，我从最开始每周都把 Weekly Usage 用满，到现在一周只使用大约 25%。我敢说，我做出来的东西，可能超过很多人花 1000 美元 API 费用才能做出来的成果。这还没有计算未来因为 Bug 减少而节省下来的维护成本。&lt;/p&gt;
&lt;p&gt;那么如果放到 Tokenmaxxing 排行榜里，我能排第几名呢？我猜大概是倒数吧。&lt;/p&gt;
&lt;h2 id="结论"&gt;结论
&lt;/h2&gt;&lt;p&gt;当然，这并不能说明排行榜前几名的人一定是在投机。但它至少说明了一件事：Token 使用量并不能衡量生产效率，甚至有可能损害公司的工程文化。&lt;/p&gt;
&lt;p&gt;更长的上下文会让模型思考得更久，有时候甚至长达几十分钟。我还听说过一些案例，一个问题能让模型连续工作几个小时。而在如此低效率的情况下，它最终产出的代码质量却未必更高。&lt;/p&gt;
&lt;p&gt;你以为自己节省了时间，实际上只是把维护成本预支到了未来。在你发现这些问题之前，它已经开始损害你的产品质量，损害用户对产品的信任。和这些长期成本相比，浪费掉的 Token 钱反而是最不严重的问题。&lt;/p&gt;</description></item></channel></rss>