标签 AI编程工具 下的文章

一、开发痛点:为什么我们需要AI编程辅助?

核心发现: AI编程工具正在重塑开发流程,但真正的价值不在于替代开发者,而在于构建人机协作的新型开发范式。Claude Code通过精准对话流设计、模块化任务分解和专业化子代理协作,在提升开发效率的同时,也面临着上下文管理、协作边界和质量控制等实际挑战。

作为一线开发者,我们每天都在与复杂的业务逻辑和不断迭代的技术栈打交道。不知道你是否也遇到过这些场景:刚理清一个复杂业务流程,被打断后又得重新梳理思路;接手一个老项目,花了半天还没搞懂其中某个模块的设计思路;或者在不同项目间切换时,总要重新适应不同的编码规范和架构风格。

日常开发的三个"拦路虎":

  • 上下文切换成本高: 需求理解→技术选型→代码实现→质量验证的切换过程中,每次都要重新构建认知框架。
  • 知识传递效率低: 项目规范、架构经验分散在文档和个人经验中,新成员上手或跨模块开发时处处碰壁。
  • 开发流程割裂: 需求→设计→编码→审查各环节串行传递,信息易失真且反馈滞后。

这些问题不是简单的"加人"或"加班"能解决的。我们需要的是一种新的开发范式,而Claude Code这类AI编程工具正是在这样的背景下进入了我们的视野。它的价值不在于替我们写代码,而在于成为我们的"认知放大器"和"流程协作者"。

二、Claude Code核心功能解析:从工具到方法论

Claude Code构建了一套完整的AI辅助开发方法论。接下来将结合团队实际使用经验,从功能特性、使用场景和设计初衷三个维度,详细介绍其核心功能:

精准对话流设计:控制AI思考的艺术

第一次用Claude Code时,就像面对一个热情但经验不足的实习生——如果不明确告诉他要做什么、怎么做、有什么要求,他很可能会给你一个"惊喜"。对话流设计就是解决这个问题的关键。

设计初衷: 对话流设计的本质是将人类的编程思维模式转化为AI可理解的结构化交互方式,通过明确的上下文管理和约束条件设置,引导AI生成符合预期的代码结果。

核心功能

对话流设计通过三个关键机制控制AI的思考过程:

  • 上下文聚焦: 要求单次对话仅处理一个功能模块,避免多任务混合导致的AI注意力分散。我们曾经试过在一个对话里同时让AI处理多个模块,结果它把两个模块的错误处理逻辑混在了一起。
  • 约束明确化: 通过具体指令减少AI的自由度,比如"仅修改X包下文件"、"必须复用Y工具类"。这些约束要尽可能具体,比如不说"遵循项目规范",而是说"使用ResultDTO作为统一返回格式,错误码规则参考ErrorCodeEnum"。
  • 增量式提问: 采用"先框架后细节"的提问策略,先让AI生成接口定义和整体框架,待确认后再逐步深入实现细节。这种方式很像我们带新人时"先搭骨架再填肉"的指导方法。

使用心法

启动新功能开发时,我们会创建专用对话线程,并在初始prompt中明确四件事:

  1. 当前任务的功能边界和目标(做什么,不做什么。)
  2. 必须遵守的技术约束和规范(用什么技术栈,遵循什么标准。)
  3. 期望的输出格式和交付物(要代码?要文档?还是两者都要?)
  4. 分阶段的实现计划(先设计接口,再实现逻辑,最后写测试。)

真实踩坑经验

处理跨模块依赖时,我们发现AI很容易"忘记"之前设定的约束。后来我们总结出一个技巧:每开始一个新的实现阶段,就简要回顾一下关键约束。比如:"现在我们要处理任务交接流程,请记得:1. 使用Redis分布式锁;2. 需要修改商运关系和新商成长任务;3. 异常处理要符合规范。"

Plan模式:复杂任务的系统化分解

面对"实现一个完整的拜访任务系统"这样的复杂需求,直接让AI生成代码就像让一个刚入行的开发者独立负责整个项目——结果往往是逻辑混乱、漏洞百出。Plan模式就是解决这个问题的"项目管理工具"。

现状与问题:我们早期使用Claude Code时,经常犯一个错误:把一个复杂需求一股脑丢给AI,然后期待它给出完美解决方案。结果通常是:

  • 实现逻辑不完整,有些边界情况根本没考虑到。
  • 模块间接口设计不一致,调用起来磕磕绊绊。
  • 技术选型不合理,用了个"看起来很酷但项目中并不适用"的方案。

这其实不能怪AI,人在面对过于复杂的问题时也会手足无措。我们需要一种方法把大问题拆分成小问题,而Plan模式正是借鉴了项目管理中的WBS(工作分解结构)思想。

我们的解决方案:Plan模式使用三步法分解需求:

  1. 需求分析与模块划分:把整体需求分解为独立的功能模块。
  2. 技术方案设计:为每个模块确定实现思路和技术选型。
  3. 任务优先级排序:根据依赖关系和重要性确定实现顺序。

实际操作示例:拜访任务需求

拜访任务是一个简单的企业内部任务需求,在实现"拜访任务需求"时,我们通过Plan模式生成的任务清单是这样的:

---
拜访任务线上化 - 模块清单
M1: 任务创建模块
- 功能: 创建拜访任务,包含基本信息、拜访对象、参与人员
- 复杂度: Medium (需要处理多表关联和事务)
M2: 任务审批模块
- 功能: 飞书审批流程集成,支持任务提交、审批、驳回
- 复杂度: High (涉及飞书审批接口集成和状态流转)
M3: 日程同步模块
- 功能: 将拜访任务同步到飞书日历
- 复杂度: Medium (飞书API调用和异常处理)
M4: 任务列表查询模块
- 功能: 分页查询任务列表,支持多维度筛选
- 复杂度: Medium (ES聚合查询和数据转换)
M5: 任务详情查询模块
- 功能: 查询任务详情,包括拜访对象、参与人员、商家信息
- 复杂度: Low (简单的关联查询)
M6: 任务统计模块
- 功能: 统计不同类型、不同状态的任务数量
- 复杂度: Low (聚合统计)
M7: 拜访结果提交模块
- 功能: 提交拜访记录,上传附件,记录拜访内容
- 复杂度: Medium (文件上传和多表操作)
M8: 任务分配模块
- 功能: 批量分配任务给运营人员
- 复杂度: High (涉及分配策略和定时任务)
M9: 任务触达模块
- 功能: 任务开始、结束、上传提醒通知
- 复杂度: Medium (飞书消息卡片模板)
M10: ES数据同步模块
- 功能: 将任务数据同步到ES,支持全文检索
- 复杂度: Medium (事件驱动和ES批量操作)
M11: 任务导入模块
- 功能: Excel批量导入拜访任务
- 复杂度: High (Excel解析、数据校验、批量插入)
M12: 任务状态变更模块
- 功能: 定时更新任务状态(未开始→进行中→已结束)
- 复杂度: Low (定时任务和批量更新)
---
第二步:技术方案设计
| 模块       | 数据存储               | 查询方案         | 外部集成          |
|------------|------------------------|------------------|-------------------|
| M1-任务创建  | MySQL (事务)           | -                | -                 |
| M2-任务审批  | MySQL + 审批记录表      | -                | 飞书审批API       |
| M3-日程同步  | -                      | -                | 飞书日历API       |
| M4-任务列表  | ES (主) + MySQL (辅)   | ES聚合查询       | -                 |
| M5-任务详情  | MySQL                  | 联表查询         | 商家信息API |
| M6-任务统计  | ES                     | ES聚合统计       | -                 |
| M7-结果提交  | MySQL + OSS            | -                | OSS文件上传       |
| M8-任务分配  | MySQL                  | 分配算法         | -                 |
| M9-任务触达  | -                      | -                | 飞书消息卡片      |
| M10-ES同步  | ES                     | Spring Event     | -                 |
| M11-任务导入 | MySQL                  | Excel 解析    | -                 |
| M12-状态变更 | MySQL                  | JOB定时任务  | -                 |
---
第三步:任务优先级排序
P0 核心流程(必须先实现)
1. M1-任务创建 (基础功能)
2. M5-任务详情 (数据展示)
3. M4-任务列表 (核心查询)
4. M7-结果提交 (闭环流程)
P1 审批与通知(核心功能增强)
5. M2-任务审批 (依赖M1)
6. M3-日程同步 (依赖M2审批通过)
7. M9-任务触达 (依赖M1、M7)
P2 运营功能(效率提升)
8. M8-任务分配 (依赖M1)
9. M11-任务导入 (依赖M1)
10. M6-任务统计 (依赖M4)
P3 技术优化(性能优化)
11. M10-ES同步 (依赖M1、M4)
12. M12-状态变更 (独立模块)
---
实现建议
阶段一:基础能力
- 先实现 M1、M5、M4,打通任务创建→查询→详情的基本链路
- 使用 MySQL 实现,暂不接入 ES
阶段二:审批流程
- 实现 M2、M3,接入飞书审批和日历
- 完成任务的完整生命周期管理
阶段三:结果闭环
- 实现 M7,完成拜访结果提交
- 实现 M9,添加任务触达通知
阶段四:运营优化
- 实现 M8、M11、M6
- 提升运营效率
阶段五:性能优化(按需)
- 实现 M10,将查询迁移到 ES
- 实现 M12,优化任务状态管理

这种方式不仅让AI能够有序工作,也让我们对整个开发进度有了更清晰的把控。

系统提示词:给AI立"规矩"的艺术

如果把Claude Code比作一个新加入团队的开发人员,系统提示词(CLAUDE.md)就相当于给他的"入职手册",告诉他团队的编码规范、工作流程和注意事项。

新手常犯的错误: 把系统提示词写成"百科全书",恨不得把所有项目知识都塞进去。结果AI要么忽略大部分内容,要么在生成代码时顾此失彼。我们早期的系统提示词长达5000字,包含了从架构设计到代码规范的所有内容,效果反而不好。

实践心得:有效的系统提示词应该像"护栏"而非"详尽手册"。我们发现,针对AI常见错误模式设计的针对性提示,远比全面但泛泛的规范更有效。现在我们的系统提示词控制在200字以内,只包含最关键的约束和指引。

系统提示词模板

经过多次迭代,我们总结出包含三个关键模块的系统提示词结构:

使用技巧

分享几个在实践中总结的系统提示词编写技巧:

  • 避免信息过载: 不要试图包含所有知识,而是指引AI在需要时查询特定文档。例如:"遇到分布式事务问题时,请参考/doc/分布式事务最佳实践.md文档中的TCC模式实现方案"。
  • 提供正向引导: 不仅说"不要做什么",更要明确"应该怎么做"。例如,不说"不要使用过时的API",而说"请使用OrderServiceV2替代OrderServiceV1。
  • 动态调整策略: 我们每两周会回顾一次系统提示词的有效性,根据AI最近常犯的错误补充新的约束。比如发现AI经常忘记处理空指针,就新增一条:"所有方法入参必须进行非空校验,使用ValidateUtil.isEmpty()方法,异常时抛出IllegalArgumentException"。

SKILL与MCP:知识沉淀与外部能力扩展

在团队协作中,我们经常说"不要重复造轮子"。同样,在使用Claude Code时,我们也需要一种机制来沉淀和复用那些有效的Prompt和解决方案——这就是SKILL和MCP机制的价值所在。

SKILL机制: 把好经验变成"可复用组件"

SKILL本质上是将单次生效的Prompt指令沉淀为可反复调用的标准化复用资产。举个例子,我们团队处理"ES数据查询"逻辑时,总结出了一个内部版本的SDK。我们把这个SDK的调用方式封装成一个SKILL,以后遇到类似场景,只需调用这个SKILL,AI就能按照我们团队的最佳实践来实现。

MCP协议: 让AI能"调用"外部工具

MCP(模型上下文协议)解决了AI与外部工具、数据源的连接问题。通过MCP,AI不再局限于静态知识,而是能够动态访问实时数据。我们集成了飞书MCP服务器,让AI能够直接操作飞书平台,如自动生成技术方案文档、读取PRD需求、同步数据到多维表格等。

最适合封装为SKILL的场景

1.复杂工具使用指南: 如"ElasticSearch接入"、"Redis缓存更新策略"等需要特定知识的场景。

2.常见错误处理模板: 如"分布式锁冲突处理"、"数据库乐观锁重试机制"等反复出现的问题解决方案。

MCP协议的典型应用场景

  • 场景1: 自动生成技术方案文档
  • AI分析需求后,通过飞书MCP调用feishu_create_doc;
  • 直接在指定的知识库目录创建格式化的技术方案文档;
  • 省去手动复制粘贴的繁琐步骤。
  • 场景2: 读取PRD需求
  • 用户提供飞书文档链接;
  • AI通过feishu_get_doc_content获取文档内容;
  • 基于完整需求信息生成技术方案和实现计划。
  • 场景3: 数据同步到多维表格
  • 代码生成后的统计数据(如代码行数、涉及文件等);
  • 通过feishu_append_bitable_data自动追加到飞书多维表格;
  • 便于团队追踪AI编程效率指标。

三、对话流设计方法论:让AI"懂"你的真实需求

刚接触Claude Code时,我们采用的是简单直接的"需求-响应"模式:开发者描述需求,AI生成代码,开发者修改调整。这种模式在处理简单功能时还行,但遇到复杂场景就会出问题。

现状分析:传统对话模式的局限性

我们早期在项目中踩过的三个坑:

三大典型问题:

  • 需求表达不完整:

开发者说"实现一个商家信息查询接口",AI生成了基础的CRUD代码,但没有考虑商家数据权限、数据脱敏、缓存策略等实际业务需求 ;

实现任务时,只描述了"需要任务分配功能",结果AI生成的代码没有处理任务池、任务优先级、分配策略等核心逻辑。

  • 上下文管理混乱:

一个对话持续了十几轮后,AI开始忘记我们前面确定的"使用MyBatis-Plus + BaseMapper"的设计决策,擅自改成了JPA Repository模式; 

在实现相关功能时,早期确定的DTO转换规范在后续模块中被遗忘,导致代码风格不一致。

  • 迭代反馈滞后:

等AI生成完整的Service + Controller + Repository代码后才发现方向不对,比如数据库表设计与现有架构冲突,不得不从头再来,浪费了大量时间;

实现触达功能时,生成的飞书消息发送代码没有考虑现有的FeishuClient封装,重复造了轮子。

核心问题:为什么AI总是"听不懂"?

深入分析后,我们发现传统对话模式失败的根源在于三个核心矛盾:

语义鸿沟

自然语言描述的模糊性与代码逻辑的精确性之间的差距。我们说"这个接口要安全",AI可能理解为"需要登录校验",而我们实际想要的是:

  • 使用项目中的@Permission注解进行权限校验。
  • 参数需要使用ValidatorUtil进行校验。
  • 敏感操作需要记录操作日志。

约束衰减

随着对话推进,早期设定的技术约束在AI理解中的权重逐渐降低。就像我们记笔记时,重要的事情要反复强调。比如:

  • 第1轮对话强调"必须继承BaseServiceImpl"。
  • 第5轮对话AI可能忘记这个约束,直接实现了一个独立的Service类。
  • 第10轮对话可能连项目的分层架构都混淆了。

目标偏移

在多轮对话中,AI容易过度关注当前细节而忽视整体目标。比如讨论某个接口的参数设计时:

  • AI可能会纠结于参数名称是否优雅。
  • 而忽略了这个接口的核心业务价值是"快速检索符合条件的商家"。
  • 结果生成的代码参数命名很完美,但缺少了分页、排序等实际必需的功能。

解决方案:结构化对话设计方法

针对这些问题,我们团队总结出一套"三阶段对话模型",现在已经成为我们使用Claude Code的标准流程:

阶段一:需求定义——把"要做什么"说清楚

这个阶段的目标是确保我们和AI对需求达成共识。我们会用"用户故事+验收标准"的格式来描述需求:

示例1:新商户成长任务分配

【用户故事】
作为新商户运营,我需要一个任务分配功能,以便将成长任务高效分配给运营人员
【验收标准】
 - 支持从任务池中按优先级(P0/P1/P2)筛选待分配任务
 - 支持指定运营人员进行任务分配,需校验运营人员是否有权限
 - 分配时需检查运营人员当前任务负载,超过上限时提示"当前任务数已达上限"
 - 分配成功后需发送飞书消息通知运营人员,消息内容包含任务详情和截止时间
 - 操作需记录到表,包含操作人、操作时间、任务ID、分配对象

示例2:商家数据权限查询

【用户故事】
作为商家运营,我需要一个商家信息查询接口,查询结果需要根据我的数据权限进行过滤
【验收标准】
 - 支持按商家ID、商家名称、商家状态进行查询
 - 支持分页查询,默认每页20条,最大100条
 - 查询结果需要根据当前用户的数据范围进行过滤
 - 商家敏感信息(手机号、身份证号)需脱敏处理
 - 接口需要权限校验,至少具有"商家查看"权限
 - 查询条件需记录到操作日志,便于审计

阶段二:边界明确——确定"怎么做"的约束条件

在这个阶段,我们会明确技术栈选择、架构设计和各种约束条件。关键是要区分"必须遵守"和"建议参考"的约束:

示例1:新商户成长任务模块

【技术约束】
必须遵守:
 - 使用SpringBoot标准分层架构,所有Service继承OcsBaseServiceImpl
 - 数据库操作使用MyBatis-Plus,实体类继承BaseEntity,Mapper继承BaseMapper
 - 接口返回统一使用Result<T>格式,错误码使用ErrorCode
 - 权限校验使用@Permission注解,参数校验使用@Valid + ValidatorUtil
 - 飞书消息发送必须使用FeishuClient,不要重复实现
建议参考:
 - 任务状态流转参考TaskServiceImpl中的状态机模式
 - 批量分配操作参考AssignImportHandler中的异步处理方式
 - 运营人员权限校验参考OperatorRelationServiceImpl
 - 数据权限过滤参考ScopeServiceImpl中的范围查询逻辑
【数据库约束】
 - 新增表必须包含created_at, updated_at, is_deleted字段
 - 表名使用ocs_前缀,字段名使用蛇形命名法
 - 索引设计需考虑查询场景,高频查询字段必须建立索引
 - 外键约束通过代码层面维护,不在数据库层面创建

示例2:机器人问答功能

【技术约束】
必须遵守:
 - Controller层使用@RestController + @RequestMapping,路径遵循/api/v1/{module}/{action}格式
 - Service层业务逻辑必须有事务控制,使用@Transactional(rollbackFor = Exception.class)
 - DTO转换使用项目中的ConvertUtil,不要手动赋值
 - 第三方API调用(如Dify)必须有重试机制和降级策略
 - 敏感配置(API Key)必须从配置中心读取,不要硬编码
建议参考:
 - 对话上下文管理参考RobotServiceImpl中的会话ID生成逻辑
 - 消息发送失败重试参考FeishuMessageHandler中的重试策略
 - 错误处理参考GlobalExceptionHandler中的统一异常处理
【集成约束】
 - Dify API调用统一通过DifyClient,响应格式需转换为项目标准格式
 - 飞书机器人回调处理需实现签名校验,参考FeishuEventHandler
 - 所有外部API调用需记录请求日志到integration_log表 

阶段三:迭代反馈——在"做的过程"中持续对齐

这个阶段的核心是增量验证,避免一次性生成大量代码后才发现方向错误。

实践要点:

1.分模块实现,逐个验证

  • 先实现核心接口(如任务分配),验证通过后再实现辅助功能(如任务查询)。
  • 先实现Service层核心逻辑,验证业务流程正确后再补充Controller和参数校验。

2.关键节点主动暂停

  • 数据库表设计完成后,先让开发者确认表结构再继续。
  • 核心业务逻辑实现完成后,先通过单元测试验证再生成Controller。
  • 集成第三方API前,先确认调用方式和参数映射。

3.持续同步技术方案

  • 发现架构设计与现有代码不一致时,立即更新tech-solution.json和tech-solution.md。
  • 新增数据表、修改核心逻辑时,同步更新技术方案文档。
  • 每个模块完成后,更新模块状态为implemented → reviewed → verified。

对话示例:

开发者: "实现新商户成长任务分配功能"
AI: "我将分三步实现:
1. 先设计数据库表结构(ocs_task_assignment表)
2. 实现核心分配逻辑(NewMerchantTaskAssignService)
3. 实现Controller层接口
现在开始第一步,设计的表结构如下:
[展示表结构]
请确认表结构是否符合需求?"
开发者: "字段没问题,但索引需要加上(operator_id, status)"
AI: "已更新索引设计,现在开始实现Service层核心逻辑...
[生成Service代码]
核心逻辑已实现,包含:
- 任务池查询(按优先级过滤)
- 运营人员负载检查
- 任务分配和状态更新
- 飞书消息发送
请验证业务逻辑是否正确?"
开发者: "逻辑正确,继续实现Controller"
AI: "开始实现Controller层...
[生成Controller代码]
已完成模块M1实现,更新技术方案状态为implemented"

对话设计三原则与常见问题应对策略

为什么这样设计:背后的认知科学原理

这种结构化对话设计不是凭空想出来的,而是基于我们对人类认知过程的理解:

  • 工作记忆限制理论: 就像我们一次只能记住7±2个信息块一样,AI的上下文理解能力也是有限的。通过分阶段对话和单次聚焦单模块,我们控制了每次交互的认知负荷。
  • 渐进式知识构建: 学习和理解是一个渐进过程,先掌握整体框架再深入细节,符合认知规律。这和我们教新人时"先讲架构图,再讲模块间交互,最后讲具体实现"的思路是一致的。

