标签: Claude Code

看完Anthropic那份154页威胁情报报告,Claude你还敢用吗?

这两天我一直在看 Anthropic 9 月 10 日发布的那份 154 页威胁情报报告。里面有很多很容易上新闻的内容:有人用 Claude 做网络攻击、监控系统、武器软件,还有多家中国 AI 公司被 Anthropic 指控通过各种方式蒸馏 Claude。

但我看完以后,最先做的一件事不是研究这些攻击者,而是重新检查了一遍自己 Claude Code 的权限。

我现在日常开发已经大量依赖 AI Coding。Claude Code 对我来说,也早就不是一个偶尔问几句代码的聊天机器人,而是会自己读项目、找文件、跑命令、改代码、做测试的执行工具。为了让它真正自动干活,我也会逐渐减少那些反复弹出来的确认。因为 Agent 每走一步都问一次“可以吗”,自动化就很难真正跑起来。

以前我当然知道 Claude 是云端模型,知道 Prompt 会发送给 Anthropic。但这份报告让我第一次很具体地意识到:当 Claude Code 获得越来越多本地权限以后,我交给它的已经不只是几段代码,而是越来越完整的工作环境;与此同时,Anthropic 也并不是一个只负责“收 Prompt、回答案”的模型供应商,它有能力调查平台上真实发生的用户行为。

这两件事放在一起,我对 Claude 的看法开始变了。

Claude Code并不能随便看你的电脑,但它本来就比聊天框看得多

先把最容易被夸大的地方说清楚。Claude Code 安装以后,并不会自动获得整台电脑的完全访问权。

Anthropic 官方文档明确说明,Claude Code 默认采用严格的只读权限。修改文件、执行可能改变系统的 Bash 命令,需要进一步授权;默认只能写启动目录及其子目录,Read、Grep、Glob 要读取这个边界之外的路径,也会再次询问。Anthropic 甚至把跳过权限检查的参数直接叫作 --dangerously-skip-permissions

所以,“装了 Claude Code,Anthropic 就能把你硬盘全部看光”,这个说法并不准确。

但从实际使用来看,另一件事也同样真实:Claude Code 的价值,本来就来自它能够主动获取上下文。你问它一个项目为什么启动失败,它会自己找配置、日志和相关代码;你让它修改一个功能,它会在整个 Repository 里查调用关系。过去用聊天机器人,我基本知道自己给模型看了什么,因为内容是我主动复制进去的;现在用 Agent,更需要关心的是,它为了完成任务还会自己去找什么。

而且权限通常会越用越宽。Allow List、Sandbox、Accept Edits 这些设计之所以存在,就是因为如果所有动作都逐次确认,Agent 的效率会明显下降。Anthropic 自己也建议敏感代码使用项目级权限、Dev Container,并定期通过 /permissions 检查授权范围。

我自己的体验很简单:AI Coding 越深入,开发者越容易为了效率把权限开大。不是 Claude 偷偷拿走了权限,而是我们为了让它更有用,会主动交出去。

终端在你的Mac里,真正做判断的Claude却不在

Claude Code 很容易给人一种“本地工具”的错觉。它运行在 Terminal 里,文件读取和 Shell 命令也发生在自己的电脑上,所以直觉上会觉得代码还在本地。

其实只对了一半。

Claude Code 客户端确实运行在本地,但真正理解代码、决定下一步做什么的 Claude 模型仍然在云端。为了完成推理,需要进入模型上下文的信息要发送给 Anthropic。Anthropic 自己的文档也把 Claude Code 的本地运行、数据访问以及云端模型处理分开说明。

当然,这不等于 Claude Code 能访问的每一个文件都会自动上传。“拥有读取权限”和“内容已经进入模型上下文”是两件不同的事。

问题在于,Coding Agent 天然需要大量上下文。

一个真实项目里除了源代码,还有 .env、数据库连接、云服务配置、错误日志、内部 API、测试数据、客户资料,有时候还有开发者为了省事直接写进配置里的 Token 和 Secret。

Anthropic 这次报告里就披露过这类敏感内容。以它对 DeepSeek 的指控为例,Anthropic 声称部分被转发到 Claude 的请求包含一家中国科技公司的内部 AI 项目规格、组织结构和战略目标,以及俄罗斯政府数据库的有效凭据。这里必须强调,这些具体归因目前仍然来自 Anthropic 单方面调查,不能直接当成已经被独立证实的事实。

但对我来说,这已经足够提醒一个更普通的问题:真实开发环境里的敏感信息,本来就和代码混在一起。一旦 Agent 可以理解整个工作环境,隐私边界自然比一个聊天框大得多。

