[控场AI]
· 7 分钟阅读· 3,570 字

VS Code 中安装 Cursor CLI 并修复 Python Bug 实战

VS Code 中安装 Cursor CLI 并修复 Python Bug 实战

演示在 VS Code 内安装 Cursor CLI,并用 agent 修复 Python 账单拆分器的输入校验 Bug。

文章基于一段完整操作演示,介绍如何在 VS Code 环境中使用 Cursor。Cursor 是 AI 驱动的代码编辑器,界面与操作贴近 VS Code,核心差异在于内置 agent 能直接读写项目文件、新建测试并在终端请求执行命令,而非仅在聊天中返回代码。演示全程不离开 VS Code:通过集成浏览器获取 PowerShell 安装命令,在终端安装 Cursor CLI,重启编辑器后用 cursor --version 验证,再通过 agent login 完成认证。随后以一个 Python 账单拆分器为例,用自然语言描述人数为零或负数、账单为负时应抛出 ValueError 并补 unittest 测试的需求,agent 直接修改 app.py、新建测试文件并请求运行测试。作者指出该工作流适合边界清晰的任务,但需人工审阅改动以防误改无关文件。

Cursor 是一款 AI 驱动的代码编辑器,界面与 Visual Studio Code 高度相似,但内置了集成 AI 能力,能帮助开发者编写和修改代码。本文基于一段完整的操作演示,梳理如何在 VS Code 环境中安装 Cursor CLI、完成认证,并用它修复一个 Python 账单拆分程序中的输入校验 Bug。整个过程不需要离开 VS Code,也不需要手动逐行改代码。

Cursor 是什么,它与 VS Code 的关系

据视频作者介绍,Cursor 本质上是“AI powered code editor”,外观和操作逻辑都贴近 VS Code。区别在于它把 AI 能力直接嵌入编辑流程,而不只是提供一个聊天窗口。这一点在后面的实操中体现得很明显:Cursor 的 agent 不只是返回一段代码,而是直接读取项目文件、修改代码、新建测试文件,并请求在终端中运行命令。

在 VS Code 内打开浏览器访问 Cursor 下载页

这种“动手改项目”的能力,是它和普通网页版 AI 工具的核心差异。作者在视频中专门做了对比:如果去 ChatGPT 或 Claude 的网页版,得到的只是一段需要你手动粘贴的代码;而 Cursor agent 拥有对项目文件夹的访问权限,可以直接落实修改。

agent 模式是 Cursor 区别于传统代码补全工具的关键。传统的 AI 补全(如 GitHub Copilot)在光标处逐行建议代码,开发者需要逐条接受或拒绝;而 agent 模式把大语言模型包装成一个能调用工具的循环执行体:它可以列出目录、读取文件、搜索符号、写入修改、新建文件,并在终端发起命令请求。每次工具调用都会在界面上呈现,命令执行前需用户批准,因此整个改动过程是可观察、可中断、可回滚的。这种设计让 AI 从“建议者”变成了“执行者”,但也意味着上下文管理和误改风险需要由开发者把控。

在 VS Code 内完成 Cursor CLI 安装

演示者刻意选择全程不离开 VS Code。第一步是在编辑器内打开集成浏览器(通过快捷键 Ctrl+Shift+P 调出命令面板后打开),访问 Google 并搜索“cursor download”,进入下载页面。页面上提供了多种安装方式,演示者选择复制 PowerShell 对应的安装命令。

回到 VS Code,打开新终端,粘贴该命令并执行。作者特别提醒一个容易踩坑的细节:安装完成后必须完全关闭 VS Code,再重新打开一个新终端,否则安装可能不会生效。

认证成功后终端显示登录状态与令牌存储信息

随后用 cursor --version 验证安装是否成功,终端会返回版本号。接下来执行 agent login 进行认证。为了不让系统弹出外部默认浏览器,演示者提前执行了一条禁用自动打开浏览器的命令;如果不介意跳转外部浏览器,这条命令可以跳过。认证流程是复制终端给出的链接、在浏览器中登录账号并授权,终端随后显示“logged in”以及认证令牌已安全存储。再次输入 agent,Cursor agent 就绪,可以开始接收任务。

