当代码不再为人而写:Claude Code 零注释背后的 Harness 逻辑

作者:mCell日期:2026/4/7

前几天 Claude Code 因为 sourcemap 没关,导致源码被公开。这件事在技术圈引起的讨论密度很高,因为这种真正跑在生产环境里的闭源通用 Agent 产品,它的内部实现本身就是一份高价值的学习材料。

我看了一些解析文章。有讲它设计模式的,有分析它安全边界的,也有拆解 Prompt 架构的。

但有一个细节我反复确认了一下:

Claude Code 内部要求,不要写任何注释。

第一反应是反直觉。

注释难道不是为了理解代码吗?我从写代码以来接受的教育就是:复杂逻辑要写注释,接口参数要写注释,业务背景要写注释。后来在团队协作里,Code Review 如果发现某个模块的职责和边界没写清楚,是会被打回去的。

注释,一直是代码写给「人」看的那部分。

但问题就出在「人」这个前提上。

现在大家的工作流已经变了。写一个新功能,可能先用自然语言把意图丢给 Claude,让 AI 吐一版初稿,然后通过对话不断调整——「这里换个数据结构」「那个循环改成流式」。整个过程中,我几乎没有主动写过一行注释。

不是我懒了。而是注释的受众已经发生了迁移。

现在的代码,更多的时候是写给 Claude Code 这类 Agent 看的。Agent 在读代码的时候,依赖的是 LSP 解析出来的 AST,是符号索引,或者是上下文向量检索。它不需要你那一行 // 计算用户年龄 的注释——它从 calculateAge(birthDate) 的方法签名和返回类型就能推断出来。

真正的问题是,注释有时候会帮倒忙。

代码逻辑改了三版,但顶部那个 // TODO: 待优化 的注释还躺在那里。Agent 在执行任务时读到这条注释,可能会被误导,认为「这里性能有问题,我应该重构它」,然后引入一堆不必要的改动。而 LSP 和 Bash 在执行时只会忠实地跑代码本身,它永远不会跳出来说「注释里写的和代码不一致」。

过时的注释,对 Agent 来说不是辅助信息,是噪声信号

如果把这件事放进 Harness 工程的框架里看,逻辑就更顺了。

Harness 是 Agent 运行时的「工程环境总和」。

真正决定 Agent 上限的,不是你有没有这些组件,而是你有没有把这些组件工程化成一个可以长期运转的环境。

Agent 的工作环境里,代码本身是 Truth。Agent 通过工具读取文件、分析 AST、执行命令,最终输出的行动都基于「代码实际写了什么」,而不是「注释里说它应该是什么」。

注释不在执行路径上。

如果一个环境里同时存在「代码逻辑」和「注释描述」两套信息,而这两套信息可能出现不一致,那对于 Harness 来说,这就是一个需要管理的熵源

Claude Code 团队那条「不写注释」的规矩,本质上是在做熵管理——提前消灭掉一种不可验证、不可执行、且容易腐烂的信息形态。

所以结论其实很明确:

当协作对象从「人 + 机器」变成「Agent + 机器」,注释的定位必须重新评估。

这不是说所有注释都该死。而是说,注释的职能应该从「代码内的静态说明」,转移到 Harness 的动态信息注入层里去。

比如:

  • 架构意图 → 放到 AGENTS.md
  • 个人偏好 → 放到 SOUL.md
  • 模块职责 → 靠文件结构和命名自解释
  • 临时注意项 → 作为会话级上下文动态注入,用完即弃

这些东西不应该以注释的形式永久附着在代码文件里。

因为它们真正的消费者,已经不是那个读代码的人,而是那个在环境里执行任务的 Agent。

(完)


当代码不再为人而写:Claude Code 零注释背后的 Harness 逻辑》 是转载文章,点击查看原文


相关推荐


C# 基于OpenCv的视觉工作流-章43-轮廓匹配
sali-tec2026/3/29

C# 基于OpenCv的视觉工作流-章43-轮廓匹配 本章目标: 一、匹配原理; 二、模板创建; 三、模板匹配; 本章与章41模板匹配基本相似,在章42基础上,先对图像进行边缘检测,提取轮廓,以轮廓制作模板,匹配时也先对原图进行边缘检测,提取轮廓,最后再进行匹配。整体不同处在于先对图像进行预处理,好处在于匹配适应性更高,对光线明暗不同的图像也能进行更好的匹配。 一、匹配原理 章41已介绍,不再详述; 二、模板创建 边缘检测、轮廓提取在前文章节已介绍,不再详述; 三、模板匹配 参考章42;


OpenCodeUI 让你随时随地 AI Coding
三金得鑫2026/3/21

Hi,大家好,我是三金~ 自从用了 OpenCode + OMO 之后,写起代码来如沐春风,特别得劲!(除了比较烧 token) 但是 TUI 用久了之后吧,又有了一点别的想法: 能不能远程链接?让我随时随地都能 AI Coding。 Web 界面要“看着顺眼、点起来顺手” 所以当我在 L 站看到有佬友开源 OpenCodeUI 的时候,第一反应就是:许愿许成功了? OpenCodeUI 是 OpenCode 的第三方 Web 前端界面。它和 OpenCode 的客户端有点像,整体风格偏简约


