极狐GitLab

Agent 能直接改文件以后,工具审批该怎么设

极狐GitLab
2026年10月23日
13109
分享:

Agent 能直接改文件以后,工具审批该怎么设

定义框:工具审批是极狐GitLab Duo Agent 在读取文件、运行命令或调用外部工具前,由用户或管理员决定是否放行的控制机制。它解决的不是“Agent 会不会回答”,而是“Agent 能不能执行”。默认的一次批准、会话级批准与拒绝,分别对应单次授权、限定参数的会话授权和直接阻断。

为什么 Agent 越能干,审批边界越重要

传统聊天助手只返回文字,答错了最多浪费几分钟。Agentic Chat 会结合项目文件、议题、合并请求、提交、CI/CD 流水线与作业日志检索上下文,还能创建和编辑文件。能力从“建议”跨到“执行”以后,风险模型也变了:一次模糊的授权,可能放大成文件改动、Shell 命令或 MCP 工具调用。

极狐GitLab Duo CLI 提供三种工作模式。计划模式只读,适合先分析问题和生成实施方案;构建模式是默认模式,允许读写并执行任务;自动模式同样可读写,但使用工具时不再逐次请求审批。三者不是“快慢档”,而是不同的信任边界。

真正容易出事的不是 Agent 主动越权,而是团队把“为了省一次点击”误解成“以后都可以放行”。官方的会话级批准仍然绑定工具与参数,参数变化后需要再次审批;自动模式也不会绕过 Agent 工具治理,被设置为始终拒绝的工具仍然会被阻断。

第一步 先用只读计划把目标说清楚

不要一上来就让 Agent 修改仓库。先在项目目录启动极狐GitLab Duo CLI:

glab duo cli

进入会话后切换到计划模式,要求它先回答三件事:准备读取哪些文件、准备调用哪些工具、准备产生哪些改动。确认计划没有越过需求范围,再切回构建模式执行。

一个可复用的提示词可以这样写:

先只分析,不修改文件。列出你需要读取的目录、准备运行的命令、
可能写入的文件,以及每一步失败后的回滚方式。等我确认后再执行。

这一步的价值不是让提示词变长,而是把隐含动作变成可审查清单。对于生产配置、权限文件和流水线脚本,这比执行完再看 diff 更便宜。

第二步 按风险选择一次批准或会话批准

当 Agent 请求使用工具时,CLI 会给出三种选择:

  1. 批准:仅允许这一次调用,适合写文件、运行迁移、推送提交等有副作用的动作。

  2. 在会话中批准:本会话内允许使用同一工具与同一组参数;参数变化后仍要重新审批,适合重复读取日志或查询只读 API。

  3. 拒绝:当前调用不执行,适合命令范围不明、目标路径过宽或包含敏感目录的情况。

管理员需要先在群组或实例层开启会话批准,用户才会看到该选项。建议把审批策略按工具风险分层,而不是按“这个 Agent 看起来可信”分层:只读搜索与状态查询可以会话批准;写文件、Git 推送、Shell 和外部 MCP 写操作坚持单次批准;删除、覆盖和生产变更默认拒绝,改由人工执行。

工具类型

建议审批

原因

项目搜索、只读 API

会话批准

参数固定时副作用低

读取指定文件

会话批准

仍需限制目录范围

创建或编辑文件

单次批准

每次改动范围不同

Git 提交与推送

单次批准

会改变共享仓库状态

Shell 与 MCP 写操作

单次批准或拒绝

真实影响取决于参数

第三步 用项目规则固定上下文与禁区

审批只能控制“能不能调用”,还要控制 Agent “依据什么做决定”。极狐GitLab Duo Agentic Chat 可以使用整个项目中受 Git 跟踪的文件,并自主检索议题、合并请求、流水线和作业日志。团队应把工程约束写进版本库,而不是靠每个人重复口述。

可在仓库根目录放置 AGENTS.md:

# 项目规则
- 修改流水线前先解释变量来源与权限影响。
- 禁止改动 production/ 与 secrets/ 目录。
- 任何数据库迁移只生成方案,不直接执行。
- 输出变更后必须附回滚步骤与验证命令。

自定义规则适合个人与团队偏好,AGENTS.md 适合项目结构、目录约定和共享工程规范。两者可以同时使用。对于密码、私钥或生产配置,还应在项目“设置 > 通用 > 极狐GitLab Duo”中配置上下文排除项;排除后,Agent Platform 的相关功能都会忽略这些文件和目录。

第四步 自动模式只放进可丢弃的边界

自动模式会让 Agent 在允许范围内运行 Shell、执行 Git 写操作、创建或更新极狐GitLab 资源,并调用 MCP 工具或任务流,而且不再逐次请求批准。它适合隔离分支、临时工作区与可重建环境,不适合装有生产凭据的终端。

官方安全建议很直接:只在可信仓库和可以丢弃的分支使用;不要在含敏感凭据的设备或 Shell 中开启;人要留在会话里,并在合并前审查全部变更;任务结束后切回构建模式。自动模式不会覆盖 Agent 工具治理,因此管理员仍应把高风险工具设为始终拒绝,避免个人误操作突破组织底线。

五个落地坑,配置前先避开

  1. 把会话批准当永久授权:会话结束后授权会重置;参数变化时也需要重新审批。

  2. 只看工具名不看参数:同一个 Shell 工具,git status 与删除文件的风险完全不同,审批时必须展开参数。

  3. 把计划模式当安全扫描器:计划模式只保证不改文件,不代表分析结果一定正确,关键结论仍要核对来源。

  4. 规则写得太抽象:“遵循最佳实践”无法执行,应该明确目录、命令、验证与回滚要求。

  5. 自动模式开在日常主分支:自动化越顺,错误扩散越快;先在隔离分支验证,再走正常合并请求与审批流程。

常见问题

问:会话批准后,Agent 能随意换参数吗? 不能。官方说明会话批准针对工具及其参数,不同参数需要额外审批。这也是为什么审批界面里必须同时检查工具名和调用参数。

问:开启自动模式后,管理员的工具治理还生效吗? 生效。自动模式不会覆盖 Agent 工具治理,被策略设置为始终拒绝的工具仍会被阻止。

问:哪些团队暂时不适合开启自动模式? 没有隔离分支、没有代码评审、终端长期保存生产凭据,或无法回滚变更的团队都不适合。先把只读计划、单次审批和审查闭环跑顺,再谈自动执行。


先把 Agent 的执行边界画清楚:建议从“计划模式分析、构建模式单次审批、敏感目录上下文排除”这组三件套开始,再根据真实调用记录决定哪些只读工具可以升级为会话批准。想系统梳理自定义 Agent、MCP 工具与审批策略,欢迎联系极狐GitLab 团队获取 Agent 治理实践清单。