Claude Code 为什么还没读提示词就烧掉 33k tokens?从 OpenCode 对比看编码 Agent 成本治理

如果你最近觉得 Claude Code 的用量表涨得比预期快,先别急着怀疑模型涨价。 更可能的原因是:你付费的不只是“那一句 prompt”,而是一整套 Agent harness 的启动成本。 这两天 HN 上有一篇很值得看但也很容易被误读的文章。Systima 把 Claude Code 和 OpenCode 放在同一台机器、同一个模型、同类任务下,在 API 边界抓取请求与返回的 usage block,结论很刺眼:在一个只要求回答 OK 的最小任务里,Claude Code 在真正读取用户提示词之前,已经带上大约 33,000 tokens 的系统提示、工具 schema 和注入脚手架;OpenCode 大约是 7,000 tokens。换成 Claude Fable 5 后差距会收窄到约 3.3 倍,但方向没变。 我不想把这篇写成“Claude Code 不行、OpenCode 真香”的二元对立。坦白说,这样读反而会错过真正有工程价值的部分。 真正的问题是:编码 Agent 的成本,正在从模型单价问题,变成上下文装配问题。 Systima 的原文把 Claude Code 和 OpenCode 称为两个 harness。这个词很关键。模型只是发动机,harness 才是把仓库、终端、文件系统、MCP、权限、子 Agent、记忆、hooks、通知、后台任务塞进一次请求里的“车架”。你看到的聊天框是一句话,模型看到的可能是一辆满载卡车。 用人话说就是:你以为自己在问“帮我改个 bug”,但系统实际先递给模型一份厚厚的公司制度、工具手册、权限说明、项目记忆、外部系统目录,然后才轮到你的 bug 描述。 33k tokens 从哪里来? Systima 的测法并不复杂:清空配置目录,不开 MCP,不加载用户设置和 memory,用空 workspace 跑三类任务。第一类任务最极端,只要求返回固定字符串。这样做的好处是把“任务本身的复杂度”剥掉,专门看工具启动时的固定负担。 ...

July 13, 2026 · 3 min · Hypho

Flint Chart 解决了 AI Agent 画图最难的一公里吗?

如果你让一个 Agent 帮你分析 CSV,最容易翻车的地方往往不是 SQL,也不是统计口径,而是最后那张图。 模型可以很自信地吐出一大段 Vega-Lite、ECharts 或 Chart.js 配置;第一次看像那么回事,真正渲染出来却经常出现标签重叠、坐标轴选择离谱、颜色语义混乱,或者更糟:配置本身就不合法。坦白说,我以前一直把这类问题归因于“模型还不够聪明”。但 Microsoft Flint Chart 给出的判断更有意思:问题可能不只在模型,而在我们让模型直接操纵的可视化语言太底层了。 Flint 的做法是把图表生成拆成两层。Agent 不再直接写几百行低层配置,而是写一个更紧凑的语义化规格:数据是什么、字段是什么语义类型、想要哪类图、哪些字段放到 x/y/color。然后 Flint 编译器再把这些高层意图转成 Vega-Lite、ECharts 或 Chart.js 的原生配置。HN 上这个项目的作者也把问题说得很直白:简单规格可靠但图不好看,复杂规格好看但 Agent 难以稳定生成,所以需要一个更适合 Agent 的中间语言。对应的 Show HN 讨论 在两天内拿到 300 多分,说明这不是一个小众痛点。 人话翻译一下:Flint 想把“画图审美和布局细节”从 LLM 的自由发挥里拿出来,交给一个可测试、可维护的编译器。 这件事为什么重要?因为数据可视化是 Agent 产品里非常典型的“最后一公里”。前面检索、清洗、聚合都做对了,最后输出一张难看的图,用户仍然会觉得系统不专业。更麻烦的是,图表错误不像代码报错那么直接。一个错位的柱状图、错误的时间轴、被截断的图例,可能不会触发任何异常,却会默默误导用户。 低层图表配置,本来就不适合让模型裸写 以 ECharts 或 Vega-Lite 为例,成熟库的能力很强,但配置面也很大。你要处理 mark 类型、scale、axis、legend、tooltip、label、layout、颜色、响应式尺寸、空值、字段类型、数据基数……这些东西对人类前端工程师都不轻松,更别说让一个通用 LLM 每次都稳定地一次写对。 Flint README 里的核心设计是“semantic chart specs”:它支持 70 多种语义类型,例如 Rank、Temperature、Price、Country,并根据数据基数、语义类型、图表类型和画布约束自动推导尺寸、间距、标签、图例等细节。这个方向我比较认可,因为它把 Agent 的任务缩小了:模型负责表达意图,系统负责补完形式。 这和编程语言里的编译器很像。你不会要求业务开发者每次手写汇编,也不希望 Agent 每次都从零手搓图表布局。一个好的中间层,价值不在“更酷”,而在减少自由度。 自由度少,系统才容易稳定。 Flint 当前仓库也不是只有一份概念文档。它包含 flint-chart TypeScript 库和 flint-chart-mcp MCP Server,可以把同一份输入编译到多个后端;仓库在 GitHub 上有接近千星、MIT License,最近提交就在 2026 年 7 月。按我的判断,这已经超过“白皮书项目”的阶段,属于可以实验接入的真实工程工具。不过它仍然很新,生产环境大规模使用前还需要自己压测和做视觉回归。 ...