更让我在意的是,Anthropic有能力调查现实中的用户使用行为

如果只是“数据要发到云端”,其实不是什么新鲜事。真正让我重新评估 Claude 的,是这份报告里 Anthropic 展示出来的调查能力。

报告一开始就写得很明确:过去八个月,Anthropic 的 Threat Intelligence 团队识别并中断了多类利用 Claude 的恶意活动,并根据调查结果加强自己的安全机制,在适当情况下还会把情报提供给政府部门和行业伙伴。

后面的案例要具体得多。

Anthropic 称,它在一项持续性的网络间谍调查中,把操作者判断为“可能居住在湖南长沙的中文使用者”,进一步称其中两人是湖南某高校本科生,其中一人曾在深信服实习,并正在面试奇安信的攻防岗位。报告还描述了这些人攻击的大约 50 个组织,以及他们如何维护长期任务、凭据和 Agent 工作流。

到了常规武器部分,Anthropic 甚至非常直接地写道,过去这类活动通常要由政府、联合国专家组或者外部调查人员,通过缴获设备和公开信息慢慢还原;但作为前沿模型提供商,只要检测到违反政策的活动,Anthropic 自己就可以识别这些行为、封禁账户,再把调查信息提供给公共和私营部门伙伴。

我觉得这几段比任何一句“我们重视用户隐私”都更值得认真看。

当然,这不能推导成“Anthropic 员工可以随意查看每一个普通用户的代码”,报告里的身份归因也并非全部经过第三方独立验证。Anthropic 当前的政策也明确表示,被安全保留的内容默认不能由员工直接阅读,只有自动系统标记以后,少量授权人员才能通过受控流程审核,访问还会被记录。

但至少有一点已经很清楚:Anthropic 有能力把请求、账户、行为模式、工具链和长期活动放在一起调查,并在一些案例里进一步关联到现实中的组织和人员。

站在安全公司的角度,这是能力;站在用户角度,它同时也是一种平台权力。

“不拿代码训练”已经不足以让我放心

Anthropic 并没有说所有 Claude Code 数据都会拿去训练,这一点也必须说清楚。

对于 Free、Pro、Max 等个人用户,如果允许 Model Improvement,聊天和 Coding Session 可以被用于改进 Claude,相关数据可能以去标识形式在训练流程中保留最多 5 年。更值得注意的是,如果会话被自动系统标记为违反 Usage Policy,输入输出可以保留最多 2 年,Trust & Safety 的分类分数最长可以保存 7 年。

商业产品则不同。Claude for Work 和 Anthropic API 默认不会使用客户的输入输出训练生成模型;API 标准情况下通常在 30 天内删除输入输出,部分企业客户还可以申请 Zero Data Retention。

所以,简单写成“Claude 会拿你的代码训练”,是不准确的。

但我现在越来越觉得,“会不会训练”只是隐私问题的一部分。

对于一个高权限 Agent,我更在意的是:它能够访问什么,哪些内容会进入模型上下文,平台为了安全能够观察到什么,以及什么情况下这些数据会被保留和调查。

Anthropic 对 Covered Models 的政策其实把这个矛盾说得很清楚。它解释说,某些复杂攻击单看一次 Prompt 根本发现不了,必须跨多个请求观察行为模式。因此部分原本使用 ZDR 的企业环境,在调用指定的高能力模型时,也必须保留 30 天输入输出用于安全分析。

这个理由从安全角度完全讲得通。

但也正因为它讲得通,我才越来越确定:云端 Agent 的安全能力和我追求的隐私,并不总是在同一个方向上。

当替代方案开始够用,我没必要把所有项目都交给Claude

如果是两年前,我可能愿意继续接受这种交换。因为当时 Claude 在 Coding 上的优势很明显,很多任务没有真正好用的替代方案。

现在情况已经开始变化。

DeepSeek 9 月 10 日刚刚发布 V4.1 Flash。官方称它采用 552B 参数的 MoE 和新的非对称架构,输入只激活 8B、输出激活 16B,并表示它在一组 Agent Benchmark 上已经超过上一代 V4 Pro,同时还在推进开放权重生态、开源推理支持和更多部署选择。

过去我一直觉得国产 AI Coding 最大的短板并不完全在模型,而是在 Harness。现在这块也开始补上。

DeepSeek Harness 已经进入开发者预览,并开放源代码,采用 MIT License。模型、工具、Skills、Session、Sandbox、Storage、Loop、Scheduling 都可以插件化组合,而且 Agent 每一次看到的 Prompt、Tool Call、Context Injection,都能记录在可追踪的 Session Log 中。

