当前位置: 首页 > news >正文

Cursor智能体开发:Agent终端

Agent 会直接在你的终端中运行 shell 命令,并在 macOS、Linux 和 Windows 上通过安全沙箱执行。

沙盒

默认情况下,Agent 会在受限环境中运行终端命令,以防止未授权的文件访问和网络活动。命令会自动执行,并始终被限制在你的工作区内。

要深入了解各平台上沙盒的具体实现方式,请参阅 Implementing a secure sandbox for local agents。

平台要求

macOS

  • Cursor v2.0 或更高版本
  • 开箱即用,无需额外配置

Windows

  • 必须安装并配置 WSL2
  • 沙箱在 WSL2 内运行,施加与 Linux 相同的限制

Linux

  • 6.2 或更高版本的内核,并支持 Landlock v3 (CONFIG_SECURITY_LANDLOCK=y)
  • 已启用非特权用户命名空间(大多数发行版默认启用)

如果你的内核不满足这些要求,Agent 会回退为在运行命令前请求批准。

AppArmor 设置

一些发行版通过 AppArmor 限制用户命名空间。Cursor 桌面版软件包随附所需的配置文件,因此本地安装无需额外设置。

远程环境和独立的 CLI 不包含此配置文件。如果由于与用户命名空间相关的权限错误导致沙盒创建失败,请为你的发行版安装 AppArmor 软件包:

Debian / Ubuntu:

curl -fsSL https://downloads.cursor.com/lab/enterprise/cursor-sandbox-apparmor_0.6.0_all.deb -o cursor-sandbox-apparmor.debsudo dpkg -i cursor-sandbox-apparmor.deb

RHEL / Fedora:

curl -fsSL https://downloads.cursor.com/lab/enterprise/cursor-sandbox-apparmor-0.6.0-1.noarch.rpm -o cursor-sandbox-apparmor.rpmsudo rpm -i cursor-sandbox-apparmor.rpm

安装完成后,重启 Cursor 或你的 CLI 会话,以使沙盒正常工作。

沙盒的工作方式

沙盒在允许工作区操作的同时防止未经授权的访问:

Access TypeDescription
File access对文件系统的只读访问
对工作区目录的读写访问
Network access默认被阻止。可通过 sandbox.json 或在设置中进行配置。
Temporary files/tmp/或等效的系统临时目录拥有完全访问权限

无论允许列表如何设置,.cursor配置目录始终受到保护。

某些命令需要对系统的完全访问权限,因此会绕过沙盒。当命令在沙盒外运行时,Agent 会进行提示并请求你的批准。

允许列表

允许列表中的命令会跳过沙盒限制并立即运行。当沙盒中的命令失败后出现提示时,你可以选择“Add to allowlist”将命令添加到允许列表。

当沙盒中的命令因限制而失败时,你可以:

OptionDescription
Skip取消该命令,让 Agent 尝试其他操作
Run在不受沙盒限制的情况下执行该命令
Add to allowlist无限制运行该命令,并自动批准其供后续使用

默认网络允许列表

启用网络访问后,出站连接将被限制在一组精心挑选的域名范围内。它们涵盖常见的软件包仓库、云服务商和语言工具链,因此大多数开发工作流无需额外配置即可运行。

查看默认允许的域名

Sandbox 配置

通过放在~/.cursor/sandbox.json(按用户生效) 或<workspace>/.cursor/sandbox.json(按仓库生效) 的sandbox.json文件自定义沙箱行为。可控制网络访问、文件系统路径、构建缓存等。

有关完整的 schema、网络匹配模式语法、合并规则和受保护路径,请参见 sandbox.json 参考。

环境变量

Cursor 会向每个沙箱化的子进程注入环境变量。这些环境变量可供在沙箱内运行的脚本、构建工具和自动化使用。

