AI 编程智能体深度剖析:Cursor 与 Cline 实战对决,谁更胜一筹?

8,290 阅读42分钟

一、前言

这篇文章主要讲的是闭源 AI 编程智能体 Cursor 和开源 AI 编程智能体 Cline ,之所以主要讲这两个工具,是因为测试了好多工具后,发现这两个工具分别是闭源和开源领域中是比较好用的 AI 编程智能体。

对于程序员来说,经常需要做的就是等待编译,包括等待本地编译和等待流水线编译,而有了 AI 编程智能体后,程序员需要等待的事项就多了一个:等待 AI 编程智能体工作完成

AI 编程智能体

智能体,简单来说,就是你给 AI 越多的工具、资源,它就能帮你解决更多的问题。比如你把访问浏览器的权限给它,它就可以去查资料,把创建和编辑文件的权限给它,它就可以自己创建代码文件。而且智能体有一个规划模块,这意味着它会自己规划实现一个目标所需做的几件任务,然后利用工具逐个执行任务,这样的话就不需要我们自己不断地复制代码到 AI 产品的对话框,不用为完成一个目标不断地去跟 AI 聊天,AI 自己就会想办法完成任务。

AI 编程智能体主打的是写代码,但是因为它是一个能使用特定工具的智能体,这些工具有生成、创建文件、修改文件、读取文件目录、读取文件等,只要你需要做的事情涉及到这些工具,那都可以用 AI 编程智能体来完成,比如写小说、写产品需求文档、写技术文档、写测试用例等工作,都涉及项目级别的上下文,这些工作在 Cursor 的帮助下,Cursor 会读取项目的上下文,从而生成更加可靠的内容。有了读取代码库和特定文档的能力,意味着 AI 生成内容的幻觉会更少,生成的内容更可靠。

而且除了编写代码和生成内容,AI 编程智能体 还能很好地用来学习项目的工作机制,因为 Cursor 能找到代码调用的地方,从而理解代码的执行逻辑,比如我就是通过 Cursor 理解 Cline 的代码的。

智能体的核心组成部分

模块功能示例
语言模型提供语言理解和生成能力,是Agent的“大脑”。GPT-4、Claude、DeepSeek 等模型。
规划模块将复杂任务拆解为子任务,制定执行步骤。将“开发一个天气App”拆解为UI设计、API调用、数据存储等子任务。
记忆模块存储历史交互、知识库和上下文信息,支持长期推理。记录用户偏好、项目代码片段、API文档等。
工具调用通过API、代码执行或外部工具扩展能力(如搜索、计算、数据库操作)。调用Python代码执行数学计算、访问GitHub API获取代码库。
反馈迭代通过自我反思或外部反馈修正错误,优化结果。若生成的代码运行失败,自动分析报错信息并重新生成。

AI 智能体工具AI 问答人工编码 的区别:

维度AI 编程智能体(如Cursor)AI 问答(如ChatGPT)人工编码
编码质量自动生成高质量的代码片段;生成的代码需要人工进行验证和核查;提供代码建议或片段,但需人工验证正确性;对简单问题的处理效果较好,对于依赖代码库的复杂问题的输出质量不稳定;由开发者经验决定,而开发者的编码水平是参差不齐的;新手在复杂项目中可能引入低级错误
编码效率效率较高。通过智能补全、多文件编辑等功能显著提升编码速度即时响应问题,快速提供参考代码;需要人工调整代码以适应具体需求;需逐行编写代码,耗时较长。
上下文理解效率效率较高,能读取代码库的,快速定位任务的相关上下文效率中等,依赖用户描述的清晰度。通过沟通和文档逐步理解需求,耗时但准确性高;对业务背景和隐性需求的理解更深入。
局限性对复杂逻辑或新兴技术的支持不足,但是可以通过访问文档的形式弥补;生成代码可能缺乏优化或存在隐藏漏洞,需要人工审查无法处理需要多步骤推理的复杂问题;输出结果可能过时(依赖训练数据时间范围)。人力成本高,开发周期长;依赖开发者技能和经验水平,存在主观偏差风险。
学习成本低(自然语言描述需求)中(需学习有效提问技巧)高(需掌握特定的编程语言和相关工具)
错误处理自动检测并处理编译和构建错误,部分业务逻辑错误需人工进行调整需人工识别粘贴代码与修复编译和构建错误依赖开发者处理编译和构建问题的经验
适用场景快速原型开发、缺陷修复、代码补全、代码重构、文档生成。学习编程知识、解决简单问题、获取代码示例。复杂系统开发、性能优化、特定的安全合规问题的处理。

总结

  • AI 编程智能体(如 Cursor):适合辅助开发,提升效率,但需人工校验逻辑;
  • AI 问答:适合学习与快速查询,但生成的内容缺乏代码环境适配性;
  • 人工编码完全可控,适用于复杂或关键系统,但开发成本高。

三者可结合使用可以提升开发的效率与质量。


对客户端开发的影响

由于我对服务端开发的了解较少,这里只说一下我个人认为 API 编程对客户端开发的影响。

工作影响度说明
代码编写对于只需要依葫芦画瓢的业务需求,AI 能轻松学会,影响较高。但是对于部分技术需求,需要工程师自己提出创新的想法,但是落地到具体的代码时可以让 AI 来编写
代码优化AI 能学会设计模式和整洁代码的写法,对代码进行重构和优化
单元测试只需要依葫芦画瓢,AI 能轻松学会
架构优化AI 写代码很容易,如果代码库很大,但是让 AI 直接思考怎么优化架构的话,AI 给的答案就不一定能令人满意,因为涉及的上下文太大。在做架构优化的时候,你只需要想好具体要怎么改,具体的编码工作可以交给 AI。
疑难问题解决这里的疑难问题指的是上下文非常庞大,庞大到 AI 无法理解的程度,比如处理涉及 Framework 层的几个模块的问题
跨部门协作涉及到和人的具体沟通交流,无法简单生成内容来解决
自测自测的时候往往需要设置一些项目特定的配置,这些配置可能是在云端的,暂时 Cursor 还没有办法做修改云端配置这些操作