我并不是说 DeepSeek V4.1 Flash 已经在所有 Coding 任务上超过 Claude,也不是说“开放权重”四个字天然等于隐私。如果最后还是调用云端 API,数据照样会离开自己的机器。

真正改变我选择的是,开放权重至少给了我本地化、私有部署和控制数据路径的可能,开放 Harness 也意味着我不必把 Agent 的权限体系完全绑定在一家闭源厂商手里。

对我来说,这已经够了。

以后普通项目、公开代码、低敏感度任务,我可能还会继续用 Claude 一段时间,但整体上我会逐渐减少 Claude 的使用。特别是相对敏感的项目,公司内部代码、还没有公开的产品、包含真实业务数据的系统,或者任何我不希望进入第三方云端调查体系的内容,我不会再把 Claude Code 作为默认选择。

这并不意味着 Anthropic 做错了什么。恰恰相反,这份报告说明它的安全团队很强,也说明它在认真打击滥用。

只是从用户的角度,我开始意识到:一个平台越有能力理解我在做什么,它就越不可能只是一个“什么都不知道的工具”。

Claude你还敢用吗?

所以这一次,我的答案和以前不太一样。

我不会今天就把 Claude 卸载掉,但会慢慢把它从“默认工具”降成“按场景使用的工具”。普通任务继续用,敏感项目退出 Claude。随着 DeepSeek V4.1 Flash 这样的开放权重模型越来越能打,DeepSeek Harness 这样的开放工具也开始补上 Agent 能力,我已经没有以前那么强的理由,把最敏感的开发上下文继续交给一个云端闭源 Agent。

过去我愿意用更多数据和权限,换 Claude Code 的效率。

现在这笔交换对我来说,已经没有那么划算了。

所以,可能真的是时候慢慢和 Claude 说 bye bye 了。

DeepSeek Harness来了,国产AI Coding终于开始补最短的那块板

前段时间,我在《这次真不慌了,Claude随时可以取消订阅》里写过一个判断:随着 DeepSeek、Kimi、GLM 这些国产模型的 Coding 能力越来越强,国产 AI Coding 与 Claude Code 之间最明显的差距,正在从模型本身转移到 Harness。

当时很多人讨论 AI Coding,仍然习惯把 Claude Code 的优势简单归结为 Claude 模型更强。但实际使用过不同 Coding Agent 就会发现,同一个模型放进不同的工具里,最后表现出来的能力可能有很大差别。模型当然重要,但模型怎么读取代码、怎么规划任务、什么时候搜索、什么时候调用工具、如何管理上下文、失败后怎么恢复、修改以后是否主动运行测试,这些并不完全由模型决定。

8 月 13 日,DeepSeek 发布了 DeepSeek Harness 开发者预览版,并以 MIT License 开源。更有意思的是,DeepSeek 在产品首页直接写出了一个公式:

Agent = Model + Harness。

这句话其实把过去半年 AI Coding 市场正在发生的变化说得很清楚。模型仍然决定智能的上限,但当模型能力越来越接近之后,谁能把这些智能稳定地组织起来完成工作,正在变得越来越重要。

所以我觉得,DeepSeek Harness 真正值得关注的,并不是 DeepSeek 终于也做出了一个“国产 Claude Code”,现在显然还远没有到这一步;真正重要的是,DeepSeek 已经开始补国产 AI Coding 最短的那块板了。

一、Harness到底是什么,为什么突然变重要了?

Harness 这个词最近在 AI Coding 圈越来越常见,但它其实很难用一个对应的中文词准确翻译。你可以把它理解成模型之外的那套“执行系统”:模型负责思考,Harness 负责把模型连接到文件系统、终端、搜索、工具、权限、上下文以及其他 Agent,让模型能够真正进入一个软件项目持续完成工作。

DeepSeek 自己的定义也差不多。它说模型是 Agent 的“灵魂”,而 Harness 让 Agent 理解环境、使用工具,并持续在现实环境中工作。DeepSeek Harness 的 Standard Mode 已经包括文件编辑、Shell、文件和网页搜索、Skills、Planning、Goals、Subagents 和 Workflows;另外还有用代码编排多步工具调用的 Code Mode,以及为了模型 Benchmark 尽可能减少环境干扰、只保留 Bash 和文件编辑器的 Minimal Mode。