July 10, 2026 · 2 min · Hypho

Rowboat 体验:本地优先的 AI 同事到底能不能替代 Claude Desktop?

你有没有这种感觉:每天打开 Claude Desktop,每次都是从零开始——它不记得你上周在哪个文件里改了什么,不记得你那个临时方案后来为什么废弃了,更不记得你在哪个项目里踩过同样的坑。 这不是 Claude 的问题。这是云端 AI 助手共同的架构限制:数据在服务器上,每次对话都是新的 session,你的工作记忆全靠把历史塞进上下文窗口。一旦项目大了、对话长了,上下文不够用,AI 就开始"失忆"。 Rowboat 想解决的就是这个。它是一个开源本地优先的 AI 工作搭档,最近在 HN 上拿到了 94 分,Stars 已经突破 15k。它的核心思路很简单:你的所有工作数据——邮件、会议、Slack、代码、AI 对话——全都留在你自己机器上,索引成本地知识图谱,AI 随时可以查询。 它实际上是怎么工作的 Rowboat 的架构分两层:记忆层和工作面。 记忆层的实现方式是持续扫描你授权的数据源(Google Workspace、Slack、本地文件等),把内容抽取后构建一个 Obsidian 风格的双链知识图谱。这个图谱是实时更新的——你开完一个会,Rowboat 会自动生成会议纪要并写入图谱;你收到一封重要邮件,它会用整幅工作上下文 draft 一封回复。 工作面则是 Rowboat 内置的那些工具:邮件客户端、浏览器(和主浏览器隔离)、代码模式(支持并行启动多个 Claude Code 或 Codex 实例)、会议记录、笔记。每一块都可以调用记忆层的上下文。 这里有一个工程上值得注意的设计:Rowboat 的 AI 并不是在本地跑模型。它是个调度层——对接 Claude、GPT、Gemini 等云端模型,但所有 prompt 里的上下文都来自本地知识图谱。换句话说:推理在云上,数据在自己机器上。 本地优先到底意味着什么 这个词现在被用烂了,但 Rowboat 的本地优先是实打实的工程选择,而不是营销话术。 大多数云端 AI 助手面临的问题是:你的数据要么被用来训练模型,要么至少在服务商服务器上留存。Claude Desktop 的上下文虽然是会话级的,但会话结束后的记忆并不在你控制之下。Anthropic 的企业方案有数据保留政策,个人版则完全取决于你对厂商的信任。 Rowboat 的本地优先意味着:你的邮件内容、会议纪要、Slack 对话——这些敏感数据从来不离开你的机器。Rowboat 服务器只同步元数据(如图谱结构),不同步原始内容。这对于需要处理客户数据、专有代码或内部信息的场景,差异是根本性的。 当然代价也有:本地索引意味着你换台机器,记忆不跟着走;没有云端同步,协作场景受限。另外 Rowboat 目前没有移动端,对经常在手机上也要求 AI 记住工作上下文的人不友好。 和现有方案的对比 如果你关注 AI 记忆层这个方向,HN 上另一个值得关注的项目是 Stash——它也做 AI 长期记忆,但路径不同:Stash 是一个独立的记忆基础设施,专注 8 阶段认知管道,适合想把记忆能力接入现有 Agent 系统的开发者。Rowboat 则是面向终端用户的完整产品,记忆是内置的,不需要你自己拼接。 ...

July 8, 2026 · 1 min · Hypho

Codex 推理 token 卡在 516?这类异常更该被当成 Agent 可靠性问题

