文档 / 安全

沙箱与权限

智能体可以在哪里工作、哪些事无需询问即可完成,以及哪些事始终等待你的批准。

智能体在一个由 Yuli 引擎在每次操作中强制执行的边界内工作。这个边界延伸到哪里、智能体不经询问能做多少事,都由你决定。

项目内与项目外

出于安全考虑,智能体和项目面板只能在打开的项目内创建、移动、复制或删除文件。

位置 结果
项目内 智能体按照配置的自主性工作。每项更改都会经过更改窗口。
项目外已授权的文件夹 根据你的选择,可以只读,或读写。
其他任何路径或对电脑的更改 始终需要你确认。

授予其他文件夹的访问权限

  1. 打开 项目 → 文件夹访问…。
  2. 点击 添加文件夹…,在系统对话框中选择文件夹。
  3. 为该文件夹选择 读写 或 只读。
  4. 如需撤销,点击 移除访问权限。

权限按项目设置。新添加的文件夹默认为读写;如果只需要智能体查阅,请改为只读。

项目信任

首次打开项目时,Yuli 会询问 “你信任此项目吗?”。信任后,将允许运行项目的注解处理器(Lombok)和编译任务(Maven/Gradle),以进行完整分析。

选项 作用
信任 运行 Lombok 和 Maven/Gradle 来解析依赖。完整分析。
受限模式 不运行仓库中的代码:javac 使用 -proc:none 分析,Lombok 在内部建模,并且只使用已保存的 classpath。

在 项目 → 全局选项… → 安全 → 受信任的项目 中更改该决定:信任、限制、忘记 或 打开时再次询问。

信任只影响代码智能和构建,不会改变智能体的权限。

智能体不经询问能做多少事

引擎会评估每个操作,为其分配一个风险级别(低、中、高或严重),并附上说明以及如何撤销。根据授权预设,它会自动批准安全的操作,或向你询问。

预设 修改文件 创建文件 执行命令 删除
谨慎 询问 询问 询问 询问
平衡(默认) 自动 询问 询问 询问
自主 自动 自动 自动 询问

当智能体每一步都向你询问时,聊天输入框上方会出现 “全部批准?”。全部批准 会切换到“自主”:智能体编辑、替换和启动时不再逐步请求批准,而更改窗口和回滚可以撤销这些操作。继续询问 则忽略此提示。

哪些因素会提高风险

  • 删除文件或触及项目之外的路径。
  • 迁移和 .sql 文件。
  • 生产环境配置(application-prod、Terraform、Kubernetes、Helm)。
  • 依赖清单。
  • 一次性修改大量文件。
  • git push、merge 或改写历史。
  • 内容中包含机密。
  • 网络访问(curl、scp、ssh、docker push、npm publish、mvn deploy)。
  • DROP、TRUNCATE 或 DELETE FROM。

高级自主性

智能体 → 自主性… 用于设置让提议自动应用的规则。默认关闭:每个提议在写入磁盘前都由你审查。

设置 作用
每轮最大文件数 超过此数量时,需要授权。
允许的路径 (pathsAllow) 可自动应用的 glob,例如 src/**。为空则允许任何未被拒绝的路径。
拒绝的路径 (pathsDeny) 始终需要人工授权的 glob,例如 **/.env。
要求验证通过 只有在项目验证通过时才自动应用。

默认拒绝的路径包括 **/.env、**/.env.*、**/credentials*、**/*.pem、**/*id_rsa*、**/.ssh/** 和 **/migrations/**。

始终需要确认的路径

任何预设都无法跳过以下情况。写入路径中包含 .env、credentials、secret、id_rsa、.pem、.git/ 或 .ssh/ 的文件,始终需要你确认。

此外,质量契约会保护契约本身、Git hooks 和 CI 文件:智能体无法编辑它们。

Git、CI 和 DevOps:仅在你要求时

智能体不会主动进行提交、推送、合并、变基、打标签或 CI 操作。git commit、git push、gh、glab、az pipelines、az repos 等命令,以及 GitHub、GitLab、Jenkins 或 CloudBees 的 MCP 服务器工具都会被拦截。

  1. Yuli 会在你的消息中检测明确的请求(西班牙语或英语):“提交”“推上去”“push”“创建一个 PR”“部署”……
  2. 提出请求后,Git 在该会话中启用。
  3. 即便如此,每个操作仍需你批准。

创建分支或 worktree 需要单独明确提出。即使你说“提交并推送”,智能体也会在当前分支上工作。

被拦截的数据库客户端

智能体不能使用命令行数据库客户端:sqlplus、sqlcl、sqlcmd、bcp、sqlite3、psql、mysql、mariadb、mongo、mongosh、isql、db2、impdp、expdp、rman 等。所有查询都必须经过 Yuli 的工具及其策略。参见安全的数据库访问。

在订阅模式下

使用 Claude Code、Kiro、Codex 或 Antigravity 时,适用相同的规则。Yuli 通过 hooks 以及作为 ACP 客户端来执行这些规则:

  • 在项目内,智能体不受打扰地工作;在项目外,它会询问你。
  • 仅在你要求时使用 Git、CI 和分支。
  • 绝不读取机密。

在 全局选项 → AI 和模型 → AI 模式 中,你可以关闭 强制执行规则,切换为“仅提醒”:Yuli 会报告缺失的内容,但不会阻止。Git 和机密始终受到保护。