AI agent 运营指南 · 更新 2026-06-27

Agent Tool Permission Model Checklist:Read/Write Tools、Network Access、MCP Scopes、Browser Actions、Approval Prompts 与 Audit Logs

在接入 browsers、MCP servers、scrapers、codebase memory 和 command runners 前,判断 AI agent 可以 read、write、click、fetch、execute、remember 与 log 什么的实用清单。

Agent tools 并不等价。读取 URL、抓取页面、在 browser 中点击、写文件、运行命令、调用 MCP server、写入 memory 都有不同 blast radius。Permission model 的目标是在 agent 行动前把这些差异写清楚。

这份 checklist 把 Agent-Reach、Firecrawl、Playwright、Jina Reader、codebase-memory-mcp、Claude Code 和 SkillSpector-style reviews 连成一个实用模型:按 authority 分类工具、定义 approval prompts、限制 network access、分离 read/write path、记录 privileged actions,并让最终决策由人负责。

RepoDaily 判断

Agents 应从 read-only、source-grounded tools 开始。只有任务需要时,才增加 network、browser、write、command、MCP 和 memory permissions,并配套 owner approval、denied paths、scoped tokens、audit logs 和 stop path。好用的 agent tool model 不是最大自治,而是明确、可 review 的 authority。

RepoDaily fixture evidence:模拟权限边界测试

这不是 Claude Code、Codex、Playwright、Firecrawl 或任何单个 AI 产品的评测结果。RepoDaily 做了一个小型本地测试 fixture,用来检查本文提出的权限模型在模拟工具动作下,是否会按预期返回 allow、prompt 或 deny。

证据项Fixture 结果为什么重要局限性
模拟权限场景14/14 个模拟工具动作场景都返回了预期的 allow、prompt 或 deny。验证的是本文提出的权限模型,不是某个具体 AI 工具。只是 deterministic local fixture;没有连接 live agent service。
类似密钥文件的边界请求 `.env.example`、`private-data/`、`forbidden-paths/` 都会返回 deny。类似密钥的文件和私有数据需要比普通 repo read 更严格的规则。只使用 fake values;没有真实 credentials 或 customer data。
改变状态动作的边界写文件、MCP write actions、production-like browser actions 都需要 prompt,而不是静默 allow。Read-only research task 不应该静默升级成 write 或 account-level authority。Fixture 只是建模 action classes,没有执行真实 browser 或 MCP workflows。
命令边界`python -m pytest` 被允许;`rm -rf fixture-repo` 这类破坏性命令被 deny。安全验证命令和破坏性命令需要不同处理。破坏性命令只作为字符串被评估,没有被执行。
Memory 副作用边界如果没有定义 retention 和 deletion rules,memory write 会被 deny。一个只读任务如果持久化 private context,仍会产生长期风险。Fixture 没有使用 live memory server。
  1. 这节应理解为 RepoDaily 对 checklist 权限规则的自测,不是任何厂商或模型的评分。
  2. 这个测试支持页面建议:从窄 read access 开始,对 state-changing、off-scope、secret-like 或 persistent actions 返回 prompt 或 deny。
  3. 这个证据刻意保持小型和本地化,因此它是可复现 sanity check,不是完整产品 benchmark。

快速矩阵

权限表面默认策略审批触发审计证据
Read files允许读取 scoped repo approved pathsSecrets、private data、ignored files、customer logs 或 unrelated reposFiles read、denied paths、source citations
Write files任务 branch 或 sandbox 外默认禁止任何 source、config、migration、dependency、release 或 generated-file changeDiff、owner approval、test output
Network fetch允许 approved public docs 或 pinned sourcesPrivate URLs、auth cookies、internal services、customer systems 或 unknown domainsURL list、response source、data owner
Browser action先 read-only browsing;不用 personal profileClicks、forms、downloads、logins、admin panels、uploads、paymentsBrowser profile、actions、screenshots/traces
Scraping/crawling限制 depth、domain、rate 和 data typeLogin walls、copyrighted assets、personal data 或 large-scale crawlingDomain allowlist、crawl settings、output path
Command execution允许 lint/test/read-only commands;mutation 要 promptInstall、delete、deploy、migrate、chmod、curl pipe、credential 或 network commandsCommand log、approvals、exit status
MCP server一次只启用一个 server,并用 least privilegeServer 可读 files、browser、tickets、database、cloud、email 或 memoryServer inventory、scope、token owner
Memory writeRetention/deletion 未定义前禁止存 user data、repo secrets、customer context 或 cross-tenant factsMemory key、source、retention、deletion proof

Tool Permission 成熟度评分卡

给 agents 新工具前,先给 workflow 打分。

控制项0 分1 分2 分Owner 问题
Tool inventoryActive tools 未知部分 listTool、owner、scope、token、version 已跟踪Agent 今天能调用哪些工具?
Read/write split所有 action 同一权限有一些 promptsRead、write、command、network、memory 分离哪个 action 会改变状态?
Approval promptsAd hoc confirmations部分 risky prompts基于风险的 prompts 和 stop criteria什么时候必须 human approve?
Network scope任何 URL 都允许有部分 domain rulesAllowlist、depth、auth、data-type rules允许哪些 domains?
Audit logging没有可靠 logs部分 transcriptTool calls、inputs、outputs、approvals、diffs 已记录能重建一次 run 吗?
Revocation path无 disable plan知道手动 disableOwner 能 disable tool、token、memory 或 browser profile现在如何停止这个 tool?