二、工具

2.1 工具对比

优劣势对比
工具简介使用成本(单人)优势劣势适用场景
Cursor基于 VS Code 开发的 AI 编程智能体,支持自动编辑文件、访问代码库、运行命令20刀/月1、成熟度高,自动化能力强,支持复杂任务拆解;2、能自动处理编译错误;3、能把代码库转化为嵌入向量,处理上下文的效率较高;4、API 的访问相对稳定;5、修改支持回退(Revert)1、不支持自定义模型 API ,如 Ollama Server;2、处理大型项目的编码任务时需要更多的 CPU 和内存资源;中小型项目或模块的需求开发、代码优化、单元测试等诉求;
Trae字节开发的 对标 Cursor 的 AI 智能体工具,支持 Web 预览限时免费1、限时免费;2、增加了 Web 预览功能;1、Agent 的能力不如 Cursor,错误修复能力较弱,还需要进一步优化;2、暂不支持 Windows1、有预览诉求的前端应用开发工作;2、使用 MacOS 的用户;
WinsurfCodium 公司开发的基于 VS Code 的 AI 编程工具15刀/月(有免费额度)1、成本相对 Cursor 较低;1、模型选择较少,中文支持不完善;对价格比较敏感的开发者
Cline开源的 VS Code AI 编程智能体插件取决于使用的 API 或本地部署模型的设备1、开源且支持访问本地部署的模型;2、支持通过 MCP Server 访问外部数据源和工具;1、处理大型项目的性能较差;2、不支持 @Doc 、@Notepad 等 Cursor 支持的上下文;3、提示词设置项较少4、不支持自定义模型 API ,如 Kimi;5、时不时会遇到 APi 访问失败的情况;1、有信息安全要求的的用户;2、有访问自定义数据或自定义工具诉求的用户
Roo Code开源的基于 Cline 开发的 AI 编程智能体插件,支持自动补全、AI 修改代码取决于使用的 API 或本地部署模型的设备1、开源且支持本地部署的模型,适合注重信息安全的场景;2、更丰富的提示词设置;3、使用 DeepSeek-R1 时可以看到推理过程;4、有 API 请求失败重试机制1、不支持 Ollama;2、处理大型项目的性能较差;3、不支持 @Doc 、@Notepad 等 Cursor 支持的上下文;4、提示词设置项较少;5、不支持自定义模型 API ,如 Minimax;1、有信息安全要求的的用户;2、有访问自定义数据或自定义工具诉求的用户;3、有自定义提示词要求的用户
Warp一款专为 macOS 设计的 AI 终端工具,支持自动补全和错误修复未知操作便捷,适合 macOS 用户不支持跨平台推荐 MacOS 使用
MarsCode字节开发的基于豆包大模型的 AI 编程助手,以 Idea 和 VS Code 插件形式运行免费不支持自动编辑文件的代理模式只需要问问题,不需要修改代码、关联代码库的场景
Devin由 Cognition 团队开发的全球首个全自主 AI 软件工程师智能体,旨在通过人工智能技术辅助或独立完成软件开发任务500刀/月自动找出并修复问题价格较高需要 AI 智能体帮忙找出并修复缺陷的用户
bolt.newStackBlitz 推出的全栈 Web 编程工具,支持前后端代码编写、运行和部署免费全栈开发一体化,无需本地环境依赖云端,无法离线使用前端项目使用
v0.devVercel 提供的云端 AI 驱动前端开发工具,快速生成可复用 UI 组件。面向前端开发者与设计师,支持实时预览和跨平台适配20刀/月快速生成 UI 组件,提升设计效率功能局限于前端,复杂场景支持不足设计师与前端开发者使用

单文件编辑任务处理结果对比

总结:不考虑信息安全和扩展功能的情况下优先选择 Cursor

  • Cline :对于以下的测试结果,使用 Cline 时,只有闭源的 Gemini-2.0-Flash-Exp 模型成功处理了任务,其他的开源模型都没有完成任务。对于新项目来说,适合使用 Gemini 模型处理代码上的需求,但是对于比较成熟,比较复杂的项目,不太建议使用 Cline 来处理编码任务,因为处理复杂项目的时候 Cline 存在较大的性能问题,电脑会变得非常卡。如果实在想要使用 Cline 的话,可以考虑把项目模块化,以减少 Cline 处理的上下文的复杂度

  • Cursor :对于大型项目、复杂项目来说,推荐使用 Cursor 处理编码需求,但是也需要好一些的电脑,如 i7 及以上的处理器 + 32G 及以上的内存,因为我发现 Cursor 加载大项目的时候会需要用到很多内存和 CPU 资源

虽然下面的测试结果主要是基于 Cline 的,但是实际使用的话,和 Cline 相比更推荐 Roo Code ,因为Gemini API 有的时候会报错,而 Roo Code 有错误重试机制。

下面的任务处理结果,对应的诉求是优化 PlantDetailView 的代码并编写单元测试,这个文件是 Android 官方的 Sunflower 项目中的文件。

由于大语言模型的输出不是固定不变的,所以有的模型有的时候能处理成功,以下的测试结果挑选的是同一个模型最坏的测试结果,以免拉高了大家对小型的开源模型的期待值。