这些功能单独拿出来,其实都不新鲜。Claude Code 有 Skills、Subagents、Hooks、MCP 和一整套权限机制,今天甚至可以根据任务主动调用不同的子 Agent;Codex 也已经有 Skills、Subagents、Sandbox、Approval 等完整机制。真正重要的不是“有没有一个 Subagent 按钮”,而是这些能力如何组合起来。

比如一个 Agent 接到“给这个项目增加用户登录”的任务以后,它首先需要判断代码结构,搜索相关文件,理解已有认证方式,再决定修改哪些模块;中间可能要安装依赖、执行数据库迁移、运行测试,测试失败以后继续读取日志并修改代码。任务足够复杂时,它还可能需要把前端、后端和测试拆给不同的 Subagent,又不能让大量日志和中间信息把主 Agent 的上下文塞满。

模型负责一次次做判断,但把这些判断组织成一条可靠执行链的,就是 Harness。

模型能力还很弱的时候,这件事没有那么重要,因为模型连代码都看不明白,外面的执行系统做得再漂亮也没有用。但当主流模型进入“代码基本都会写”的阶段以后,差距就开始出现在另一层:为什么一个 Agent 做到一半经常停下来?为什么另一个能自己跑完测试继续修?为什么同一个模型,在不同工具里的效果会完全不同?

这就是 Harness 开始变得重要的原因。

二、DeepSeek其实早就在用Harness了

DeepSeek Harness 这次虽然刚刚公开,但它显然并不是昨天才突然想出来的东西。

7 月 31 日 DeepSeek V4 Flash 正式版发布时,DeepSeek公布了一组 Agent Benchmark:Terminal Bench 2.1 为 82.7,NL2Repo 为 54.2,DeepSWE 为 54.4。官方当时特意在测试说明里写了一句话:公开基准中的 Code Agent 任务,使用了“即将发布”的 DeepSeek Harness Minimal Mode。

到了 8 月 13 日 V4 Pro 正式版发布,Terminal Bench 2.1 又提高到 87.9,NL2Repo 达到 61.5,DeepSWE 达到 62.7,而 DeepSeek 再次明确说明,Code Agent 的公开 Benchmark 使用 DeepSeek Harness 极简模式完成测试,并提醒不同 Harness 下的结果可能略有不同。

我觉得后面这句话甚至比那些 Benchmark 数字更值得注意。

因为它实际上承认了一件过去经常被模型排行榜忽略的事情:Agent Benchmark 测出来的,从来不完全是模型。

模型和 Harness 很难彻底分开。

同样一个模型,如果 Harness 更善于搜索代码、更合理地控制上下文、更准确地选择工具,在需要时把任务交给子 Agent,并且在失败以后能够继续恢复,最后测试出来的 Agent 能力自然可能不同。

所以 DeepSeek Harness 并不是模型发布以后的附属产品。从 V4 Flash 到 V4 Pro,它已经进入 DeepSeek 的模型评测体系。现在再回头看“Agent = Model + Harness”这句话,就不只是市场宣传,而更像是 DeepSeek 对 Agent 产品路线的一次明确表态。

三、DeepSeek现在的策略很有意思:先开别人的车,再开始造自己的车

还有一个很容易被忽略的细节。

DeepSeek 并没有因为自己开始做 Harness,就把模型关在 DeepSeek Harness 里面。恰恰相反,它现在正在非常积极地进入别人已经建立起来的 Agent 生态。

DeepSeek 官方已经提供 Claude Code 的接入方案,只需要修改 Anthropic API 地址和模型配置,就可以把 Claude Code 后面的 Claude 换成 DeepSeek V4 Pro 或 V4 Flash;V4 Pro 正式版又原生支持 OpenAI Responses API,并针对 Codex 做了适配。DeepSeek 的官方文档里,现在还能找到 OpenCode、GitHub Copilot 等一系列 Agent 工具的接入方式。

这其实是一种很现实的策略。

Claude Code、Codex 已经有大量用户,也积累了成熟的工具调用、权限、上下文管理和软件工程流程。DeepSeek 模型既然已经能够在这些 Harness 里工作,就没有理由等自己的产品成熟以后再进入市场。先把模型放进去,让用户今天就能用起来。

但是另一方面,如果 DeepSeek 永远只是 Claude Code 或 Codex 里的一个 Model Provider,那么它掌握的是模型能力,却并不完整掌握这些能力最后如何被使用。

这也是为什么我觉得 DeepSeek Harness 的意义,比“再做一个 Coding Agent”更大一些。

它采用的甚至不是简单复制 Claude Code 的思路,而是把整个系统做成“Everything is a plugin”。模型适配器、Tools、Skills、Session、Sandbox、Storage、Agent Loop、Scheduling,甚至 UI 都可以作为插件替换;它还把模型看到的 System Prompt、工具调用、Subagent 调度和上下文注入记录在 Session Event Log 里,用同一条事件流实现 Resume、Fork、Search 和 Replay。