30 分钟 Agent Tool Permission 测试计划

在启用新的 browser、MCP、scraper、memory 或 command tool 前使用。

0–5 分钟:tool inventory

列出 tools、owners、tokens、versions、scopes,以及每个是否可 read、write、execute、browse、fetch 或 remember。

成功标准每个 active tool 都有 owner 和 authority class。

5–10 分钟:permission table

为每个 tool 写 default policy、approval trigger、denied paths/domains/commands 和 audit evidence。

成功标准Run 前模型可 review。

10–18 分钟:controlled task

运行一个低风险任务,并捕获 tool calls、files、URLs、commands、browser actions、diffs 和 memory events。

成功标准Run 产出 evidence,且没有意外 authority。

18–24 分钟:abuse probe

尝试 near-boundary request:forbidden path、off-domain URL、write action、memory write 或 risky command。

成功标准Tool 按设计 stop、prompt 或 refuse。

24–30 分钟:rollout decision

决定 allow、restrict、disable 或继续测试;更新 logs、owners 和 incident response notes。

成功标准Permission change 有 owner、scope 和 rollback path。

权限设计流程

  1. 从任务开始:agent 必须读取什么信息、必须改变什么状态,以及最终由哪个 human decision 负责?
  2. 把每个 tool 分类为 read、write、execute、network、browser、MCP、memory 或 release/deploy authority。
  3. 为任务分配最小权限,并写下 denied paths、denied domains、forbidden commands、memory retention rule 和 stop action。
  4. 对会改文件、运行命令、离开本机、写 memory、触碰 secrets 或影响用户的 actions 添加 approval prompts。
  5. 运行一次 controlled task,并检查 logs:tool calls、file access、URLs、browser actions、commands、diffs、memory writes 和 reviewer decisions。
  6. 只在能改善 outcomes、且不隐藏 authority 或增加 review burden 的 task classes 中推广这个 permission model。

场景表

场景最小权限停止条件
Summarize public docs从 approved URLs network fetch,并输出 source-grounded answerAgent 跟随 allowlist 外链接或存储 private notes
Automate browser QADedicated browser profile、local/dev domains、保留 screenshots/tracesAgent 登录 personal/prod account 或意外提交 forms
Fix small code bugScoped file read/write、focused test command、无 deploy toolsAgent 触碰 secrets、migrations、infra 或 unrelated files
Crawl target site for agent research限制 domain、depth、rate 和 output出现 auth pages、personal data、large downloads 或 asset copying
Use codebase memory只对 scoped repo/task 读取 memoryMemory 未审批就写入或检索 cross-tenant facts
MCP server for tickets or docs单个 scoped token,先 read-onlyServer 可写 tickets、改变 repo state 或访问 unrelated systems
Security skill evaluationRead-only skill review 和 evidence outputAgent 执行 exploit-like commands 或混合 demo secrets 与 live environment

Tool Permission 风险清单

Tool authority collapse

当 read、write、execute、network 和 memory permissions 被打包在一起,人类就看不清风险在哪里增加。

Prompt-only governance

告诉 agent 小心不是 permission model。Approval gates、denied paths 和 logs 必须存在于 prose 之外。

Browser session leakage

带个人 cookies 的 browser tool 会把无害 research task 变成 account-level authority。

MCP scope creep

一个 MCP server 可能同时包含 file、ticket、database 和 cloud capabilities。每个 server 都要 scope 和 inventory。

Unlogged action

如果 privileged tool action 没有记录,incident response 就只能猜。

Memory side effect

Read task 仍可能因为 agent 写 memory 或存 private context 而产生长期风险。

权限实施模式

Read-only first

先使用 source-grounded read tools,一次 controlled run 成功后再增加 state-changing tools。

Action classes

把 read、write、execute、network、browser、MCP、memory、release/deploy 分成不同审批类别。

Allowlist plus denylist

Domain allowlists 和 path denylists 要一起使用;单独一个都会留下缺口。

Dedicated browser profile

Agent actions 使用独立 browser profile,并记录 clicks、forms、downloads 和 screenshots。

Tool-call audit bundle

保存 tool name、input、output summary、approval、owner、timestamp,以及 resulting diff/artifact。

Permission PR

把 new tools 或 wider scopes 当作 reviewed change,带 owner、rollback 和 incident response notes。

常见问题

给设计 agent tool permissions 的团队提供简短答案。

Agent 应该从什么权限开始?

从 read-only、source-grounded tools 开始。只有任务证明需要时,再增加 write、command、browser、MCP、network 和 memory permissions。

Approval prompts 足够吗?

不够。Prompts 有帮助,但还需要 denied paths、scoped tokens、browser isolation、tool inventories、audit logs 和 stop path。

MCP tools 应该怎么 review?

按 owner、token、scope、data access、write authority、logs 和 disable path 逐个 review server。

为什么 memory permission 要和 read permission 分开?

因为 read-only task 仍可能因为 agent 把 private 或 stale context 持久化到 memory 而产生长期风险。

相关雷达

AI Agent Tools 雷达

相关 RepoDaily 解读

来源

  1. Agent-Reach
  2. Firecrawl
  3. Playwright
  4. Jina Reader
  5. codebase-memory-mcp
  6. Claude Code docs
  7. Claude Code MCP docs
  8. SkillSpector

Feedback

这页是否帮助你做出决定?

匿名反馈只用于判断内容是否真正有用。

报告过期或缺失的证据