工具模型主观评分(满分5分)处理结果截图处理结果处理时间
Clineqwen-2.5-coder-14b0用 Ollama 上的 Qwen2.5 Coder 14b 模型,模型输出的内容是针对整个目录的,没有理解我的诉求。NA
Clineqwen-2.5-coder-32b-instruct1没有编写单元测试04:38
Clineqwen-2.5-72b-instruct0出现了编写重复的导入语句的问题02:04
Clinedeepseek-r1-distill-llama-70b:free4image.png完成了任务NA
Clinedeepseek-r10花了 5 分钟,也没有完成优化05:06
Clinedeepseek-chat0没有理解我的诉求,完成任务01:49
ClineClaude-3.5-Sonnet0API 请求失败NA
Clinegemini-2.0-flash-exp:free5任务处理的说明比较仔细06:36
CursorClaude-3.5-Sonnet4任务的处理不如 Cline + Gemini 这么仔细,但是也完成了任务03:37
CursorDeepSeek-R1Agent 模式不支持 DeepSeek-R1NA

这个任务的处理结果有点出乎我的意料,因为满血版 DeepSeek R1 无法完成这个任务,但是 DeepSeek R1 70b 却可以完成这个任务。

总结

  • 如果要避免信息安全问题,可以用 Cline(或 Roo Code)+ DeepSeek R1 70b 的方式使用 AI 编程智能体
  • 如果不考虑信息安全的问题,但是想要有更多自定义设置的话,可以用 Cline + Gemini 的方式使用 AI 编程智能体
  • 如果如果不需要太多的自定义设置,可以用 Cursor + Claude 的方式使用 AI 编程智能体

多文件编辑任务处理结果对比

下面任务的提示词是“给 PlantDetailsScreen 增加一个删除和更新 Plant 的功能”,这个提示词的预期效果是修改多个文件,包括 PlantDetailView 、PlantDetailViewModel、GardenPlantingRepository ,Roo Code 和 Cursor 都完成了这个任务。

工具模型主观评分(满分5分)处理结果截图处理结果
Clinedeepseek-r1-distill-llama-70b:free3完成了任务,但是期间的输出是中英文结合的
ClineDeepSeek V30处理失败,输出的格式不符合 Cline 的要求
Roo CodeGemini4在任务执行的过程中中断了一次,但是也完成了任务
CursorClaude5完成了任务
复杂文件编辑任务处理结果对比

下面是一个更有挑战性的任务,重构 RecyclerView ,RecyclerView 是一个用于在 Android 中高效显示大型数据集的强大而灵活的视图组件,RecyclerView 一个类的源码就有 14744 行,彻底理解 RecyclerView 对于很多 Android 应用开发者来说都是一个不小的挑战。

Cursor 虽然理解了这个任务需要做哪些事情,经过 18 分钟的处理后,Cursor 做了很多代码拆分的工作,但是最后也没有实现重构这个目标,没有对 RecyclerView 做出实质性的修改。

Cursor 做了下面的事中包含下面这几件事事。

  • 把代码挪到源码目录下,以解决编译问题
  • 建立构建配置文件 build.gradle
  • 把 RecyclerView 中的 ViewHolder 放到 RecyclerViewHolder 文件中
  • 把 RecyclerView 中的 LayoutManager 放到 RecyclerViewLayoutManager 文件中
  • 把 RecyclerView 中的常量放到 RecyclerViewConstants 中
  • 把 RecyclerView 中的 AdapterDataObservable 放到 AdapterDataObservable 文件中
  • 把 RecyclerView 中的 ItemAnimator 放到 RecyclerAnimator 中


由于 Cline 处理这个任务失败了,下面是 Roo Code + Gemini 处理相同的任务的完成情况,花了 15 分钟,也没有给出一个明确的重构方案和结果。


在尝试了一下优化提示词后,Gemini 的输出比上一次要好一些,只能说优化提示词有一些作用,但是和 Cursor 一样,最终还是没有完成重构的任务。

编写产品需求文档

该任务的提示词有两个:“为每个页面编写独立的功能需求文档,并放到 prd 目录中,然后完善 gallery 的产品需求文档,并实现相关的代码”。

Cursor + Claude 的组合很好地完成了任务,创建了 GalleryPhoto 等文件。


Roo Code + Gemini 的组合大致理解了我的诉求,写出来的 PRD 相对 Claude 写的要简陋一些,而且优化方面的改动也更少。


2.2 Cursor

Cursor 是一个基于 VS Code 开发的付费的 AI 代码编辑器,VS Code 编辑器前端开发用得比较多。

Cursor 的早期版本我有用过,那时候觉得 Cursor 就是个玩具,只能根据输入到编辑框里的提示词生成对应的代码,跟我直接与 LLM 对话的效果差不多。但是 Cursor 发展得很快,越来越成熟,当给 AI 添加了修改文件、运行命令这些能力后,Cursor 编写代码的实用性越来越强。

Cursor 的价格是 1 个月 20 刀,可以在电商平台上买到更便宜的 Cursor 账户。


当我们向 Cursor 说出我们的诉求时,Cursor 会自动查找相关的文件并进行修改,在修改完文件后,Cursor 会运行 Lint 检查编译问题,看下有没有错误,如果有错误的话还会自己想办法修复 Lint 错误,比如处理没有导入类等问题,这不就是程序员平时做的事情之一吗?改代码,然后处理编译问题。

Currsor 编辑文件时,可以直观地查看修改的内容,这个功能是 Cline 没有的。


Cursor 在任务完成后,还会总结一下自己做了哪些修改。

2.2.1 安装

安装 Cursor 时,第一个界面会看到快捷键的设置,比如可以设置 Jetbrains 的快捷键。然后是设置语言以及 Embedding 计算的范围,默认是把整个代码库的代码转化为嵌入向量。