这更像一套 Agent Runtime,而不只是一个固定的编程客户端。

当然,今天讨论它最终能不能形成生态还太早,但方向已经很明确:DeepSeek 不只是希望自己的模型能够运行在别人的 Harness 里,它也开始建立一套自己能够参与定义的 Agent 基础设施。

别人已经修好的高速公路先开上去,同时开始自己修路。

四、但知道该追什么,和真正追上,是两回事

写到这里,很容易得出一个过于乐观的结论:既然国产模型已经越来越强,现在 Harness 也有了,那 Claude Code 很快是不是就没有优势了?

我觉得还没有这么简单。

DeepSeek 自己也非常克制地把这次发布定义为 Developer Preview,而且明确提醒开发者,核心插件和 API 还会持续变化,甚至会出现破坏兼容性的更新。它虽然已经有可以直接运行的 Web UI,也已经能够读写文件、执行命令、维护 Plan 和调用 Subagent,但从一个能够运行的 Agent Runtime,变成开发者每天敢把真实项目交给它的生产工具,中间还有很长的一段路。

因为 Harness 最难的地方,从来不是把功能列表补齐。

Skills、Subagents、Sandbox、Planning、Memory,这些能力最终大家都会有。真正决定体验的是大量细节:模型什么时候应该搜索而不是猜,什么时候应该拆任务而不是自己硬做,多少日志应该进入上下文,什么时候应该压缩历史,执行失败以后能不能恢复,权限询问会不会频繁打断用户,一个任务连续跑几十分钟以后还能不能保持目标不漂移。

OpenAI 甚至专门公开过 Codex Agent Loop 的工程细节,例如为了保持 Prompt Cache 命中率,要控制工具列表、Sandbox 配置和上下文变化;当上下文增长到一定程度以后,又需要 Compact 会话,让 Agent 能继续完成长任务。这样的工程优化并不醒目,却会直接影响成本、速度和稳定性。

Claude Code 今天的优势也不只是 Claude 模型本身,而是 Anthropic 已经围绕真实开发流程迭代了很长时间。DeepSeek Harness 发布以后,我们只是第一次比较清楚地看到 DeepSeek 准备从哪里追赶。

所以与其说“Harness 做出来了,剩下的就是奋力追赶”,我现在更愿意把它改成另一句话:

Harness 做出来以后,真正的追赶才开始。

五、国产AI Coding下一场竞争,可能已经不只是模型了

过去一年,我们判断一家 AI Coding 产品有没有竞争力,最先看的通常是它后面用了什么模型。Claude Opus、GPT、Gemini,或者 DeepSeek、Kimi、GLM,模型名称几乎等于产品能力。

这种判断方式以后可能越来越不够用了。

当模型之间仍然存在巨大能力差距时,当然应该优先选择最强模型。但如果几家模型都已经进入“能够完成大多数常规开发任务”的区间,那么速度、价格和 Harness 就开始共同决定最终体验。模型决定这个 Agent 大概能做到什么,而 Harness 越来越决定它能不能稳定地把事情做完。

这也是为什么我看到 DeepSeek Harness,比看到又一个 Benchmark 提高几分更感兴趣。

它现在还只是 Developer Preview,离 Claude Code、Codex 这样的成熟产品还有明显距离,甚至 DeepSeek 自己目前仍在积极借助这些成熟 Harness 来让 V4 Pro 和 V4 Flash 更快进入开发者工作流。但至少,国产 AI Coding 已经不再只是不断训练一个更强的模型,然后等待别人替它做最后一公里。

DeepSeek 已经开始往模型外面走了。

我之前说,国产 AI Coding 最需要补的已经不是“会不会写代码”,而是如何把模型变成一个真正可靠的开发 Agent。现在 DeepSeek 给出了自己的答案:Agent = Model + Harness。

这不意味着 Claude Code 今天就可以取消订阅,也不意味着 DeepSeek Harness 已经追上了谁。

但至少从现在开始,大家终于开始解决同一个问题了。

而当中国公司既有越来越接近前沿能力、成本又足够低的模型,又开始认真补 Harness、工具和 Agent Runtime 这一层时,国产 AI Coding 接下来真正值得看的,可能已经不再是哪一张 Benchmark 表格上又多了几分,而是谁能最先把这些越来越强的模型,变成一个开发者真正愿意每天使用、可以放心把工作交出去的 Agent。

