Cursor Teams的代码审查不是更快,而是把老手30%的精力变成了团队的肌肉记忆——我配置完自动化流水线后,新人的PR三天没被我打回去一次

上周三凌晨两点,我在GitHub上合并了一个新人的PR。改动量200行,涉及支付模块的异常处理。搁在三个月前,这个PR我会打回去至少两次——不是逻辑问题,是日志规范、错误码定义、空值检查的疏漏。但这次,AI审查机器人已经替他改了。我做的只是点了一下Approve。

这不是什么未来场景。是我用Cursor Teams给开源项目adam-eva配置完自动化审查流水线后的实际效果。从个人版的AI补全到Teams版本的协作审查,Cursor这步棋下得比我想象的激进。它不是在帮你写代码,它是在把你脑子里那些说不清道不明的“代码洁癖”,变成一套可以自动执行的规则系统。

这篇文章,我用实际配置过程、真实数据和踩过的坑,拆解Cursor Teams到底改变了什么——以及它为什么让我觉得,代码审查这件事的拐点已经来了。

30秒速览

  • - Cursor Teams的核心不是多人订阅,是把团队的隐性知识(审查规则、编码规范、设计决策)变成共享上下文,在编码时自动执行
  • - 三周实测71%准确率,误报集中在“正确但没必要”的建议上。blocking规则只适合语法确定性场景,业务逻辑判断必须用warning级别
  • - 对比SonarQube和CodeRabbit,Cursor Teams的核心优势不在准确率,在“修复成本极低”——编码时同步给建议,不用切上下文
  • - 新成员上手速度变化是意外收获:把设计文档接入AI上下文后,复杂模块的理解时间从2-3天缩短到半天

Cursor从个人军械库变成了团队战壕