另外还可以把 cursor 添加到命令行,可以选择安装 code 和 cursor 命令行工具,后面在终端里输入 code 或 cursor 后,就会打开 cursor 。

做完这个配置后,就需要进行登录,新注册的账户有一些免费的提问额度,免费的额度用完后,可以在电商平台上购买更便宜的 Cursor Pro 账户。

2.2.2 使用

登录完成后,点击左侧面板中的扩展按钮(Extentions),在扩展按钮左侧的是打开源码管理和搜索面板的按钮。要先安装所需的 VS 扩展插件,比如 Kotlin ,这样的话编辑器才可以高亮显示对应文件类型的代码。


然后选择打开文件夹,比如我下面打开的是 android-architecture-samples 项目。

Composer 与 Chat 的区别

Composer

  • 需要自己 @ 对应的文件,也可以通过提示词触发 AI 搜索特定的目录,比如提示词中包含“登录页”则 Cursor 会搜索登录页相关的代码

  • 可以同时修改多个文件,点击 Accept All 则确认同时修改多个文件

  • 可以根据指令不断地创建文件、执行命令,自动执行

  • Ctrl + i 打开

Chat

  • 可以 @Codebase ,让 AI 搜索整个代码库

  • 需要自己点击应用代码的修改建议

  • Ctrl + L 打开

选中一段代码后,按下 Ctrl + K 可以以这段代码作为上下文,让 Cursor 修改对应的代码。


Cursor 也支持通过 Tab 的方式自动补全,MarsCode 等 AI 编程插件也支持类似的功能,这里就不赘述了。

按下 Ctrl + i ,打开 Composer ,在 Compose 面板中,可以切换 normal / agent 模式,也可以上传图片以及切换模型。

在 Composer 中按下 “Ctrl + .” 可以切换 normal / agent 模式。


在 Compose 模式中,可以 @ 特定的文件、文件夹、代码、文档、Git(PR、Commit)、建议的上下文、Web 等内容作为上下文,但是无法 @Codebase。

Chat 功能主要是用于不需要修改代码,只是提问的场景,如果 Cursor 发现你问的问题涉及到代码修改的话,也会编辑代码文件,Chat 模式下按下“Ctrl + 回车”就可以以整个代码库作为对话的上下文。


Bug Finder 我自己也没用过,运行的时候 Cursor 会提示你成本非常高。

Agent 与 Normal 模式的区别

Agent 模式

  • 主动性与自动化:Agent 更像一个“智能编程伙伴”,能够自主规划任务、分析需求并执行复杂操作(如跨文件修改、运行终端命令、自动修复错误等),减少用户手动干预。

  • 项目级操作:支持多文件协同编辑、自动创建/删除文件、生成完整项目框架(如 Next.js 应用),甚至通过 Yolo 模式实现“全自动”开发(无需用户确认命令执行)。

  • 工具调用能力:最多可连续调用 25 个工具(如代码生成、依赖安装、测试运行),适合需要多步骤迭代的任务。

  • 自动上下文提取:主动分析项目结构、依赖关系和代码语义,智能选择相关文件(支持 @Suggested自动推荐),减少手动指定上下文的负担。

  • 多任务协同:可并行处理多个文件修改、运行后台命令,并维护任务执行状态,适合复杂重构或功能开发。

  • 长时记忆支持:单次会话可保留大量上下文,处理需要多轮迭代的任务(如性能优化或模块重构)

Normal 模式(普通模式)

  • 基础交互与代码探索:侧重于单文件内的代码补全、问答式交互(如解释代码、修复语法错误)以及简单的文件操作(需手动复制生成的代码)。

  • 可控性优先:用户需手动通过 @ 符号或上下文胶囊(Context Pills)指定上下文范围,适合小范围修改或快速调试。

  • 手动上下文管理:需用户主动通过 # 符号或 @ 命令添加文件或代码片段,上下文容量有限,易受干扰(如手动添加过多无关文件可能降低生成质量)。

  • 短时记忆:对话上下文较短,复杂任务需多次补充信息,更适合快速问答或小范围代码生成。

Cursor 使用技巧

  • 越是精确地指定相关的上下文(如代码文件、@Doc、@Web)等,Cursor 生成的代码修改建议就越有效

2.2.3 配置

点击右上角的设置按钮,可以进入 Cursor 设置页。

Cursor 的设置页主要分为几个模块:

  • General :通用设置,如账户登录、通用提示词(Rules)设置、隐私模式设置等

  • Models :模型设置,可以勾选特定的模型,这样的话就能在 Chat 和 Composer 中选择对应的模型

  • Features :特性设置,可以调整 Tab 键、Chat、Composer 、代码库索引、文档、编辑器以及终端的设置

  • Beta :实验性功能的设置,可以启用 Notepads 、BugFinder 等实验性功能

1、通用设置

在通用设置中可以登录账户或者退出登录,也可以设置通用的 Cursor 提示词,这个提示词会作为隐含的 Chat 和特定代码会话(Ctrl+K)的上下文。


此外 Cursor 还支持通过 .cursorrules 文件指定项目特定的提示词,只需要在项目根目录下创建一个 .cursorrules 文件,Cursor 就会读取这个文件的提示词,提示词用于触发 AI 生成与提示词相关的信息。


如果开启了隐私模式,则 Cursor 不会读取项目中的代码,但是这样的话 Cursor 就无法发挥自动关联上下文的作用。

2、模型设置

Cursor 支持的模型类别主要是 Claude 、Gemini、GPT、o1、DeepSeek。


在 Cursor 中,如果要使用 OpenAI 的 o1 或者 o1-preview 模型的话,价格要另外算,而且使用非 Claude 模型,比如 gpt-4o 的话,Cursor 是无法自动编辑文件的。

3、特性设置