这才是 DeepSeek Harness 最值得关注的地方。

Claude Code的创造者Boris Cherny:当AI开始包办写代码,开发者真正该学什么?

最近,Y Combinator采访了Claude Code的创造者Boris Cherny,话题从Anthropic最新发布的Opus 5,一直谈到Claude Code的设计哲学,以及AI Agent正在如何改变软件开发。

访谈中有很多值得关注的内容。例如,随着模型能力提高,Claude Code已经删除了大约80%的系统提示词;开发者也不应该再像过去那样,把任务拆成非常详细的步骤交给模型,而应该告诉它目标、边界和完成标准,然后给它足够的空间自己寻找解决方案。Boris认为,很多人仍然在用半年前的方式使用今天的模型,过度限制AI,反而无法发挥它真正的能力。

但这场访谈里,最让我感兴趣的并不是Opus 5又能连续工作多久,也不是Claude Code未来可以同时调度多少个Agent,而是Boris给开发者和计算机专业学生的建议。

他的建议不是多学习几种编程语言,也不是研究更复杂的提示词,而是尽快使用这些工具,同时努力成为一个更全面的人。除了计算机和软件工程,还应该理解产品、设计、商业、数据分析,并且学会与用户交流。

在Boris看来,未来回报最高的,不只是那些熟练使用AI工具的人,而是那些知识面更广、能够跨越多个专业,并且理解自己究竟在解决什么问题的人。

这实际上提出了一个比“程序员会不会被AI替代”更现实的问题:当AI已经开始包办越来越多代码,今天仍在学校学习计算机的学生,究竟还应该学什么?

一、代码正在从核心能力变成基础设施

过去几十年里,软件开发一直有一个很高的门槛。一个人即使有很好的产品想法,也必须先学会编程语言、开发框架、数据库、服务器和各种工程工具,才有可能把想法变成可以运行的软件。

正因为实现成本很高,能够写代码本身就是一种稀缺能力。企业需要大量程序员,不只是因为软件需求很多,也是因为每一项需求都需要人把它转化为具体代码。

AI Coding正在改变这件事。

Boris此前曾说,对他自己的工作而言,编程已经在很大程度上成为一个“基本解决的问题”。他从2025年11月开始就没有再手工修改代码,每天提交的十几个甚至几十个PR,全部由Claude Code完成。我们当然不能因为Claude Code的创造者不再亲自写代码,就认为所有软件工程问题都已经解决,但这种变化至少说明,在最熟练使用AI工具的人群里,软件开发的工作方式已经完全不同。

我自己这两年使用AI Coding,也有非常明显的感受。过去需要花费大量时间查文档、寻找API、调试语法错误的工作,现在大部分都可以交给AI完成。即使面对一个不熟悉的开发框架,也不再需要先系统学习几个月,才敢开始做项目。

目前我的日常开发里,95%以上的代码都是AI编写的。真正需要我手工修改的代码已经非常少,很多时候,即使发现了问题,我也不会直接打开文件修改,而是把问题、预期结果和相关上下文交给AI,让它自己定位并完成调整。在开发DoseLoop,也就是“用药有数”这款App时,AI完成了100%的代码。我没有手写其中任何一行代码。

这并不意味着软件开发变得没有难度,而是难度正在发生转移。过去最困难的是如何把一个方案写成代码,今天越来越困难的是如何把问题说清楚,怎样设计系统,以及如何确认AI完成的结果是正确的。

代码不会消失,但它正在变得越来越像云服务器、电力和互联网:非常重要,却不再是只有少数专业人士才能掌握的资源。

二、计算机基础仍然重要,但学习它的目的变了

每当讨论AI Coding,就会出现一种很极端的观点:既然AI已经可以写代码,学生就没有必要再学习数据结构、算法、操作系统和数据库了。

我并不认同这种看法。

AI可以生成代码,不等于它生成的每一种方案都是正确的,更不等于使用者可以在完全不了解软件系统的情况下,长期维护一个复杂产品。一个人如果不理解数据库事务,就很难发现数据一致性的问题;不理解网络和并发,就无法判断一个系统为什么在用户增加后崩溃;不理解安全,就可能把AI生成的漏洞直接部署到生产环境。

计算机基础仍然是开发者判断系统是否合理的前提。变化在于,过去学习这些知识,主要是为了亲手完成实现;未来学习这些知识,更多是为了理解、设计和判断。

以前考试会要求学生在白纸上写出排序算法,是为了证明他有能力把算法实现出来。未来真正重要的,也许不再是能否凭记忆写出每一行代码,而是能否理解不同算法的成本,知道什么情况下应该使用它,以及能够判断AI生成的实现是否存在问题。

