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

前几天 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。

(完)

相关推荐
这个DBA有点耶4 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
沪上企服通5 小时前
高端财税的技术切面:从“可审计级旧账重建“看企业税务合规中台的架构演进
架构
dogstarhuang5 小时前
大模型 API 停服怎么办:用 API 网关实现多模型统一接入与可切换架构
人工智能·后端·架构·大模型·api·数字化转型·ai应用
程序员老刘6 小时前
Flutter 3.47 更新要点:Material 正式分家,老项目先别急着更新
flutter·ai编程·客户端
全栈弄潮儿6 小时前
一周总结:AI 编程入门最重要的 3 个原则
chatgpt·openai·ai编程
过江龙8477 小时前
Java架构师的AI转型之路(中):Agent与编排体系实战
架构
ziyun6668887 小时前
Docker 容器化 Web 服务架构搭建与自动化运维项目
运维·docker·架构
技术传感器7 小时前
让 Hermes 自动完成一个软件需求:从 Issue 到 PR 的 AI 开发流水线
人工智能·架构·aigc·需求分析·issue
Rain的Java大神之路8 小时前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
Nturmoils8 小时前
鸿蒙健康教练接入蓝耘:一句话打卡,模型估热量,网关记账
ai编程