变量平台描述
CURSOR_SANDBOXmacOS, Linux, Windows当进程在沙箱内运行时,其值为"seatbelt"(macOS) 或"native"(Linux/Windows) 。
CURSOR_ORIG_UIDmacOS, Linux启动 Cursor 的用户 UID,在沙箱应用任何命名空间或身份更改之前记录。
CURSOR_ORIG_GIDmacOS, Linux启动 Cursor 的用户 GID,在沙箱身份更改之前记录。
CURSOR_SANDBOX_LANDLOCK_STATUSLinux报告当前生效的沙箱后端:fully_enforced(Landlock) 或bubblewrap(Bubblewrap 回退) 。可用于诊断。

Linux:沙箱内的 UID 可能与您的实际用户不一致

在 Linux 上,沙箱会创建一个用户命名空间,并将进程重新映射为该命名空间内的 UID 0 (root) 。这意味着在沙箱化命令中,id -u$UID返回的是 0,而不是您的实际用户 ID。如果您的脚本或自动化需要 真实的宿主用户——例如设置文件所有权或向 Docker 传递--user——请改为读取CURSOR_ORIG_UIDCURSOR_ORIG_GID

Docker 和容器自动化

在自动化规则和脚本中,一种常见做法是运行需要与主机用户身份保持一致的 Docker 容器。由于沙盒在 Linux 上会重新映射 UID,依赖$(id -u)会得到错误的值。请改用CURSOR_ORIG_*变量:

docker run --rm \ --user "${CURSOR_ORIG_UID:-$(id -u)}:${CURSOR_ORIG_GID:-$(id -g)}" \ -v "$PWD:/work" -w /work \ my-image build

${CURSOR_ORIG_UID:-$(id -u)}这一后备写法可确保该命令在沙盒之外也能运行,因为那里没有设置这些变量。

编辑器配置

Settings > Cursor Settings > Agents > Auto-Run中配置 Agent 运行终端命令的方式。

自动运行模式

选择 Agent 如何运行命令执行、MCP 和文件写入等工具:

模式说明
在沙盒中运行在可能的情况下,工具和命令会在沙盒中自动在沙盒内运行。适用于 macOS、Linux 和 Windows (通过 WSL2) 。
每次确认所有工具和命令在运行前都需要用户确认。
全部自动运行Agent 会自动运行所有工具和命令,无需用户确认。

自动运行的网络访问

选择在沙盒中运行的命令如何访问网络:

ModeBehavior
sandbox.json Only网络仅限于sandbox.json允许列表中的域名。不添加任何 Cursor 默认配置。
sandbox.json + Defaults你的允许列表加上 Cursor 的内置默认配置(常见包管理器等)。这是默认选项。
Allow All在沙盒中允许所有网络访问,不受sandbox.json限制。

保护设置

SettingDescription
Command Allowlist可在沙盒之外自动运行的命令。
MCP Allowlist可在沙盒之外自动运行的 MCP 工具。
Browser Protection防止 Agent 自动运行 Browser 工具。
File-Deletion Protection防止 Agent 自动删除文件。
Dotfile Protection防止 Agent 自动自动修改诸如 .gitignore 之类的点文件。
External-File Protection防止 Agent 自动在工作区之外创建或修改文件。

Enterprise controls

仅适用于 Enterprise 订阅。

Enterprise 管理员可以覆盖编辑器配置,或更改终端用户可见的设置。前往 web dashboard 的Settings > Auto-Run查看和更改这些设置。

SettingDescription
Auto-Run Controls启用对自动运行和沙盒模式的控制。禁用时,命令会在可用时在沙盒中自动运行,否则会请求权限。
Sandboxing Mode控制沙盒是否对终端用户可用。启用后,即使命令不在允许列表中,也会在沙盒中自动运行。
Sandbox Networking选择在沙盒中运行的命令是否具有网络访问权限。
Delete File Protection防止 Agent 自动删除文件。
MCP Tool Protection防止 Agent 自动运行 MCP 工具。
Terminal Command Allowlist可在不使用沙盒的情况下自动运行的命令。启用沙盒后,不在此列表中的命令会在沙盒模式下自动运行。
Enable Run Everything赋予终端用户启用 "Run Everything" 自动运行模式的能力。