基础知识正在从一种生产技能,逐渐变成一种判断技能。

这和计算器出现以后,人们仍然需要学习数学是一样的。计算器替代了大量手工计算,却没有降低数学思维的价值。恰恰因为计算变得便宜,人们才有机会处理更复杂的问题。

AI对编程也会带来类似的变化。手工编写代码的比例会下降,但理解计算机系统、拆解复杂问题和判断技术方案的能力,反而会更加重要。

三、真正最先贬值的,是语法和工具熟练度

过去,一个开发者的职业竞争力经常表现为熟悉多少种语言、使用过多少框架,或者能否熟练记住某个工具的各种命令。

这些能力不会突然失去作用,但它们的价值正在快速下降。

编程语言、开发框架和工具,本来就是为了把人的意图转化为机器能够执行的指令。当AI可以完成这种翻译以后,熟记大量语法和API的意义自然会降低。

一个学生花几个月背诵某个框架的用法,可能还没有真正掌握,框架就已经更新了。即使他全部记住,AI也可以在几秒钟内查阅完整文档,并生成符合当前版本的代码。

真正能够长期保留价值的,不是某一种工具的具体操作,而是工具背后的原理。例如,为什么前端需要状态管理,为什么数据库需要索引,为什么大型系统需要异步任务,以及不同技术方案之间存在什么取舍。

这也是未来计算机教育需要改变的地方。学校当然还要教学生写代码,因为不经过实际编程,很难真正理解软件是如何运行的。但学习重点不应该停留在“能否写出来”,而应该进一步走向“为什么这样设计”“还可以怎样实现”以及“这种方案会产生什么后果”。

AI可以替代语法记忆,却不能自动替代一个人的系统理解。

四、找到值得解决的问题,比写出代码更难

当实现软件变得越来越容易,真正的瓶颈就会向更上游移动。

过去,很多产品没有出现,是因为开发成本太高。一个普通人即使发现了问题,也很难组织一支包括产品、设计、前端、后端和测试人员的团队,把它做成完整产品。

现在,一个人借助AI就可以完成过去一支小团队的工作。原型可以在几小时内完成,一个小型应用可能几天就能运行,技术实现不再是最难跨越的门槛。

但产品数量增加,并不意味着好产品也会按相同比例增加。

AI可以帮助开发者迅速实现一个功能,却无法自动回答用户是否真的需要这个功能;可以根据要求设计一个界面,却很难替代长期积累形成的审美和对用户行为的理解;也可以生成完整的商业计划,但不能保证用户愿意付钱。

当代码变得便宜,最稀缺的能力就不再是把需求实现出来,而是判断什么需求值得实现。

这需要开发者走出代码编辑器,理解真实世界中的人是如何工作、生活和作出选择的。一个医疗应用需要理解患者、医生和医院的实际流程;一个旅游产品需要理解游客在陌生环境中的焦虑和决策方式;一个企业软件则必须理解组织内部复杂的利益关系和业务规则。

这些知识不会自动存在于计算机专业的课程里,却决定了软件最终有没有价值。

未来最危险的情况,可能不再是开发者做不出产品,而是在AI帮助下,用非常高的效率做出一个没有人需要的产品。

五、产品、设计和商业,不再只是管理者的能力

在传统软件公司里,分工通常非常明确。产品经理负责定义需求,设计师负责界面和交互,程序员负责实现,市场和销售负责把产品卖出去。

这种分工建立在一个前提上:每个专业领域都有较高的执行成本,一个人很难跨越多个岗位完成全部工作。

AI正在降低这些专业之间的执行门槛。

产品经理可以直接让AI做出原型,设计师可以自己修改前端代码,开发者也可以完成需求分析、界面设计和数据分析。在Claude Code团队里,不只是工程师写代码,产品经理、设计师、工程管理者、数据科学家甚至财务人员也在写代码。Boris认为,工程、产品和设计之间已经出现了大量重叠,未来“软件工程师”可能逐渐变成更宽泛的“Builder”。

这并不意味着所有人都要成为每个领域的专家,而是说,只掌握单一执行技能的人会越来越容易受到AI影响。

一个优秀开发者仍然可以在基础设施、数据库或者安全领域拥有很深的专业能力,但他还需要理解这些技术最终服务于什么产品,用户为什么需要它,以及企业为什么愿意为它付出成本。

专业深度依然重要,只是专业深度必须与更广泛的现实理解结合起来。