Features 模块的设置主要有下面几个部分:

  • Cursor Tab :可以启用自动导入、注释上的修改建议等设置项
  • Chat & Composer :启用自动滚动到底部、Yolo 模式(无需确认自动执行代码修改)、自动修复 Lint(静态代码检查)错误、自动找出上下文、自动运行或者通过按钮确认
  • Codebase Indexing:把代码转化为向量,以便 LLM 更好地理解代码,提升处理上下文的效率
  • Docs :文档,可以在 Chat 和 Composer 中艾特添加的文档
  • Editor :可以启用自动解析链接等设置项
  • Terminal :可以启用终端上的提示等设置项


Cursor 为代码库建立的嵌入向量会存储在云端,但是代码不会存储在云端。


审查修改的方式有三种:
  • 显示按钮
  • 自动运行
  • 禁用


在代码库索引这部分的设置中,可以在 Ignore files 中设置不需要 Cursor 去查看的文件。


点击 Configure ignored files 后,Cursor 就会在项目根目录下创建一个 .cursorignore 文件,把想要忽略的目录或文件名输入后,Cursor 就会忽略这些文件夹和文件,可以忽略掉项目的 build、dist 等存储构建结果的文件夹。

4、实验性功能设置

在 Beta 功能设置模块中,可以设置启用 Notepads 和 Bug Finder ,Bug Finder 可以用于查找项目中的缺陷,但是运行的成本较高。Notepads 可以用于共享 Chat 和 Composer 之间的上下文。

Notepads 主要作用

上下文共享:在 Composer 和 Chat 之间无缝共享上下文

文件附件:附加文档和参考文件

动态引用:使用 @ 提及链接到其他资源

常见用例

  • 动态样板生成:为常见代码模式创建模板、存储项目特定的脚手架规则、在整个团队中保持一致的代码结构

  • 架构文档:前端规范、后端设计模式、数据模型文档、系统架构指南(如 DDD )、开发指南

  • 编码标准:项目特定规范、最佳实践、团队惯例


适合在 Notepad 中写什么?

  • 项目架构决策

  • 开发指南和标准

  • 可重复使用的代码模板

  • 需要经常参考的文档

  • 团队特定的惯例和规则


Notepad 里不适合写什么?

  • 临时笔记或草稿

  • 属于版本控制的信息(例如 git)

  • 敏感数据或凭证

  • 高度不稳定且频繁变化的信息


Notepad 示例:

# API 开发指南## 端点结构- 遵循 RESTful 规范
- 基础 URL:`/api/v1`- 资源命名使用复数形式

## 认证机制- 基于 JWT 的身份验证
- Token 格式:Bearer {token}(中文括号)
- 必须实现令牌刷新机制