四、AI团队协作模式:子代理系统的实践与思考

随着团队使用Claude Code的深入,我们发现单个AI助手已经难以满足复杂项目的开发需求——就像一个人再厉害也干不了一个团队的活。于是,我们开始探索让多个AI"角色"协同工作的模式,这就是子代理(SubAgent)系统的由来。

团队协作的现状与挑战

在传统开发模式中,我们有需求分析师、架构师、开发工程师、测试工程师等不同角色,他们通过文档、会议和代码审查等方式协作。这种模式虽然成熟,但在快节奏的业务迭代中,我们发现了一些问题:

协作中的三大痛点:

  • 信息传递损耗: 需求文档从产品经理到开发再到测试,每经过一个环节就可能产生一些理解偏差。就像玩"电话游戏",信息传到最后可能已经面目全非。
  • 责任边界模糊: 当出现问题时,有时会出现"这是架构设计问题"、"这是实现问题"、"这是测试不充分"的互相推诿。
  • 反馈周期漫长: 从需求分析到代码审查,整个流程走下来往往需要几天时间,等发现问题时可能已经投入了大量开发资源。

这些问题促使我们思考:能不能在Claude Code中模拟团队协作模式,让不同的AI角色各司其职又协同工作?

Claude Code的子代理协作模式

借鉴了MetaGPT等框架的思想,我们在Claude Code中构建了由多个专业化子代理组成的AI团队协作系统。每个子代理承担特定角色,通过标准化中间产物协同工作。

核心工作机制:中间产物驱动

所有子代理通过共享"技术方案文档"进行协作,这个文档就像团队的"共享白板",包含需求分析、模块划分、实现状态和接口设计等关键信息。每个子代理只负责修改文档中与自己角色相关的部分,确保信息一致性。

四个核心子代理角色

技术方案架构师

负责需求分析、技术方案设计和模块划分。相当于团队里的架构师,输出"技术方案文档"这个"施工蓝图"。

核心职责:

  • 需求拆解与模块划分
  • 技术栈选型与架构设计
  • 接口定义与数据模型设计
  • 模块间依赖关系梳理
  • 技术方案文档编写与维护

代码审查专家

负责代码质量审查。扮演技术负责人的角色,从架构合规性、代码规范和稳定性等角度挑毛病。

核心职责:

  • 检查代码是否符合架构设计
  • 验证代码规范和命名约定
  • 识别潜在性能问题和bug
  • 评估代码可维护性和扩展性
  • 提供具体修改建议

代码实现专家

专注于代码实现和单元测试编写。就像主力开发工程师,按照架构师设计的蓝图一块块地实现功能。

核心职责:

  • 根据技术方案实现代码
  • 编写单元测试和集成测试
  • 修复代码审查中发现的问题
  • 编写API文档和使用说明
  • 同步更新技术方案实现状态

前端页面生成器

专门负责生成符合我们低代码平台规范的前端页面配置。这是针对我们商家域管理后台特点定制的角色。

核心职责:

  • 根据接口定义生成前端页面配置
  • 实现表格、表单、详情页等标准组件
  • 配置页面权限和数据范围过滤
  • 优化前端交互体验
  • 确保符合设计规范和响应式要求

协作流程

我们采用"先整体规划,再迭代实现"的工作方式,有点像敏捷开发中的Sprint规划+Daily Scrum:

1. 整体规划阶段:

  • 产品经理提供需求文档。
  • 协调者调用"技术方案架构师"子代理分析需求,生成技术方案文档。
  • 团队评审技术方案,提出修改意见。
  • 架构师子代理根据反馈修改方案,直到团队确认。

2. 单模块迭代阶段:

  • 协调者从技术方案文档中选取一个模块。
  • 调用"代码实现专家"生成代码。
  • 调用"代码审查专家"审查代码。
  • 实现专家根据审查意见修改代码。
  • 重复"实现-审查-修改"直到通过。
  • 更新技术方案文档,标记该模块为"已完成"。
  • 进入下一个模块。

子代理协作的价值与局限

实践中的三个显著价值

  • 专业化分工提升质量: 每个子代理专注于特定领域,就像专科医院比综合医院在特定疾病上更专业一样。我们发现,专门的代码审查子代理比通用AI能发现更多潜在问题。
  • 流程标准化降低风险: 通过技术方案文档和明确的角色分工,开发流程被标准化和可视化。新人加入项目时,只要看技术方案文档就能快速了解整体情况。
  • 知识沉淀促进复用: 子代理的专业知识和决策逻辑被编码为可复用的配置和规则,避免了"人走经验丢"的问题。

遇到的四个实际挑战

子代理协作的挑战与应对:

  • 上下文同步问题: 当技术方案文档更新时,各子代理有时不能立即同步最新信息。解决办法:每次修改文档后,明确通知相关子代理"技术方案中XX部分已更新"。
  • 协作边界模糊: 在处理跨模块功能时,出现"该由哪个子代理负责"的困惑。解决办法:在技术方案文档中添加"责任人"字段,明确每个模块由哪个子代理负责。
  • 灵活性与标准化的平衡: 高度标准化的流程有时会限制处理特殊情况的灵活性。解决原则:90%的常规情况严格遵循标准流程,10%的特殊情况由人工介入处理。
  • 错误传递放大效应: 如果技术方案设计阶段就有问题,这个问题会在后续实现和审查阶段被放大。解决办法:加强技术方案的人工评审环节,确保"地基"打牢。

子代理协作的设计思考

在设计这套协作模式时,我们有几个关键思考:

  • 为什么选择"中间产物驱动"而非"直接沟通"?
  • 直接让子代理之间对话可能更灵活,但会导致沟通成本指数级增加(n个代理就有n(n-1)/2种沟通渠道)。通过"技术方案文档"这个单一事实来源,我们大大降低了协作复杂度,也便于追踪变更历史。
  • 角色划分的依据是什么?
  • 我们的角色划分基于软件开发的自然阶段(设计→实现→审查)和专业领域(后端→前端),这符合软件开发生命周期的自然规律。没有盲目追求角色数量,而是根据实际需求逐步增加。
  • 为什么采用"增量迭代"而非"一次性开发"?
  • 复杂系统的构建本质上是一个不断学习和调整的过程。增量迭代让我们能够及早发现问题并调整方向,避免在错误的道路上走得太远。这和我们常说的"小步快跑,快速迭代"理念一致。

五、实践经验与未来展望

经过几个月的Claude Code实践,从最初的"试试看"到现在成为离不开的开发工具,我们积累了一些经验,也对AI编程的未来有了更清晰的认识。

实践经验总结

人机协作的最佳平衡点:

我们发现最有效的AI编程模式是"人类主导,AI辅助",而不是反过来。我们将工作内容分为三类:

  • AI主导: 标准化代码生成(如基础CRUD接口)、单元测试编写、API文档生成等重复性高、规则明确的任务。
  • 人机协作: 技术方案设计、复杂逻辑实现、代码审查等需要结合领域知识和创造性思维的任务。
  • 人类主导: 需求分析、架构设计、质量决策等高风险、高创造性的任务。

上下文管理的实用技巧

管理好对话上下文是用好Claude Code的关键,分享几个我们团队总结的技巧:

  • 对话线程化: 为不同功能模块创建独立对话线程。我们曾经在一个对话里讨论三个不同模块,结果上下文混乱到不得不从头开始。
  • 关键信息锚定: 重要的技术决策和约束要在对话中反复强调。就像写文章时,核心观点要多次出现。
  • 文档外化: 复杂设计和决策要记录在外部文档中,而不是仅依赖对话历史。我们会在对话中引用这些文档:"数据库设计详见/doc/db_design.md,特别是索引设计部分"。
  • 状态可视化: 通过技术方案文档中的进度标记(如[未开始]、[设计中]、[已实现]、[已审查]),直观跟踪开发状态。

质量控制的三个关键策略

使用AI生成代码后,质量控制变得更加重要。我们的做法是:

  • 多层次验证: 单元测试(AI生成)+ 集成测试(人工设计)+ 代码审查(人机结合)的三层验证体系。
  • 渐进式信任: 从简单、低风险模块开始使用AI,建立信任后再逐步扩展。我们最先用AI生成内部工具,验证没问题后才用于核心业务系统。
  • 错误模式学习: 记录AI常犯的错误类型,针对性优化系统提示词。我们有一个"AI错误案例库",记录了"AI忘记处理分布式锁超时"、"日期格式转换错误"等典型问题及解决方案。

AI编程的局限性认知

在实践过程中,我们也清醒地认识到AI编程并非万能解决方案,它有几个明显的局限性:

  • 创造性思维不足: AI擅长在已有知识范围内进行组合和优化,但在需要突破性创新的场景下表现有限。比如我们尝试让AI设计一个全新的商家结算模型时,它还是会倾向于参考现有模型进行修改,难以跳出固有思维框架。
  • 上下文理解深度有限: 尽管Claude Code的上下文窗口已经很大,但对于我们系统中某些"牵一发而动全身"的核心模块,AI还是难以把握其深层设计意图和与其他模块的隐性依赖。
  • 质量责任边界模糊: 当AI生成的代码出现质量问题时,责任界定变得复杂。我们的解决办法是:开发者对AI生成的代码负全部责任,就像我们对自己写的代码负责一样。
  • 领域知识滞后性: AI对我们公司内部系统的最新变更反应不够及时。为此我们建立了"知识库更新机制",每月将最新的系统变更和业务规则整理成文档,供AI参考。

未来发展方向思考

基于这些实践经验,我们对AI编程工具的未来发展有几点思考:

  • 更智能的上下文管理: 未来的AI编程工具应该能自动识别相关上下文、追踪依赖关系,并在适当的时候提醒开发者潜在的上下文冲突。就像经验丰富的团队领导,能记住每个人负责的模块和项目的整体情况。
  • 多模态交互模式: 除了文本对话,未来可能引入图表、流程图等多种交互方式。有时画一个简单的流程图(PlantUML),比写几百字描述更能说明问题。
  • 自适应学习机制: AI编程工具应该能从团队的使用反馈中学习,适应特定团队的编码风格和业务领域。就像新加入团队的开发者,会逐渐适应团队的工作方式。

六、结语:人机协作的新型开发范式

回顾这几个月使用Claude Code的经历,我们最大的体会是:AI编程工具的价值不在于替代开发者,而在于构建人机协作的新型开发范式。在这种范式下,人类开发者从繁琐的重复劳动中解放出来,更专注于需求分析、架构设计和质量把控等高价值创造性工作,而AI则承担起代码实现、文档生成和基础验证等标准化工作。

Claude Code作为我们实践的核心工具,通过精准对话流设计、模块化任务分解和专业化子代理协作,展示了这种新型开发范式的潜力。但我们也认识到,成功的AI编程应用需要"工具+方法论+团队协作"三位一体的系统性变革,其中人的角色从"代码生产者"向"问题解决者"和"质量把控者"转变。

作为开发者,我们需要保持开放学习的心态,积极探索和适应这种新范式。未来已来,与其恐惧被AI替代,不如学会与AI协作,在人机协作中实现更高的个人价值和团队效能。毕竟,代码只是解决问题的手段,而非目的;AI只是增强我们能力的工具,而真正的创新和价值,始终源于人的智慧和创造力。

实践启示: 在AI编程时代,最有价值的开发者不是"写代码最快的人",而是"最会引导AI、最能把控质量、最能解决复杂问题的人"。掌握与AI协作的技巧,建立系统化的AI辅助开发流程,将成为未来开发者的核心竞争力。我们的经验表明,通过合理设计对话流程、明确分工协作和严格质量控制,AI编程工具能够显著提升团队效能,但这需要整个团队在思维方式和工作流程上的共同转变。

往期回顾

1.入选AAAI-PerFM|得物社区推荐之基于大语言模型的新颖性推荐算法

2.Galaxy比数平台功能介绍及实现原理|得物技术 

3.得物App智能巡检技术的探索与实践

4.深度实践:得物算法域全景可观测性从 0 到 1 的演进之路

5.前端平台大仓应用稳定性治理之路|得物技术

文 /稚归

关注得物技术,每周更新技术干货

要是觉得文章对你有帮助的话,欢迎评论转发点赞~

未经得物技术许可严禁转载,否则依法追究法律责任。



简单来说就是最近在折腾 codex 反代,提升 codex 的使用体验,但是从 oauth 登录转到使用 api-key 时,发现以前的历史对话消失了,所以

压榨

研究出了这个小脚本

一些小思考

在现在的 vibe coding 时代,一些小需求真的可以很高效的解决了。这个问题从我产生解决这种需求的想法开始,到在论坛里搜索关键词没找到解决方案,再到我把 codex 仓库克隆下来丢给 antigravity 中的哈基米 3,第一次对话它就定位到了切换 provider 后历史对话消失的原因,后面告诉它用 py 脚本迁移之后就很快的给了我一个可用的版本,再丢给 chatgpt 网页版~~(codex 太慢了,小需求就没找它 debug)~~ 迭代了 2 次之后,整体用时不超过 20 分钟。

而在传统古法编程的时代,要解决这个小需求,首先要读 codex 仓库定位问题,光是这一步消耗的时间起码就得在 30 分钟以上…… 对我这样的小菜鸡来说,这个时间更是得翻倍的。 哦,刚注意到 codex 代码基本是用 rust 写的,那花费时间为 0。在我花时间学会 rust 之前,我是看不大懂 rust 代码的,所以我只能等某个大手子出手才能直接无脑使用。但为了这个很小的需求,我是不大可能去学 rust 的,有这时间去玩会不香吗?我会自适应历史对话消失的小问题,又不是不能用


📌 转载信息
原作者:
hello_world1024
转载时间:
2026/1/24 06:44:31

这两天跟朋友吃饭,又聊到了AI。

即使到现在,依然有很多人坚持一个观点:AI永远不可能取代程序员,它只是一个提高效率的辅助工具。他们觉得,有了AI,程序员会变得更强,而不是消失。

说实话,这种想法太乐观了,甚至可以说是在自我麻痹。

我直接抛出我的结论:AI不仅会淘汰程序员,而且这个过程已经开始了。特别是对于初级和中级程序员来说,倒计时已经响了。

咱们别整那些虚头巴脑的比喻,什么“工具论”、什么“驾驶员论”,咱们就实打实地看看现在发生了什么。

第一,我们的工作方式彻底变了。

回想一下两年前你怎么写代码?遇到不会的API,或者想不起来的语法,你会去谷歌,去百度,去Stack Overflow,去CSDN或者掘金。你会翻看别人的博客,找到解决方案,理解它,然后应用到你的代码里。

现在呢?

大部分时候,你只需要在IDE里敲一行注释,AI就给你补全了后面的代码。或者你直接把报错信息丢给AI,它直接给你修复后的代码。你甚至都不需要离开编辑器。

这个过程省去了什么?省去了“搜索、筛选、理解、尝试”的过程。你直接得到了结果。

第二,技术社区正在走向消亡。

这是一个很可怕的连锁反应。因为大家都有了AI,遇到问题不再需要去搜索引擎搜了,也不需要去论坛问了。

这就导致了技术博客和问答社区的流量断崖式下跌。

没人搜,就没人看;没人看,就没人写。原来的技术分享生态是基于“互助”和“展示”的,现在AI把这个需求截断了。以后新的坑、新的Bug解决方案,可能再也不会出现在公开的网络上了,因为AI在它内部的数据库里就已经消化解决了。

第三,也是最关键的,需求方变了。

以前开发软件,流程是:产品经理 -> 需求文档 -> 程序员理解 -> 编写代码 -> 测试。

现在有了像Trae这样的智能IDE,或者是各种Agent(智能体),流程正在变成:人提出需求 -> AI理解需求 -> AI生成代码 -> AI自我修正 -> 人最后确认。

注意到了吗?“编写代码”这个环节,正在从人的手里,转移到AI的手里。

现在的AI工具,已经不仅仅是补全一行代码那么简单了。你告诉它你要做一个什么样的功能模块,它能直接给你生成整个文件,甚至帮你把相关联的配置文件都改好。

以前你需要写几百行代码来实现一个逻辑,现在你只需要用自然语言描述清楚你的逻辑。

这就带来了一个残酷的数学题。

如果以前一个项目需要5个初级程序员写业务代码,1个高级程序员做架构。
现在有了AI,那个高级程序员配合AI,一个人就能把那5个人的活儿干完,甚至干得更快、Bug更少。

那剩下的5个人去哪儿?

公司是为了赚钱的,不是慈善机构。当效率提升了5倍,老板不会雇佣原来的6个人去干5倍的活,而是会裁掉那5个人,只留1个成本最低、效率最高的人。

写在最后

所以,别再觉得AI只是个工具了。当一个工具强导致能独立完成大部分工作时,它就成了劳动力本身。

未来的软件开发,可能真的不需要那么多“写代码”的人了。我们需要的是能精准描述需求的人,是能设计复杂逻辑的人,是能判断AI生成结果对错的人。

纯粹的“代码编写者”,正在消失。这不是焦虑,这是正在发生的现实。

个人情况:

  • Java 、Python 、go 、前端都写过
  • 从未用过 Mac ,家里有台式机作为主力开发,还有 NAS 和轻薄本 Windows ,偶尔外出用笔记本远程家里台式

Windows 下个人开发遇到的问题

  • AI 总是优先使用 bash 语法,vibe coding 是经常先运行 bash 命令,看到报错再切换成 powershell ,即使增加全局 prompt 告诉它这是 windows 有时还是会失效,写的 powershell 也经常失败
  • 很多 AI 工具对 unix 的支持比 windows 好得多,像 claude code 。一些前沿工具如 bun 也是最近才有 Windows ,而且据说还不完善
  • 使用 wsl2 折腾过,jetbrains 系有些不能很好适配。而且如果代码在 wsl 中,jetbrains 和 vscode 系的相互跳转插件就失效了

如果新增 Mac 作为主力开发工具

  • 考虑鱼上收一个 Mac mini 16+256 ,我有 NAS 可以开 docker ,不太需要内存和存储,也没有跑大模型的需要
  • 有远程需要就用笔记本远程 Mac

主要是想 vibe coding 体验更好些,因为我没用过 mac ,想看看大家的意见

模型角度

  • T0: claude 默认的、gemini 、chatgpt5.2
  • 国产模型大差不大

在逻辑实现和技术方案制定上,感觉国外的这 3 个更符合我的审美。。。

agent

白嫖了同学的 claude code ,token 管够的情况下很爽。代码接受率很高,业务屎山也改得动,给的技术方案可落地性也很强。应该是用的国内中转的,速度稍慢。

后面换了 glm code plan ,差距挺大的,只能日常处理点简单编码逻辑,尤其在提示词和代码的理解上和原生 claude 差距巨大。需要给特别明确的 prompt 才能做好。

windsurf 出了 idea 的插件,自带的 swe1.5 ,感觉水平不比国产的差,速度极快,体验还不错。但是自动补全经常出不来。直接用 windsurf ide 体验更好。

trae 整体可用,但用多了排队很烦。

JB 家在 AI 时代整体落后了,插件的体验和原生 ide 差距还是有的。不过原生 ai ide 越强,更能体现 JB 在没 AI 时代的强大。windsurf ide 也能写 java ,ai 的配套已经挺强大了,但整个 java+spring 的编码配套还是不如 idea 的。

之前的帖子 这可能是下一个周经帖:国产大模型哪个编程能力最顶?已经过去一段时间,现在不少模型都已经更新了,而且都支持方便的接入 claude code 等 cli 工具或者 cursor 这样的 ide 。那么,在众多的国产模型中,从你的实际体验出发,哪个国产模型才是最佳日常编码的口粮模型呢?量大管饱,能处理大多数场景的需求。

来吧,分享一下你的体验!


GLM-4.7:目前收集到的信息是,测试的时候效果还不错,能跟 sonet 4.0 有来有回,coding plan 也比较便宜,但是超售严重,订阅后降智严重

MiniMax M2.1:也推出了自己的 coding plan ,总的来说反馈还是不错

DeepSeek-V3.2:写代码还是不太行,听说 4.0 很强!

kimi-for-coding:听说比较蠢,具体请反馈

Doubao-Seed-Code:最近新出,还得到了阮一峰推荐 https://www.ruanyifeng.com/blog/2025/11/doubao-seed-code.html

elsa 佬的免费白嫖 2-5 年 Copilot(Microsoft365),可用 GPT-5.2 - 福利羊毛 / 福利羊毛,Lv1 - LINUX DO 分享一下个人的踩坑流程

一、准备材料:

1.1 教育邮箱:

我用的教育邮箱是美国社区大学.edu(以前薅 cursor 的邮箱留存至今)
没有邮箱的佬可以看一下 Mirage 佬的:

关于 “免费白嫖 2-5 年 Copilot” 如何获取 edu 邮箱! - 福利羊毛 / 福利羊毛,Lv1 - LINUX DO

关于如何成为美国大学生(bushi)申请 EDU 邮箱的教程 - 福利羊毛 / 福利羊毛,Lv1 - LINUX DO

1.2 新申请的 Microsoft 账号 + 美国节点 +Chrome+GoolePay(我绑的是 ypt)

ps:我用香港节点 + 支付宝验证后都是 2 年的

二、验证流程:

2.1 申请一年的个人版(点我直达):(申请顺序不能变)

