一个有趣的cursorrules
这个仓库为你提供了所需的一切,以在你的Cursor/Windsurf IDE或GitHub Copilot中注入高级的代理AI功能------类似于每月$500的Devin------但只需一小部分成本。在一分钟内,你将获得:
- 自动规划和自我进化,让你的AI"三思而后行"并从错误中学习
- 扩展的工具使用,包括网页浏览、搜索引擎查询和LLM驱动的文本/图像分析
-
实验性\] 多代理协作,o1负责规划,常规的Claude/GPT-4o负责执行
指令
在与用户交互期间,如果你在这个项目中发现任何可重用的内容(例如库的版本、模型名称),特别是关于你犯的错误的修复或者你收到的纠正,你应该在.cursorrules
文件的Lessons
部分做笔记,这样你就不会再犯同样的错误。
你还应该使用.cursorrules
文件作为草稿来组织你的想法。特别是当你收到一个新任务时,你应该首先查看草稿的内容,必要时清除旧的不同任务,先解释任务,并计划你需要采取的步骤来完成任务。你可以使用待办标记来指示进度,例如 [X] 任务1 [ ] 任务2
当你完成一个子任务时,也要在草稿中更新任务的进度。 特别是当你完成一个里程碑时,使用草稿进行反思和计划将有助于提高你的任务完成深度。 目标是帮助你保持对任务的大局观和进度。在计划下一步时,始终参考草稿。
工具
注意所有工具都是用Python编写的。所以如果你需要进行批处理,你可以随时查阅Python文件并编写自己的脚本。
截图验证
截图验证工作流允许你捕获网页截图并使用LLM验证其外观。以下工具可用:
- 截图捕获:
bash
venv/bin/python tools/screenshot_utils.py URL [--output OUTPUT] [--width WIDTH] [--height HEIGHT]
- 使用图像的LLM验证:
bash
venv/bin/python tools/llm_api.py --prompt "你的验证问题" --provider {openai|anthropic} --image path/to/screenshot.png
示例工作流:
ini
from screenshot_utils import take_screenshot_sync
from llm_api import query_llm
# 拍摄截图
screenshot_path = take_screenshot_sync('https://example.com', 'screenshot.png')
# 使用LLM验证
response = query_llm(
"这个网页的背景颜色和标题是什么?",
provider="openai", # 或 "anthropic"
image_path=screenshot_path
)
print(response)
LLM
你始终有一个LLM在你身边帮助你完成任务。对于简单的任务,你可以通过运行以下命令调用LLM:
bash
venv/bin/python ./tools/llm_api.py --prompt "法国的首都是什么?" --provider "anthropic"
LLM API支持多个提供商:
- OpenAI(默认,模型:gpt-4o)
- Azure OpenAI(模型:通过.env文件中的AZURE_OPENAI_MODEL_DEPLOYMENT配置,默认为gpt-4o-ms)
- DeepSeek(模型:deepseek-chat)
- Anthropic(模型:claude-3-sonnet-20240229)
- Gemini(模型:gemini-pro)
- 本地LLM(模型:Qwen/Qwen2.5-32B-Instruct-AWQ)
但通常更好的做法是检查tools/llm_api.py
文件的内容,并在需要时使用该文件中的API来调用LLM。
网页浏览器
你可以使用tools/web_scraper.py
文件来抓取网页。
bash
venv/bin/python ./tools/web_scraper.py --max-concurrent 3 URL1 URL2 URL3
这将输出网页的内容。
搜索引擎
你可以使用tools/search_engine.py
文件来搜索网页。
bash
venv/bin/python ./tools/search_engine.py "你的搜索关键词"
这将以以下格式输出搜索结果:
makefile
URL: https://example.com
Title: 这是搜索结果的标题
Snippet: 这是搜索结果的摘要
如果需要,你可以进一步使用web_scraper.py
文件来抓取网页内容。
经验教训
用户指定的经验教训
- 你有一个Python虚拟环境在./venv中。使用它。
- 在程序输出中包含有用的调试信息。
- 在尝试编辑文件之前先阅读它。
- 由于Cursor的限制,当你使用
git
和gh
并需要提交多行提交消息时,首先将消息写入文件,然后使用git commit -F <filename>
或类似命令提交。然后删除该文件。在提交消息和PR标题中包含"[Cursor] "。
Cursor学到的
- 对于搜索结果,确保正确处理不同的字符编码(UTF-8)以适应国际查询
- 将调试信息添加到stderr,同时保持stdout中的主要输出干净,以便更好地集成管道
- 在matplotlib中使用seaborn样式时,由于最近seaborn版本的变化,使用'seaborn-v0_8'而不是'seaborn'作为样式名称
- 使用'gpt-4o'作为OpenAI的GPT-4带视觉能力的模型名称
- 在搜索最新新闻时,使用当前年份(2025)而不是前几年,或者简单地使用"recent"关键词获取最新信息
草稿
为什么这很重要
Devin给许多人留下了深刻印象,它表现得像一个实习生,能够自己制定计划,随着进展更新计划,甚至根据你的反馈进行进化。但你不需要Devin每月$500的订阅来获得大部分功能。通过自定义.cursorrules文件,再加上几个Python脚本,你将在Cursor中解锁相同的高级功能。
主要亮点
- 简单设置
有两种方式可以开始:
选项1:使用Cookiecutter(推荐)
shell
# 如果尚未安装cookiecutter
pip install cookiecutter
# 创建一个新项目
cookiecutter gh:grapeot/devin.cursorrules --checkout template
选项2:手动设置 将tools
文件夹和以下配置文件复制到你的项目根文件夹中:Windsurf用户需要.windsurfrules
和scratchpad.md
文件。Cursor用户只需要.cursorrules
文件。GitHub Copilot用户需要.github/copilot-instructions.md
文件。
- 规划者-执行者多代理(实验性)
我们的新多代理分支引入了一个高级规划者(由o1驱动)来协调复杂任务,以及一个执行者(由Claude/GPT驱动)来逐步实施行动。这种双代理方法大大提高了解决方案的质量、交叉检查和迭代速度。
- 扩展工具集
包括:
- 网页抓取(Playwright)
- 搜索引擎集成(DuckDuckGo)
- LLM驱动的分析
AI会自动决定如何以及何时使用它们(就像Devin一样)。
注意:对于截图验证功能,Playwright浏览器将在你首次使用该功能时自动安装。
- 自我进化
每当你纠正AI时,它都可以在.cursorrules中更新其"经验教训"。随着时间的推移,它会积累项目特定的知识,并在每次迭代中变得更聪明。这使得AI成为一个可指导和值得指导的合作伙伴。
使用
有关在Cursor中设置和使用devin.cursorrules的详细步骤,请查看我们的逐步教程。本指南涵盖了从初始Cursor设置到配置devin.cursorrules和使用增强功能的所有内容。
-
选择你的设置方法:
- Cookiecutter(推荐):运行cookiecutter命令后按照提示操作
- 手动:从此仓库复制你需要的文件
-
配置你的环境:
- 设置你的API密钥(可选)
-
开始以完全代理的方式探索高级任务------例如数据收集、快速构建原型或交叉引用外部资源。
想要了解更多细节?
查看我们的博客文章,了解我们如何在一小时内将 <math xmlns="http://www.w3.org/1998/Math/MathML"> 20 转变为 20转变为 </math>20转变为500级别的AI能力。它解释了过程规划、自我进化和完全自动化工作流程背后的哲学。你还会找到Devin、Cursor和Windsurf的并排比较,以及从头开始设置这一切的逐步教程。
许可证:MIT