## 响应格式
```json
{
  "status": "success|error",
  "data": {},
  "message": "可选描述信息"
}

## 参考资料
@api-specs.yaml
@auth-flow.md

2.4 Trae

Trae 字节做的一款是对标 Cursor 的 AI 编辑器,UI 上基于 VS Code 做了一些优化,并且在 Cursor 的基础上增加了 Web 预览的功能,编辑器模块基本上就是沿用的 VS Code 的代码。

目前只做了 Mac 平台的客户端,打开官网就可以下载。


下载安装后,打开应用会看到开始页面,点击开始后可以选择主题和语言,目前只支持中文和英文。


点击继续,可以导入 VS Code 和 Cursor 的配置,导入配置后,可以设置添加 trae 命令行工具,该工具可用于通过终端启动 Trae。


配置好工具后,可以选择登录或跳过,不登录的话是无法正常使用 Trae 的 Chat 和 Builder 功能的。


登录后,进入 Trae 的主界面,点击“打开文件夹”后,和 VS Code 一样,会提示是否信任文件夹的作者,信任的话点信任就可以。


在 Trae 左侧的工具栏上,主要有这几个工具:
  • 资源管理器:可以查看和打开项目中的文件
  • 搜索:可以搜索项目中的包含特定字符串的文件
  • 源代码管理:可以查看 Git 仓库相关的信息

点击右侧面板中的 Builder 标签或者按下 Ctrl + U,就可以看到 Builder 面板中的对话框,对话框中可以切换使用的大语言模型,默认的是 Claude-3.5-Sonnet。


比如说我输入给代码添加注释后,Trae AI 就会开始思考要怎么添加注释。

AI 思考完成后,我就可以开始审查单个文件,或者接受单个文件修改,又或者是点击“全部接受”,一次性修改所有需要修改的文件。

目前 Trae 只支持 Claude-3.5-Sonnet 和 GPT-4o 这两种模型。


在点击对话框中的 # 可以引用特定的代码、文件和文件夹。


遇到错误的时候,可以选择 AI 修复,点击 AI 修复的时候 Trae 会修改文件的内容,点击接受就会修改文件。


当 Trae 需要用到命令的时候,不会自动执行命令,需要点击才会运行。


和 Cursor 一样,Trae 也支持运行命令行,但是无法主动处理运行命令的过程中发生的错误,可以点击终端中的“添加到对话”按钮把错误信息添加到 Builder 的输入框中。


如果运行的是前端应用,还可以使用 Trae 的 Web 预览功能来查看应用运行的效果,这个功能也是 Trae 的一个特色功能。


2.5 Windsurf

官网下载 Windsurf Editor 并安装后,打开 Windsurf ,首先看到的是导入设置项界面,可以从 Cursor 或 VS Code 中导入设置,然后需要进行登录。

登录后,Windsurf 窗口右侧是 Cascade 面板,可以把它理解为 Cursor 的 Composer ,并且提示了有两个快捷键可以用。

  • Ctrl + L :唤出 Cascade
  • Ctrl + Shift + P : 打开命令面板

和 Compoer 一样,当我输入优化代码的时候, Windsurf 就会开始尝试思考后修改代码,我只需要点击 Accept All,不同的是,虽然我输入的是中文,用的也是 Claude 模型,但是输出的内容却是英文的,这个问题应该是与 Windsurf 提供给模型的提示词有关。

Windsurf 可以选择的模型相对 Cursor 来说更少,Cursor 是可以选择 Gemini 模型的。

2.6 Cline

2.6.1 用法

Cline 是一个 AI 编程智能体,以 VS Code 扩展插件的形式使用。在 VS Code 中安装 Cline 后,就可以在左侧看到打开 Cline 的按钮。

设置项

首次打开 Cline 的时候,要选择 API 提供者,默认是 OpenRouter,也可以使用 Gemini、DeepSeek、LM Studio以及 Ollama 等。

  • OpenRouter 是一个聚合了多种大型语言模型(LLMs)的API平台,提供了不同模型的访问和成本优化服务

  • Gemini:谷歌开发的大语言模型,不支持中国 IP 访问

  • DeepSeek :中国深度求索公司开发的大语言模型

  • LM Studio :本地大语言模型运行工具,可以在本地运行大语言模型,避免信息安全问题,以 GUI 的方式使用,下载的时候要注意,Windows 平台有 ARM 和 x86 两个架构的版本,下载错版本的话,安装后无法打开,模型目录

  • Ollama:与 LM Studio 类似,可以用于在本地设备上运行和管理大型语言模型(LLMs),以命令行的方式调用,尤其适合开发者和研究人员快速部署、测试和自定义模型。

在 OpenRouter 上还可以看到有哪些应用使用了他们的 API 。

Cline 的设置页中可以设置自定义指令,自定义指令会插入到每一个请求的系统提示词的结尾。比如输入“优化代码”,自定义提示词是“说中文”,那系统提示词就是“优化代码xxx说中文”。

相关的 Cline 代码如下。

自动批准

Cline 提供了 Auto Approve 功能,这个功能可以在输入框的上方启用,这个功能启用后,Cline 就会自动做下面这几件事,不会征求你的意见,否则当 Cursor 的行动就需要获得你的批准。

  • 读取文件与目录
  • 修改文件
  • 执行命令
  • 使用浏览器
  • 使用 MCP 服务器:模型上下文协议(MCP,Model Context Protocol)是一种开放协议,允许AI模型通过标准化服务器实现,安全地与本地及远程资源进行交互。这些服务器通过文件访问、数据库连接、API集成及其他上下文服务来扩展AI能力
  • 最大请求次数:默认值是 20 ,也就是默认情况下, Cline 执行了 20 次自动的生成请求后,就会停止生成

规划与行动

在 Cline 输入框的下方有 Plan 和 Act 两个选项。

Plan 与 Act 的区别:

  • Plan 模式的提示词主要引导 AI 进行分析和规划

  • Act 模式的提示词包含了具体的执行指令和工具使用权限

Plan 模式下的提示词特点:

  • 更侧重于分析和规划
  • 会要求 AI 详细列出执行步骤
  • 不包含实际执行操作的指令

可能会输出类似大纲或计划的格式

Act 模式下的提示词特点:

  • 包含了具体的执行权限和操作指令

  • 允许使用各种工具命令,如文件操作、执行命令、浏览器操作

Cline 官方推荐的是用 DeepSeek-R1 进行规划,然后用 Claude-3.5-Sonnet 执行。

切换模型

点击输入框下方的模型名称,可以修改使用的模型。

查看历史

如果想回看之前的任务执行记录,可以点击 View all history 。

插入图片与关联特定上下文

点击输入框中的 @ 可以让模型读取特定的文件夹或文件,也可以通过粘贴 URL 的形式提取 URL 对应的网站的内容。

@problems 的用途

  • 快速添加工作区的错误和警告信息
  • 避免来回询问调试信息
  • 让 Cline 能够直接看到并修复代码问题

例如,如果你的代码中有类型错误、缺少导入或其他编译/构建问题,你可以使用 @problems 让 Cline 直接看到这些问题,它就能够主动帮你修复这些错误,而不需要你手动复制粘贴错误信息。

比如下图中 @problems 后,Cline 就尝试处理导包错误了。


点击输入框下方的相机可以插入图片,也可以直接把剪贴板中的图片粘贴进输入框。


2.6.2 MCP 服务器介绍

模型上下文协议(MCP,Model Context Protocol)是 Anthropic 公司提出一种开放协议,允许AI模型通过标准化服务器实现,安全地与本地及远程资源进行交互。这些服务器通过文件访问、数据库连接、API集成及其他上下文服务来扩展AI能力。MCP 服务器是 Model Context Protocol 中的核心组件,负责为大型语言模型(LLM)提供外部数据源和工具的标准化接入,MCP 服务器通过三种基本原语为 LLM 提供支持:资源、工具、提示。

点击 Cline 中右上角的服务器按钮,可以打开 MCP Server 面板。

Servers 开源库中,可以看到让 LLM 可以看到这几类 MCP Server。


2.6.3 手动配置 MCP Server

Server 介绍

Sequential Thinking MCP Server 是基于 Model Context Protocol (MCP) 协议实现的专用服务器,旨在为大型语言模型(LLM)提供结构化、动态化的问题解决框架。它通过分步骤、可回溯、可分支的思考流程,帮助 AI 智能体(如 Claude、GPT 等)更高效地处理复杂任务,尤其适用于需要逻辑推理、多步骤规划或动态调整的场景。


核心功能 1 :动态结构化思考

  • 问题分解:将复杂问题拆解为可管理的子步骤(例如:软件开发任务可拆分为需求分析→架构设计→模块实现→测试)。

  • 动态调整:根据推理进展,实时增减总步骤数(totalThoughts 参数),灵活应对不确定性。

  • 分支推理:支持从某一步骤(branchFromThought)衍生多个推理路径(通过 branchId 标识),用于探索不同解决方案。

  • 修订机制:允许通过 isRevisionrevisesThought 参数回溯修改特定步骤(例如:发现错误后修正第三步的结论)。


核心功能 2 :假设验证与迭代

  • 生成解决方案假设(如“选择算法A”),通过外部工具验证后反馈给思考流程。

  • 若验证失败,自动触发修订或分支逻辑(例如:“算法A不适用→尝试算法B”)。


工具接口 ( sequential_thinking ) :

输入参数:

参数类型作用
thoughtstring当前步骤的思考内容(如“分析用户需求”)
nextThoughtNeededboolean标记是否需要继续下一步思考(控制流程终止)
thoughtNumberinteger当前步骤编号(从1开始)
totalThoughtsinteger预估总步骤数(可动态调整)
isRevisionboolean是否为修订操作(默认false)
revisesThoughtinteger指定要修订的步骤编号(需与isRevision=true配合)
branchFromThoughtinteger分支起始步骤编号(如从步骤3分出两条路径)
branchIdstring分支标识符(例如:“路径A”、“备选方案1”)
needsMoreThoughtsboolean请求增加总步骤数(例如:原计划5步,实际需要7步)

典型使用场景:

  • 软件开发:逐步设计系统架构 → 发现性能瓶颈 → 回溯修改设计 → 分支探索优化方案。

  • 数据分析:假设生成(“销量下降因季节因素”)→ 验证假设(查询历史数据)→ 若被推翻则生成新假设。

  • 项目管理:分解任务 → 动态调整优先级 → 处理突发风险(插入新步骤)。


通过 Docker 部署(适合生产环境):

{
  "mcpServers": {
    "sequentialthinking": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "mcp/sequentialthinking"
      ]
    }
  }
}

使用 Docker 构建镜像:

克隆或下载 Servers 开源库后,进入 servers 目录,执行下面的命令。记住:不要进入 sequentialthinkging 目录执行下面的命令,因为下面的命令指向的就已经是 sequentialthinking 目录中的 Dockerfile。

docker build -t mcp/sequentialthinking -f src/sequentialthinking/Dockerfile .

构建成功时显示的内容。

构建成功后执行下面的命令。

docker run mcp/sequentialthinking

使用效果

当我的提示词是“SequenialThinking 是什么”的时候,Gemini 就会开始尝试用 use_mcp_tool 工具来调用 MCP 服务。

可以勾选自动同意使用这个工具。


2.6.4 自动创建 MCP Server

创建 Server

下面是一个通过 Cline + Gemini 2.0 自动创建一个自定义 MCP Server 的例子。

输入提示词“创建一个 MCP Server,用于从 YouTube 视频中提取字幕。”后,Gemini 会要求执行命令,这个命令用于创建 MCP Server 的源码。

cd /Users/oushaoze/Documents/Cline/MCP && npx @modelcontextprotocol/create-server youtube-transcript-server && cd youtube-transcript-server && npm install axios youtube-transcript

写完项目源码后,Gemin 就会尝试运行 MCP Server。

而且 Gemini 还会修改 Cline 的 MCP Server 配置。

源码所在的位置:/Users/xxx/Documents/Cline/MCP/youtube-transcript-server


使用效果

当我输入“提取 youtube 字幕:www.youtube.com/watch?v=liE… Gemini 就会调用 youtube-transcript-server 工具,


最后并没有处理成功,可能是因为这个获取字幕的 MCP Server 的实现不完整。


通过 Cursor 调整源码后,再用 Cline 获取字幕,效果如下。在遇到错误的时候会尝试调用 SequentialThinking 找出解决方案。


2.6.5 Cline 提示词

下面是执行任务的过程中,Cline 通过读取文件内容和环境信息,一起放到 API 请求中发送给模型的部分内容,点击 API Request 右边的按钮就可以展开查看具体的内容。

从下面的内容中可以看到 Cline 会把打开的标签、模式(act/plan)、文件内容等信息都传给模型,这意味着如果你只是说“优化代码”的话,对于不够智能的模型(比如7b 的模型)来说,可能会先解释项目目录中有哪些内容,再来处理任务。


Cline 是通过下面的提示词让 LLM 使用 MCP Server 的,提示词大约有 12000+ 个 token。


翻译后的提示词如下,提示词的其中一部分就是引导模型输出调用 use_mcp_tool 工具的文本。

在 Cline 的代码中,定义了下面这些工具,其中就包括 use_mcp_tool。

export const toolUseNames = [
    "execute_command",
    "read_file",
    "write_to_file",
    "replace_in_file",
    "search_files",
    "list_files",
    "list_code_definition_names",
    "browser_action",
    "use_mcp_tool",
    "access_mcp_resource",
    "ask_followup_question",
    "plan_mode_response",
    "attempt_completion",
] as const

ToolUse 接口的其中一个实现接口是 UseMcpToolToolUse 。


2.7 Roo Code

Roo Code 是基于 Cline 做的一个 AI 编程智能体插件。

Roo Code 相对于 Cline 的优势:

  • 提示词:更细致的提示词设置,如输出的语言、提示词增强、不同的角色(编码、架构优化、提问)

Roo Code 相对于 Cline 的劣势:

  • 不支持 Ollama

2.7.1 通用设置

1、API 提供者

Roo Code 的 API 提供者的设置支持多套配置,输入框下方的 default 表示的就是默认的配置,点击 Edit 就可以进入设置页添加另一套配置。


在本地大语言模型工具的支持方面,Roo Code 只支持 LM Studio,不支持 Ollama ,而 Cline 是支持的。LM Studio 不支持使用 Intel 芯片的 MacOS 客户端。

如果选择的 API 提供者是 OpenRouter ,那在 Roo Code 中还可以自定义 API 的 baseUrl 。为了让自定义的 baseUrl 可以访问 GLM 等模型,我做了一个简单的示例仓库 OpenRouterRedirect 。 此外选择 OpenRouter 作为 API Provider 的时候, Roo Code 还支持启用提示词压缩,这个设置项可以减少 token 的消耗。

2、自动批准

Cline 只能在对话框里调整 Auto-Approve 的配置,而 Roo Code 可以在设置里调整 Auto-Approve 的配置,Roo Code 的 Auto-Approve 中可以设置自动重试的机制,这样的话当 API 报错的时候就不需要自己点击重试,而且在 Roo Code中还可以设置终端输出的上限。

3、浏览器视窗

Roo Code 还支持浏览器视窗大小、通知音效、终端输出的行数限制等设置。

2.7.2 提示词设置

Chat Mode是Roo Code的核心功能之一,为用户提供了多种灵活的工作模式,以适应不同的开发需求。在对话框中可以切换和修改不同模式下的提示词,点击 Edit 可以可以打开提示词设置页。

  • Code模式:这是Roo Code的默认模式,专注于日常开发任务。无论是编写代码、修复问题,还是执行复杂的任务流,Code模式都能提供强大的支持。例如,用户可以直接输入自然语言指令,让Roo Code自动生成代码片段、优化现有代码,甚至执行文件操作。这一模式适合需要快速完成编码任务的开发者。
  • Architect模式:此模式专注于高层次的系统设计与架构分析。通过预设的提示词,Roo Code能够帮助用户规划技术方案、设计系统架构,甚至提出优化建议。与Code模式不同,Architect模式不会直接编写代码或执行命令,而是更注重逻辑分析和技术决策。这种分离的设计使得开发者能够更清晰地思考全局问题。
  • Ask模式:Ask模式是一个知识型助手,适用于研究和技术问题解答。用户可以询问有关代码库、编程概念或技术实现的问题,而Roo Code会基于上下文提供详尽的解答。它特别适合需要深入探讨某些复杂概念或进行代码审查的场景。


在提示词设置页中,第一个设置项就是语言。


Roo Cline 中的提示词分为了通用指示和模式特定的提示词。比如通用提示可以是“你是一个全栈开发者”,点击加号可以添加特定模式的提示词,比如“代码解释”、“代码审查”、“单元测试编写”。可以自定义提示词,意味着把提示词改为中文后,能减少模型输出英文的概率。

在设置中点击 .clinerules 就会看到 Roo Cline 创建了 .clinerules ,这个文件的配置和 .cursorrules 类似,都用于设置项目级别的提示词。


特定模式的提示词还可以分别设置不同的自定义提示词。


点击 “Mode-Specific Prompts”后面的加号,可以创建新的模式,在这里可以设置该模式下可以调用的工具。


在 Prompts 设置中可以还可以看到 Roo Code 传给模型的系统提示词,但是不支持编辑系统提示词。


此外 Roo Code 还支持提示词增强,主要是为了帮助我们优化简单的输入,比如说我输入“优化代码”,Roo Code 会把这个提示词转变为“优化和改进代码以提高性能和可维护性”。

点击对话框中相机左侧的按钮就可以对提示词进行增强。

2.8 Warp

核心功能

  1. 界面与个性化

    1. 自定义提示符:支持主题库(如 Powerlevel10k、Starship)或通过 GUI 自定义主题配色。
    2. 输入框位置:可固定到窗口顶部或底部,支持透明背景和透明度调节。
  2. 现代文本编辑体验

    1. IDE 式操作:鼠标交互、Vim 键绑定、智能命令补全(支持数百种常见命令)。
    2. 块结构(Blocks) :将输入和输出分组,便于导航、过滤和分享。
    3. 自动纠错:检测拼写错误或缺失参数并提供修正建议。
  3. AI 增强功能

    1. 自然语言查询:用自然语言搜索命令,替代传统搜索引擎。
    2. AI 工作流辅助:自动生成命令建议、命名并描述工作流(Warp Drive)。
    3. 上下文感知建议:根据当前会话和历史命令推荐下一步操作。
  4. 协作与云端驱动(Warp Drive)

    1. 团队协作:共享云端驱动(Team Drive)、实时会话共享(Beta)和代码块永久链接。
    2. 个人云端库:保存参数化命令、环境变量、交互式手册(Notebooks),支持网页端访问。
  5. 生产力工具

    1. 命令面板:快速搜索应用内功能、快捷键和设置。
    2. 历史记录增强:查看退出码、目录详情、关联分支等元数据。
    3. Markdown 查看器:直接运行 Markdown 文件中的嵌入命令。
  6. 兼容性 与隐私安全

    1. 多平台支持:兼容 macOS、Linux(Windows 等待名单中),支持 zsh/bash/fish。

    2. 隐私保护:默认不收集输入输出数据,禁用分析追踪,企业级 SSO/SAML 集成。

    3. AI 数据安全:用户数据不用于训练 OpenAI/Anthropic 模型,企业版支持零数据保留。


使用示例

下载 Warp 后可以看到一个弹窗,点击确认后则开始启用 AI 功能,终端里还会提示你可以输入自然语言而不是命令。


比如我输入“安装 python3”,失败后则会提示我改用命令“brew install python3”,这时我按下 Tab 键,就能看到命令已经输入好了。


在 Warp 中可以切换的模型有 Claude 3.5 sonnet 、haiku 和 gtp-4o。


Command + i 可以切换为 Agent 模式。

image.png