故障排查

某些 shell 主题 (例如 Powerlevel9k/Powerlevel10k) 可能会干扰 内联终端输出。如果你的命令输出出现截断或 格式错乱,请在 Agent 运行时禁用该主题或切换到更简洁的提示符。

为 Agent 会话禁用重量级提示符

在你的 shell 配置中使用CURSOR_AGENT环境变量来检测 Agent 是否正在运行,并在此情况下跳过初始化复杂的提示符或主题。

# ~/.zshrc — 当 Cursor Agent 运行时禁用 Powerlevel10kif [[ -n "$CURSOR_AGENT" ]]; then # 跳过主题初始化以提高兼容性else [[ -r ~/.p10k.zsh ]] && source ~/.p10k.zshfi
# ~/.bashrc — 在 Agent 会话中回退到简单提示符if [[ -n "$CURSOR_AGENT" ]]; then PS1='\u@\h \W \$ 'fi

《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章,前6章涵盖深度学习基础,包括张量运算、神经网络原理、数据预处理及卷积神经网络等;后5章进阶探讨图像、文本、音频建模技术,并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法,每章附有动手练习题,帮助读者巩固实战能力。内容兼顾数学原理与工程实现,适配PyTorch框架最新技术发展趋势。

http://www.cnnetsun.cn/news/2125889.html

相关文章:

  • 腾讯Youtu-VL多模态模型实战:手把手教你搭建图片问答机器人
  • 电脑无法连接互联网?5 种高效解决方法,零基础也能一键修复
  • 番茄小说下载器终极指南:5分钟打造个人数字图书馆
  • 项目介绍 基于Python的笔记本电脑价格数据分析与可视化系统设计与实现(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢
  • Wan2.2-I2V-A14B合规实践:符合《生成式AI服务管理暂行办法》私有部署
  • 3步解锁QQ音乐加密格式:QMCDecode让你的音乐收藏重获自由[特殊字符]
  • 如何快速实现番茄小说离线阅读:番茄小说下载器完整指南
  • AI Agent 避坑指南:三个月实战踩坑与架构演进
  • Intv_ai_mk11 操作系统原理问答助手:深入解析进程、线程与内存管理
  • IPATool 实战指南:解锁App Store应用下载的3种创新用法
  • HoRain云--PowerShell核心概念全解析
  • 机器学习算法原理:从输入到输出的映射解析
  • 丹青幻境‘画意描述’怎么写?掌握这5个技巧,出图率翻倍
  • 如何快速配置Parsec虚拟显示驱动:实现多显示器扩展的完整指南
  • 蓝牙技术在安卓开发中的应用:全面指南与面试准备
  • Android蓝牙应用开发高级指南:从基础到实战
  • Zapier与SmolAgents实现邮件智能分类的两种方案
  • ARMv8内存管理与TCR_EL2寄存器详解
  • 3分钟掌握AlwaysOnTop:让任意窗口永远保持在最前端的终极方案
  • DLCM架构:动态大概念模型如何优化语言模型计算效率
  • 曜华激光5-100MW光伏组件生产线扩展性分析:后期能升级全自动吗?
  • 基于LangChain与FastAPI的AI应用开发实战:从沙盒到生产部署
  • 别再死记硬背节点了!用Dynamo玩转Revit几何建模,这10个核心操作你得会
  • ncmdump工具:终极NCM格式解密转换指南
  • LM Z-Image 快速体验:使用Ollama一键拉取并运行轻量级镜像
  • ArcGIS Pro 拓扑编辑实战:用‘地图拓扑’功能批量修改共享边界的完整流程
  • postgresql 拼接字段
  • ContextAnyone:基于上下文感知的角色一致性视频生成技术
  • Silicon Labs低成本蓝牙SoC BG22L/BG24L解析与选型指南
  • Godot资源解包终极指南:快速提取游戏资源的完整实践教程