电商企微机器人:从自动欢迎语到订单转化,打造私域闭环
2501_941982052026/3/13

能力介绍 电商私域机器人不仅是客服工具,更是 24 小时在线的虚拟导购。通过 API 联动电商平台的商品库与促销引擎,机器人可以根据用户的咨询轨迹自动发送商品卡片、优惠券及限时秒杀信息。它支持精准的关键词触发与定时任务,帮助企业在不增加人工成本的前提下,提升私域社群的活跃度与复购率。 10分钟接入 Demo 首句自动响应:配置好友申请回调,用户通过后秒级发送包含“新人礼包”的欢迎语。 关键词转单:设置机器人监控特定关键词(如“怎么买”、“多少钱”),自动回复带参数的商品小程序路径。


redis stream用作消息队列极速入门
ChesterZhang2026/3/5

背景 最近做了几个需求都用了redis stream用作消息队列,感觉redis stream相当大轻量化,易于上手,且功能强大,为此特意实现了了一个极简但实用的 redis stream 的示例 redis stream 的三个概念 stream, consumer group , consumer 要想学会如何使用 redis stream, 最重要的就是理解 stream, consumer group , consumer 三者的关系。 简单来说: stream 为消息流, 类似于传


React Native 开发环境准备
zh_xuan2026/2/24

一、环境准备 我的环境: 二、建立独立RN工程 1、初始化创建工程 npx react-native init RNApp --version 0.73.4 --skip-install 这个命令提示: ��️ The `init` command is deprecated. E:\android\projects\RNDemo4>cd RNApp - Switch to npx @react-native-community/cli init f


【C++】模拟实现 红黑树(RBTree)
yuuki2332332026/2/16

前言: 在掌握 AVL 树的严格平衡机制后,我们发现其虽能将树高严格控制在 O(logN),但「高度差≤1」的强约束也带来了明显代价:插入 / 删除操作中频繁的旋转(最多两次双旋)大幅增加了写操作的开销,且每个节点需额外存储平衡因子和父指针,空间利用率较低。 为解决这一问题,红黑树(Red-Black Tree)作为一种近似平衡的二叉搜索树应运而生 —— 它放弃了 AVL 树 “严格平衡” 的要求,转而通过「节点颜色标记 + 5 条核心规则」实现 “黑高一致” 的弱平衡,将任意根到叶子的路径


Git常用操作指令
stu_kk2026/2/7

最近给公司小伙伴安排了一下git培训,写了个常用指令,记录一下 一、配置与初始化(首次使用/新建仓库) 指令 功能说明 git config --global user.name "你的姓名" 配置全局用户名(会显示在提交记录中) git config --global user.email "你的公司邮箱" 配置全局用户邮箱 `git config --list 查看配置


Prometheus+Grafana构建云原生分布式监控系统(十)_prometheus的服务发现机制(一)
牛奶咖啡132026/1/29

Prometheus+Grafana构建云原生分布式监控系统(九)_pushgateway的使用https://blog.csdn.net/xiaochenXIHUA/article/details/157392956 一、prometheus的服务发现机制  1.1、prometheus的服务发现机制概述         prometheus是基于拉(pull)模式抓取监控数据,首先要能够发现需要监控的目标对象target,那么prometheus如何获监控目标呢?有两种方式【静态手动配


Polyfill方式解决前端兼容性问题:core-js包结构与各种配置策略
漂流瓶jz2026/1/20

简介 在之前我介绍过Babel:解锁Babel核心功能:从转义语法到插件开发,Babel是一个使用AST转义JavaScript语法,提高代码在浏览器兼容性的工具。但有些ECMAScript并不是新的语法,而是一些新对象,新方法等等,这些并不能使用AST抽象语法树来转义。因此Babel利用core-js实现这些代码的兼容性。 core-js是一个知名的前端工具库,里面包含了ECMAScript标准中提供的新对象/新方法等,而且是使用旧版本支持的语法来实现这些新的API。这样即使浏览器没有实现标准


一文搞懂机器学习中的特征降维!
aicoting2026/1/12

推荐直接网站在线阅读:aicoting AI算法面试学习在线网站 特征工程(Feature Engineering) 是机器学习流程中将原始数据转换为适合模型学习的特征的关键步骤。它直接决定了模型能否高效捕捉数据中的规律。好的特征可以显著提升模型性能,而差的特征即使模型再复杂也难以取得好效果。 特征工程的核心目标是: 提取有效信息:将原始数据中有价值的信号转化为模型可以理解的特征; 减少冗余与噪声:去掉无关或多余的特征,使模型更简洁、更泛化; 增强表达能力:通过构造、组合或降维生成新的特征,

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客