如果一个编程 Agent 偶尔答错题,我不会太紧张;如果它总是在某几个固定的 reasoning token 数上“刹车”,那就不是普通失误了。 这两天 Hacker News 上有个很适合做工程复盘的讨论:GPT-5.5 Codex reasoning-token clustering may be leading to degraded performance。原帖指向 OpenAI Codex 仓库里的一个 issue:报告者分析了 Codex token_count 元数据,发现 GPT-5.5 的 reasoning_output_tokens 异常集中在 516,另外还有 1034、1552 这类固定边界;同时,复杂任务上的表现似乎变差。这个 issue 目前仍是 open 状态,不能把它当成 OpenAI 已确认的根因结论。但它暴露的问题非常真实:当 AI 编程助手进入生产工作流,模型内部“想了多久、在哪里停下、什么情况下短路”,会变成可靠性指标,而不是研究员才关心的细节。 我更愿意把它看成一个 Agent 可观测性案例,而不是“GPT-5.5 又翻车了”的新闻。 516 这个数字为什么值得警惕 先把事实边界说清楚。 在 OpenAI Codex issue #30364 中,报告者声称自己分析了 2026 年 2 月到 6 月的 Codex token 元数据,共 390,195 条 response-level token records、865 个 sessions。其中最刺眼的数据是:GPT-5.5 只占全部响应的 19.3%,却占了精确 reasoning_output_tokens = 516 事件的 82.0%;在 GPT-5.5 中,达到 516 及以上 reasoning token 的响应里,有 44.0% 精确停在 516。非 GPT-5.5 的对应比例只有 1.3%。 ...

July 6, 2026 · 3 min · Hypho

AI 生成代码该不该进开源仓库?Godot 争议背后的工程审查问题

AI 写的代码,到底能不能进开源仓库? 如果只把它当成一个道德问题,答案会很无聊:有人说 AI 是工具,不该歧视;有人说 AI 生成内容不可信,应该一刀切。可我更关心的是另一个更工程化的问题:当维护者看不出贡献者是否真正理解这段代码时,代码审查还成立吗? 这几天 Hacker News 上一条关于 Godot 的讨论冲到了几百 points:Godot will no longer accept AI-authored code contributions。原始报道来自 PC Gamer,标题里那句很刺耳:“We can’t trust heavy users of AI to understand their code enough to fix it”。 我不想把这篇写成“Godot 禁止 AI”的新闻复述。真正值得拆的是:Godot 这类大型开源项目为什么会把 AI 贡献视为维护风险,以及这个判断对企业内部使用 Claude Code、Copilot、Cursor、Codex 这类工具有什么启发。 Godot 真正担心的不是“用了 AI”,而是责任链断掉 先看事实。 Godot 主仓库当前的 PR 模板里已经写明:Use of AI must be disclosed and should include a description of how it was used。也就是说,它至少要求贡献者披露 AI 使用方式。与此同时,一个仍在讨论中的 PR 试图把模板改得更明确:新增 Author disclosure 小节,要求如果 PR 中有不是作者自己写的部分,或者使用了 AI,就具体说明 AI 被用于哪里。这个 PR 的动机写得很直白:过去一个月里,明显由 AI 生成的 PR 里,至少一半没有披露;审查者不得不花时间调查 PR 和作者来判断 AI 使用情况,浪费维护者精力。见 godotengine/godot#119894。 ...

July 3, 2026 · 2 min · Hypho

AI Agent 自动部署卡在登录页?Cloudflare 临时账号给了一个工程答案