(https://checkout.microsoft365.com/acquire/purchase?language=zh-us&market=US&requestedDuration=Month&scenario=microsoft-365-student&client=poc&campaign=StudentFree12M)

ps: 我的用的是美国节点,链接里是 us(没有改 tw or hk)

2.1.1 添加支付方式 GoolePay + 教育邮箱验证 >> 教育邮箱验证链接获取

可能得报错(直接重新刷新个人版申请链接即可)

2.1.2 添加地址(ai 生成的,地址好像不重要)

2.1.3 开始支付 >> 个人版申请成功

2.2 申请一月的高级版(点我直达):(申请顺序不能变)


https://checkout.microsoft365.com/acquire/purchase?language=zh-TW&market=US&requestedDuration=Month&scenario=microsoft-365-premium&client=poc&campaign=StudentPremiumFree12M

2.2.1 接着个人版申请(会显示个人版的到期时间)

可能得报错(try again 多来几次即可)

2.2.2 添加 Goole Pay>> 开始支付

可能得报错(持续刷新几次即可)

2.2.3 高级版验证成功

三、关闭自动续订

3.1 点击管理订阅

3.2 关闭自动续订

以上纯为个人的验证流程,大佬勿喷,请指正!!


📌 转载信息
原作者:
muzhiyang
转载时间:
2026/1/20 10:35:21

整理 | 华卫、Tina

过去一年,编码 Agent 的变化速度,已经快到让人很难用“功能升级”来形容。

如果把时间拨回到一年前,Agent 还主要停留在代码补全、对话式改几行代码的阶段;而今天,在 Cursor 内部,工程师已经开始同时运行多个 Agent 并行“甩活儿”,让它们在代码库中自主修改、调试、复盘,再由人类在最后阶段集中审核结果。开发者不再盯着 Agent 的每一步操作,而是开始习惯“等它跑完再看答案”。

在最近一次访谈中,Cursor 工程负责人 Jason Ginsberg 给出了一个明确判断:这不是渐进式优化,而是一场正在发生的“换代”。更重要的是,他把这场变化的时间窗口,压缩到了未来三到六个月——在他看来,Agent 将不只是“更聪明”,而是会真正接管更长周期、更复杂的工程任务,整个行业的工作方式也将随之重塑。

下面是详细对话内容,我们在不改变原意的基础上进行了翻译和删减,以飨读者。

一年多时间,编码 Agent“翻天覆地”

Harrison Chase:Jason,你能跟大家简单介绍一下自己吗?也给大家讲讲 Cursor 是什么吧。

 

Jason Ginsberg:好的。我目前在做一款 AI 编程工具,已经在 Cursor 工作了六个月,担任该产品的工程负责人。不过说实话,我日常的大部分时间还是在写代码和做设计工作。在加入 Cursor 之前,我在 Notion 负责 Notion Mail 相关工作。几年前,我创办了一家名为 Skiff 的公司,后来这家公司被 Notion 收购了。所以,我一直都在从事产品开发相关的工作,而且主要聚焦在生产力工具领域。

 

Harrison Chase:非常棒。我有很多话题想和你探讨。要不我先抛砖引玉,问问你对编码 Agent 的发展历程,以及这些年来人机交互模式演变的看法吧。你们可以说是这个领域的先行者之一,我认为编码 Agent 的发展经历了几个阶段的转变:从最初的代码自动补全,到集成在集成开发环境(IDE)中的对话式交互,再到如今出现的各类终端工具,以及基于云端的异步 Agent。我很想听听你的看法,你觉得这样概括其用户体验的演变历程是否准确?或者你们团队是如何看待这一发展过程的?

 

Jason Ginsberg:我认为编码 Agent 的发展确实可以用 “翻天覆地” 来形容,而且这些变革基本上都是在一年多一点的时间里发生的。正如你所说,Cursor 最早开启了代码自动补全的先河,这种模式主要是在逐行的层面上提供辅助,适用范围也基本局限在单个文件内。而此后,几乎每隔几个月,我们就不得不提升产品的抽象层级,这其实是一个极具挑战性的产品设计难题。显然,Agent 的出现让开发者能够在多个文件之间灵活切换,并且可以放心地让 Agent 自主完成代码修改工作。

 

在过去两个月左右的时间里,我发现行业又出现了新的转变:开发者现在已经能够做到从项目启动到结束全程信任 Agent,并且会对整个代码库中多个文件的内容进行批量审核。因此,我们不得不对产品的整体布局进行大幅重新设计,将核心从逐行的代码差异对比,转向更偏向代码审查的模式。

 

展望未来的产品开发方向,我们的工作重心其实会更多地放在多 Agent 协同运行上。我们需要实现的是,能够快速验证这些 Agent 是否在正常运行,并且可以让它们并行工作,同时避免受到当前单一对话模式下各种选项和选择的束缚。

 

Harrison Chase:推动这些变革的核心因素是什么?仅仅是因为大模型的性能变得越来越好,还是有其他更多的影响因素?

 

Jason Ginsberg:我认为大模型性能的提升是一个很关键的因素,这让开发者能够更加信任 Agent 编写的代码质量。要知道,以前大家必须对 Agent 生成的代码进行非常全面细致的审查。

同时,现在也有了更完善的代码审查工具。比如我们有 BugBot,市场上其实还有很多类似的工具,它们都能够自动检查代码中存在的问题。

 

此外,我觉得从行业文化层面来看,开发者们对 Agent 工具的接受度和使用信心也在不断增强,甚至可以说已经 “上瘾” 于这类工具带来的便捷。而且,一旦习惯了完全依赖 Agent 进行编码的工作模式,再切换回传统的编码方式其实是很困难的。所以现在,我们能看到越来越多的开发者已经将 Agent 辅助编程作为默认的工作方式。

最顶尖工程师的干活秘诀:全靠 Agent?

Harrison Chase:你观察到大家使用 Cursor 的方式都有哪些不同?或者你自己平时是怎么使用 Cursor 的?

 

Jason Ginsberg:其实在我们公司内部,工程师们使用 Cursor 的方式就五花八门。甚至团队里有几位工程师,他们完全不使用 Cursor 的 Agent 功能,比如负责安全和基础设施的同事。所以,确实有一部分用户非常依赖代码自动补全功能,日常使用中大部分操作都是基于补全功能完成的。但令人意外的是,我发现团队里一些最顶尖的工程师,我们称他们为 “核心用户”,他们做任何工作都会完全依赖 Agent,甚至会同时运行多个 Agent 并行处理任务。

 

至于我个人的使用习惯,我并不会去设计那些复杂繁琐的提示词,也没有什么所谓的 “Agent 使用秘籍”。我写的提示词往往都很简短,甚至还会带有拼写错误。我会针对手头不同的工作任务,或者同一个问题的不同模块,同时启动多个 Agent,然后等待它们返回结果。

 

目前我用得最多的是我们今天刚刚发布的一个新功能:调试模式。这个模式下,Agent 能够通过生成日志来进行自我评估,之后开发者复现相关操作步骤,Agent 就会通过查看日志判断问题是否得到解决。这个功能非常实用,因为它相当于通过投入算力去不断尝试解决问题,最终攻克那些手动排查起来极为棘手的难题。

 

Harrison Chase:调试模式具体是什么样的?为什么需要专门设置这样一个模式?难道不能自动完成调试吗?直接给 Agent 下达调试指令不也可以吗?

 

Jason Ginsberg:其实我也认同你的这个想法。所以在开发调试模式的时候,我们内部确实有过不少争论。主要原因在于,Cursor 目前已经有很多功能模式了,如规划模式、询问模式等等,这些模式其实不太容易被用户发现。我们一直认为,这些模式都很实用,理想的状态应该是,Agent 能够根据用户的操作场景,自动匹配并启用最合适的模式,无需用户手动切换。

 

而现阶段调试模式之所以需要手动开启,是因为它的交互方式比较特殊。在运行过程中,Agent 会暂停当前的工作,向用户提问以获取反馈。如果用户不熟悉这种交互逻辑,可能会觉得比较困扰。

 

Harrison Chase:Agent 具体会询问哪些问题,又需要用户提供什么样的反馈呢?

 

Jason Ginsberg:我举个例子吧。假设我正在开发一个前端应用,遇到了一个很让人头疼的问题:菜单总是在左上角弹出。这时候我会对Agent说:“这个菜单需要锚定到按钮的位置。” 随后,Agent 会启动服务器,并在整个代码库中添加大量日志,同时提出一系列可能导致该问题的假设,如 “可能是某个定位参数设置错误”、“可能是事件绑定逻辑有问题” 等。之后,Agent 会提示我:“麻烦你点击这个按钮,打开菜单,看看问题是否解决。” 如果我反馈问题依然存在,Agent 就会查看生成的日志,然后分析判断:“这个假设成立,那两个假设不成立”。通常这样反复两三次之后,Agent 往往就能找出并解决问题。

 

Harrison Chase:你觉得人类还需要手动操作多久?就不能让 Agent 自主完成点击、测试这类操作吗?

 

Jason Ginsberg:一两个月内,毕竟这个行业的发展速度实在太快了。

 

Harrison Chase:刚才你提到了 Agent 的多种不同模式,比如规划模式、解释模式、调试模式等等。这些模式在实际应用中到底意味着什么?难道只是为 Agent 设置不同的提示词这么简单吗?还是说背后有更复杂的逻辑?

 

Jason Ginsberg:很多时候,确实就是修改一下系统层面的提示词。不过在某些情况下,我们也需要对用户界面进行相应的调整。比如规划模式现在也加入了交互提问功能,运行过程中会主动打断用户操作,寻求反馈。用户有时也可以自行设置参数,如调整 Agent 打断的频率等。再比如询问模式,它不只是依赖特定的系统提示词,还会限制 Agent 调用某些与文件编辑相关的工具,以此来保证功能的稳定性和可靠性。

 

Harrison Chase:回到之前的话题,关于大家使用 Cursor 的不同方式,你觉得未来使用编码 Agent 或者说 Cursor,存在所谓的 “最佳方式” 吗?

 

Jason Ginsberg:我觉得并没有什么 “最佳方式”,具体的使用方法很大程度上取决于工程师的个人工作习惯以及他们所处理的具体工作内容。目前行业里,既有异步运行Agent的应用场景,也有开发者深度参与、实时交互的模式,就像一边编程、一边像画画一样实时调整代码或者进行可视化的编辑操作。不过我经常在推特上看到一些所谓的 “Agent 使用技巧”,其实对此我是有点持保留态度的。很多人会说 “这才是使用 Agent 的最佳方式”,但在我看来,这些技巧往往是凭空杜撰的。

 

我们团队内部其实并不会使用那些冗长复杂的提示词,也不会采用多阶段规划的策略。大多数时候,我们都是快速迭代,如果 Agent 运行的结果不理想,就直接终止进程,重新启动 Agent。通常这种方式的效率是最高的。

自然 “唠嗑”是 Cursor 最终交互模式?

Harrison Chase:如果让你预测一下一年后的情况,你认为开发者在 IDE、终端以及其他形态的载体上使用 Cursor 的时间占比会是怎样的?

 

Jason Ginsberg:当然,我肯定会带有一定的主观偏向性。但我认为,终端工具并不会成为用户的首选。我觉得,真正驱动行业发展的是用户对Agent的信任度不断提升,他们更希望等到Agent完成所有工作后再查看最终的修改结果,然后决定是否采纳,同时也愿意让 Agent 运行更长的时间,以实现更智能的处理。

 

而 IDE 之所以至关重要,是因为它是为整个软件开发周期量身打造的工具。从项目的构思规划,到运行代码修改、查看代码内容、清晰对比代码差异、提交代码合并请求,再到在浏览器中预览效果所有这些环节,都可以无缝集成在 IDE 的模块化功能之中。这一点其实很容易被忽视,毕竟 IDE 的这些功能是经过了数十年的发展才逐步完善起来的。

 

我认为,当前行业的一个明显趋势是,产品层面的设计变得越来越重要。现在 Cursor 用户使用频率最高的功能,如规划模式,其实都需要可视化编辑器的支持,用户需要能够在编辑器中添加注释,并进行实时交互。一旦脱离了按钮、弹窗和菜单这些可视化交互元素,用户与工具的交互难度会大大增加。

 

不过,我觉得未来并非所有操作都必须局限在笔记本电脑的 IDE 中完成。这种模式并不会被完全取代,具体的使用场景会根据实际需求灵活变化,适用的场景也会更加广泛。用户在更多场景下,都能够使用到 Cursor 这样的工具。

 

Harrison Chase:未来会有更多场景都能用上像 Cursor 这样的工具。你们应该有对应的官网吧?用户可以直接在网页上进行交互操作,是这个思路吗?

 

Jason Ginsberg:对,我们确实有官网。这么做的原因是用户可以通过手机等设备随时随地访问。我觉得在不远的将来,用户完全可以戴着 AirPods,开启语音模式,和Agent实时沟通、碰撞想法,让Agent不断优化方案。等用户到了办公室,打开笔记本电脑,就已经有一堆代码修改记录或者演示视频等着审核了,到时候只需要简单确认通过或者驳回就行。如果某些细节还需要微调,再把项目下载到本地修改就好。

 

Harrison Chase:我认为 Cursor 真正的优势,在于围绕 Agent 交互打造的整套设计和用户体验体系。你之前在 Notion 工作过,我记得即便是在生成式 AI 普及之前,Notion 的设计和用户体验就已经广受认可了。当然,他们在生成式 AI 时代也很好地完成了转型。从一家在生成式 AI 普及前就拥有出色设计积淀且顺利完成转型的公司,再到如今专注 Agent 相关工作,你觉得 Agent 的出现给产品设计和用户体验带来了哪些变化?现在的工作模式和之前有相似之处吗?

 

Jason Ginsberg:我觉得总体来说,我们产品的大部分设计其实并不是 AI 专属的。要知道,产品可用的交互组件和用户体验模式就那么多,市面上的应用本质上也都是基于一些传统的模式搭建的,如收件箱、仪表盘、聊天界面,这些都是很成熟的设计。所以我们的工作核心,更多是把这些现有的设计模式进行合理组合,然后在产品中恰当地呈现出来。这一点和 Notion 的产品理念是相通的,同时也是 Cursor 和集成开发环境(IDE)的核心特质:极高的模块化程度。

 

作为用户,你会发现每个人的 IDE 界面布局都可以千差万别。你可以自定义面板布局,把任意组件拖放到任意位置,和坐在你旁边的同事设置出完全不同的界面。我认为这种模块化设计对产品的适应性至关重要,毕竟如我之前所说,Agent 的能力发展日新月异,用户对产品的需求和期待几乎每隔几周就会发生变化。几个月前我们推出 Cursor 2.0 的时候,并没有把原来的产品推倒重来,只是把各个功能模块重新组合,调整为侧边栏收件箱式的管理布局,同时优化了聊天界面的信息密度而已。

 

Harrison Chase:听你这么说,很多组件的底层逻辑其实是相通的。那有没有出现新的组件?或者某些组件的优先级发生了变化?毕竟这些组件最初都是为 “人类与软件交互”“人类通过软件协作” 的场景设计的,现在加入了 Agent 这个新角色。这其中有没有产生什么新的变化?还是说其实本质上没有太大不同?

 

Jason Ginsberg:我认为底层的设计逻辑和核心要素其实没有变,关键变化在于谁在主导界面交互。而在这个核心框架下,其实可以演变出无数种交互形式。就拿交互的抽象层级来说,一年前大家使用Agent的时候,都恨不得盯着它的每一步操作,全程 “盯梢”。但现在 Agent 的操作步骤变得无比繁杂,用户根本看不过来。所以我们需要优化信息呈现方式:如何对操作步骤进行分组?如何提炼关键信息?

 

当用户足够信任 Agent 的操作后,我们就需要把重点放在文件的实际修改内容上,并且为这些修改添加更详细的注释说明。当然,我们也可以进一步提升交互的灵活度,比如聊天对象不再局限于单个 Agent,而是可以同时和多个 Agent 对话。这就需要一套更智能的后台交互逻辑来支撑 ,系统要能识别用户在和哪个子 Agent 对话,并且协调这些 Agent 完成对应的修改。未来这种交互的抽象层级还会不断提升。

 

Harrison Chase:你觉得交互的抽象层级最高能达到什么程度?我知道预测未来很难,但还是想听听你的看法。

 

Jason Ginsberg:我觉得未来,我们现在看到的各种操作选项,如选择模型、选择功能模式、选择运行环境这些都会逐渐消失。最终的交互模式会变得像和真人对话一样自然。但这并不意味着任何人都能随便写代码,在那个阶段,这个工具依然是为专业工程师服务的。因为你还是需要具备专业的行业术语知识,清楚自己想要修改的内容是什么。做产品的人,要明确自己想要的工作流程和功能需求;做基础设施的人,要足够了解代码库,知道什么样的架构和系统设计最适合当前要开发的项目。

 

而且我想强调的是,随着抽象层级的提升,我们并不会摒弃现有的功能。用户依然可以随时深入底层,查看细节、调整参数。只是产品的默认交互方式会不断优化升级。

Cursor 内部工作揭秘:少审代码、高频反馈

Harrison Chase:你之前提到了人类在 Agent 工作流程中的角色,比如查看代码差异、进行代码审查。你觉得 AI 会给代码审查工作带来哪些改变?

 

Jason Ginsberg:首先,就我们产品团队的工作模式来说,现在人工审查的比重已经大幅降低了。我们有一个叫 BugBot 的工具,它会自动检测代码问题,并且自主完成修复,还会在持续集成(CI)流程中不断迭代优化。这个工具的表现非常出色,也让我们对 AI 审查的代码质量更有信心。

 

其次是信息的语义化分组。用户查看代码差异时,可以清晰地看到 Agent 做了哪些修改。我们甚至可以展示 Agent 的原始指令,更理想的状态是,Agent 能够像人类一样,在处理大型代码合并请求时,为每一处修改附上注释,说明这么做的原因。我觉得这虽然算不上颠覆性的变革,但确实能给代码审查工作带来显著的优化。

 

Harrison Chase:出于好奇,我想问一下,Cursor 的工程师用 Cursor 写代码,用 BugBot 审查代码,那他们还需要和其他工程师沟通协作吗?

 

Jason Ginsberg:哈哈,这个问题很有意思。如果你以工程师的身份加入 Cursor,会立刻发现一个现象:所有人都在深度使用自家产品。我记得我入职第一周的时候,修改了一个快捷键设置。那个快捷键是 Alt+Shift+Command+J,非常冷门,我当时觉得选这个键肯定没人会注意到。结果刚改完不到半分钟,就有三个同事在 Slack 上发来消息:“你改的这个快捷键直接打乱了我的工作流程!到底怎么回事?”几乎任何产品改动,都会立刻收到同事们的强烈反馈。我觉得这其实是一件好事,大家就是在这种高频的反馈和交流中,快速推进产品迭代的。

 

Harrison Chase:从组织管理的角度,你们有没有采取什么措施来鼓励或者引导这种高频反馈的协作模式?毕竟大量的反馈涌进来,有时候也会让人应接不暇。

 

Jason Ginsberg:在我创办自己的公司之前,工程师们也会用邮件沟通,但用得并不多。大家甚至会说:“邮件只用来收垃圾邮件和购物通知,可别用它来发长篇大论的工作内容。”而在Agent这个赛道工作,其实完全不需要依赖邮件这种低效的沟通方式。我们团队的所有人都全身心投入工作,毕竟这是一个竞争非常激烈的领域,大家都对产品开发充满热情,会自然而然地用各种即时沟通工具协作。

 

另外,我在规划产品功能时,会遵循一个核心原则:我能开发什么功能,让自己的日常工作更轻松? 具体来说,就是思考 “做什么能帮我明天更高效地完成工作,不用再处理那些烦人的报错和问题”。这个原则指导着我们的大部分工作。毕竟这种功能开发出来之后,我们自己能立刻受益,比如修复了一个烦人的漏洞,以后上班就不用再被这个问题困扰了。

迭代狂飙背后,核心功能竟来自员工 “自嗨”?

Harrison Chase:你觉得你们的产品路线图,有多大比例是由 “让自己工作更轻松” 这个需求驱动的?又有多大比例是来自外部用户的需求?这个比例随着公司发展有变化吗?

 

Jason Ginsberg:这个比例确实随着公司规模的扩大在变化。现在我们也会制定月度的产品路线图和目标,但说实话,我们很多核心功能都来自自下而上的创新。比如 Cursor 的Agent功能,这可以说是大家提到 Cursor 时最先想到的核心功能。这个功能是我们团队的一个人开发的,最开始所有人都不看好这个想法,但他很快做出了原型。大家试用之后都惊叹:“哇,这东西居然真的能用!”

 

我之前提到的调试模式也是如此。感恩节假期的时候我闲着没事,就开发了这个自己很需要的功能,现在这个功能也即将上线。这些功能的开发初衷,都是为了解决团队内部的需求。我们判断一个功能是否具备发布条件,一个重要的衡量标准就是内部的使用率和认可度。

 

Harrison Chase:你们的产品迭代速度快得惊人,是怎么保持这种高效的开发节奏的?

 

Jason Ginsberg:说实话,我们的工作流程其实非常精简,没有太多繁琐的制度。公司里虽然有几间会议室,也有一两位产品经理,但我们很少通过撰写文档或者开对齐会议来推进工作,大部分的讨论和决策都是在代码层面完成的。而这一切能够实现的核心原因,是我们对人才的极高要求。今年年初的时候,公司总共也就 20 人左右。之所以团队规模增长缓慢,就是因为我们的招聘门槛高到近乎苛刻。我们会反复评估:这个人很优秀,但他能成为团队里最顶尖的那批人吗?

 

正因为团队里的每个人都足够出色,所以我们可以放心地把任务交给任何一个人。团队成员的主观能动性都极强,从提出想法、设计用户体验,到在推特上回复用户的支持请求、和企业客户沟通需求,再到最终将功能落地,整个流程都能独立完成。所以说,我们能保持这样的速度,归根结底还是人的因素。

 

Harrison Chase:你们是如何规划产品路线图的?你刚才提到了以月为单位的规划周期,这是目前的常规规划时长吗?有没有更长期的规划?另外,行业技术迭代的速度实在太快了,你们是如何平衡 “跟进现有技术浪潮” 和 “实现技术跨越式发展” 这两者的?会不会主动预判技术趋势,提前布局未来方向?

 

Jason Ginsberg:我们确实会投入不少精力去思考未来,比如预判未来三个月可能实现的技术突破,然后主动押注相关方向,团队里有相当一部分人都在做这类前瞻性的工作。我们制定的月度路线图更多是围绕核心产品功能展开,聚焦于用户的实际需求以及那些能优化日常使用体验的功能。而那些需要投入两个月时间重构底层逻辑的重大项目,则会纳入更长期的规划范畴。

此外,我们的应变能力其实非常强。

 

有时候我们会提前拿到新模型的测试版本,试用之后如果发现它在某些方面表现特别出色,团队成员往往会主动利用周末时间加班,争取在新模型正式发布前就完成相关功能的开发。很多重要功能其实几天之内就能搭建完成。

 

Harrison Chase:说到模型,你们发布了自研的 Composer 模型。开发这个模型的初衷是什么?目前用户的使用情况如何?这个模型有没有改变大家使用 Cursor 的习惯?

 

Jason Ginsberg:我们发现,工程师使用我们产品时的编码场景,需要有专门适配的模型来支撑。Composer 模型就是针对这类场景打造的,它定位非常明确,具备速度快、质量高、逻辑智能三大特点,尤其适合 “人机实时协作” 场景。我自己做前端开发时就经常用它,因为我需要频繁做出细微的交互设计决策,这就要求 Agent 能在几秒内给出反馈。Composer 就像一个高效的协作伙伴,能快速响应需求、碰撞想法,和那些适用于长周期异步任务的模型形成了很好的互补。

 

Harrison Chase:Cursor 的 Agent 相关研发工作是全员参与,还是有专门的团队负责?

 

Jason Ginsberg:我们确实有专门的团队负责 Agent 的性能优化,他们主要聚焦于工具链、调度框架的搭建以及效果评估。但正如我之前所说,我们的团队架构并不僵化,没有严格限制大家的工作范围。比如核心产品团队的工程师在开发规划模式时,如果需要对Agent进行调整,就会和Agent团队密切协作。而且在开发过程中,我们依然会深度使用自家产品进行测试,团队成员会分享使用感受,以此来评估功能的实际效果。

 

Harrison Chase:无论是 Agent 团队的成员,还是其他团队中擅长 Agent 研发的工程师,他们身上有没有什么共同特质?他们的专业背景或者个人能力有没有什么特别之处?

 

Jason Ginsberg:我觉得他们大多是偏产品方向的人才,而不是传统意义上的机器学习或算法研究专家。这些人经常在不同团队之间轮岗,因为Agent研发需要对用户的最终使用体验有很强的直觉,同时还要能准确解读团队的反馈意见。

 

Harrison Chase:上周你们和 OpenAI 合作发布了一篇博客,内容是针对 OpenAI 的新模型优化 Cursor 的 Agent 调度框架。我在推特上经常看到大家讨论 “Agent 调度框架” 这个概念。你们是如何看待模型的底层支撑架构的?这类架构是否需要和特定模型深度绑定?比如 Composer 模型和 CodeLlama 模型,对应的架构会不会有很大差异?

 

Jason Ginsberg:我其实没有深度参与这方面的工作,但据我了解,我们的核心目标是打造高度灵活的架构。毕竟我们需要不断尝试新技术、新功能模式,所以架构必须能够随着模型能力的升级快速适配。

 

Harrison Chase:很有道理。毕竟整个行业都在飞速变化。

开放问答

提问者 1:刚才提到了新增的可视化浏览器功能,我发现有些工具比如 Lovable 也有类似的功能。请问这个功能是朝着 “沉浸式可视化编码” 的方向发展吗?

 

Jason Ginsberg:我觉得它并不是为沉浸式可视化编码设计的。就像我之前说的,这个功能最初是我为自己开发的,我本身就是一名做产品的工程师,它的核心用户群体其实是专业工程师和设计师。大家在开发应用时,肯定都遇到过这种情况:精心设计的界面,最后却变成了大家都看腻了的紫黄渐变配色。这个功能就是为了让大家能够精准把控细节,比如把内边距调整到精确的像素值。它为用户提供了一套更直观的 “视觉化操作语言”,比纯文本指令的精度更高。

 

而且就算不使用侧边栏,你也可以直接点击页面元素,随时输入提示词下达指令。借助这个功能,你可以在几秒内同时启动六个 Agent。如果开启热重载功能,你的网站会实时呈现修改效果,用起来其实还挺有意思的。

 

提问者 2:我特别喜欢你们的浏览器 Agent,一直在用。但我发现一个小瑕疵:我想持续迭代优化设计方案,可 Agent 总是会中断我的工作,直接提交代码合并请求。未来有没有可能实现不间断的持续迭代?

 

Jason Ginsberg:当然可以。未来的发展方向就是让 Agent 具备自主评估能力,根据需求长时间持续运行、循环迭代。现在的调试模式还需要人工点击按钮来确认日志信息,但这只是过渡方案。理想的状态是,Agent能够自主完成评估、迭代,直到彻底解决问题。

 

提问者 3:我不知道你是否深度参与 Agent 相关的研发工作,但我注意到 Cursor 的内存管理功能做得很好。它可以根据工程师个人、部门乃至整个公司的偏好、规则和流程,自主管理相关信息。我们都知道,信息和上下文对 Agent 来说至关重要。请问你们有没有计划进一步拓展和升级这个功能?尤其是在长上下文处理方面,你们有什么思路?

 

Jason Ginsberg:我们正在进行大量的实验和探索。目前已经落地了规则管理、内存记忆、技能库等多个功能模块。现阶段,我们主要在研究高效的信息摘要技术。另外,借助我们的自研模型,我们也在探索让模型自主识别对话或代码中反复出现的关键信息。当然,跨组织的信息共享功能也很值得探索。不过这里有个需要注意的点,相关规则和信息可能会随着模型的迭代而过时。所以我们必须确保用户能够轻松更新这些内容,避免被过时的规则束缚。

 

提问者 4:关于你们发布的 Composer 模型,我认识一些开发者,他们基于 Gemini 模型微调了一个医疗领域的专用模型。但他们发现,这个微调后的模型效果还不如直接用原生 Gemini 模型做单次提示词调用。他们分析的原因是,微调模型需要持续维护,要跟上 Gemini 等基础模型的更新节奏。请问你们是如何制定策略,确保 Composer 模型不会落伍的?

 

Jason Ginsberg:你说的是 Composer 模型,对吧?我们会持续对它进行迭代优化,它并不是一个静态的模型。我们的核心关注点,是在速度和智能之间找到最佳平衡点,满足 Cursor 用户在大部分场景下的需求。不过在长上下文处理这类特定领域,我们确实还有提升空间。

 

提问者 5:我自己是产品经理,一直在用 Cursor 做原型开发,甚至在团队里还客串设计师,用它替代 Figma。我很好奇,有没有用户是在使用 Cursor 之前,从未安装过任何集成开发环境(IDE)的?这类用户会不会成为你们未来重点关注的群体?毕竟现在的编码 Agent 已经足够强大,很多工作都能在上面完成。

 

Jason Ginsberg:坦白说,我们目前并没有把这类用户作为核心关注点。当然,我们认同工具的使用门槛确实需要不断降低,而且 Cursor 的易用性也在持续提升,比如新增的浏览器工具对设计师就很友好。但我们的核心目标,其实是赋能顶尖工程师。我们一直在思考:如何让世界上最优秀的工程师变得更加强大?在这个过程中,我们开发的工具自然会惠及更多人群。不过在产品优化方面,我们确实还有很多工作要做,如优化新手引导和环境配置流程。毕竟设计师和产品经理在配置 GitHub 等工具时,经常会遇到困难。我们希望通过优化这些环节,吸引更多用户尝试 Cursor。

 

提问者 6:我一直在尝试用 Cursor 做智能合约的验证矩阵构建和试运行逻辑测试。请问在深度质量检测和安全加固方面,有没有什么不太为人知的实用工作流可以推荐?或者刚才提到的调试工具能不能派上用场?我对智能合约的质量检测特别感兴趣。

 

Jason Ginsberg:说实话,我们正在尝试让 Agent 自主完成测试工作,不过这项功能目前还没有完全发布。对于从事质量检测工作的人员来说,我强烈推荐试试我们刚发布的调试模式。这个功能定位问题的逻辑非常清晰,几乎可以说是确定性的,用起来会很有帮助。

 

提问者 7:您认为未来两到四个月,Cursor 面临的最大机遇是什么?会不会是语音 Agent?

 

Jason Ginsberg:我觉得机遇不在于语音 Agent。用户现阶段最核心的需求,其实是让 Agent 变得更智能、运行时间更长、能处理的任务更多。现在的很多 Agent,本质上只是在 “读取代码”,并不能真正判断修改后的代码是否有效。未来的发展空间非常大,我们可以投入更多算力,让 Agent 承担更多人类目前负责的校验工作。我觉得未来三到六个月,整个行业都会迎来巨大的变革,非常值得期待。

 

参考链接:

https://www.youtube.com/watch?v=dKSGK-fPFyU

整理 | 华卫、Tina

过去一年,编码 Agent 的变化速度,已经快到让人很难用“功能升级”来形容。

如果把时间拨回到一年前,Agent 还主要停留在代码补全、对话式改几行代码的阶段;而今天,在 Cursor 内部,工程师已经开始同时运行多个 Agent 并行“甩活儿”,让它们在代码库中自主修改、调试、复盘,再由人类在最后阶段集中审核结果。开发者不再盯着 Agent 的每一步操作,而是开始习惯“等它跑完再看答案”。

在最近一次访谈中,Cursor 工程负责人 Jason Ginsberg 给出了一个明确判断:这不是渐进式优化,而是一场正在发生的“换代”。更重要的是,他把这场变化的时间窗口,压缩到了未来三到六个月——在他看来,Agent 将不只是“更聪明”,而是会真正接管更长周期、更复杂的工程任务,整个行业的工作方式也将随之重塑。

下面是详细对话内容,我们在不改变原意的基础上进行了翻译和删减,以飨读者。

一年多时间,编码 Agent“翻天覆地”

Harrison Chase:Jason,你能跟大家简单介绍一下自己吗?也给大家讲讲 Cursor 是什么吧。

 

Jason Ginsberg:好的。我目前在做一款 AI 编程工具,已经在 Cursor 工作了六个月,担任该产品的工程负责人。不过说实话,我日常的大部分时间还是在写代码和做设计工作。在加入 Cursor 之前,我在 Notion 负责 Notion Mail 相关工作。几年前,我创办了一家名为 Skiff 的公司,后来这家公司被 Notion 收购了。所以,我一直都在从事产品开发相关的工作,而且主要聚焦在生产力工具领域。

 

Harrison Chase:非常棒。我有很多话题想和你探讨。要不我先抛砖引玉,问问你对编码 Agent 的发展历程,以及这些年来人机交互模式演变的看法吧。你们可以说是这个领域的先行者之一,我认为编码 Agent 的发展经历了几个阶段的转变:从最初的代码自动补全,到集成在集成开发环境(IDE)中的对话式交互,再到如今出现的各类终端工具,以及基于云端的异步 Agent。我很想听听你的看法,你觉得这样概括其用户体验的演变历程是否准确?或者你们团队是如何看待这一发展过程的?

 

Jason Ginsberg:我认为编码 Agent 的发展确实可以用 “翻天覆地” 来形容,而且这些变革基本上都是在一年多一点的时间里发生的。正如你所说,Cursor 最早开启了代码自动补全的先河,这种模式主要是在逐行的层面上提供辅助,适用范围也基本局限在单个文件内。而此后,几乎每隔几个月,我们就不得不提升产品的抽象层级,这其实是一个极具挑战性的产品设计难题。显然,Agent 的出现让开发者能够在多个文件之间灵活切换,并且可以放心地让 Agent 自主完成代码修改工作。

 

在过去两个月左右的时间里,我发现行业又出现了新的转变:开发者现在已经能够做到从项目启动到结束全程信任 Agent,并且会对整个代码库中多个文件的内容进行批量审核。因此,我们不得不对产品的整体布局进行大幅重新设计,将核心从逐行的代码差异对比,转向更偏向代码审查的模式。

 

展望未来的产品开发方向,我们的工作重心其实会更多地放在多 Agent 协同运行上。我们需要实现的是,能够快速验证这些 Agent 是否在正常运行,并且可以让它们并行工作,同时避免受到当前单一对话模式下各种选项和选择的束缚。

 

Harrison Chase:推动这些变革的核心因素是什么?仅仅是因为大模型的性能变得越来越好,还是有其他更多的影响因素?

 

Jason Ginsberg:我认为大模型性能的提升是一个很关键的因素,这让开发者能够更加信任 Agent 编写的代码质量。要知道,以前大家必须对 Agent 生成的代码进行非常全面细致的审查。

同时,现在也有了更完善的代码审查工具。比如我们有 BugBot,市场上其实还有很多类似的工具,它们都能够自动检查代码中存在的问题。

 

此外,我觉得从行业文化层面来看,开发者们对 Agent 工具的接受度和使用信心也在不断增强,甚至可以说已经 “上瘾” 于这类工具带来的便捷。而且,一旦习惯了完全依赖 Agent 进行编码的工作模式,再切换回传统的编码方式其实是很困难的。所以现在,我们能看到越来越多的开发者已经将 Agent 辅助编程作为默认的工作方式。

最顶尖工程师的干活秘诀:全靠 Agent?

Harrison Chase:你观察到大家使用 Cursor 的方式都有哪些不同?或者你自己平时是怎么使用 Cursor 的?

 

Jason Ginsberg:其实在我们公司内部,工程师们使用 Cursor 的方式就五花八门。甚至团队里有几位工程师,他们完全不使用 Cursor 的 Agent 功能,比如负责安全和基础设施的同事。所以,确实有一部分用户非常依赖代码自动补全功能,日常使用中大部分操作都是基于补全功能完成的。但令人意外的是,我发现团队里一些最顶尖的工程师,我们称他们为 “核心用户”,他们做任何工作都会完全依赖 Agent,甚至会同时运行多个 Agent 并行处理任务。

 

至于我个人的使用习惯,我并不会去设计那些复杂繁琐的提示词,也没有什么所谓的 “Agent 使用秘籍”。我写的提示词往往都很简短,甚至还会带有拼写错误。我会针对手头不同的工作任务,或者同一个问题的不同模块,同时启动多个 Agent,然后等待它们返回结果。

 

目前我用得最多的是我们今天刚刚发布的一个新功能:调试模式。这个模式下,Agent 能够通过生成日志来进行自我评估,之后开发者复现相关操作步骤,Agent 就会通过查看日志判断问题是否得到解决。这个功能非常实用,因为它相当于通过投入算力去不断尝试解决问题,最终攻克那些手动排查起来极为棘手的难题。

 

Harrison Chase:调试模式具体是什么样的?为什么需要专门设置这样一个模式?难道不能自动完成调试吗?直接给 Agent 下达调试指令不也可以吗?

 

Jason Ginsberg:其实我也认同你的这个想法。所以在开发调试模式的时候,我们内部确实有过不少争论。主要原因在于,Cursor 目前已经有很多功能模式了,如规划模式、询问模式等等,这些模式其实不太容易被用户发现。我们一直认为,这些模式都很实用,理想的状态应该是,Agent 能够根据用户的操作场景,自动匹配并启用最合适的模式,无需用户手动切换。

 

而现阶段调试模式之所以需要手动开启,是因为它的交互方式比较特殊。在运行过程中,Agent 会暂停当前的工作,向用户提问以获取反馈。如果用户不熟悉这种交互逻辑,可能会觉得比较困扰。

 

Harrison Chase:Agent 具体会询问哪些问题,又需要用户提供什么样的反馈呢?

 

Jason Ginsberg:我举个例子吧。假设我正在开发一个前端应用,遇到了一个很让人头疼的问题:菜单总是在左上角弹出。这时候我会对Agent说:“这个菜单需要锚定到按钮的位置。” 随后,Agent 会启动服务器,并在整个代码库中添加大量日志,同时提出一系列可能导致该问题的假设,如 “可能是某个定位参数设置错误”、“可能是事件绑定逻辑有问题” 等。之后,Agent 会提示我:“麻烦你点击这个按钮,打开菜单,看看问题是否解决。” 如果我反馈问题依然存在,Agent 就会查看生成的日志,然后分析判断:“这个假设成立,那两个假设不成立”。通常这样反复两三次之后,Agent 往往就能找出并解决问题。

 

Harrison Chase:你觉得人类还需要手动操作多久?就不能让 Agent 自主完成点击、测试这类操作吗?

 

Jason Ginsberg:一两个月内,毕竟这个行业的发展速度实在太快了。

 

Harrison Chase:刚才你提到了 Agent 的多种不同模式,比如规划模式、解释模式、调试模式等等。这些模式在实际应用中到底意味着什么?难道只是为 Agent 设置不同的提示词这么简单吗?还是说背后有更复杂的逻辑?

 

Jason Ginsberg:很多时候,确实就是修改一下系统层面的提示词。不过在某些情况下,我们也需要对用户界面进行相应的调整。比如规划模式现在也加入了交互提问功能,运行过程中会主动打断用户操作,寻求反馈。用户有时也可以自行设置参数,如调整 Agent 打断的频率等。再比如询问模式,它不只是依赖特定的系统提示词,还会限制 Agent 调用某些与文件编辑相关的工具,以此来保证功能的稳定性和可靠性。

 

Harrison Chase:回到之前的话题,关于大家使用 Cursor 的不同方式,你觉得未来使用编码 Agent 或者说 Cursor,存在所谓的 “最佳方式” 吗?

 

Jason Ginsberg:我觉得并没有什么 “最佳方式”,具体的使用方法很大程度上取决于工程师的个人工作习惯以及他们所处理的具体工作内容。目前行业里,既有异步运行Agent的应用场景,也有开发者深度参与、实时交互的模式,就像一边编程、一边像画画一样实时调整代码或者进行可视化的编辑操作。不过我经常在推特上看到一些所谓的 “Agent 使用技巧”,其实对此我是有点持保留态度的。很多人会说 “这才是使用 Agent 的最佳方式”,但在我看来,这些技巧往往是凭空杜撰的。

 

我们团队内部其实并不会使用那些冗长复杂的提示词,也不会采用多阶段规划的策略。大多数时候,我们都是快速迭代,如果 Agent 运行的结果不理想,就直接终止进程,重新启动 Agent。通常这种方式的效率是最高的。

自然 “唠嗑”是 Cursor 最终交互模式?

Harrison Chase:如果让你预测一下一年后的情况,你认为开发者在 IDE、终端以及其他形态的载体上使用 Cursor 的时间占比会是怎样的?

 

Jason Ginsberg:当然,我肯定会带有一定的主观偏向性。但我认为,终端工具并不会成为用户的首选。我觉得,真正驱动行业发展的是用户对Agent的信任度不断提升,他们更希望等到Agent完成所有工作后再查看最终的修改结果,然后决定是否采纳,同时也愿意让 Agent 运行更长的时间,以实现更智能的处理。

 

而 IDE 之所以至关重要,是因为它是为整个软件开发周期量身打造的工具。从项目的构思规划,到运行代码修改、查看代码内容、清晰对比代码差异、提交代码合并请求,再到在浏览器中预览效果所有这些环节,都可以无缝集成在 IDE 的模块化功能之中。这一点其实很容易被忽视,毕竟 IDE 的这些功能是经过了数十年的发展才逐步完善起来的。

 

我认为,当前行业的一个明显趋势是,产品层面的设计变得越来越重要。现在 Cursor 用户使用频率最高的功能,如规划模式,其实都需要可视化编辑器的支持,用户需要能够在编辑器中添加注释,并进行实时交互。一旦脱离了按钮、弹窗和菜单这些可视化交互元素,用户与工具的交互难度会大大增加。

 

不过,我觉得未来并非所有操作都必须局限在笔记本电脑的 IDE 中完成。这种模式并不会被完全取代,具体的使用场景会根据实际需求灵活变化,适用的场景也会更加广泛。用户在更多场景下,都能够使用到 Cursor 这样的工具。

 

Harrison Chase:未来会有更多场景都能用上像 Cursor 这样的工具。你们应该有对应的官网吧?用户可以直接在网页上进行交互操作,是这个思路吗?

 

Jason Ginsberg:对,我们确实有官网。这么做的原因是用户可以通过手机等设备随时随地访问。我觉得在不远的将来,用户完全可以戴着 AirPods,开启语音模式,和Agent实时沟通、碰撞想法,让Agent不断优化方案。等用户到了办公室,打开笔记本电脑,就已经有一堆代码修改记录或者演示视频等着审核了,到时候只需要简单确认通过或者驳回就行。如果某些细节还需要微调,再把项目下载到本地修改就好。

 

Harrison Chase:我认为 Cursor 真正的优势,在于围绕 Agent 交互打造的整套设计和用户体验体系。你之前在 Notion 工作过,我记得即便是在生成式 AI 普及之前,Notion 的设计和用户体验就已经广受认可了。当然,他们在生成式 AI 时代也很好地完成了转型。从一家在生成式 AI 普及前就拥有出色设计积淀且顺利完成转型的公司,再到如今专注 Agent 相关工作,你觉得 Agent 的出现给产品设计和用户体验带来了哪些变化?现在的工作模式和之前有相似之处吗?

 

Jason Ginsberg:我觉得总体来说,我们产品的大部分设计其实并不是 AI 专属的。要知道,产品可用的交互组件和用户体验模式就那么多,市面上的应用本质上也都是基于一些传统的模式搭建的,如收件箱、仪表盘、聊天界面,这些都是很成熟的设计。所以我们的工作核心,更多是把这些现有的设计模式进行合理组合,然后在产品中恰当地呈现出来。这一点和 Notion 的产品理念是相通的,同时也是 Cursor 和集成开发环境(IDE)的核心特质:极高的模块化程度。

 

作为用户,你会发现每个人的 IDE 界面布局都可以千差万别。你可以自定义面板布局,把任意组件拖放到任意位置,和坐在你旁边的同事设置出完全不同的界面。我认为这种模块化设计对产品的适应性至关重要,毕竟如我之前所说,Agent 的能力发展日新月异,用户对产品的需求和期待几乎每隔几周就会发生变化。几个月前我们推出 Cursor 2.0 的时候,并没有把原来的产品推倒重来,只是把各个功能模块重新组合,调整为侧边栏收件箱式的管理布局,同时优化了聊天界面的信息密度而已。

 

Harrison Chase:听你这么说,很多组件的底层逻辑其实是相通的。那有没有出现新的组件?或者某些组件的优先级发生了变化?毕竟这些组件最初都是为 “人类与软件交互”“人类通过软件协作” 的场景设计的,现在加入了 Agent 这个新角色。这其中有没有产生什么新的变化?还是说其实本质上没有太大不同?

 

Jason Ginsberg:我认为底层的设计逻辑和核心要素其实没有变,关键变化在于谁在主导界面交互。而在这个核心框架下,其实可以演变出无数种交互形式。就拿交互的抽象层级来说,一年前大家使用Agent的时候,都恨不得盯着它的每一步操作,全程 “盯梢”。但现在 Agent 的操作步骤变得无比繁杂,用户根本看不过来。所以我们需要优化信息呈现方式:如何对操作步骤进行分组?如何提炼关键信息?

 

当用户足够信任 Agent 的操作后,我们就需要把重点放在文件的实际修改内容上,并且为这些修改添加更详细的注释说明。当然,我们也可以进一步提升交互的灵活度,比如聊天对象不再局限于单个 Agent,而是可以同时和多个 Agent 对话。这就需要一套更智能的后台交互逻辑来支撑 ,系统要能识别用户在和哪个子 Agent 对话,并且协调这些 Agent 完成对应的修改。未来这种交互的抽象层级还会不断提升。

 

Harrison Chase:你觉得交互的抽象层级最高能达到什么程度?我知道预测未来很难,但还是想听听你的看法。

 

Jason Ginsberg:我觉得未来,我们现在看到的各种操作选项,如选择模型、选择功能模式、选择运行环境这些都会逐渐消失。最终的交互模式会变得像和真人对话一样自然。但这并不意味着任何人都能随便写代码,在那个阶段,这个工具依然是为专业工程师服务的。因为你还是需要具备专业的行业术语知识,清楚自己想要修改的内容是什么。做产品的人,要明确自己想要的工作流程和功能需求;做基础设施的人,要足够了解代码库,知道什么样的架构和系统设计最适合当前要开发的项目。

 

而且我想强调的是,随着抽象层级的提升,我们并不会摒弃现有的功能。用户依然可以随时深入底层,查看细节、调整参数。只是产品的默认交互方式会不断优化升级。

Cursor 内部工作揭秘:少审代码、高频反馈

Harrison Chase:你之前提到了人类在 Agent 工作流程中的角色,比如查看代码差异、进行代码审查。你觉得 AI 会给代码审查工作带来哪些改变?

 

Jason Ginsberg:首先,就我们产品团队的工作模式来说,现在人工审查的比重已经大幅降低了。我们有一个叫 BugBot 的工具,它会自动检测代码问题,并且自主完成修复,还会在持续集成(CI)流程中不断迭代优化。这个工具的表现非常出色,也让我们对 AI 审查的代码质量更有信心。

 

其次是信息的语义化分组。用户查看代码差异时,可以清晰地看到 Agent 做了哪些修改。我们甚至可以展示 Agent 的原始指令,更理想的状态是,Agent 能够像人类一样,在处理大型代码合并请求时,为每一处修改附上注释,说明这么做的原因。我觉得这虽然算不上颠覆性的变革,但确实能给代码审查工作带来显著的优化。

 

Harrison Chase:出于好奇,我想问一下,Cursor 的工程师用 Cursor 写代码,用 BugBot 审查代码,那他们还需要和其他工程师沟通协作吗?

 

Jason Ginsberg:哈哈,这个问题很有意思。如果你以工程师的身份加入 Cursor,会立刻发现一个现象:所有人都在深度使用自家产品。我记得我入职第一周的时候,修改了一个快捷键设置。那个快捷键是 Alt+Shift+Command+J,非常冷门,我当时觉得选这个键肯定没人会注意到。结果刚改完不到半分钟,就有三个同事在 Slack 上发来消息:“你改的这个快捷键直接打乱了我的工作流程!到底怎么回事?”几乎任何产品改动,都会立刻收到同事们的强烈反馈。我觉得这其实是一件好事,大家就是在这种高频的反馈和交流中,快速推进产品迭代的。

 

Harrison Chase:从组织管理的角度,你们有没有采取什么措施来鼓励或者引导这种高频反馈的协作模式?毕竟大量的反馈涌进来,有时候也会让人应接不暇。

 

Jason Ginsberg:在我创办自己的公司之前,工程师们也会用邮件沟通,但用得并不多。大家甚至会说:“邮件只用来收垃圾邮件和购物通知,可别用它来发长篇大论的工作内容。”而在Agent这个赛道工作,其实完全不需要依赖邮件这种低效的沟通方式。我们团队的所有人都全身心投入工作,毕竟这是一个竞争非常激烈的领域,大家都对产品开发充满热情,会自然而然地用各种即时沟通工具协作。

 

另外,我在规划产品功能时,会遵循一个核心原则:我能开发什么功能,让自己的日常工作更轻松? 具体来说,就是思考 “做什么能帮我明天更高效地完成工作,不用再处理那些烦人的报错和问题”。这个原则指导着我们的大部分工作。毕竟这种功能开发出来之后,我们自己能立刻受益,比如修复了一个烦人的漏洞,以后上班就不用再被这个问题困扰了。

迭代狂飙背后,核心功能竟来自员工 “自嗨”?

Harrison Chase:你觉得你们的产品路线图,有多大比例是由 “让自己工作更轻松” 这个需求驱动的?又有多大比例是来自外部用户的需求?这个比例随着公司发展有变化吗?

 

Jason Ginsberg:这个比例确实随着公司规模的扩大在变化。现在我们也会制定月度的产品路线图和目标,但说实话,我们很多核心功能都来自自下而上的创新。比如 Cursor 的Agent功能,这可以说是大家提到 Cursor 时最先想到的核心功能。这个功能是我们团队的一个人开发的,最开始所有人都不看好这个想法,但他很快做出了原型。大家试用之后都惊叹:“哇,这东西居然真的能用!”

 

我之前提到的调试模式也是如此。感恩节假期的时候我闲着没事,就开发了这个自己很需要的功能,现在这个功能也即将上线。这些功能的开发初衷,都是为了解决团队内部的需求。我们判断一个功能是否具备发布条件,一个重要的衡量标准就是内部的使用率和认可度。

 

Harrison Chase:你们的产品迭代速度快得惊人,是怎么保持这种高效的开发节奏的?

 

Jason Ginsberg:说实话,我们的工作流程其实非常精简,没有太多繁琐的制度。公司里虽然有几间会议室,也有一两位产品经理,但我们很少通过撰写文档或者开对齐会议来推进工作,大部分的讨论和决策都是在代码层面完成的。而这一切能够实现的核心原因,是我们对人才的极高要求。今年年初的时候,公司总共也就 20 人左右。之所以团队规模增长缓慢,就是因为我们的招聘门槛高到近乎苛刻。我们会反复评估:这个人很优秀,但他能成为团队里最顶尖的那批人吗?

 

正因为团队里的每个人都足够出色,所以我们可以放心地把任务交给任何一个人。团队成员的主观能动性都极强,从提出想法、设计用户体验,到在推特上回复用户的支持请求、和企业客户沟通需求,再到最终将功能落地,整个流程都能独立完成。所以说,我们能保持这样的速度,归根结底还是人的因素。

 

Harrison Chase:你们是如何规划产品路线图的?你刚才提到了以月为单位的规划周期,这是目前的常规规划时长吗?有没有更长期的规划?另外,行业技术迭代的速度实在太快了,你们是如何平衡 “跟进现有技术浪潮” 和 “实现技术跨越式发展” 这两者的?会不会主动预判技术趋势,提前布局未来方向?

 

Jason Ginsberg:我们确实会投入不少精力去思考未来,比如预判未来三个月可能实现的技术突破,然后主动押注相关方向,团队里有相当一部分人都在做这类前瞻性的工作。我们制定的月度路线图更多是围绕核心产品功能展开,聚焦于用户的实际需求以及那些能优化日常使用体验的功能。而那些需要投入两个月时间重构底层逻辑的重大项目,则会纳入更长期的规划范畴。

此外,我们的应变能力其实非常强。

 

有时候我们会提前拿到新模型的测试版本,试用之后如果发现它在某些方面表现特别出色,团队成员往往会主动利用周末时间加班,争取在新模型正式发布前就完成相关功能的开发。很多重要功能其实几天之内就能搭建完成。

 

Harrison Chase:说到模型,你们发布了自研的 Composer 模型。开发这个模型的初衷是什么?目前用户的使用情况如何?这个模型有没有改变大家使用 Cursor 的习惯?

 

Jason Ginsberg:我们发现,工程师使用我们产品时的编码场景,需要有专门适配的模型来支撑。Composer 模型就是针对这类场景打造的,它定位非常明确,具备速度快、质量高、逻辑智能三大特点,尤其适合 “人机实时协作” 场景。我自己做前端开发时就经常用它,因为我需要频繁做出细微的交互设计决策,这就要求 Agent 能在几秒内给出反馈。Composer 就像一个高效的协作伙伴,能快速响应需求、碰撞想法,和那些适用于长周期异步任务的模型形成了很好的互补。

 

Harrison Chase:Cursor 的 Agent 相关研发工作是全员参与,还是有专门的团队负责?

 

Jason Ginsberg:我们确实有专门的团队负责 Agent 的性能优化,他们主要聚焦于工具链、调度框架的搭建以及效果评估。但正如我之前所说,我们的团队架构并不僵化,没有严格限制大家的工作范围。比如核心产品团队的工程师在开发规划模式时,如果需要对Agent进行调整,就会和Agent团队密切协作。而且在开发过程中,我们依然会深度使用自家产品进行测试,团队成员会分享使用感受,以此来评估功能的实际效果。

 

Harrison Chase:无论是 Agent 团队的成员,还是其他团队中擅长 Agent 研发的工程师,他们身上有没有什么共同特质?他们的专业背景或者个人能力有没有什么特别之处?

 

Jason Ginsberg:我觉得他们大多是偏产品方向的人才,而不是传统意义上的机器学习或算法研究专家。这些人经常在不同团队之间轮岗,因为Agent研发需要对用户的最终使用体验有很强的直觉,同时还要能准确解读团队的反馈意见。

 

Harrison Chase:上周你们和 OpenAI 合作发布了一篇博客,内容是针对 OpenAI 的新模型优化 Cursor 的 Agent 调度框架。我在推特上经常看到大家讨论 “Agent 调度框架” 这个概念。你们是如何看待模型的底层支撑架构的?这类架构是否需要和特定模型深度绑定?比如 Composer 模型和 CodeLlama 模型,对应的架构会不会有很大差异?

 

Jason Ginsberg:我其实没有深度参与这方面的工作,但据我了解,我们的核心目标是打造高度灵活的架构。毕竟我们需要不断尝试新技术、新功能模式,所以架构必须能够随着模型能力的升级快速适配。

 

Harrison Chase:很有道理。毕竟整个行业都在飞速变化。

开放问答

提问者 1:刚才提到了新增的可视化浏览器功能,我发现有些工具比如 Lovable 也有类似的功能。请问这个功能是朝着 “沉浸式可视化编码” 的方向发展吗?

 

Jason Ginsberg:我觉得它并不是为沉浸式可视化编码设计的。就像我之前说的,这个功能最初是我为自己开发的,我本身就是一名做产品的工程师,它的核心用户群体其实是专业工程师和设计师。大家在开发应用时,肯定都遇到过这种情况:精心设计的界面,最后却变成了大家都看腻了的紫黄渐变配色。这个功能就是为了让大家能够精准把控细节,比如把内边距调整到精确的像素值。它为用户提供了一套更直观的 “视觉化操作语言”,比纯文本指令的精度更高。

 

而且就算不使用侧边栏,你也可以直接点击页面元素,随时输入提示词下达指令。借助这个功能,你可以在几秒内同时启动六个 Agent。如果开启热重载功能,你的网站会实时呈现修改效果,用起来其实还挺有意思的。

 

提问者 2:我特别喜欢你们的浏览器 Agent,一直在用。但我发现一个小瑕疵:我想持续迭代优化设计方案,可 Agent 总是会中断我的工作,直接提交代码合并请求。未来有没有可能实现不间断的持续迭代?

 

Jason Ginsberg:当然可以。未来的发展方向就是让 Agent 具备自主评估能力,根据需求长时间持续运行、循环迭代。现在的调试模式还需要人工点击按钮来确认日志信息,但这只是过渡方案。理想的状态是,Agent能够自主完成评估、迭代,直到彻底解决问题。

 

提问者 3:我不知道你是否深度参与 Agent 相关的研发工作,但我注意到 Cursor 的内存管理功能做得很好。它可以根据工程师个人、部门乃至整个公司的偏好、规则和流程,自主管理相关信息。我们都知道,信息和上下文对 Agent 来说至关重要。请问你们有没有计划进一步拓展和升级这个功能?尤其是在长上下文处理方面,你们有什么思路?

 

Jason Ginsberg:我们正在进行大量的实验和探索。目前已经落地了规则管理、内存记忆、技能库等多个功能模块。现阶段,我们主要在研究高效的信息摘要技术。另外,借助我们的自研模型,我们也在探索让模型自主识别对话或代码中反复出现的关键信息。当然,跨组织的信息共享功能也很值得探索。不过这里有个需要注意的点,相关规则和信息可能会随着模型的迭代而过时。所以我们必须确保用户能够轻松更新这些内容,避免被过时的规则束缚。

 

提问者 4:关于你们发布的 Composer 模型,我认识一些开发者,他们基于 Gemini 模型微调了一个医疗领域的专用模型。但他们发现,这个微调后的模型效果还不如直接用原生 Gemini 模型做单次提示词调用。他们分析的原因是,微调模型需要持续维护,要跟上 Gemini 等基础模型的更新节奏。请问你们是如何制定策略,确保 Composer 模型不会落伍的?

 

Jason Ginsberg:你说的是 Composer 模型,对吧?我们会持续对它进行迭代优化,它并不是一个静态的模型。我们的核心关注点,是在速度和智能之间找到最佳平衡点,满足 Cursor 用户在大部分场景下的需求。不过在长上下文处理这类特定领域,我们确实还有提升空间。

 

提问者 5:我自己是产品经理,一直在用 Cursor 做原型开发,甚至在团队里还客串设计师,用它替代 Figma。我很好奇,有没有用户是在使用 Cursor 之前,从未安装过任何集成开发环境(IDE)的?这类用户会不会成为你们未来重点关注的群体?毕竟现在的编码 Agent 已经足够强大,很多工作都能在上面完成。

 

Jason Ginsberg:坦白说,我们目前并没有把这类用户作为核心关注点。当然,我们认同工具的使用门槛确实需要不断降低,而且 Cursor 的易用性也在持续提升,比如新增的浏览器工具对设计师就很友好。但我们的核心目标,其实是赋能顶尖工程师。我们一直在思考:如何让世界上最优秀的工程师变得更加强大?在这个过程中,我们开发的工具自然会惠及更多人群。不过在产品优化方面,我们确实还有很多工作要做,如优化新手引导和环境配置流程。毕竟设计师和产品经理在配置 GitHub 等工具时,经常会遇到困难。我们希望通过优化这些环节,吸引更多用户尝试 Cursor。

 

提问者 6:我一直在尝试用 Cursor 做智能合约的验证矩阵构建和试运行逻辑测试。请问在深度质量检测和安全加固方面,有没有什么不太为人知的实用工作流可以推荐?或者刚才提到的调试工具能不能派上用场?我对智能合约的质量检测特别感兴趣。

 

Jason Ginsberg:说实话,我们正在尝试让 Agent 自主完成测试工作,不过这项功能目前还没有完全发布。对于从事质量检测工作的人员来说,我强烈推荐试试我们刚发布的调试模式。这个功能定位问题的逻辑非常清晰,几乎可以说是确定性的,用起来会很有帮助。

 

提问者 7:您认为未来两到四个月,Cursor 面临的最大机遇是什么?会不会是语音 Agent?

 

Jason Ginsberg:我觉得机遇不在于语音 Agent。用户现阶段最核心的需求,其实是让 Agent 变得更智能、运行时间更长、能处理的任务更多。现在的很多 Agent,本质上只是在 “读取代码”,并不能真正判断修改后的代码是否有效。未来的发展空间非常大,我们可以投入更多算力,让 Agent 承担更多人类目前负责的校验工作。我觉得未来三到六个月,整个行业都会迎来巨大的变革,非常值得期待。

 

参考链接:

https://www.youtube.com/watch?v=dKSGK-fPFyU

整理 | 华卫、Tina

过去一年,编码 Agent 的变化速度,已经快到让人很难用“功能升级”来形容。

如果把时间拨回到一年前,Agent 还主要停留在代码补全、对话式改几行代码的阶段;而今天,在 Cursor 内部,工程师已经开始同时运行多个 Agent 并行“甩活儿”,让它们在代码库中自主修改、调试、复盘,再由人类在最后阶段集中审核结果。开发者不再盯着 Agent 的每一步操作,而是开始习惯“等它跑完再看答案”。

在最近一次访谈中,Cursor 工程负责人 Jason Ginsberg 给出了一个明确判断:这不是渐进式优化,而是一场正在发生的“换代”。更重要的是,他把这场变化的时间窗口,压缩到了未来三到六个月——在他看来,Agent 将不只是“更聪明”,而是会真正接管更长周期、更复杂的工程任务,整个行业的工作方式也将随之重塑。

下面是详细对话内容,我们在不改变原意的基础上进行了翻译和删减,以飨读者。

一年多时间,编码 Agent“翻天覆地”

Harrison Chase:Jason,你能跟大家简单介绍一下自己吗?也给大家讲讲 Cursor 是什么吧。

 

Jason Ginsberg:好的。我目前在做一款 AI 编程工具,已经在 Cursor 工作了六个月,担任该产品的工程负责人。不过说实话,我日常的大部分时间还是在写代码和做设计工作。在加入 Cursor 之前,我在 Notion 负责 Notion Mail 相关工作。几年前,我创办了一家名为 Skiff 的公司,后来这家公司被 Notion 收购了。所以,我一直都在从事产品开发相关的工作,而且主要聚焦在生产力工具领域。

 

Harrison Chase:非常棒。我有很多话题想和你探讨。要不我先抛砖引玉,问问你对编码 Agent 的发展历程,以及这些年来人机交互模式演变的看法吧。你们可以说是这个领域的先行者之一,我认为编码 Agent 的发展经历了几个阶段的转变:从最初的代码自动补全,到集成在集成开发环境(IDE)中的对话式交互,再到如今出现的各类终端工具,以及基于云端的异步 Agent。我很想听听你的看法,你觉得这样概括其用户体验的演变历程是否准确?或者你们团队是如何看待这一发展过程的?

 

Jason Ginsberg:我认为编码 Agent 的发展确实可以用 “翻天覆地” 来形容,而且这些变革基本上都是在一年多一点的时间里发生的。正如你所说,Cursor 最早开启了代码自动补全的先河,这种模式主要是在逐行的层面上提供辅助,适用范围也基本局限在单个文件内。而此后,几乎每隔几个月,我们就不得不提升产品的抽象层级,这其实是一个极具挑战性的产品设计难题。显然,Agent 的出现让开发者能够在多个文件之间灵活切换,并且可以放心地让 Agent 自主完成代码修改工作。

 

在过去两个月左右的时间里,我发现行业又出现了新的转变:开发者现在已经能够做到从项目启动到结束全程信任 Agent,并且会对整个代码库中多个文件的内容进行批量审核。因此,我们不得不对产品的整体布局进行大幅重新设计,将核心从逐行的代码差异对比,转向更偏向代码审查的模式。

 

展望未来的产品开发方向,我们的工作重心其实会更多地放在多 Agent 协同运行上。我们需要实现的是,能够快速验证这些 Agent 是否在正常运行,并且可以让它们并行工作,同时避免受到当前单一对话模式下各种选项和选择的束缚。

 

Harrison Chase:推动这些变革的核心因素是什么?仅仅是因为大模型的性能变得越来越好,还是有其他更多的影响因素?

 

Jason Ginsberg:我认为大模型性能的提升是一个很关键的因素,这让开发者能够更加信任 Agent 编写的代码质量。要知道,以前大家必须对 Agent 生成的代码进行非常全面细致的审查。

同时,现在也有了更完善的代码审查工具。比如我们有 BugBot,市场上其实还有很多类似的工具,它们都能够自动检查代码中存在的问题。

 

此外,我觉得从行业文化层面来看,开发者们对 Agent 工具的接受度和使用信心也在不断增强,甚至可以说已经 “上瘾” 于这类工具带来的便捷。而且,一旦习惯了完全依赖 Agent 进行编码的工作模式,再切换回传统的编码方式其实是很困难的。所以现在,我们能看到越来越多的开发者已经将 Agent 辅助编程作为默认的工作方式。

最顶尖工程师的干活秘诀:全靠 Agent?

Harrison Chase:你观察到大家使用 Cursor 的方式都有哪些不同?或者你自己平时是怎么使用 Cursor 的?

 

Jason Ginsberg:其实在我们公司内部,工程师们使用 Cursor 的方式就五花八门。甚至团队里有几位工程师,他们完全不使用 Cursor 的 Agent 功能,比如负责安全和基础设施的同事。所以,确实有一部分用户非常依赖代码自动补全功能,日常使用中大部分操作都是基于补全功能完成的。但令人意外的是,我发现团队里一些最顶尖的工程师,我们称他们为 “核心用户”,他们做任何工作都会完全依赖 Agent,甚至会同时运行多个 Agent 并行处理任务。

 

至于我个人的使用习惯,我并不会去设计那些复杂繁琐的提示词,也没有什么所谓的 “Agent 使用秘籍”。我写的提示词往往都很简短,甚至还会带有拼写错误。我会针对手头不同的工作任务,或者同一个问题的不同模块,同时启动多个 Agent,然后等待它们返回结果。

 

目前我用得最多的是我们今天刚刚发布的一个新功能:调试模式。这个模式下,Agent 能够通过生成日志来进行自我评估,之后开发者复现相关操作步骤,Agent 就会通过查看日志判断问题是否得到解决。这个功能非常实用,因为它相当于通过投入算力去不断尝试解决问题,最终攻克那些手动排查起来极为棘手的难题。

 

Harrison Chase:调试模式具体是什么样的?为什么需要专门设置这样一个模式?难道不能自动完成调试吗?直接给 Agent 下达调试指令不也可以吗?

 

Jason Ginsberg:其实我也认同你的这个想法。所以在开发调试模式的时候,我们内部确实有过不少争论。主要原因在于,Cursor 目前已经有很多功能模式了,如规划模式、询问模式等等,这些模式其实不太容易被用户发现。我们一直认为,这些模式都很实用,理想的状态应该是,Agent 能够根据用户的操作场景,自动匹配并启用最合适的模式,无需用户手动切换。

 

而现阶段调试模式之所以需要手动开启,是因为它的交互方式比较特殊。在运行过程中,Agent 会暂停当前的工作,向用户提问以获取反馈。如果用户不熟悉这种交互逻辑,可能会觉得比较困扰。

 

Harrison Chase:Agent 具体会询问哪些问题,又需要用户提供什么样的反馈呢?

 

Jason Ginsberg:我举个例子吧。假设我正在开发一个前端应用,遇到了一个很让人头疼的问题:菜单总是在左上角弹出。这时候我会对Agent说:“这个菜单需要锚定到按钮的位置。” 随后,Agent 会启动服务器,并在整个代码库中添加大量日志,同时提出一系列可能导致该问题的假设,如 “可能是某个定位参数设置错误”、“可能是事件绑定逻辑有问题” 等。之后,Agent 会提示我:“麻烦你点击这个按钮,打开菜单,看看问题是否解决。” 如果我反馈问题依然存在,Agent 就会查看生成的日志,然后分析判断:“这个假设成立,那两个假设不成立”。通常这样反复两三次之后,Agent 往往就能找出并解决问题。

 

Harrison Chase:你觉得人类还需要手动操作多久?就不能让 Agent 自主完成点击、测试这类操作吗?

 

Jason Ginsberg:一两个月内,毕竟这个行业的发展速度实在太快了。

 

Harrison Chase:刚才你提到了 Agent 的多种不同模式,比如规划模式、解释模式、调试模式等等。这些模式在实际应用中到底意味着什么?难道只是为 Agent 设置不同的提示词这么简单吗?还是说背后有更复杂的逻辑?

 

Jason Ginsberg:很多时候,确实就是修改一下系统层面的提示词。不过在某些情况下,我们也需要对用户界面进行相应的调整。比如规划模式现在也加入了交互提问功能,运行过程中会主动打断用户操作,寻求反馈。用户有时也可以自行设置参数,如调整 Agent 打断的频率等。再比如询问模式,它不只是依赖特定的系统提示词,还会限制 Agent 调用某些与文件编辑相关的工具,以此来保证功能的稳定性和可靠性。

 

Harrison Chase:回到之前的话题,关于大家使用 Cursor 的不同方式,你觉得未来使用编码 Agent 或者说 Cursor,存在所谓的 “最佳方式” 吗?

 

Jason Ginsberg:我觉得并没有什么 “最佳方式”,具体的使用方法很大程度上取决于工程师的个人工作习惯以及他们所处理的具体工作内容。目前行业里,既有异步运行Agent的应用场景,也有开发者深度参与、实时交互的模式,就像一边编程、一边像画画一样实时调整代码或者进行可视化的编辑操作。不过我经常在推特上看到一些所谓的 “Agent 使用技巧”,其实对此我是有点持保留态度的。很多人会说 “这才是使用 Agent 的最佳方式”,但在我看来,这些技巧往往是凭空杜撰的。

 

我们团队内部其实并不会使用那些冗长复杂的提示词,也不会采用多阶段规划的策略。大多数时候,我们都是快速迭代,如果 Agent 运行的结果不理想,就直接终止进程,重新启动 Agent。通常这种方式的效率是最高的。

自然 “唠嗑”是 Cursor 最终交互模式?

Harrison Chase:如果让你预测一下一年后的情况,你认为开发者在 IDE、终端以及其他形态的载体上使用 Cursor 的时间占比会是怎样的?

 

Jason Ginsberg:当然,我肯定会带有一定的主观偏向性。但我认为,终端工具并不会成为用户的首选。我觉得,真正驱动行业发展的是用户对Agent的信任度不断提升,他们更希望等到Agent完成所有工作后再查看最终的修改结果,然后决定是否采纳,同时也愿意让 Agent 运行更长的时间,以实现更智能的处理。

 

而 IDE 之所以至关重要,是因为它是为整个软件开发周期量身打造的工具。从项目的构思规划,到运行代码修改、查看代码内容、清晰对比代码差异、提交代码合并请求,再到在浏览器中预览效果所有这些环节,都可以无缝集成在 IDE 的模块化功能之中。这一点其实很容易被忽视,毕竟 IDE 的这些功能是经过了数十年的发展才逐步完善起来的。

 

我认为,当前行业的一个明显趋势是,产品层面的设计变得越来越重要。现在 Cursor 用户使用频率最高的功能,如规划模式,其实都需要可视化编辑器的支持,用户需要能够在编辑器中添加注释,并进行实时交互。一旦脱离了按钮、弹窗和菜单这些可视化交互元素,用户与工具的交互难度会大大增加。

 

不过,我觉得未来并非所有操作都必须局限在笔记本电脑的 IDE 中完成。这种模式并不会被完全取代,具体的使用场景会根据实际需求灵活变化,适用的场景也会更加广泛。用户在更多场景下,都能够使用到 Cursor 这样的工具。

 

Harrison Chase:未来会有更多场景都能用上像 Cursor 这样的工具。你们应该有对应的官网吧?用户可以直接在网页上进行交互操作,是这个思路吗?

 

Jason Ginsberg:对,我们确实有官网。这么做的原因是用户可以通过手机等设备随时随地访问。我觉得在不远的将来,用户完全可以戴着 AirPods,开启语音模式,和Agent实时沟通、碰撞想法,让Agent不断优化方案。等用户到了办公室,打开笔记本电脑,就已经有一堆代码修改记录或者演示视频等着审核了,到时候只需要简单确认通过或者驳回就行。如果某些细节还需要微调,再把项目下载到本地修改就好。

 

Harrison Chase:我认为 Cursor 真正的优势,在于围绕 Agent 交互打造的整套设计和用户体验体系。你之前在 Notion 工作过,我记得即便是在生成式 AI 普及之前,Notion 的设计和用户体验就已经广受认可了。当然,他们在生成式 AI 时代也很好地完成了转型。从一家在生成式 AI 普及前就拥有出色设计积淀且顺利完成转型的公司,再到如今专注 Agent 相关工作,你觉得 Agent 的出现给产品设计和用户体验带来了哪些变化?现在的工作模式和之前有相似之处吗?

 

Jason Ginsberg:我觉得总体来说,我们产品的大部分设计其实并不是 AI 专属的。要知道,产品可用的交互组件和用户体验模式就那么多,市面上的应用本质上也都是基于一些传统的模式搭建的,如收件箱、仪表盘、聊天界面,这些都是很成熟的设计。所以我们的工作核心,更多是把这些现有的设计模式进行合理组合,然后在产品中恰当地呈现出来。这一点和 Notion 的产品理念是相通的,同时也是 Cursor 和集成开发环境(IDE)的核心特质:极高的模块化程度。

 

作为用户,你会发现每个人的 IDE 界面布局都可以千差万别。你可以自定义面板布局,把任意组件拖放到任意位置,和坐在你旁边的同事设置出完全不同的界面。我认为这种模块化设计对产品的适应性至关重要,毕竟如我之前所说,Agent 的能力发展日新月异,用户对产品的需求和期待几乎每隔几周就会发生变化。几个月前我们推出 Cursor 2.0 的时候,并没有把原来的产品推倒重来,只是把各个功能模块重新组合,调整为侧边栏收件箱式的管理布局,同时优化了聊天界面的信息密度而已。

 

Harrison Chase:听你这么说,很多组件的底层逻辑其实是相通的。那有没有出现新的组件?或者某些组件的优先级发生了变化?毕竟这些组件最初都是为 “人类与软件交互”“人类通过软件协作” 的场景设计的,现在加入了 Agent 这个新角色。这其中有没有产生什么新的变化?还是说其实本质上没有太大不同?

 

Jason Ginsberg:我认为底层的设计逻辑和核心要素其实没有变,关键变化在于谁在主导界面交互。而在这个核心框架下,其实可以演变出无数种交互形式。就拿交互的抽象层级来说,一年前大家使用Agent的时候,都恨不得盯着它的每一步操作,全程 “盯梢”。但现在 Agent 的操作步骤变得无比繁杂,用户根本看不过来。所以我们需要优化信息呈现方式:如何对操作步骤进行分组?如何提炼关键信息?

 

当用户足够信任 Agent 的操作后,我们就需要把重点放在文件的实际修改内容上,并且为这些修改添加更详细的注释说明。当然,我们也可以进一步提升交互的灵活度,比如聊天对象不再局限于单个 Agent,而是可以同时和多个 Agent 对话。这就需要一套更智能的后台交互逻辑来支撑 ,系统要能识别用户在和哪个子 Agent 对话,并且协调这些 Agent 完成对应的修改。未来这种交互的抽象层级还会不断提升。

 

Harrison Chase:你觉得交互的抽象层级最高能达到什么程度?我知道预测未来很难,但还是想听听你的看法。

 

Jason Ginsberg:我觉得未来,我们现在看到的各种操作选项,如选择模型、选择功能模式、选择运行环境这些都会逐渐消失。最终的交互模式会变得像和真人对话一样自然。但这并不意味着任何人都能随便写代码,在那个阶段,这个工具依然是为专业工程师服务的。因为你还是需要具备专业的行业术语知识,清楚自己想要修改的内容是什么。做产品的人,要明确自己想要的工作流程和功能需求;做基础设施的人,要足够了解代码库,知道什么样的架构和系统设计最适合当前要开发的项目。

 

而且我想强调的是,随着抽象层级的提升,我们并不会摒弃现有的功能。用户依然可以随时深入底层,查看细节、调整参数。只是产品的默认交互方式会不断优化升级。

Cursor 内部工作揭秘:少审代码、高频反馈

Harrison Chase:你之前提到了人类在 Agent 工作流程中的角色,比如查看代码差异、进行代码审查。你觉得 AI 会给代码审查工作带来哪些改变?

 

Jason Ginsberg:首先,就我们产品团队的工作模式来说,现在人工审查的比重已经大幅降低了。我们有一个叫 BugBot 的工具,它会自动检测代码问题,并且自主完成修复,还会在持续集成(CI)流程中不断迭代优化。这个工具的表现非常出色,也让我们对 AI 审查的代码质量更有信心。

 

其次是信息的语义化分组。用户查看代码差异时,可以清晰地看到 Agent 做了哪些修改。我们甚至可以展示 Agent 的原始指令,更理想的状态是,Agent 能够像人类一样,在处理大型代码合并请求时,为每一处修改附上注释,说明这么做的原因。我觉得这虽然算不上颠覆性的变革,但确实能给代码审查工作带来显著的优化。

 

Harrison Chase:出于好奇,我想问一下,Cursor 的工程师用 Cursor 写代码,用 BugBot 审查代码,那他们还需要和其他工程师沟通协作吗?

 

Jason Ginsberg:哈哈,这个问题很有意思。如果你以工程师的身份加入 Cursor,会立刻发现一个现象:所有人都在深度使用自家产品。我记得我入职第一周的时候,修改了一个快捷键设置。那个快捷键是 Alt+Shift+Command+J,非常冷门,我当时觉得选这个键肯定没人会注意到。结果刚改完不到半分钟,就有三个同事在 Slack 上发来消息:“你改的这个快捷键直接打乱了我的工作流程!到底怎么回事?”几乎任何产品改动,都会立刻收到同事们的强烈反馈。我觉得这其实是一件好事,大家就是在这种高频的反馈和交流中,快速推进产品迭代的。

 

Harrison Chase:从组织管理的角度,你们有没有采取什么措施来鼓励或者引导这种高频反馈的协作模式?毕竟大量的反馈涌进来,有时候也会让人应接不暇。

 

Jason Ginsberg:在我创办自己的公司之前,工程师们也会用邮件沟通,但用得并不多。大家甚至会说:“邮件只用来收垃圾邮件和购物通知,可别用它来发长篇大论的工作内容。”而在Agent这个赛道工作,其实完全不需要依赖邮件这种低效的沟通方式。我们团队的所有人都全身心投入工作,毕竟这是一个竞争非常激烈的领域,大家都对产品开发充满热情,会自然而然地用各种即时沟通工具协作。

 

另外,我在规划产品功能时,会遵循一个核心原则:我能开发什么功能,让自己的日常工作更轻松? 具体来说,就是思考 “做什么能帮我明天更高效地完成工作,不用再处理那些烦人的报错和问题”。这个原则指导着我们的大部分工作。毕竟这种功能开发出来之后,我们自己能立刻受益,比如修复了一个烦人的漏洞,以后上班就不用再被这个问题困扰了。

迭代狂飙背后,核心功能竟来自员工 “自嗨”?

Harrison Chase:你觉得你们的产品路线图,有多大比例是由 “让自己工作更轻松” 这个需求驱动的?又有多大比例是来自外部用户的需求?这个比例随着公司发展有变化吗?

 

Jason Ginsberg:这个比例确实随着公司规模的扩大在变化。现在我们也会制定月度的产品路线图和目标,但说实话,我们很多核心功能都来自自下而上的创新。比如 Cursor 的Agent功能,这可以说是大家提到 Cursor 时最先想到的核心功能。这个功能是我们团队的一个人开发的,最开始所有人都不看好这个想法,但他很快做出了原型。大家试用之后都惊叹:“哇,这东西居然真的能用!”

 

我之前提到的调试模式也是如此。感恩节假期的时候我闲着没事,就开发了这个自己很需要的功能,现在这个功能也即将上线。这些功能的开发初衷,都是为了解决团队内部的需求。我们判断一个功能是否具备发布条件,一个重要的衡量标准就是内部的使用率和认可度。

 

Harrison Chase:你们的产品迭代速度快得惊人,是怎么保持这种高效的开发节奏的?

 

Jason Ginsberg:说实话,我们的工作流程其实非常精简,没有太多繁琐的制度。公司里虽然有几间会议室,也有一两位产品经理,但我们很少通过撰写文档或者开对齐会议来推进工作,大部分的讨论和决策都是在代码层面完成的。而这一切能够实现的核心原因,是我们对人才的极高要求。今年年初的时候,公司总共也就 20 人左右。之所以团队规模增长缓慢,就是因为我们的招聘门槛高到近乎苛刻。我们会反复评估:这个人很优秀,但他能成为团队里最顶尖的那批人吗?

 

正因为团队里的每个人都足够出色,所以我们可以放心地把任务交给任何一个人。团队成员的主观能动性都极强,从提出想法、设计用户体验,到在推特上回复用户的支持请求、和企业客户沟通需求,再到最终将功能落地,整个流程都能独立完成。所以说,我们能保持这样的速度,归根结底还是人的因素。

 

Harrison Chase:你们是如何规划产品路线图的?你刚才提到了以月为单位的规划周期,这是目前的常规规划时长吗?有没有更长期的规划?另外,行业技术迭代的速度实在太快了,你们是如何平衡 “跟进现有技术浪潮” 和 “实现技术跨越式发展” 这两者的?会不会主动预判技术趋势,提前布局未来方向?

 

Jason Ginsberg:我们确实会投入不少精力去思考未来,比如预判未来三个月可能实现的技术突破,然后主动押注相关方向,团队里有相当一部分人都在做这类前瞻性的工作。我们制定的月度路线图更多是围绕核心产品功能展开,聚焦于用户的实际需求以及那些能优化日常使用体验的功能。而那些需要投入两个月时间重构底层逻辑的重大项目,则会纳入更长期的规划范畴。

此外,我们的应变能力其实非常强。

 

有时候我们会提前拿到新模型的测试版本,试用之后如果发现它在某些方面表现特别出色,团队成员往往会主动利用周末时间加班,争取在新模型正式发布前就完成相关功能的开发。很多重要功能其实几天之内就能搭建完成。

 

Harrison Chase:说到模型,你们发布了自研的 Composer 模型。开发这个模型的初衷是什么?目前用户的使用情况如何?这个模型有没有改变大家使用 Cursor 的习惯?

 

Jason Ginsberg:我们发现,工程师使用我们产品时的编码场景,需要有专门适配的模型来支撑。Composer 模型就是针对这类场景打造的,它定位非常明确,具备速度快、质量高、逻辑智能三大特点,尤其适合 “人机实时协作” 场景。我自己做前端开发时就经常用它,因为我需要频繁做出细微的交互设计决策,这就要求 Agent 能在几秒内给出反馈。Composer 就像一个高效的协作伙伴,能快速响应需求、碰撞想法,和那些适用于长周期异步任务的模型形成了很好的互补。

 

Harrison Chase:Cursor 的 Agent 相关研发工作是全员参与,还是有专门的团队负责?

 

Jason Ginsberg:我们确实有专门的团队负责 Agent 的性能优化,他们主要聚焦于工具链、调度框架的搭建以及效果评估。但正如我之前所说,我们的团队架构并不僵化,没有严格限制大家的工作范围。比如核心产品团队的工程师在开发规划模式时,如果需要对Agent进行调整,就会和Agent团队密切协作。而且在开发过程中,我们依然会深度使用自家产品进行测试,团队成员会分享使用感受,以此来评估功能的实际效果。

 

Harrison Chase:无论是 Agent 团队的成员,还是其他团队中擅长 Agent 研发的工程师,他们身上有没有什么共同特质?他们的专业背景或者个人能力有没有什么特别之处?

 

Jason Ginsberg:我觉得他们大多是偏产品方向的人才,而不是传统意义上的机器学习或算法研究专家。这些人经常在不同团队之间轮岗,因为Agent研发需要对用户的最终使用体验有很强的直觉,同时还要能准确解读团队的反馈意见。

 

Harrison Chase:上周你们和 OpenAI 合作发布了一篇博客,内容是针对 OpenAI 的新模型优化 Cursor 的 Agent 调度框架。我在推特上经常看到大家讨论 “Agent 调度框架” 这个概念。你们是如何看待模型的底层支撑架构的?这类架构是否需要和特定模型深度绑定?比如 Composer 模型和 CodeLlama 模型,对应的架构会不会有很大差异?

 

Jason Ginsberg:我其实没有深度参与这方面的工作,但据我了解,我们的核心目标是打造高度灵活的架构。毕竟我们需要不断尝试新技术、新功能模式,所以架构必须能够随着模型能力的升级快速适配。

 

Harrison Chase:很有道理。毕竟整个行业都在飞速变化。

开放问答

提问者 1:刚才提到了新增的可视化浏览器功能,我发现有些工具比如 Lovable 也有类似的功能。请问这个功能是朝着 “沉浸式可视化编码” 的方向发展吗?

 

Jason Ginsberg:我觉得它并不是为沉浸式可视化编码设计的。就像我之前说的,这个功能最初是我为自己开发的,我本身就是一名做产品的工程师,它的核心用户群体其实是专业工程师和设计师。大家在开发应用时,肯定都遇到过这种情况:精心设计的界面,最后却变成了大家都看腻了的紫黄渐变配色。这个功能就是为了让大家能够精准把控细节,比如把内边距调整到精确的像素值。它为用户提供了一套更直观的 “视觉化操作语言”,比纯文本指令的精度更高。

 

而且就算不使用侧边栏,你也可以直接点击页面元素,随时输入提示词下达指令。借助这个功能,你可以在几秒内同时启动六个 Agent。如果开启热重载功能,你的网站会实时呈现修改效果,用起来其实还挺有意思的。

 

提问者 2:我特别喜欢你们的浏览器 Agent,一直在用。但我发现一个小瑕疵:我想持续迭代优化设计方案,可 Agent 总是会中断我的工作,直接提交代码合并请求。未来有没有可能实现不间断的持续迭代?

 

Jason Ginsberg:当然可以。未来的发展方向就是让 Agent 具备自主评估能力,根据需求长时间持续运行、循环迭代。现在的调试模式还需要人工点击按钮来确认日志信息,但这只是过渡方案。理想的状态是,Agent能够自主完成评估、迭代,直到彻底解决问题。

 

提问者 3:我不知道你是否深度参与 Agent 相关的研发工作,但我注意到 Cursor 的内存管理功能做得很好。它可以根据工程师个人、部门乃至整个公司的偏好、规则和流程,自主管理相关信息。我们都知道,信息和上下文对 Agent 来说至关重要。请问你们有没有计划进一步拓展和升级这个功能?尤其是在长上下文处理方面,你们有什么思路?

 

Jason Ginsberg:我们正在进行大量的实验和探索。目前已经落地了规则管理、内存记忆、技能库等多个功能模块。现阶段,我们主要在研究高效的信息摘要技术。另外,借助我们的自研模型,我们也在探索让模型自主识别对话或代码中反复出现的关键信息。当然,跨组织的信息共享功能也很值得探索。不过这里有个需要注意的点,相关规则和信息可能会随着模型的迭代而过时。所以我们必须确保用户能够轻松更新这些内容,避免被过时的规则束缚。

 

提问者 4:关于你们发布的 Composer 模型,我认识一些开发者,他们基于 Gemini 模型微调了一个医疗领域的专用模型。但他们发现,这个微调后的模型效果还不如直接用原生 Gemini 模型做单次提示词调用。他们分析的原因是,微调模型需要持续维护,要跟上 Gemini 等基础模型的更新节奏。请问你们是如何制定策略,确保 Composer 模型不会落伍的?

 

Jason Ginsberg:你说的是 Composer 模型,对吧?我们会持续对它进行迭代优化,它并不是一个静态的模型。我们的核心关注点,是在速度和智能之间找到最佳平衡点,满足 Cursor 用户在大部分场景下的需求。不过在长上下文处理这类特定领域,我们确实还有提升空间。

 

提问者 5:我自己是产品经理,一直在用 Cursor 做原型开发,甚至在团队里还客串设计师,用它替代 Figma。我很好奇,有没有用户是在使用 Cursor 之前,从未安装过任何集成开发环境(IDE)的?这类用户会不会成为你们未来重点关注的群体?毕竟现在的编码 Agent 已经足够强大,很多工作都能在上面完成。

 

Jason Ginsberg:坦白说,我们目前并没有把这类用户作为核心关注点。当然,我们认同工具的使用门槛确实需要不断降低,而且 Cursor 的易用性也在持续提升,比如新增的浏览器工具对设计师就很友好。但我们的核心目标,其实是赋能顶尖工程师。我们一直在思考:如何让世界上最优秀的工程师变得更加强大?在这个过程中,我们开发的工具自然会惠及更多人群。不过在产品优化方面,我们确实还有很多工作要做,如优化新手引导和环境配置流程。毕竟设计师和产品经理在配置 GitHub 等工具时,经常会遇到困难。我们希望通过优化这些环节,吸引更多用户尝试 Cursor。

 

提问者 6:我一直在尝试用 Cursor 做智能合约的验证矩阵构建和试运行逻辑测试。请问在深度质量检测和安全加固方面,有没有什么不太为人知的实用工作流可以推荐?或者刚才提到的调试工具能不能派上用场?我对智能合约的质量检测特别感兴趣。

 

Jason Ginsberg:说实话,我们正在尝试让 Agent 自主完成测试工作,不过这项功能目前还没有完全发布。对于从事质量检测工作的人员来说,我强烈推荐试试我们刚发布的调试模式。这个功能定位问题的逻辑非常清晰,几乎可以说是确定性的,用起来会很有帮助。

 

提问者 7:您认为未来两到四个月,Cursor 面临的最大机遇是什么?会不会是语音 Agent?

 

Jason Ginsberg:我觉得机遇不在于语音 Agent。用户现阶段最核心的需求,其实是让 Agent 变得更智能、运行时间更长、能处理的任务更多。现在的很多 Agent,本质上只是在 “读取代码”,并不能真正判断修改后的代码是否有效。未来的发展空间非常大,我们可以投入更多算力,让 Agent 承担更多人类目前负责的校验工作。我觉得未来三到六个月,整个行业都会迎来巨大的变革,非常值得期待。

 

参考链接:

https://www.youtube.com/watch?v=dKSGK-fPFyU

之前的帖子 这可能是下一个周经帖:国产大模型哪个编程能力最顶?已经过去一段时间,现在不少模型都已经更新了,而且都支持方便的接入 claude code 等 cli 工具或者 cursor 这样的 ide 。那么,在众多的国产模型中,从你的实际体验出发,哪个国产模型才是最佳日常编码的口粮模型呢?量大管饱,能处理大多数场景的需求。

来吧,分享一下你的体验!


GLM-4.7:目前收集到的信息是,测试的时候效果还不错,能跟 sonet 4.0 有来有回,coding plan 也比较便宜,但是超售严重,订阅后降智严重

MiniMax M2.1:也推出了自己的 coding plan ,总的来说反馈还是不错

DeepSeek-V3.2:写代码还是不太行,听说 4.0 很强!

kimi-for-coding:听说比较蠢,具体请反馈

Doubao-Seed-Code:最近新出,还得到了阮一峰推荐 https://www.ruanyifeng.com/blog/2025/11/doubao-seed-code.html

之前看到 Google AI Pro 新年活动 99 美元/年。还送 Google 全家桶,没忍住入坑了。刚开始用着还行,毕竟用过其他 AI 编程工具,很快就适应了。但深度使用一段时间后,我觉得这玩意儿目前充其量只是个半成品。

🛑 槽点

  • 鸡肋的 Agent Manager:完全搞不懂这功能的定位。我猜测 Google 是希望用户能脱离代码操作,但尴尬的是,MCP 和 Rule 等核心功能只能在编辑器模式下设置。目前它对我唯一的用处就是点击“Plan 模式”生成的计划执行按钮。没错,编辑器模式下居然没有计划的执行按钮,必须手动输入“继续”才能推进计划。

  • Knowledge 功能:官方声称 Knowledge 会由 Agent 自动生成,但目前社区里似乎还没人成功触发过,基本属于摆设。

  • 配额缩水:体感上,所有模型的配额都比之前降低了很多,一两轮会话就能用掉 10%,这可能是我经常用 Plan 模式的原因,但体感确实消耗快了很多。此外对于配额,有个好消息是 Claude 模型和 Gemini 模型配额是单独计算的,坏消息是 Claude 模型基本不可用(见下文)。

  • 模型降智:今天测试 Gemini 3 Pro (High) 调用 MCP 查询接口定义并生成 API ,这种基础任务居然都开始胡编乱造。而在上周,类似的任务基本都没问题。

🐛 严重 BUG

  • Generate Commit Message 功能完全失效:这个功能基本不可用。在上周之前,它会把所有改动过的文件统一识别为新实现的功能,完全无法反映真实的修改。最离谱的是,这个功能从上周彻底挂掉,直到现在好几天了依然没有修复。

  • Claude 模型 BUG:在使用 Claude 模型时,调用任何 MCP 服务都会报错(如下图),结果就是 Claude 模型基本不可用。

  • 输出意外中断:这个出现不太频繁,但是出现后“Retry”是没用的,必须新建会话才能解决。

📝 总结

市面上主流的 AI 编辑器我基本都用过,基本上都是越做越好。Antigravity 是唯一一个能让好端端的功能挂掉好几天都不修也没有官方任何答复的。

Error in Antigravity - Not Generating Commit Message

当其他友商都在保持“一天一更”甚至“一天多更”的节奏,BUG 基本上都能够得到及时的修复,而 Antigravity 的上次更新竟然还停留在 2025-12-19 (三周前)。这个维护力度,实在对不起 Google 大厂的实力。

总之想要付费入坑的朋友,还请仔细评估下自己的使用习惯,能否接受以上这些问题!白嫖的朋友随意~

国务院开展外卖市场竞争调查评估

1 月 9 日,国务院反垄断反不正当竞争委员会办公室宣布,对外卖平台服务行业市场竞争状况开展调查、评估。

该部门负责人表示,近段时间以来,外卖平台服务行业拼补贴、拼价格、控流量等问题突出,挤压实体经济,加剧行业「内卷式」竞争,社会各方面反映强烈。本次调查评估将通过现场核实、当面访谈、问卷调查等方式,深入了解外卖平台竞争行为,广泛听取平台内经营者、新就业群体、消费者等各方意见,全面调查市场竞争状况,组织开展分析论证,传导监管压力,提出处置措施。

随后,美团、淘宝闪购均发文表示将积极配合。

此前在 2025 年 2 月,京东进军外卖业务,成为外卖补贴战的起点。阿里在 4 月底宣布入局参战,并将淘宝天猫旗下即时零售业务「小时达」升级为「淘宝闪购」,高调补贴外卖,并在 7 月 2 日进一步宣布 500 亿元补贴计划。面对竞争,美团也随之跟进,加入补贴。

对此,2025 年 5 月和 7 月,市场监管总局会等部门两次约谈饿了么、美团、京东三家企业。9 月,市场监管总局组织起草《外卖平台服务管理基本要求(征求意见稿)》,并在 12 月作为推荐性国家标准实施,对商户管理、收费与促销行为、用工管理及争议处理等作出规定。


Claude Code 封禁第三方兼容工具接入

1 月 9 日,Anthropic 确认已部署技术措施,禁止以流行终端 AI 编程工具 OpenCode 为代表的第三方应用伪装成其官方工具 Claude Code 接入模型,打击规避商业 API 费用的行为。

对此,Anthropic 解释称,第三方非授权接入引发了难以诊断的技术故障,导致平台稳定性下降。此外,有 xAI 员工利用 Cursor IDE 大规模调用 Claude 辅助自家模型研发,违反了 Claude 服务条款中关于禁止使用其服务构建竞品的排他规定。

然而,社区讨论普遍认为,经济考虑才是此次封禁的主要动机。Claude Max 订阅计划定价为 200 美元,订阅者可获高额用量。相比之下,如果通过按量计费的 API 调用同等规模算力,月成本极易超过 1000 美元。

面对封锁,OpenCode 迅速推出了每月 200 美元的 OpenCode Black 服务,转而通过企业级 API 接入 Claude。


知名开源框架 Tailwind CSS 受 AI 影响大幅裁员

知名开源 CSS 框架 Tailwind CSS 的开发商 Tailwind Labs 本周证实,受 AI 的「残酷冲击」,公司被迫裁减四名开发团队成员中的三名,即整个团队的 75%。CEO Adam Wathan 透露,虽然 Tailwind CSS 的使用量正以创纪录的速度增长,但公司营收却暴跌近 80%,若不重组,公司资金预计将在六个月内耗尽。

Wathan 指出,AI 编程工具的普及改变了开发者的工作习惯,导致官网文档页面的访问量在两年内下降了 40%。Tailwind Labs 的主要商业模式是向访问文档的开发者销售「终身买断制」的 Tailwind UI 组件库和模板。由于开发者现在直接通过 AI 获取代码,不再需要访问官网,也不需要购买付费组件库,上述商业模式难以为继。

Tailwind CSS 发布于 2019 年,是最受欢迎的 CSS 框架之一,许多 AI 模型擅长编写其代码,并且倾向于主动使用该框架。

Wathan 是在近期的一起 GitHub 社区争议中公开该情况的。此前,有贡献者提议优化文档格式,以便于大语言模型抓取和学习,但被 Wathan 拒绝。他解释称,让 AI 更容易免费获取内容会使业务「更加不可持续」,并可能导致项目因无人维护而成为「废弃软件」,并说明了上述背景。

该裁员消息引发技术社区广泛讨论,并引起了对行业巨头使用开源项目、用开源代码训练 AI,却不给予回报的批评。Vercel 和谷歌 AI Studio 随后宣布成为 Tailwind CSS 的赞助商。


伊朗发生大规模断网

据新华社报道,当地时间 1 月 8 日晚 8 时左右,伊朗首都德黑兰互联网服务出现中断。监控全球上网情况的国际非政府组织 NetBlock ,伊朗正在实施全国性网络管制,这与多地持续的抗议活动相关。Cloudflare 的路由信息显示,伊朗的 IPv4 链接在 8 日到 9 日期间大幅下降,此后略有恢复;IPv6 链接则完全归零。(IPv6 流量在技术上较 IPv4 更难审查。)

据《卫报》援引专家分析,此次断网在覆盖范围和技术手段上均创下新高,导致该国约 90% 的网络流量瞬间消失。此次断网实施了白名单机制,例如伊朗最高领袖哈梅内伊仍能在 X 发帖。

除断网之外,伊朗境内国际长途通话被阻断,移动通信服务全面瘫痪,大部分地区处于无信号、无服务的数字真空状态。曾在 2022 年抗议期间维持通讯的星链(Starlink)卫星互联网系统,此次也受到针对性信号干扰。


Cloudflare 遭意大利罚款,威胁停止冬奥会网络安保服务

近日,意大利通信管理局(AGCOM)因 Cloudflare 未能配合该国「反盗版盾牌」(Piracy Shield)系统屏蔽盗版内容,对其处以 1400 万欧元(约合 1.14 亿元)罚款。对此,Cloudflare 威胁将停止为即将到来的 2026 米兰—科尔蒂纳冬奥会提供网络安全服务,并考虑全面撤出意大利市场。

意大利实施的反盗版盾牌法案要求,互联网服务商在收到版权方举报后,必须在 30 分钟内无条件封锁涉嫌侵权的 IP 地址和域名。该系统自 2024 年启用以来在技术界备受争议,批评者指出其自动化封锁机制缺乏透明度,要求 DNS 解析器在极短时间内进行封锁,极易导致误伤合法网站。例如,其此前曾因误封 Google Drive 等合法服务,造成大范围网络中断。

Cloudflare CEO Matthew Prince 在 X 上激烈抨击该机制是「缺乏司法监督的审查计划」,指责其试图迫使 Cloudflare 的公共 DNS 服务(1.1.1.1)在全球范围内执行封锁,而非仅限于意大利。Prince 表示将坚决上诉,并计划下周前往华盛顿和洛桑,分别与美国政府及国际奥委会(IOC)商讨此事。

作为反制措施,Prince 列出了四项潜在行动:终止为冬奥会提供的数百万美元公益网络安全支持、停止向所有意大利用户提供免费服务、移除在意大利境内的所有服务器,以及取消在当地设立办事处的投资计划。鉴于冬奥会将于 2 月 6 日开幕,若 Cloudflare 此时撤出,可能导致赛事面临严重的网络攻击风险。


iOS 26 升级率低于过往版本同期水平

据网络流量分析机构 StatCounter 发布的数据,在 2026 年 1 月,全球范围内仅有约 15% 至 16% 的活跃 iPhone 运行 iOS 26‌,仍有超过 60% 的设备停留在 iOS 18。

基于这些数据,‌iOS 26 ‌的使用率似乎不到前几代系统在相同时间后的四分之一。例如,StatCounter 2025 年 1 月的数据显示,在 iOS 18 发布约四个月后,约有 63% 的 iPhone 运行着该系统的某个版本。2024 年 1 月,iOS 17 在类似时间段内达到了约 54% 的使用率,而 iOS 16 在 2023 年 1 月前已有超过 60% 的使用率。

StatCounter 的估算源自网络流量分析,通过全球参与其统计的网站页面追踪操作系统版本。采用不同统计方法的网站给出了不同数据。例如,TelemetryDeck 显示 iOS 26 有 60% 的使用率,而 iOS 18 仍有 37% 的使用率。

知名苹果资讯网站 MacRumors 表示,去年一月的第一周,89.3% 的访客使用 iOS 18 版本。而今年同期,只有 25.7% 的读者在使用 iOS 26 版本。由于苹果官方尚未公布数据,真实的 iOS 26 普及率尚不得而知,但这些数据表明,用户对 iOS 26 的犹豫程度是近年来前所未有的。


看看就行的小道消息

  • 据社交媒体消息,国产 Linux 发行版统信 UOS 的董事长因着装原因解雇了一名内核工程师。该公司最近临时通知员工年会必须自备西装参加,而一位负责 Linux 内核开发的骨干工程师在群里问了句「没西装怎么办」,董事长随后将其解雇。
  • 据网友近日咨询招商银行客服获得的说法,招行旗下 Visa 信用卡 1 月 15 日起可绑定至苹果 Apple Pay。此前在中国内地,Apple Pay 只能绑定银联借记卡、信用卡。此前,苹果已修改 Apple Pay 支持卡列表文案,从原本的表述「银联信用卡和借记卡」改为「银行卡」。
  • Wccftech 声称,从几家捷克电商的网站数据发现,Steam Machine 的 512GB 版本售价约为 19,826 捷克克朗(约 6,622 元),2TB 版本的售价约为 22,305 捷克克朗(约 7,450 元)。不过,欧洲地区的电子产品零售价通常包含约 20% 的增值税,且第三方零售商往往会添加额外的渠道溢价。
  • 1 月 11 日,近日受到关注的独居安全应用「死了么」团队就应用名称和开始收费的决定回应称,感谢网友对于新名称的积极建议,团队都会认真研究和考虑;为了让项目能够健康、持续地发展,并覆盖日益增长的短信、服务器等成本,将基于成本推出 8 元的收费方案。同时,团队也欢迎更多资本方关注和联系,会选择最能助力项目成长的机构或个人进行合作;最后,想呼吁更多人关注独居群体,给予他们更多关怀与理解。在「死了么」app 中,用户需要设置紧急联系人并签到,若连续多日没在应用内签到,系统将于次日自动发送邮件告知紧急联系人。


少数派的近期动态

  • 年末「夯」一下!少数派 2025 年度盘点正式上线
  • 少数派会员年终福利来袭,引荐比例限时上调至 15%,邀请好友享 85 折入会优惠。参与活动
  • 好玩又实用,还有迪士尼授权配件可选,少数派「扭扭宝」充电宝火爆开售。来一个试试
  • GAMEBABY for iPhone 17 Pro & 17 Pro Max 系列现已上市。进一步了解
  • 《蓝皮书》系列新版上架,一起探索全新 iOS 和 macOS 的精彩。试读并选购


你可能错过的好文章


    题目是《淘宝内核组 001 号员工,20 年经验“小菜鸟”:我用 AI 写代码,但不担心“手艺”退化》,提到 AI 使用是最后一个提问:

    CSDN:您个人在日常开发中,会使用类似 Cursor 大模型编程工具吗?您如何看待它对开发者“手艺”的影响?是颠覆性的助手,还是可能导致开发者基础能力退化的“慢性毒药”?

    李勇:我是会使用到 Cursor ,还有字节的 Trae ,主要是在阅读代码时帮我解释一下某些简单函数的运行逻辑。实际工作中,这大大提高了我在学习一个全新内核子系统过程中的效率,确实很有用。
    但是也要警惕这些工具出现幻觉,所以还需要具备一定的逻辑判断能力,不能完全相信这些编程工具的输出内容。
    我本人不在意“手艺”退化的影响,毕竟大学毕业后我就已经不具备纸上写代码的能力了。
    系统软件开发者,和普通的程序语言开发程序员的差别之一,是需要对整个系统有深刻的理解,然后除了实现功能外,还要兼顾考虑到硬件体系结构和软件架构相关的很多隐含的背景知识。可靠的辅助编程工具,可以将开发者从具体代码开发的繁琐细节中解放出来,更多的精力可以集中在代码思路、效率和更好的思路上,对 Linux 内核开发应该是会有积极的促进作用。但开发者个人要对最终的代码负责,要确保代码的品质,避免对 AI 工具的滥用。

    ?哪里有“我用 AI 写代码”了?还是说这时候把“读代码”归到“写代码”活动中了?

    前端生态最具影响力的开源项目之一 Tailwind CSS,正经历一场罕见的生存压力测试。

     

    其创始人 Adam Wathan 近日在社区公开表示,由于 AI 对业务模式造成的“残酷冲击”,Tailwind 在一天之内裁掉了工程团队约 75% 的员工。

     

    他在 1 月 7 日一期自述播客中进一步解释:在 AI 编程工具大规模采用 Tailwind、使用量持续走高的同时,这种“被默认使用”的成功并未转化为可持续的商业回报,反而持续侵蚀了团队的生存空间。若趋势不变,大约 6 个月后将无法继续支付工资。Adam 形容这是一种“非常糟糕的认知”,迫使他们必须立刻缩编,避免走到“既撑不住工资、也拿不出体面遣散”的境地。

     

    “我真的难受。胃都拧在一起了。”Adam 说。

     

    “因为这件事,我感觉自己像个失败者:我做出了一个几乎‘统治世界’的开源 CSS 框架,用的人越来越多、越来越火,但商业上的成功,却和开源的成功呈现出一种反向关系。”

     

    “我们只剩下六个月了。”

     

    “我现在的每一秒,都必须用来让公司活下去”

     

    这场裁员风波最终被外界注意到,触发点是一则围绕“大模型(LLM)文档支持”的 GitHub Pull Request。

     

    2025 年 11 月,社区开发者向 Tailwind 官方仓库提交了一项合并请求,要求新增一个 llms.txt 端点,用于提供面向 LLM 优化的 Tailwind CSS 全部文档的纯文本合并版本。以此希望在所有文档页面加一个“复制为 Markdown”的按钮,因为现在很多人会把文档内容直接喂给 AI。

     

    从描述来看,这个 PR 是将 Tailwind 所有官方文档(共 185 个文件)在构建阶段静态合并为一个纯文本、无 JSX、按章节顺序排列的文档文件,方便 LLM 直接读取和使用。从工程实现上看,这只是一个构建期脚本,改动规模有限。

     

    但该 PR 提交后长期未获推进。面对社区的追问,Tailwind 创始人 Adam Wathan 回应称,当前团队有更重要的事情要做,比如先想清楚怎么让公司赚到足够的钱、把业务维持下去。他直言,如果越来越多的人不再访问文档,而是直接依赖 LLM 去爬 Markdown 文件,“只会导致文档访问量进一步下降,也就意味着更少的人会了解到我们的付费产品,最终让业务变得更加不可持续。”

     

    “很抱歉,我现在没有时间去做那些不能帮我们付账单的事情。”

     

    Adam 关闭了这个 PR。当然,评论区立刻炸了:这对社区太糟糕了,你们只想着赚钱,太失望了......

     

    有社区开发者认为,让软件更容易融入用户工作流、解决他们日常互动中的痛点,本身就是扩大潜在付费用户的关键前提;而此功能旨在让人们能够使用 Tailwind 更快、更高效地构建更多内容,现在 Adam 以“变现”为由拒绝此类功能,“等于是在告诉你的客户,从他们那里赚钱比为他们提供服务更重要。”

     

    争议升级后,Adam 不得不再次回应,并披露了 Tailwind 的真实处境。

     

    他坦言他知道这个功能的价值,但现实情况是:“就在昨天,我们工程团队里有 75% 的人失去了工作,这是 AI 对我们造成的残酷冲击。”

     

    在这样的背景下,他坦率地说,自己已经很难再把时间投入到这类“不直接带来收入”的事情上:“我现在的每一秒,都必须用来让公司活下去。确保还留在这里的人,每个月都能拿到工资。”

     

    他同时透露,尽管 Tailwind “比以往任何时候都更受欢迎”,但 “我们的文档流量相比 2023 年初已经下滑了大约 40%。”而文档是他们的唯一分发渠道,没有客户,就意味着 “我们根本负担不起继续维护这个框架。”

     

    更残酷的是,虽然 Tailwind “增长速度比历史上任何时候都更快,规模也比任何时候都更大”,但 “收入却下滑了接近 80%。”他总结说,眼下 “让 Tailwind 变得更好用”,与 “让这个框架的开发在商业上变得可持续” 之间,“几乎已经看不到任何相关性。”

     

    所以,他必须先解决生存问题,不然“一旦没人继续维护,这个项目最终会变成无人问津的弃置软件。”

     

    更反直觉的现实:Tailwind 反而“到处都在被用”

    这件事迅速在 Hacker News 上爆了。

     

    HN 首页一条帖子标题很直接:“Tailwind 的创作者裁掉了 75% 的工程团队”,链接指向 TailwindLabs 的 GitHub 讨论。发出约 10 小时后,评论也堆到 598 条,迅速变成当天的高热讨论。

     

    这场裁员之所以在社区引发震动,很大程度上来自一种强烈的反差感。

     

    2020 年 7 月,Adam Wathan 还在公开回顾 Tailwind 的“上升期叙事”:Tailwind 的累计安装量刚刚突破 1000 万,而他们的首个商业化产品 Tailwind UI 上线仅约 5 个月,收入就即将跨过 200 万美元。他把这段经历形容为“完全超出想象”,并特意把最初发布在 Twitter 的长帖重新整理成文章。

     

    而且在 AI 的世界里,在大多数开发者的体感里,Tailwind 也不是处在衰退期,恰恰相反,它正在悄然变成一种 AI 生成 UI 的“默认选项”。当人们打开 AI 编程工具,让模型生成一个页面、一个组件,甚至一整套 UI 时,模型往往不会再询问“要不要写 CSS”,而是直接给出一串熟悉的 class——这种选择并非出于偏好,而是因为在当下的工程环境里,这样做最快、最稳,也最不容易出错。

     

    Glide CEO 兼创始人 David Siegel 认为:“你可以把 Tailwind 看成是一套无代码(no-code)工具包,它实际上让 AI 在设计这件事上变得更强了。”

     

    有意思的是,AI 在使用 Tailwind 这件事上,确实表现得异常出色。就像无代码平台通过预制组件,帮助非开发者也能构建稳定、设计良好的应用一样,AI 也开始把 Tailwind 当作一套“组件库”来使用——这让它能够更快工作,并生成更可靠、更一致的样式结果。

     

    “AI 并不是在 CSS 这种底层样式语言上变得更强了,”Siegel 解释道,“而是我们发明了一种 AI 更擅长使用的‘高层语言’,它叫 Tailwind。”他进一步指出:“它看起来几乎就像自然语言。你不用写一堆括号、冒号之类的东西,只需要写 text-black,文本就变成黑色;写 rounded-md,按钮就会变成中等圆角。这些组件库,本质上就是建立在设计之上的低代码 / 无代码抽象。”

     

    现代 AI 编程助手最擅长的,往往是遵循清晰、可重复的模式,或者在一个定义良好的词汇体系中进行组合与生成。而 Tailwind 的方法论恰好满足了这一点:它提供了一套高度一致的 class 命名和样式模式,使 AI 更容易生成正确、相关且稳定的代码建议。

     

    正如Vercel CEO Guillermo Rauch所说:“整个 Web 生态正在向 Tailwind 标准化,所以每个 AI 工具都在用它。”

     

    “我们只剩下六个月了”

     

    在 Adam Wathan 看来,AI 一把极其锋利的双刃剑。

     

    “我认为,AI 是我们业务陷入困境的重要原因之一——即便它也让 Tailwind 变得比以往任何时候都更受欢迎。但同时,我也觉得 AI 是一项了不起的技术,我对它感到兴奋,也在思考它如何帮助我、帮助我们。在目前这个阶段,我们可能被迫要更认真地思考,如何利用 AI 来覆盖我们需要处理的所有事情。”

     

    在 1 月 7 日发布的音频中,Adam 反复提到一个他此前一直试图回避、却最终不得不正视的事实:公司的收入已经连续多年处在下滑通道,而且还在继续下滑。

     

    过去几年,这种下滑并不剧烈,甚至“慢到让人几乎察觉不到”。每个月的收入只是比上个月少一点点,账单依然能付,团队还能维持运转,久而久之,这种“更低但还能接受的收入水平”就变成了新的常态。

     

    Adam 形容,这是一种典型的“温水煮青蛙”状态。

     

    真正的转折点,发生在最近的假期里。他第一次不再凭感觉判断,而是认真做了一次收入预测:拉数据、画曲线、计算每个月的平均下降额。结论比他预期得要糟糕得多:收入并没有触底企稳,而是以几乎固定的绝对值持续下滑——这意味着,从比例上看,下滑速度只会越来越快。如果假设什么都不改变,那么大约6 个月之后,公司就将无法继续支付工资

     

    对一家小型团队来说,6 个月并不算长。如果继续拖下去,等到现金流真正断裂,团队不仅保不住,甚至连体面的遣散都无法提供。相比之下,现在主动缩编,至少还能给被裁的同事留出缓冲期,让他们有时间寻找下一份工作

     

    于是,在本周一,Tailwind Labs 正式裁掉了工程团队的 75%

     

    公司规模并不大,“75%”对应的其实是3 个人。但 Adam 特意强调比例的意义:如果只说“裁了 3 个人”,听起来像是小幅调整;而现实是,工程团队原本只有 4 名工程师,如今只剩1 人。这对团队而言是一次结构性的变化。

     

    裁员之后,Tailwind 的资源配置也被压缩到了极限:

     

    现在的团队结构是这样的:剩下的核心成员是三位公司合伙人——我自己、因 Refactoring UI 而为人熟知的 Steve(一直负责设计),以及 Jonathan Rennick(最早和我一起创建 Tailwind,也做了 Inertia.js)。

     

    除此之外,我们只有一名全职工程师 Robin——他从零开始做了 Headless UI,也从零做了 Tailwind 3 和 Tailwind 4,是在公司待得最久的人。

     

    还有 Peter,他更多是兼职,负责合作伙伴计划、一些运营事务和客户支持。

     

    就这些人了。

     

    换句话说,整个公司只剩下“3 位合伙人 + 2 名员工”,“这就是我们接下来全部的资源”。

     

    接下来,Adam 也将重新回到更偏 IC(个人贡献者)的角色。他承认这算是某种“银边”:随着团队变大,他的工作越来越偏高层和战略层,关注哪些事情需要完成,并分配给合适的人,而不是亲自构建;而现在,团队规模逼迫他必须亲自下场。

     

    被裁的三位工程师,都是他非常欣赏、也非常享受共事的人:Philip既能啃 Tailwind 核心,也能把 Tailwind Plus 的 elements 组件库和组件预览的复杂前端界面硬生生推进落地;Jordan是团队的“疑难杂症终结者”,最擅长扎进陌生代码库定位上游/兼容性问题、快速开 PR 修复,同时也能在 Headless UI 与服务器排障上扛住关键战役;Dan则以设计工程师身份主导 Tailwind 4 的视觉与品牌更新,设计 P3 色彩体系并自研选色与预览工具,还贡献了大量高质量的图解与课程平台素材。

     

    他原本对未来和他们一起继续做新东西充满期待,脑子里有很多计划,很多想一起推进的方向。但现实摆在面前,只剩下两个选择:要么让他们在这里“免费工作”,要么放他们离开,去一个真的能每个月按时发工资的地方。

     

    他选择了后者。“我真的很难受,”Adam 说,“胃都拧在一起了。”

     

    而且他也意识到,外界并不总能理解裁员背后的现实逻辑。在社交平台上,总有人会把裁员简单归因为贪婪、冷血,或者“不在乎社区”。作为创始人,这几乎是一种默认要承受的角色负担——你很容易被塑造成反派。

     

    不是因为我贪婪、想赚更多钱,而是因为收入正在逼近零点,而我刚刚裁掉了我这辈子见过最优秀的三位工程师之一。我不想事情变得更糟。”

     

    “说实话,我甚至把 tailwindcss.com 的仓库暂时设成了私有,只是不想再面对 issues 和 PR。睡了一觉之后,我可能会撤回这个决定。但我会反复动摇,本身就说明我这周的情绪状态真的不太对。”

     

    “现在,开源项目越受欢迎,生意反而越艰难。这真的很残酷。这就是现状。”

     

    参考链接:

    https://news.ycombinator.com/item?id=46527950

    https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957

    https://adams-morning-walk.transistor.fm/episodes/we-had-six-months-left

    佬友们周五好,

    最近一直在搞 vibe coding,Claude Code 确实好用,但有个硬伤:太慢了

    尤其是项目大一点的时候,等它跑完一个指令得半天。我平时习惯同时开工好几个模块,或者几个项目一起跑,一个一个等实在受不了。并且如果某一个 Agent 卡壳了,也不能很好的及时发现。

    所以我开发了这个叫 VibeMux 的小工具。逻辑很简单,就是把多个 Claude Code/Codex 实例给管理起来,让你能同时给好几个 AI 下任务,不用干等着。 同时,也能便捷的管理已有的项目。

    主要是解决这几个问题:

    • 多开不乱:在一个界面里管理多个会话,不用开一堆终端窗口(最多支持 3*3 个窗口)。
    • 并发开发:这边让它写后端 API,那边让它改前端页面,互不耽误。
    • 项目管理:实现项目的快速管理,可以自动创建目录,如果有新项目也不用纠结在哪开始。
    • 轻量实用:没有臃肿的配置,安装即用。

    代码已经开源了,纯粹是为了自己爽写的,大家感兴趣可以试试:

    项目地址: GitHub - UgOrange/vibemux: VibeMux – Orchestrate parallel Claude Code agents in a single TUI

    演示一下:

    实现了个 Claude Code 多开工具 vibemux,效率翻倍1

    欢迎提建议,觉得有用给个 star 就行。


    📌 转载信息
    转载时间:
    2026/1/9 17:43:44

    Claude / GPT / Gemini 官方 API 一把梭

    https://a‍i‌coding.sh
    非转发 · 非中转 · 非魔改
    官方 MAX $200 账号池 · 原生 API 直连

    我们解决的是什么问题?
    很多平台表面是「 Claude / GPT 」,
    实际上是降级模型、私有代理或非官方 Key 。
    结果往往是上下文丢失、输出不稳定,高峰期排队,甚至随时不可用。

    我们选择的是最笨、也最贵的一条路。

    技术细节说明
    100% 官方模型( Claude / GPT / Gemini )
    原生 API 直连,非镜像、非转译
    支持 Stream 流式输出,Token 实时返回
    国内直连延迟小于 500ms
    不限速、不排队、不偷偷降级

    你用的是什么模型,你自己最清楚。

    为什么能长期稳定?
    使用官方 MAX $200 账号池
    成本透明,按 Token 实际消耗
    不做低价引流,不靠“白嫖回血”
    只做一件事:稳定、长期、可用

    新用户福利
    注册即送 1000 万 Token
    邀请好友再送 500 万
    充值可获得额外赠送

    不限模型试用,不限使用场景
    写代码、跑 Agent 、自动化脚本均可

    最后说明
    不卷价格,不讲故事。
    能不能用、稳不稳、值不值,你跑一轮就知道。

    小概率不到账的情况,留下 UID 或进群均可人工处理。

    AI 增强型 IDE 和编辑器

    • Cursor: AI 优先的代码编辑器(VS Code 分支),具备智能补全、智能重构和多 LLM 支持。支持对话式代码导航和"代码感知"上下文,适合深度 AI 集成和全项目工作流。
    • Windsurf: Codeium 的多 IDE 支持工具,具备"级联流"智能体多步骤自动化、UI 实时预览和强大的团队协作功能。特别适合快速原型开发,但在大项目中容易丢失上下文。
    • Kiro: AWS 实验性 IDE,具备规范驱动的微服务和云原生解决方案脚手架,使端到端开发和部署变得顺畅。
    • 腾讯云 CodeBuddy: AI 驱动的 IDE,用于自动化前端/后端/数据库生成,集成多种 LLM 选择和 Figma 转代码功能。
    • Trae: 字节跳动的自动化构建工具,同步 Figma 设计到代码,专门针对小团队的低代码原型开发。
    • Zed: Rust 驱动的超高速编辑器,120fps 渲染、原生 AI 建议和强大的前端开发协作功能。
    • 通义灵码: 阿里巴巴的旗舰代码助手,支持中英文、主要 IDE 和独立运行。
    • 百度 Comate: 多语言支持,50% 真实采用率,支持所有主要 IDE 和插件,端到端开发自动化。
    • Qoder: 智能代码生成和编程助手,支持多种编程语言,提供代码补全、错误检测和智能重构功能。
    • Crystal (Claude Code Manager): 多会话智能体管理器,Git 工作树集成,差异/合并查看器。非常适合多解决方案原型开发。
    • Void: 开源 Cursor 替代品,检查点可视化,支持任何模型/本地托管的智能体 AI,注重企业隐私。
    • IntelliJ IDEA AI: 企业级主流 Java IDE,原生 AI 补全,大型项目代码导航。

    终端 AI 编程助手

    • Claude Code: 全代码库感知,终端中的智能体编辑/测试/PR 流程。适合高度自动化的项目工作流。
    • Gemini CLI :谷歌命令行旗舰产品,100万上下文,多模态聊天和强大的 Shell 脚本自动化。
    • Aider: 终端 Git 集成的结对编程工具,高 Swe-bench 分数,专注于补丁和智能代码导航。
    • Goose: 可扩展的开源 CLI 智能体,插件架构,多模型支持,适合分布式代码工作流。
    • OpenCode: 原生终端智能体,支持 LSP 和数十种 LLM。适合多语言项目和多模型集成。
    • Warp: AI 驱动的终端,自然语言命令和智能自动补全。
    • Codex CLI: OpenAI 官方工具,轻量快速的终端代码生成。
    • Crush: Charmbracelet 的智能体,多模型和 LSP,高度可定制的终端编码。
    • Cursor CLI: 与 Cursor IDE 共享上下文,支持高级实时代码审查、编写和智能体指导。
    • Groq Code CLI: 可扩展插件框架,CLI 工作流自动化,完全可定制。
    • Amp: 自主推理和编辑,适合终端中的多模型和智能体代码任务。
    • iflow CLI: 智能工作流自动化CLI工具,为开发者提供AI驱动的任务编排和终端中的简化开发流程。
    • Qwen3-Coder: 阿里云开发的先进编程模型,支持多种编程语言,具备强大的代码理解、生成和调试能力。提供针对各种编程任务的微调模型,在代码基准测试中表现出色。
    • Auggie: Augment Code 的命令行版本,将企业级AI编程辅助带到终端,具有大上下文窗口和法规遵从性功能。

    VS Code 扩展插件

    • GitHub Copilot: 上下文感知的多模型代码建议,支持 14 种语言,与 VS Code、JetBrains 等集成。高级聊天和企业功能。
    • Cline: 自主 AI 智能体,具备文件/网络编辑功能,完全开源可扩展,支持 CLI 模式。
    • Continue: 开源 GPT/Claude/Gemini 集成,内联代码聊天,文件/项目上下文支持,API/模型选择。
    • RooCode: 智能体团队允许并发多模型自动化,高级 API 支持。
    • KiloCode: Roo/Cline 超集,编排器模式和错误恢复,基于积分的系统,高级多智能体权限。
    • Cody (Sourcegraph): 多仓库代码搜索,解释,自定义样式提示,支持多个主要 LLM。
    • CodeGPT: 编辑器内聊天/AI 调试,解释,代码/测试/文档生成,支持 OpenAI/Anthropic。
    • Graphite: 堆叠 PR 工作流,即时 AI 代码审查评论,侧边栏分支管理。
    • Tabnine: 本地部署,适应个人编码风格,适合隐私/安全优先的团队。
    • Gemini Code Assist: 深度谷歌/Colab 集成,实时代码支持。
    • ChatGPT for VS Code: 直接 OpenAI 聊天集成,支持调试/测试/文档生成。
    • Augment Code: 20万+ 上下文令牌,针对大型企业仓库和法规遵从性进行优化,支持 SOC2 级部署。

    在线开发平台

    • v0 (Vercel): 自然语言转 React UI,内置 shadcn/ui,极简前端应用原型开发。
    • Bolt.new (StackBlitz): 浏览器内全栈应用创建/部署,利用 WebContainers,无需本地工具。
    • Lovable: 无代码构建器,从自然语言即时创建全栈网络应用。
    • Replit AI Agent/Ghostwriter: 浏览器 IDE,多语言编程,即时解释和错误修复,实时协作。
    • Knack: 自动化代码/数据驱动开发,针对速度/质量/团队用例优化。
    • CodeWP: WordPress 的 AI 网站构建器,端到端生成和部署。

    企业级解决方案

    • Codex (OpenAI): 云智能体,CLI,私有部署,具备审计/安全选项的综合代码生成。
    • Devin (Cognition): 团队级自主软件工程师,端到端自动化。
    • Replit: 多智能体工作空间,自然语言生成,多用户协作。
    • Jules (Google): 自动化拉取请求,CI/CD 和代码修复集成。
    • Open SWE (LangGraph): 开源企业智能体平台,工作流可定制性。
    • Amazon Q Developer: AWS 原生编码智能体,IDE 集成,云/服务支持。
    • IBM CodeAssist: AI 驱动的大型机开发者自动化,为受监管行业量身定制。
    • Tabnine Enterprise: 私有云,大型团队的合规/安全。

    专业工具

    • RepoPrompt: Mac 原生 AI 文件/代码管理和迭代,非常适合版本组织。
    • DeepCode (Snyk): AI 快速代码安全分析和可操作的修复建议。
    • Umami: AI 驱动的前端优化/性能分析。
    • TraceRoot AI: 错误定位和补丁建议,自动根因分析。
    • Blitz: Next.js 原生 AI 插件,快速前端开发。
    • BlackBox AI: 代码补全加安全扫描一体化。
    • ColDeco: 可视化 AI 生成的代码检查和审查。
    • IntelliDev: ML 驱动的终端工作流助手,用于开发/日志/任务。