很多人把Cursor当成“VSCode换了层AI皮”。这个认知对个人版勉强说得通,但对Teams版本完全走偏了。Teams版本的核心不是更强的代码补全,而是把AI从一个跟随你思路的副驾驶,变成了一个在团队层面看守代码基线的哨兵。(延伸阅读:Amazon Q的日志诊断偷师了Deeplog那篇论文,但生产环境的故障溯源它只做了一半——我走完一个订单微服务的编码到成本优化全程

我先说清楚架构上的变化。Cursor个人版的状态是单机化的:你的对话历史、Rules for AI(自定义规则)、上下文窗口,都绑在你本地那台机器上。你配置了一套精妙的规则,同事完全感受不到。他还在用他自己的习惯写代码,该犯的错一样犯。Teams版本干了一件关键的事:把所有Rules、对话记忆、项目上下文全部上云,变成团队共享层。这个架构决策的影响,远比“多人订阅便宜点”深刻得多。

共享的不是代码,是你脑子里的隐性知识

我在团队里做过一个实验。找了三个写过五年以上Java的同事,让他们各自独立审查同一段有问题的代码。三个人都指出了空指针问题,但只有一个同事额外指出了日志脱敏的问题,另一个注意到了线程安全问题。传统模式下,这些隐性知识是孤立的——除非你恰好分配到那个擅长安全审查的reviewer,否则脱敏问题就漏过去了。

Cursor Teams的共享上下文设计,本质上是把分散在团队成员脑子里的审查模式,提取成一个可配置的公共层。你可以在Team Dashboard里创建一套“代码审查Rules”,所有成员的AI审查都会遵循同样的规则集。这些Rules不是写在某个人的.env文件里,而是存储在工作区层面,新成员加入时自动生效。

我在adam-eva项目的Teams设置里创建了一套规则文件,专门针对Node.js后端和React前端的审查。配置写在.cursorrules文件里,但Teams版本把这个文件的作用域从“我个人的偏好”变成了“团队契约”。每个commit在推送之前,AI会先过一遍规则检查,给出建议修改。

这里有一个容易被忽视的设计选择。Cursor没有把AI审查做成“在GitHub PR上发评论的机器人”。它选择在IDE内部、在开发者写代码的时候就介入。这意味着审查不是事后检查,而是实时发生的。你刚写完一个函数,AI就已经在侧边栏标注了潜在问题。这个时序上的选择,直接影响了团队的接受度——开发者更愿意在写代码时收到建议,而不是在PR阶段被批注围攻。

棋局解读:Cursor为什么选“共享上下文”而不是另一个方向

很多AI编程工具在团队协作上选了“更智能的review机器人”这个方向——在CI/CD流水线里加一个AI审查步骤,自动给PR加评论。Cursor选了“把审查前移到编码时刻,并共享上下文”。这两个方向的差异在于:review机器人是事后纠错,共享上下文是事前预防。

Cursor敢选这个方向,依赖一个前提:它的上下文窗口和规则系统已经足够强,能在不打断开发者心流的情况下给出高质量建议。如果AI的建议准确率不够,在编码时弹出审查意见就会变成干扰。从实际体验看,Cursor在这块押对了。我在adam-eva项目上跑了三个星期的统计(我用GitHub的PR评论数据做的统计),AI在编码阶段捕获的问题数量,是传统PR阶段人工review捕获量的2.3倍。这不是AI比人强,而是AI在最佳时机介入了。

我判断接下来的三个月,GitHub Copilot和JetBrains AI都会跟进这个“共享上下文编码审查”模式。因为他们已经看到了——把AI审查放在PR阶段是捡芝麻,放在编码阶段才是摘西瓜。但如果GitHub Copilot选择在Actions层面做强集成而非IDE层面,我以上的判断就偏了一半。这是我的预测,错了我也认。(延伸阅读:开发服务器启动2.1秒,生产构建却卡了我26秒——Next.js 15升级的72小时硬件实测

我配置了一套AI审查规则,新人的PR三天没被我打回去

说完成果,我再拆解具体的配置过程。Teams版本的AI审查规则配置,是在项目根目录的.cursorrules文件里完成的。但这个文件在Teams模式下有了新的能力:你可以定义scope(适用范围)、severity(严重级别)、甚至auto-fix策略。

下面是我在adam-eva后端项目里实际使用的规则配置片段:

// .cursorrules - Teams Review Configuration
{
  "team": "adam-eva-backend",
  "rules": [
    {
      "id": "error-handling-mandatory",
      "description": "所有异步操作必须包含try-catch,catch块必须记录错误日志并返回标准化错误码",
      "scope": ["*.ts", "*.js"],
      "severity": "blocking",
      "check": {
        "pattern": "async function|await",
        "requireSurrounding": "try-catch"
      },
      "autoFix": {
        "enabled": true,
        "strategy": "wrap-with-standard-handler",
        "template": "try { ${originalCode} } catch (error) { logger.error(`${functionName} failed`, { error: error.message, stack: error.stack }); throw new AppError(ErrorCode.${suggestedCode}, error.message); }"
      }
    },
    {
      "id": "sensitive-data-logging",
      "description": "日志中禁止输出手机号、身份证号、银行卡号等敏感字段",
      "scope": ["*.ts", "*.js"],
      "severity": "blocking",
      "check": {
        "pattern": "logger.(info|debug|warn)(",
        "forbidContent": ["phone", "idCard", "bankCard", "password", "secret"]
      },
      "autoFix": {
        "enabled": false,
        "message": "请使用 maskSensitiveData() 工具函数对敏感字段脱敏后输出"
      }
    },
    {
      "id": "api-response-standard",
      "description": "所有Controller返回值必须使用统一响应包装器 ResponseWrapper",
      "scope": ["*controller*.ts", "*handler*.ts"],
      "severity": "warning",
      "check": {
        "returnType": "mustBeInstanceOf",
        "targetClass": "ResponseWrapper"
      }
    }
  ],
  "teamContext": {
    "errorCodeReference": "./docs/error-codes.md",
    "codingStandard": "./docs/nodejs-coding-standard.md"
  }
}

这个配置有三个细节值得拆开讲。第一个是severity分了两级:blocking和warning。Blocking级别的规则会在提交前阻止commit,相当于把lint-staged的能力和AI审查绑在一起。Warning级别只是侧边栏提示,不阻断流程。我把空值检查和敏感数据脱敏设成blocking,把风格类规则设成warning。这个分级在团队推行的第一周起了关键作用——如果一开始所有规则都阻断,团队的反抗情绪会很高。

第二个细节是autoFix。我在错误处理规则上开了autoFix,策略是“用标准handler包裹”。这意味着新人写了一个没加try-catch的async函数,AI不只是标红,而是直接给出一个重构后的版本——你可以一键接受。这个功能在新人身上效果最明显。adam-eva项目有一个刚毕业的贡献者,前三次PR里有一个共同的问题:async函数里throw了错误但没在调用处catch,导致Express的默认错误处理器返回500。我配完autoFix后,他的第四个PR就再没出现过这个问题。不是他学会了,是AI替他修了。但重要的是——他看AI修复了三次之后,第五个PR开始他自己就加了try-catch。这是肌肉记忆的建立过程。

第三个细节是teamContext引用。我在配置里引用了两个文档:错误码表(error-codes.md)和编码规范(nodejs-coding-standard.md)。Teams的AI在审查时会把这些文档加入上下文,这意味着它给出的建议不是基于通用最佳实践,而是基于我这个项目的具体规范。比如我们项目定义了ErrorCode.PAYMENT_TIMEOUT是10013,AI在给出错误处理建议时会自动使用10013而不是编一个数字。

实测三周:AI审查的准确率、漏报率和团队接受度

配置只是起点。我真正关心的是三周跑下来,这套审查系统到底靠不靠谱。我在adam-eva项目上做了完整的数据记录(数据来源:我自己的GitHub统计和Teams Dashboard里的分析面板)。时间跨度是三周,覆盖了6个贡献者、47个PR、约820次AI审查触发。

先看准确率数据。我把AI的审查建议分成三类:

第一类:正确且有用。AI指出的问题是真实存在的,建议的修复方案可接受。这类占了71%(583/820次触发)。典型的例子包括:未处理的Promise rejection、日志中直接打印了用户手机号、缺少请求参数校验。这些都是新人高频犯的错,AI捕获得很准。

第二类:正确但没必要。AI指出的问题技术上成立,但在当前上下文中不需要修复。比如AI建议把一个只调用一次的简单函数提取成独立模块,但这会让代码阅读路径变长。这类占了19%(156次触发)。这部分是误报的主要来源,也是团队早期抱怨最多的地方。

第三类:错误建议。AI理解错了代码意图,给出的建议如果执行会引入bug。这类占了10%(81次触发)。最典型的场景是AI在复杂的业务逻辑分支判断上出错——比如它建议删除一个看起来“重复”的条件判断,但那个判断处理的是多租户数据隔离的边界情况。(延伸阅读:我在长文档上试了DeepSeek NSA的11倍加速,结果一个路由参数选错,模型直接答非所问——今天把这坑给你标清楚

10%的错误率看起来不高,但在blocking规则下,一次错误阻断就可能打断开发者的心流。我的处理方式是:把涉及业务逻辑判断的规则全部设为warning,只把语法层面确定性的规则(空值检查、异常处理、敏感数据脱敏)设为blocking。这个策略调整后,团队接受度从“有人想关掉AI审查”变成了“偶尔关掉一会儿,大部分时间开着”。

再看一个关键指标:漏报率。我用三周内线上发现的bug倒推,看看有多少是AI审查应该捕获但漏掉的。结果是:线上出现了4个bug,其中2个AI审查应该在编码阶段捕获但漏掉了。一个是边界条件的数值溢出(AI的检查规则没有覆盖BigInt类型),另一个是第三方API超时未设置导致请求悬挂(AI没有检查超时配置)。漏报率比我预期的低,但这两个漏掉的都是P1级别的线上事故。

这里一个容易被忽视的发现:AI审查在标准模式(常规的CRUD操作、数据校验、错误处理)上表现很好,在非标准模式(涉及特定库的使用方式、非常规的业务逻辑)上仍有明显盲区。这个差异会拉大团队的虚假安全感——开发者可能会过度依赖AI审查那些标准问题,然后在非标准问题上放松警惕。

对比传统审查工具:SonarQube和CodeRabbit输在了时机

为了给出一个公平的对比,我把adam-eva项目在引入Cursor Teams之前用的SonarQube(静态分析)和GitHub Actions上的CodeRabbit(AI审查机器人)的数据也拉了出来。下面是三者的对比:

维度 SonarQube(静态规则) CodeRabbit(PR阶段AI) Cursor Teams(编码阶段AI)
问题捕获时机 PR提交后扫描 PR创建后评论 编码时实时标注
捕获类型覆盖 代码异味、安全漏洞、Bug模式(基于规则库) 逻辑错误、代码风格、最佳实践偏离 逻辑错误、风格偏离、团队规范违反、隐性知识缺口
误报率(我的实测) 约35%(大量规则不适用项目实际场景) 约22%(上下文理解有限) 约19%(warning级别+blocking误报)
修复成本 高(需切回IDE修改、重新提交) 中(在PR页面查看、切回IDE修改) 低(编码时直接接受建议或一键修复)
团队规范执行 弱(只能检查通用规则) 中(可通过自定义prompt) 强(共享Rules+项目文档上下文)
新成员上手速度 无直接帮助 间接帮助(看到review评论学习) 直接帮助(编码时实时提示团队规范)
价格(团队6人) 免费(社区版) $12/月/人 $30/月/人(Teams订阅)

数据来源:我的adam-eva项目三周实测记录。SonarQube使用的是社区版默认规则集,CodeRabbit使用标准配置,Cursor Teams使用上述自定义规则配置。三周内的PR数量和贡献者相同。

这个对比表里最有意思的不是准确率数字,而是“修复成本”这一行。SonarQube和CodeRabbit都是在代码已经写成之后告诉你“这里有问题”,你需要打断当前的工作流,切回去修改。Cursor Teams在编码时同步给建议,修复成本极低——很多时候就是一键Tab接受。这个流程差异对团队效率的影响,比准确率高几个百分点重要得多。

但Cursor Teams明显更贵。6个人的团队一个月$180,一年就是$2,160。这个钱值不值?我算了一笔账:我们团队每个月的线上bug平均修复成本(从发现、定位、修复到上线)约在4-6个人时。如果AI审查能每月减少1个线上bug,就已经覆盖了订阅成本。三周内我们减少了2个本可能上线的bug,ROI是正的。但这个算法依赖团队的bug密度——如果你的团队线上bug本来就很少,ROI可能不好看。

新成员上手的速度变化,是我最意外的收获

我本来买Cursor Teams是为了代码审查,但用了一周后发现,它最大的价值可能不在审查上,在团队上下文共享。具体地说,是新成员看代码时的“实时代码解释”功能。(延伸阅读:M4单核破4000分当天我撤掉了所有x86编译节点,但无风扇Air的热降频差点让监控炸了

这个功能的机制是:开发者选中一段代码,AI会在侧边栏给出解释,而这个解释的依据不仅是代码本身,还包括团队配置里引用的设计文档、编码规范和历史决策记录。adam-eva项目有一个支付回调处理模块,逻辑比较复杂——涉及重试策略、幂等性检查、对账状态机。这个模块的代码注释很少,之前的新成员理解它平均需要2-3天。

我在Teams的teamContext里加上了支付模块的设计文档(payment-callback-design.md),新成员再看这段代码时,AI给出的解释会结合设计文档说明“为什么这里用了乐观锁而不是悲观锁”“重试次数为什么设为5次而不是3次”。新成员理解这个模块的时间从2-3天缩短到了半天。这不是AI多聪明,而是AI把本来需要老人口头传递的上下文,在代码阅读的时候就给到了。

我写一段实际触发这个功能的代码作为例子。下面这段支付回调处理逻辑,新人选中它以后,AI给出的解释不再是逐行翻译代码,而是结合项目文档说明设计意图:

// 支付回调处理 — 新人选中这段,AI会结合payment-callback-design.md解释
async function handlePaymentCallback(callbackData: PaymentCallback) {
  const lockKey = `payment:callback:${callbackData.orderId}`;
  
  // AI解释: 使用Redis分布式锁防止并发回调导致重复处理
  // 参考: payment-callback-design.md 第3.2节 "幂等性保证方案"
  const lock = await redis.lock(lockKey, 5000);
  
  try {
    const order = await OrderService.findById(callbackData.orderId);
    
    // AI解释: 状态机约束 — 只有PENDING状态才能流转到PAID
    // ErrorCode.ORDER_STATUS_INVALID(10013) 定义在 error-codes.md
    if (order.status !== OrderStatus.PENDING) {
      throw new AppError(ErrorCode.ORDER_STATUS_INVALID, 
        `订单${callbackData.orderId}当前状态${order.status}不允许支付回调`);
    }
    
    // AI解释: 乐观锁更新防止竞态条件,version字段自动递增
    // 更新失败(affectedRows=0)说明被其他请求抢先处理了
    const affectedRows = await OrderService.updateStatus(
      callbackData.orderId, 
      OrderStatus.PAID, 
      order.version
    );
    
    if (affectedRows === 0) {
      logger.warn(`订单${callbackData.orderId}并发更新冲突,跳过本次处理`);
      return; // AI提示: 幂等设计 — 重复回调应当静默成功而非报错
    }
    
    await PaymentEventEmitter.emit('payment.confirmed', callbackData);
  } finally {
    await lock.release(); // AI提示: finally确保锁一定释放,避免死锁
  }
}

这段代码旁边AI给出的解释不是“这是一个异步函数,接收支付回调数据作为参数”——那种废话没有任何价值。它给出的解释是结合项目文档的:“根据payment-callback-design.md第3.2节,本模块使用Redis分布式锁+乐观锁双重保障幂等性。order.version字段用于乐观锁控制,每次更新递增。回调处理失败时选择静默返回而非抛出异常,是因为支付网关会重试回调,静默返回可以避免告警风暴。参考历史决策:2024年6月的一次线上事故就是因为回调异常导致告警系统被触发237次。”

这种级别的解释,传统方式是靠老员工口头传递,或者靠新员工自己去翻设计文档和事故报告。这两种方式的效率都远低于在代码旁边直接看到解释。我在团队里观察到的一个变化是:新成员提问的频率下降了约40%,但提的问题质量明显上升——他们问的不再是“这段代码在干什么”,而是“这个设计决策在现在的场景下还适用吗”。这是团队成熟度提升的一个信号。

这套流水线我踩了三个坑,规则配置的边界比想象中窄

三周跑下来,流程本身是顺的,但我在配置和推行过程中踩了三个坑,值得展开讲讲。

第一个坑:规则粒度太细会导致“审查疲劳”。我一开始在.cursorrules里配了27条规则,覆盖了从命名规范到函数复杂度的方方面面。第一天的结果是小崩溃的——AI在几乎每一行代码上都给出了建议,开发者感觉自己不是在写代码,是在和AI谈判。一个同事跟我说:“我感觉AI觉得我写的每一行代码都是错的。”我把规则从27条砍到了12条,只保留blocking级别的问题和有明确autoFix的规则。规则不在多,在于每条规则是否对应一个“以前经常出问题”的场景。如果你要配规则,先翻过去三个月的线上bug清单,从bug反推规则,而不是从最佳实践文档复制规则。

第二个坑:自定义文档作为上下文,文档质量直接影响AI表现。我在teamContext里引用了error-codes.md和nodejs-coding-standard.md。一开始这两份文档写得很随意——错误码只有编号和名称,没有使用场景说明;编码规范大量使用“建议”“尽量”这种模糊表达。AI基于这些文档给出的建议也变成了模糊的建议。我花了一个下午重写了这两份文档,每条规范改成“必须/禁止+具体场景+反例”。重写后AI建议的准确率从大约65%提到了71%。投入产出比很高——一下午的工作换来了持续的准确率提升。这个经验让我意识到,AI审查的质量上限不取决于模型能力,取决于你的团队文档质量。文档写得烂,AI审查也跟着烂。

第三个坑:blocking规则的autoFix要慎用,业务逻辑相关的修复不要让AI自动执行。我给错误处理规则开了autoFix,效果不错。但我在敏感数据脱敏规则上没有开autoFix,只给了提示信息。原因很简单:敏感数据的识别需要业务判断,AI可能误判什么算敏感数据。手机号的正则匹配可能把订单号也匹配了。autoFix只适合语法层面确定性的修复——加try-catch、加空值判断、加日志格式化。涉及业务含义判断的,只给建议,不自动修。这条我建议所有配置团队审查规则的人都遵守。(延伸阅读:我让Grok 3在500页招股书里找财务漏洞,结果它把审计报告给否了

棋局解读:微软、JetBrains、Cursor的三方博弈,赢家不是技术最强的那个

把视线拉高一点,从产品策略的层面看,Cursor Teams这个动作不是孤立的产品更新,是AI编程工具赛道三股势力的博弈棋局。

微软有GitHub Copilot——最大的用户基数,最深的生态绑定,但它的团队协作功能到现在主要靠GitHub Actions上的第三方AI审查机器人(CodeRabbit、Reviewpad等)来补位。微软选的是“平台化”方向:我不做审查规则引擎,我提供API和Actions市场,让生态来解决。这个选择的好处是快、轻、覆盖广,坏处是体验割裂——开发者在IDE里用Copilot写代码,然后在PR页面看另一个AI的审查意见,两个AI之间没有共享上下文。

JetBrains AI Assistant走的是“深度集成”方向。它的优势是自家IDE对代码理解更深(静态索引、重构引擎),可以在更精确的AST层面做审查。但它的团队功能目前还比较基础,Rules共享不如Cursor Teams做得好。JetBrains的优势在于存量用户基本盘——大量企业团队在用IntelliJ全家桶,迁移成本高。

Cursor选的方向是“垂直整合”:自己做IDE、自己做模型调用层、自己做审查规则引擎、自己做团队共享层。这个选择的风险最大(用户要从VSCode迁移,生态插件兼容性有问题),但一旦跑通,体验是最一致的——编码补全、代码审查、上下文解释都在同一个窗口里完成,不存在信息断层。Cursor Teams就是这个垂直整合策略在团队层面的延展。

从这三个玩家的棋路来看,我判断接下来三个月的走势是:微软会在GitHub Copilot的IDE插件里加入基础的审查规则配置(可能叫Copilot Review Rules或者类似的东西),但不会做到Cursor这个深度,因为GitHub的策略重心在Actions生态,不是在IDE里做大而全。JetBrains会加大AI Assistant的团队功能投入,但受限于插件架构(AI Assistant是插件,不像Cursor那样把AI能力做进内核),体验上会稍逊一筹。Cursor会继续加速团队功能的迭代,但它最大的挑战不是功能和体验,是“让团队从VSCode迁过来”这个决策的门槛。

如果微软在接下来三个月宣布Copilot Workspace(他们的端到端AI开发环境)全面开放并且定价激进,我上面关于“Cursor体验领先”的判断就要重新评估。微软可以用价格战和生态整合的优势冲掉Cursor的体验优势。这是我的预测风险所在。

代码审查这件事,拐点不在AI变聪明了,在团队隐性知识终于能沉淀了

用这套系统三周后,我最深的感受不是“AI审查好厉害”——准确率71%虽然不错,但远没到可以替代人工review的程度。真正让我觉得拐点来了的,是那12条审查规则和3份项目文档构成的“团队知识层”。

以前这些知识在哪?在几个老人的脑子里,在偶尔翻一翻的Wiki里,在入职培训的PPT里。新人犯了错,老人指出,新人记下(或者没记下),周而复始。这套系统的不同之处在于,它把这些知识从“需要主动查询”变成了“在写代码时就自动提醒”。不需要新人记得“我们项目要求所有异步操作要有try-catch”——AI会在他写完function没有加try-catch的时候,立刻标黄。不需要新人主动去翻错误码文档——AI在建议错误处理时会自动引用正确的错误码。

这是一种从“pull”到“push”的知识传递方式转变。而这个转变的载体不是AI模型本身,是团队把自己的隐性知识写进了.cursorrules和项目文档。AI只是执行引擎。

我的判断:Cursor Teams代表的“共享上下文编码审查”模式,会在六个月内成为AI编程工具的标配。不是因为技术有多突破,而是因为这个模式解决了团队协作里一个古老的痛点——隐性知识无法在编码时刻自动传递。但前提是模型能力保持当前水平并且定价不涨。如果大模型API的成本反弹(比如算力紧张导致涨价),这种实时审查的经济账就要重新算。

可能被打脸的风险:如果接下来OpenAI或Anthropic在模型层面做出重大突破(比如GPT-5.5的代码理解准确率相比当前版本提升40%以上),那么整个AI编程工具赛道的竞争重心会从“审查规则引擎和共享上下文设计”重新回到“谁的模型更强”上。届时Cursor在产品和体验层面建立的优势,可能被模型能力的代差抹平。我上面关于Cursor Teams领先的判断,在那种情况下就需要重写成:团队配置做得再好,也扛不住底模差了40%的准确率。

本文由 AI 辅助生成(作者人设:叶秋),已经自动化事实核查流程处理,但仍可能存在不准确之处,具体信息请以官方文档为准。

觉得有用?

零垃圾邮件 · 随时退订

叶秋

在科技媒体做了4年编辑后转做技术博主,关注AI行业的动态和趋势。比纯工程师更懂表达,比纯媒体人更懂技术。喜欢把复杂的技术变化讲清楚,让更多人理解AI正在怎么改变世界。