AI Agent 写代码已经不稀奇了,真正尴尬的是下一步:它写完以后,怎么上线? 很多团队做 Agentic Coding Demo 时都会跳过这个问题。让 Agent 改一个 React 页面、生成一个 API、补一组测试,这些都能在本地仓库里闭环。但只要任务变成“把这个服务部署到云上,给我一个可访问的 URL”,Agent 很快就会撞墙:登录、注册、OAuth、MFA、创建 API Token、复制粘贴密钥、选择账单计划。 这些流程对人类是安全护栏,对后台 Agent 则是硬中断。 Cloudflare 这次在 HN 上火起来的 Temporary Cloudflare Accounts for AI agents 很有意思,不是因为它又发了一个“AI 平台功能”,而是因为它回答了一个非常工程化的问题:能不能让 Agent 先完成部署,再让人类决定是否接管? 我的判断是,这个方向比“给 Agent 一个长期 Root API Key”健康得多。它不完美,但至少把 Agent 部署的权限边界,从“信任一个会写代码的黑盒”改成了“给它一段短命的、可丢弃的执行空间”。 这个功能到底解决了什么 Cloudflare 的方案很直接:Agent 或开发工具可以执行: wrangler deploy --temporary 然后 Worker 会被部署到一个临时 Cloudflare 账号下,部署结果可以在线访问。官方博客说明,这个临时部署会保持 60 分钟;如果用户觉得结果可用,可以在这段时间内 claim 这个临时账号,把它变成自己的正式资源。 用人话说就是:先让 Agent 把东西跑起来,不要一上来就问我要身份证、银行卡和长期 Token。 这跟传统 PaaS 的匿名预览有点像,但关键差异在于它面向的是 Agent 工作流。Cloudflare 明确把场景放在 AI coding agents 上:Agent 写了 Worker、网站、API,马上就能把产物部署出去,给用户一个可点开的结果,而不是停在“请你登录 Cloudflare Dashboard”的半成品状态。 ...

June 22, 2026 · 2 min · Hypho

GLM-5.2 登顶开源模型基准榜:753B MoE 架构如何做到 1M 上下文 + Agent 级推理

如果你关注开源大模型的格局变化,这两天应该已经看到消息了:智谱 AI(Z.ai)的 GLM-5.2 在 Artificial Analysis Intelligence Index v4.1 上拿到 51 分,成为当前得分最高的开源权重模型。875 分的 HN 热度也说明社区对此的关注度不低。 但"登顶基准榜"这件事本身并不稀缺——每隔几周就有新模型刷一波排名。真正值得拆解的问题是:GLM-5.2 做对了什么,让它在 Agent 场景下同时跑赢了 DeepSeek V4 Pro 和 MiniMax-M3? 先看基本面 GLM-5.2 是一个 753B 总参数的 MoE(混合专家)模型,每次推理激活约 40B 参数。和它的前身 GLM-5.1 参数规模完全相同,但在 Intelligence Index 上高出 11 分。架构代号叫 glm_moe_dsa——DSA 即 DeepSeek Sparse Attention,一种轻量级的稀疏注意力方案。 许可证是 MIT,没有地区限制,没有技术访问门槛。这一点在当前中美 AI 竞争的语境下值得单独提一句:很多"开源"模型在许可证或访问上藏着条件,GLM-5.2 没有。 在 HuggingFace 上,zai-org/GLM-5.2 和 zai-org/GLM-5.2-FP8 都可下载。FP8 版本已经累计近 2.5 万次下载,社区里的 GGUF 量化版本也在快速跟进——这说明实际有人在跑这个模型,不只是看个热闹。 IndexShare:GLM-5.2 的真正技术突破 如果你只看 benchmark 数字,会觉得 GLM-5.2 只是"分数更高了"。但仔细看技术细节,它的核心创新在于 IndexShare(arxiv:2603.12201)。 问题出在长上下文场景。DSA 的思路是用一个轻量级 indexer 为每个 query 选择 top-k 最相关的 token,把核心注意力的复杂度从 O(L²) 降到 O(Lk)。但 indexer 本身仍然是 O(L²) 的——上下文越长,indexer 的计算开销越大,成为瓶颈。 ...

June 19, 2026 · 2 min · Hypho

Rust 写 GPU 内核终于安全了?cuTile Rust 的 tile-based 方案和它背后的推理引擎

如果你关注 GPU 编程和 AI 基础设施,最近应该注意到一个趋势:Rust 正在悄悄渗透进 GPU 开发的每一个角落。NVIDIA Labs 在同一时间开源了两个 Rust GPU 项目——cuda-oxide(2768 stars)和 cuTile Rust(381 stars),前者是把标准 Rust 代码直接编译成 PTX 的 rustc 后端,后者是我们今天要聊的主角:一个基于 tile 抽象的安全 GPU 内核编程系统。 坦白说,第一次看到 cuTile Rust 的 README 时我有点不以为然——又一个 DSL?但读完论文 Fearless Concurrency on the GPU 之后,我的看法变了。这不是简单的语法糖,而是认认真真地把 Rust 的所有权和借用检查搬到了 GPU 内核层面。 问题:GPU 内核编程为什么需要安全? 写 CUDA 内核的人大概都踩过这些坑:线程越界访问 shared memory、race condition 导致结果随机出错、异步 kernel launch 后 host 端提前释放了显存。传统 CUDA C++ 对这类问题基本靠程序员自觉——你犯了错,程序不会告诉你,只会给你一个错误结果或者 segfault。 cuTile Rust 的核心思路是:既然 Rust 在 CPU 端已经用所有权系统解决了数据竞争问题,为什么不能把这个保证延伸到 GPU 端? ...