Cursor CLI 是 Cursor 提供的命令行入口,安装后会在系统 PATH 中注册 cursor 与 agent 两个命令:前者用于版本查询和编辑器相关操作,后者用于启动交互式 AI agent 会话。它与 Cursor 桌面编辑器共享同一账号体系,因此 agent login 走的是 OAuth 授权流程——终端生成一次性链接,浏览器完成登录后把令牌回写到本地凭据存储,后续会话无需重复认证。对于习惯终端工作流的开发者,CLI 形态意味着不必切换到 Cursor 编辑器,也能在现有 VS Code 或任意终端中获得 agent 能力。

实战:让 Cursor 修复 Python 账单拆分程序

演示项目是一个简单的 Python 账单拆分器(app.py):函数接收餐厅账单总额和人数两个输入,将总额除以人数,返回每人应付金额。例如总额 1200、三人分摊,每人应付 400。

代码表面上没问题,但作者指出了一个隐藏缺陷:如果人数为零,程序会触发除零错误并崩溃。这正是本次要交给 Cursor 修复的问题。

提示词的写法值得注意

演示者没有告诉 Cursor 具体改哪一行,而是描述问题和期望结果。提示词要求:检查这个账单拆分应用,存在输入校验 Bug;拒绝人数为零或负数,拒绝负数账单金额;抛出带有清晰信息的 ValueError;保持代码对初学者友好;使用 Python 内置 unittest 模块编写单元测试;不要修改无关文件;运行测试并解释改动。

向 Cursor agent 提交包含校验要求与测试要求的提示词

这种“说清需求、不说实现”的方式,让 agent 自己去检查现有代码并提出方案。作者强调,这正是 Cursor agent 与普通 LLM 的用法差异——你描述问题,它审阅代码并给出可执行的修改。

ValueError 是 Python 内置的异常类型,语义上表示“参数的值不合法”,与表示类型错误的 TypeError 相区分。在输入校验场景中抛出 ValueError 是 Python 社区的惯例做法:调用方可以精确捕获它并给出友好提示,而不是让程序因 ZeroDivisionError 之类的底层异常直接崩溃。提示词要求“抛出带有清晰信息的 ValueError”,实质是要求 agent 把失败模式显式化——让错误在函数边界就被拦截,并携带可读的原因说明,而不是把问题推迟到运算阶段才暴露。

Cursor 实际改了什么

agent 接手后表示会检查账单拆分应用、定位校验 Bug、补充单元测试并运行测试。它没有停留在聊天回复层面,而是直接操作项目文件:

  • 在 app.py 中加入校验逻辑:账单总额小于零时抛出“bill amount cannot be negative”的 ValueError;人数小于等于零时同样抛出 ValueError。
  • 新建测试文件(test 相关文件),用 unittest 编写测试用例。
  • 请求在终端中运行测试命令,等待用户批准后执行。

Cursor 直接更新项目代码而非仅在对话中给出代码

作者的总结是:整个过程没有手动写任何一行修改,只做了三件事——解释需求、审阅改动、验证结果。每一步执行命令前,Cursor 都会请求批准,这给开发者保留了控制权。

unittest 是 Python 标准库自带的单元测试框架,无需额外安装依赖,用类继承 unittest.TestCase、以 test_ 开头的方法定义用例,通过 assertEqual、assertRaises 等断言验证行为。提示词指定使用 unittest 而非 pytest,降低了项目的环境要求,也让生成的测试文件可以被 python -m unittest 直接运行。对于校验逻辑这类纯函数,典型用例包括:正常输入返回正确商值、人数为零时抛出 ValueError、人数为负时抛出 ValueError、账单金额为负时抛出 ValueError——这正是 agent 在新建测试文件中应当覆盖的边界。

这套工作流的价值与边界

从演示看,Cursor CLI 把“AI 改代码”变成了可审计的流程:需求用自然语言描述,改动以 diff 形式呈现,命令执行需要确认,测试结果可复核。对于修 Bug、补测试这类边界清晰的任务,效率提升明显。

需要冷静看待的是,视频展示的是一个刻意简化的小项目,真实工程中的依赖关系、上下文长度、误改无关文件的风险都会放大。提示词里“不要修改无关文件”这一条本身就说明,这类风险是真实存在的,需要靠约束和人工审阅来兜底。把 Cursor 当作需要复核的结对程序员,而不是全自动改码机器,是更稳妥的用法。

对于已经在用 VS Code 的开发者,这套安装与使用路径门槛不高,值得在自己的小项目上先跑一轮,熟悉 agent 的改动风格和审批节奏之后,再逐步引入到更重要的代码库中。

#Cursor#VS Code#Cursor CLI#AI编程#Python Bug修复#Cursor agent#AI代码编辑器
分享:

相关推荐