AI News HubLIVE
站内改写1 分钟阅读

我们如何设置云代理环境 · Cursor

Cursor 为他们的单体仓库开发了一个云代理环境,包括将云环境与本地开发匹配、通过 anydev CLI 简化界面、通过 Cursor Cloud MCP 实现自愈,以及改善代理体验。最终,云代理现已负责超过一半的合并 PR。

Cursor 团队在决定让云代理能够自主测试代码变更后,首先着手优化自身代码库的测试环境。他们发现,开发环境本身就是一个产品,只不过其用户是代理。为了让云代理高效工作,必须使云环境与本地开发环境一致,让代码库足够清晰以便代理无需隐性知识即可运行和测试代码,并且随着代码库的变化保持环境健康。

最初,Cursor 的开发者主要在 Mac 上工作,而云虚拟机运行 Linux,因此团队将各种开发工具和设置脚本适配到 Ubuntu 虚拟机,并创建了专用的 Dockerfile 作为云代理的起始镜像。同时,安全团队添加了网络出口限制、代理 Git 远程访问、提交和提交消息中的秘密扫描以及工具结果中的秘密编辑等功能,确保秘密安全。

即便环境就绪,代理仍然不擅长运行代码。为此,团队开发了名为 anydev 的命令行工具,代理可通过它启动所有服务。anydev 提供了多重帮助菜单,并包含一个监控进程,可自动重启长时间运行的构建命令,从而减轻模型负担。代理因此能够可靠地运行代码,并通过 screen 录制功能在 Slack 或 PR 中分享演示,工程师无需本地检出分支即可合并和部署代码。

为了维护环境健康,Cursor 构建了 Cursor Cloud MCP,提供动态可发现的工具接口,使代理能够检测和修复环境问题。基于 MCP,团队设置了 Cloud Doctor 自动化程序,定期检查故障,进行根因分析,并自动打开 PR 修复高置信度问题。此外,Cloud Doctor 还通过检查代理轨迹来改进技能和工作流,从而不断提升代理的开发体验。

通过这一系列努力,云代理在 Cursor 单体仓库中的采用率大幅提升:2024 年 12 月,代理撰写了约十分之一的合并 PR,而现在这一比例超过一半。团队总结道,环境是关键,并建议其他团队从三个问题入手:代理是否拥有与开发者相同的工具和数据?代理是否能找到记录实际工作方式的技能?代理是否能测试和验证核心工作流?