June 17, 2026 · 3 min · Hypho

里约政府发布的 397B 大模型,被证明是别人的模型加了个壳

上周,里约热内卢市政府高调发布了名为 Rio-3.5-Open-397B 的大语言模型,官方说法是"由 IplanRIO(里约市政 IT 公司)自主训练的 397B 参数模型"。模型发布后,巴西媒体一片欢腾——这可是全球首个由市政当局发布的前沿级 AI 模型,还号称在多项基准测试中超过了 Qwen 3.7 Plus。 然后,48 小时之内,Nex-AGI(一家来自上海的 AI 实验室)在 GitHub 上发了一条 issue,用两种完全独立的方法证明:这个模型的每一个权重,都是 Nex-N2-Pro 和 Qwen3.5-397B-A17B 按 6:4 比例线性混合的结果。 不是微调,不是蒸馏,是直接把两个模型的权重按比例倒在一起。 身份探针:去掉系统提示词后,模型自己说了实话 Rio-3.5-Open-397B 附带了一个硬编码的系统提示词:“You are Rio, a large language model developed by IplanRIO。“这个提示词在每次推理时都会被注入,强制模型"记住"自己的身份。 Nex-AGI 做了一件很简单的事:把这个系统提示词删掉,然后问模型"你是谁”。 他们在去除了身份强制的情况下,向 Rio 的部署端点发送了 120 次身份提问。结果如下: 模型回答"我是 Nex"的比例:79.2%(95/120 次) 模型回答"我是 Nex-AGI 的"比例:73.3%(88/120 次) 模型回答"我是 Rio"的比例:0.0%(0/120 次) 零。一次都没有。 更离谱的是,模型还能逐字背出 Nex-AGI 的组织背景——“Nex-AGI is a large-model ecosystem alliance, jointly built by the Shanghai Innovation Institute(上海创智学院)…"——这段文字是 Nex-AGI 在训练自己的模型时注入的专属身份数据,出现在数百条训练样本中。 ...

June 15, 2026 · 2 min · Hypho

小米 MiMo Code 深度拆解:fork 一个 17 万星项目后,他们加了什么

两天之内 4700+ Star,241 条 HN 评论——小米 MiMo Code 的发布在开发者社区引起了不小的波澜。但让我真正感兴趣的不是这个数字本身,而是它背后的策略:fork 一个已经有 17 万 Star 的开源项目 OpenCode,然后在上面叠加自己的东西。 坦白说,“大厂 fork 开源项目"这件事本身就自带争议。HN 评论区有人直接开喷:“fork 一个已有的开源项目,不给上游贡献代码,附加可能跟 MIT 许可证冲突的使用限制,然后还要 PR。“但也有另一种声音:如果 fork 出来的东西确实有实质性的技术创新,那这件事本身就有讨论的价值。 所以这篇文章想回答的核心问题是:MiMo Code 到底加了什么?这些加的东西值不值得一个独立项目的存在? 从 OpenCode 到 MiMo Code:不是换层皮那么简单 先说上游项目。OpenCode(现在叫 opencode)是一个终端原生的 AI 编程助手,17 万+ Star,TypeScript 写的,支持多 Provider、TUI 界面、LSP、MCP 协议和插件系统。它在 2025 年 4 月创建,到现在已经迭代了一年多,是终端编程 agent 领域里用户量最大的开源项目之一。 MiMo Code 保留了 OpenCode 的所有核心能力——多 Provider 切换、TUI 交互、LSP 集成、MCP 工具协议和插件系统——在此基础上叠加了五个关键模块。从源码结构看,它在 packages/opencode 目录下保留了 OpenCode 的核心代码,同时新增了 packages/app、packages/desktop、packages/enterprise、packages/sdk 等模块,看起来不只是一个 CLI 工具,而是一个完整的平台化产品。 持久化记忆系统 —— 这可能是最有意思的部分。它用 SQLite FTS5(全文搜索)做底层存储,维护一个 MEMORY.md 文件作为跨会话的项目知识库。每次你开新会话,记忆自动注入上下文,agent 不需要重新理解项目结构。 ...

June 12, 2026 · 2 min · Hypho