声明
下面内容仅代表个人完全主观言论,没有任何客观依据。请仔细分辨内容真实性,不可盲目相信。
注意
目前的人工智能技术尚未达到 AGI(通用人工智能) 的水平。AI 本质上仍是一个高级的模式匹配工具,因此 不要期望通过一句话就能实现复杂功能。你需要耐心地逐步引导 AI 完成任务。
最新动态
一个十分令人兴奋的消息,在 0.48.x
中增加了许多新的功能!包含 聊天选项卡
(我们可以同时并行多个任务了!)、 基于使用情况的成本可见性
(不在浪费上下文长度)和 关于长语境的新聊天
(相当于 Token
耗尽提示)等功能!
当然,重磅功能当然是 自定义模式
的登场,根据官方文档描述可以创建一些特定功能的聊天。更加专注某一个工作,就避免过度修改源代码导致出现意料之外的情况!
Cursor – Custom modes
0.47.7
Cursor
已经推送了0.47.7
版本客户端,更新内容是增加了Claude 3.7 Sonnet Max
(你别说,弄的UI还挺好看的),但是Claude 3.7 Sonnet Max
一次0.05
的消耗有些难顶。另外,0.47.6
推送中好像有更快速的差异应用。
碎碎念:靠北,
Claude 3.7 Sonnet Max
只能基于计费的请求。我是用不上了,不会额外掏钱的!不会!我穷我自豪!
0.47.5
Cursor
已经推送了0.47.5
版本客户端,这一版本中我觉得重要的是在Agent
模式下的Auto
模型模式。大家给我点时间让我试一试这个模式到底咋样,稍后更新帖子。
用了一上午,没啥感觉。大家开不开吧,我个人还是选择锁定
claude-3.7-sonnet
用着了,或许是我用的有些草率?不确定,再看看。
常用模型角色
claude-3.7-sonnet
: 目前都使用这个一个模型了,因为deepseek-r1
已经开始进行计费了。
已过期内容
claude-3.5-sonnet
:具体代码编写deepseek-r1
:任务规划以及拆分
一些使用Cursor开发的Github项目
以下是一些使用 Cursor
和不同模型开发的实际项目案例:
-
YamlTranslater
- 模型:
claude-3.7-sonnet
- 请求次数:约 40 次慢速请求
- 描述:一个 YAML 文件转换工具,附带详细的项目规划与进度记录。
- 链接:BingZi-233/YamlTranslater
- 模型:
-
Appwrite SDK for Java
- 模型:
claude-3.5-sonnet
- 请求次数:约 450 次快速请求
- 描述:一个用于与 Appwrite 后端服务交互的 Java SDK。
- 链接:BingZi-233/sdk-for-java
- 模型:
-
LuckPerms Bridge Spring Boot Starter
- 模型:
claude-3.5-sonnet
- 请求次数:约 350 次快速请求
- 描述:简化 LuckPerms API 集成的 Spring Boot Starter。
- 链接:BingZi-233/luckperms-bridge-spring-boot-starter
- 模型:
需要知道的一些知识
-
.cursorrules
文件
这是一个用来设定项目规则的文档,通常用 Markdown 语法编写。不过,由于 AI 只是读取内容(Token),其实文件格式并不重要,你可以用任何格式来写,只要内容清晰明了就行。 -
.cursor/rules
文件
这是.cursorrules
的升级版,可以更细致地配置规则。比如,你可以为不同类型的文件(如.java
和.vue
文件)设置不同的 AI 规则。这种功能特别适合那些涉及多种编程语言的复杂项目。 -
普通模式 vs. 代理模式
在 Cursor 的 Composer 功能中,你可以选择两种模式:
- 普通模式:适合快速、单次的代码编辑。它不会深入思考问题,主要用于简单的修改或调整。
- 代理模式:AI 会更加“聪明”,它会认真分析问题,使用推理和工具来解决复杂的任务。这种方式更适合需要深度理解和探索代码的场景。
重要提醒
很多人容易混淆这两种模式的用途,导致使用不当。比如,有些人用普通模式试图完成代理模式才能做到的事情,结果发现效果不好,甚至吐槽 Cursor 不够智能。其实问题在于没选对模式!记住:如果你需要高质量的结果,请务必切换到代理模式!
使用流程
-
使用
claude-3.7-sonnet
模型先进行需求规划(一般我会让AI放到docs文件夹下面,使用Markdown格式存放内容),尝试消除自然语言描述时存在的 二义性 。 -
使用
claude-3.7-sonnet
模型列出步骤清单,避免之后使用claude-3.7-sonnet
模型进行代码编写的时候,一次灌入太多内容导致Token快速被消耗殆尽出现幻觉。 -
让
claude-3.7-sonnet
模型读取步骤清单,根据清单开始工作。每次只进行一步,完成之后要及时更新步骤清单完成状态。
这里主要是避免
claude-3.7-sonnet
进行如下工作:
- 重复执行某一步骤导致失控
- 避免检查导致的Token上下文长度消耗
- 避免重写已经完成的部分(它真的会这么做)
-
切换回
IDEA
中消除存在的警告和编译错误。如果这里存在问题,请回到Cursor
中让claude-3.7-sonnet
修改对应部分。 -
指挥
claude-3.7-sonnet
进行版本提交(这里大多数人都使用的是Git吧?我电脑没有安装全局的SVN,所以在使用SVN的时候一般是我手动提交) -
新开一个对话,回到
步骤3
继续
关于 .cursorrules
如何编写?
我们为什么一定要自己去编写 .cursorrules
文件,如果让 claude-3.7-sonnet
来修改是不是可以更好的达到我们的预期?这一章节就是使用 claude-3.7-sonnet
来根据项目来定制一个合适的 .cursorrules
规则文件。
资源
推荐:
(因为我在这里面看到了V0的提示词了,就离谱。
参考:
.cursorrules
编写改进流程
由于
Cursor
调整.cursorrules
以后可能会出现不可用的情况,这里还要再挖个坑更新新版本的.cursorrules
-
我们在上面的资源里面选择一份比较贴切的
.cursorrules
文件,并粘贴到./.cursorrules
文件中。 -
找到我们的包管理文件
build.gradle.kts
(这里使用Kotlin+Gradle举例) -
在左侧选择模式
claude-3.7-sonnet
,并添加.cursorrules
和build.gradle.kts
文件给聊天上下文。 -
对
claude-3.7-sonnet
提出修改要求:请根据build.gradle.kts
中使用的包修改.cursorrules
文件。 -
针对不满意的地方接续对
claude-3.7-sonnet
提示修改建议。 -
结束
注:定制规则文件不是一次性就能成功的,你需要根据你使用过程中的感觉对
.cursorrules
文件不断进行迭代。
小技巧:你纠正过AI的错误之后,让他将相关内容记录到
.cursorrules
文件中,这样下次就可以避免他总是犯同样的错误。另外一个每月200美元
的AI(这里不提具体名字了)的长期记忆,也是类似的原理。
关于 TAB
功能
我之前一直觉得 Cursor
中不适合真正的代码编写工作,虽然 Cursor
的 AI
是很厉害但毕竟是基于 VSCode
制作的。无论从那个方面应该都无法和 IDEA
这类专业工具来的舒服,但今天我发现我错了。Cursor
的 TAB
补全功能在一定程度上弥补了工具上的功能缺失,我决定近期尽可能使用 TAB
功能。后续我会更新相关的内容。
碎碎念:之前一直没用,甚至给禁用了。我痛失一个亿!
关于 节省快速请求次数
什么是快速请求?
Cursor
官方是这么说,经典废话文学了。
宇宙安全声明:以下内容仅作为个人使用过程中的推测,无客观证据。请谨慎辨别内容可靠性。
Cursor
应该是按照了最大量来计算一个快速请求,也就是 claude-3.7-sonnet
的最大 Token
是 200K
被记为 0.02
美元。
猜测:
- 对话尚未耗尽
Token
开启新对话则额外消耗1
快速请求次数。 - 对话超过最大
Token
(也就是200K
),会被额外计算为1
次快速请求。 - 单次回答中调用超过
25
次工具后,之后的问题会被额外计算为1
次快速请求。
应对方法:
- 让
claude-3.7-sonnet
自己寻找上下文(Agent模式才会有这个能力),而不是手动指定整个文件作为上下文(这真的很浪费上下文)。 - 降低新对话的开启频率,有些时候你的
Token
还没有消耗殆尽。根据上面的猜测,上次对话未耗尽的Token
在新开对话后会被直接丢弃。所以不要做无意义的浪费,尽可能的消耗Token
。 - 在
.cursorrules
中让每次回答都使用xxxxx
开头,如果回复出现xxxxx
消失 就基本可以判断Token耗尽了。
关于 自动测试并修复问题
前提
- 你的工具要支持进行
单元测试
功能才能进行自动测试
行为。 - 你要开启
YOLO
模式才能享受自动测试
带来的便利。
步骤
- 让
claude-3.7-sonnet
编写单元测试
- 配置好对应的
环境变量
- 大部分情况下
claude-3.7-sonnet
都能知道应该做什么,但是为了节约快速请求
次数我们一般会让他尽可能一次性完成测试目标
话术
请为 某某 功能编写单元测试,并运行它。如果出现问题请进行修复,直到通过测试。
更换使用的终端
Ctrl
+ Shift
+ P
唤起命令框,输入下面命令:
>Terminal: Select Default Profile
选择 Git Bash
,重启 Cursor
客户端。
Q: 为什么选择
Git Bash
?
A: 因为Cursor
总是会使用Linux/MacOS
的命令格式,导致白白浪费工具调用次数。使用PowerShell
又总会失败。所以这里选择了Git Bash
,开发者应该都有这个东西吧?对吧?
对话示例
图片太长了,这里折叠一下。
关于Trae使用体验
依托,就是依托。没有规则约束,上下文和没有差不多。用起来我感觉我被喂了依托赛博答辩。
如何知道自己的提问被关注?
你有什么想问的可以在下面进行提问。如果你收到了我的点赞,代表接下来我会尝试更新对应内容。