-
全局代码感知:
通过矢量索引或索引引擎创建代码地图,利用LLM搜索高效检索全库信息。 -
AI行为控制:
使用结构化提示、用户规则和会话记忆,精确指导AI的“思考”和回应逻辑。 -
任务自动化执行:
基于ReAct模式,AI通过代理循环智能调用搜索、编辑、运行等工具完成复杂任务。 -
高效精准编辑:
采用特殊差异语法生成语义补丁,通过应用模型快速合并代码修改。 -
处理复杂工作流:
Windsurf 的AI流程能将工具链(最多20步)串联,实现多步自动化操作。 -
智能模型调度:
使用混合专家方法和智能路由层,根据任务动态选择最合适的AI模型。 -
实时生成与引导:
通过逐标记流式传输代码,并跟踪用户光标进行预测性完成。 -
即时响应用户编辑:
基于事件驱动架构和SSE,AI能感知并实时调整对用户手动修改的回应。 -
自动问题检测:
集成自动错误检测和自我修正能力,主动调试AI或用户代码。 -
持续代码知识更新:
自动且持续更新矢量索引,确保AI对最新代码有感知。 -
安全实验环境:
在受保护的沙盒中运行AI的实验性代码,避免影响项目稳定。
-
索引和向量存储:
Cursor 将您的整个项目索引到一个向量存储中。您可以将其视为创建了一个代码的智能地图,其中相似的概念被分组在一起。 -
专用编码器模型:
在索引时,Cursor 使用一个专用的编码器模型,该模型特别强调注释和文档字符串,以便更好地捕捉每个文件的目的。 -
两阶段检索过程:
当您提出问题时,Cursor 使用两阶段检索过程。首先,它执行向量搜索以查找候选代码片段。然后,它使用一个 AI 模型根据相关性对这些结果进行重新排序。这就像一位图书管理员,先找出关于某个主题的所有书籍,然后仔细整理以找到您需要的准确内容。这种两阶段方法显著优于传统的关键字或正则表达式搜索,尤其是在处理关于代码行为的非简单问题时。 -
显式和自动上下文:
您还可以使用 @file
或@folder
标签明确地指向 Cursor 到特定文件。这就像在说:“请专门查看本书的这些章节”。已经打开的文件和光标周围的代码会自动添加到上下文中。
Windsurf 如何阅读您的代码?
-
索引引擎:
Windsurf 通过其索引引擎采用类似的方法。它扫描您的整个代码库以构建一个可搜索的代码地图。 -
基于 LLM 的搜索工具:
Windsurf 开发了一种据称优于传统的基于嵌入的搜索方法的基于 LLM 的搜索工具。这使得 AI 能够更好地解释您的自然语言查询并找到相关的代码片段。 -
考虑开放和相关文件:
在提出建议时,Windsurf 会考虑开放的文件,并自动从项目其他地方提取相关文件。这种“全代码库意识”意味着 AI 将您的代码库理解为一个连接的系统,而不仅仅是孤立的文件。 -
上下文固定 (Context Pinning):
Windsurf 还提供“上下文固定”功能。这是一种保持关键信息(如设计文档)始终对 AI 可用的方式。将其视为将重要笔记放在布告栏上,AI 无论您正在做什么,都能始终看到。 -
记忆 (Memories):
Windsurf 的 Cascade 代理使用 AI 规则和记忆(跨会话的持久上下文)。记忆可能由用户创建(如关于项目 API 的笔记)或从先前的交互中自动生成。这意味着 Windsurf 可以“记住”它随着时间推移了解到的关于您的代码库的信息,而不是每次会话都从头开始。
这两种系统都使用了复杂的技术来深入理解您的代码库,以便能够提供相关的帮助。它们通过索引、高级搜索、上下文管理和记忆功能来实现这一点。
这两个 AI 编码助手通过将简单的语言转化为多步代理(agent)来进行“行动”,它们都采用了被称为 ReAct (Reason+Act) 的模式来实现这一点。
Cursor 如何行动和Agent架构
-
Cursor 的 Agent 以一个 循环 运作。在这个循环中: -
AI 决定要使用哪个工具。 -
它解释正在做什么。 -
它调用工具。 -
它看到结果。 -
然后决定下一步行动。 -
它使用一种称为 “Embed-Think-Do” 的代理循环。 -
Cursor 可以使用的工具包括:搜索代码库、读取文件、编辑代码、运行 shell 命令,甚至浏览网页获取文档。 -
在代码编辑方面,Cursor 有一项重要的优化:它使用一种 “特殊差异语法”。AI 不会重写整个文件,而是只提出 语义补丁(即所需的具体更改)。一个单独的、更快的 “应用模型” 负责将这些补丁合并到代码库中。这种方法更高效,并减少了错误。 -
Cursor 在 受保护的沙盒环境 中运行所有实验性代码,以确保 AI 的实验不会意外破坏你的实际项目。 -
例如,如果你要求 Cursor“修复认证 bug”,它可能会首先搜索代码库中与认证相关的文件,然后读取这些文件以理解问题,进行编辑以修复 bug,最后运行测试来验证解决方案。每一步都会在发生时清晰地解释给你。 -
为了避免无限循环,Cursor 限制了这些自我修正循环(例如,“DO NOT loop more than 3 times on fixing linter errors”)。 -
Cursor 甚至采用了一种 “混合专家” 方法:一个功能强大的模型(如 GPT-4 或 Claude)负责进行高级推理,而专门的较小模型则处理特定任务(如应用代码更改)。 -
Cursor 使用一个智能路由层,根据操作、任务的复杂性以及用户设置,将特定任务 动态地路由到最合适的模型。 -
如果 AI 的代码引入了错误,Cursor 会 自动检测 并尝试在没有用户干预的情况下修复它。
Windsurf 如何行动和 Agent 架构
-
Windsurf 也使用 ReAct 模式,并强调其 “AI 流程”(AI Flows) 概念。 -
它的代理被称为 “Cascade”代理。 -
当你提出请求时,Cascade 会生成一个计划,进行代码更改,并在运行代码之前请求你的批准。 -
如果你批准,它可以在集成的 AI 终端 中执行代码,分析结果,并在出现错误时提出修复建议。 -
Windsurf 的 Agent 架构非常强大——它可以在单个流程中串联多达 20 个工具调用而无需用户干预。 -
它的工具包括自然语言代码搜索、终端命令、文件编辑和 MCP(Model Context Protocol)连接器到外部服务。这使得 Cascade 能够在一个连贯的序列中处理复杂的、多步骤的任务,如安装依赖项、配置项目和实现新功能。 -
Cascade 令人印象深刻的一点是,当你在流程进行中手动更改代码时,它会注意到并相应地进行调整。如果修改了函数参数,它会自动更新所有调用该函数的地方。这创建了一个紧密的反馈循环,让你和 AI 可以真正实时协作。 -
这种响应能力建立在 事件驱动的架构 之上,其中特定的用户操作(如保存文件或更改文本)会触发 AI 使用更新后的状态重新运行其推理。 -
系统使用 服务器发送事件 (SSE) 来维护编辑器、终端和 AI 聊天组件之间的同步。 -
Windsurf 在你工作时会 主动扫描问题。如果你运行代码并出现错误,助手可以立即看到该错误并帮助解决,而无需你复制粘贴任何内容。