过去我们经常把产品意识、设计感和商业判断看作程序员的加分项,未来它们可能会逐渐成为基本能力。因为当AI承担越来越多实现工作,开发者剩下的主要职责,就是决定方向、作出取舍并对最终结果负责。

六、学生应该从“完成作业”转向“创造产品”

传统计算机教育中的很多项目,本质上是在验证学生是否掌握了某项知识。老师规定题目、输入、输出和评分标准,学生只需要在明确边界内完成任务。

这种训练可以帮助学生学习基础知识,却很难培养面对真实问题的能力。

现实世界不会给出完整需求,也没有人提前告诉你正确答案。用户经常说不清自己需要什么,产品上线后会出现完全没有预料到的使用方式,技术方案还要受到成本、时间、安全和组织资源的限制。

因此,AI时代学生最好的学习方式,不只是完成更多编程题,而是尝试做出真正有人使用的东西。

这个产品不必很大,可以是一个解决自己问题的小工具,也可以是为同学、家人或者某个特定群体开发的应用。重要的是把它真正交给别人使用,并观察他们是否理解、是否愿意持续使用,以及产品到底解决了什么问题。

在这个过程中,学生才会发现,写出代码只是产品开发的一部分。他还需要采访用户、整理需求、设计交互、处理异常、保护数据、部署服务,并根据反馈不断调整。

AI可以帮助学生更快完成其中很多工作,但不能代替真实用户带来的反馈。

一个没有用户的课程项目,最多只能证明学生完成了题目;一个有人愿意持续使用的小产品,才能证明他理解了问题,并且有能力把技术转化为现实价值。

七、AI时代需要的不是更少学习,而是学习更多

有人可能会认为,既然AI已经能够承担大量工作,学生需要学习的内容应该越来越少。

实际情况很可能正好相反。

过去,程序员只要深入掌握一个技术领域,也可以找到相对稳定的位置。未来,纯粹的代码实现越来越容易被AI完成,开发者需要理解的范围反而会扩大。

他不仅要理解技术,还要理解产品;不仅要能够调用AI,还要能够验证AI;不仅要知道系统怎样运行,还要知道用户为什么使用、企业如何持续经营,以及技术可能给社会带来什么影响。

这并不是要求每个学生都成为全才,而是要建立一种跨领域学习的能力。一个人的核心专业仍然可以是软件工程,但他不能把自己限制在代码以内。

Boris给学生的建议,本质上不是放弃计算机科学,而是不要只学习计算机科学。他认为,最优秀的工程师往往同时具备其他能力:有人兼具产品和基础设施经验,有人具有很强的设计感,有人理解商业,也有人愿意长期与用户交流。

这种变化并不只属于计算机专业。随着AI进入设计、写作、金融、法律和科研,几乎每个专业都会面对类似问题:当AI可以完成本专业的大量执行工作,人还能提供什么价值?

答案不会是比AI执行得更快,而是提出更好的问题、作出更可靠的判断,并承担AI无法承担的责任。

八、会写代码依然重要,但只会写代码已经不够了

我不认为计算机专业会因为AI Coding出现而失去价值,软件也不会因为代码生成成本下降而减少。相反,当更多人拥有创造软件的能力,软件会进入更多行业,解决更多过去不值得开发或者无法开发的问题。

就像印刷术没有让写作消失,而是让阅读和写作进入更广泛的人群;摄影没有让艺术消失,而是改变了艺术的表现形式;电子表格也没有消灭会计,而是让企业可以处理更多数据。

AI Coding同样不会简单地消灭程序员,它会扩大能够创造软件的人群,同时重新定义专业开发者的价值。

过去,程序员的优势是能够把想法变成代码。未来,这项能力会被越来越多人拥有,甚至不需要他们真正理解每一行代码。

专业开发者的优势,将变成能够理解复杂系统、识别真正的问题、设计可靠的方案、判断AI的结果,并把技术、产品、用户和商业连接在一起。

所以,当AI开始包办写代码,计算机学生当然还应该学习编程,也应该学习算法、数据库、网络和操作系统。但不能再把学习的终点放在“找到一份写代码的工作”上。

更重要的问题是:你准备使用这些技术解决什么问题?你是否理解这个问题背后的真实世界?你能否判断AI给出的答案是正确的?你做出的东西,是否真的有人需要?

AI没有让学习编程失去意义,它只是让“只会编程”越来越不够。

过去,掌握代码意味着拥有创造软件的资格。未来,这种资格会变得越来越普遍。真正拉开人与人差距的,不再是谁能够写出更多代码,而是谁知道应该创造什么,并且能够让它真正产生价值。