Skip to main content
CC Safety Net 位于编码智能体与受保护工具之间。每个受支持的工具操作都会在执行前接受检查。允许的操作继续执行,被阻止的操作会返回一条带处理建议的结果。本页说明一次工具调用的完整流程。 把各个智能体接入 CC Safety Net 的那层集成,见集成架构

一次工具调用的生命周期

1

智能体准备工具调用

智能体决定运行某项操作。它可能是 git reset --hard 这样的 shell 命令,也可能是文件写入、编辑、搜索或 patch。然后,智能体把操作交给自己的工具层。
2

集成拦截调用

该智能体对应的 CC Safety Net 集成会在工具执行前、操作系统看到它之前接收这次调用。部分智能体把 CC Safety Net 作为短生命周期的子进程 hook 调用,另一些则在进程内以插件或扩展的形式加载它。两种方式运行的是同一套防护。哪个智能体采用哪种模型,请参阅集成架构
3

CC Safety Net 检查操作

CC Safety Net 在深度、大小和字段数量的限制内读取工具输入。它只解析一次输入,然后按按顺序检查的内容中的固定次序逐阶段运行。这个次序不随智能体而变。
4

返回允许或阻止结果

安全的调用会正常执行。被阻止的调用不会运行。智能体会收到一条消息,其中写明原因、触发阻止的命令和后续操作。请参阅阻止消息的形式
5

判定可供审计

拒绝判定会追加到本地审计日志。当配置的审计范围包含允许判定时,符合条件的允许命令判定也会记录下来。请参阅审计记录

按顺序检查的内容

每次工具调用都会按以下顺序走过同样的阶段:
  1. 有界输入提取。 在深度、节点数、键数和大小限制内,从工具输入中读出命令。超过任一限制就阻止调用,避免无界遍历。
  2. 单次解析。 命令只解析一次,并生成后续阶段共用的结构化事实。解析器预算耗尽时,所有安全级别都会阻止调用。
  3. 策略文件保护。 任何会修改或删除 CC Safety Net 自己的 policy.json、其目录或祖先目录的操作都会被直接阻止。
  4. Git 元数据保护。 任何会删除、移动、覆盖或 patch 仓库 .git 元数据或 hooks 目录的操作都会被直接阻止,包括从工作目录内部发起的操作。
  5. 加载配置。 解析出你的策略、rulebook 和安全级别。
  6. 敏感路径保护。 对照内置的敏感位置(.env~/.ssh、云服务和编码 CLI 的凭证文件)以及你配置的拒绝路径,检查命令、路径、搜索和 patch。
  7. 破坏性命令分析。 把命令拆成命令段,展开包装器和解释器,再交给对应的分析器分类。分析器覆盖 gitrmRemove-Itemfindxargsparallel、设备命令和自定义规则。
第 3 和第 4 步有意在第 5 步之前运行。这两项保护始终启用,配置无法削弱它们,因为它们在读取配置前就已生效。第 6 步由策略控制,因此你可以禁用它或用自己的拒绝路径扩展它。 同一序列的维护者视角,包括阶段名称和证据,见架构;分类器的内部机制见分析引擎

为什么分析意图,而不是匹配字符串

CC Safety Net 分析命令做什么,而不是它长什么样。它会解析可执行文件、子命令、标志和参数,再按该可执行文件的选项语法进行分析。 两者都以 git checkout 开头。如果不重复实现 Git 的选项逻辑,简单的前缀规则无法区分这两种结果。结构化分析还能应对调换顺序的标志(rm -r -f /)、shell 包装器(sh -c "rm -rf /")和解释器单行命令(python -c 'import os; os.system("rm -rf /")')。CC Safety Net 最多会展开并重新分析 10 层嵌套命令。 本页不会列出每一条规则。完整阻止行为矩阵见被阻止的命令,有意允许的内容见被允许的命令

阻止消息的形式

智能体会以工具结果的形式收到这条阻止消息:
消息还可能包含匹配的 Rule: id、Tool: 名称、触发阻止的 Segment:,以及回退配置生效时的 Config warning:。命令和命令段只保留摘录。消息离开进程前,所有内容都会经过机密脱敏。 阻止不会结束智能体会话。消息会作为普通工具结果返回,引导智能体继续任务,避免反复尝试命令变体。结尾指令由规则的 intent 决定: 这些消息为何这样写,以及为何指令只是建议、执行始终由防护负责,见设计原则

审计记录

CC Safety Net 始终把拒绝记入本地审计日志,默认还会记录允许的命令判定。用以下命令读取日志:
日志位置、每条记录包含什么、记录保留多久,以及写入前具体会脱敏哪些内容,都在审计日志参考中说明。

判定出乎预期时

1

询问原因

npx cc-safety-net explain "<command>" 会对一条命令重放分析过程,显示命中了哪条规则以及原因。加上 --json 可获得结构化跟踪。
2

检查保护是否确实生效

npx cc-safety-net status 会在一屏之内输出 readydegraded,并把所有未生效的项列在 Not active 下,其中包括已禁用的 Claude Code 插件。degraded 表示某个配置来源被拒绝,当前执行的是回退配置。哪些生效、哪些没有,以及如何修复,见配置恢复npx cc-safety-net doctor 会给出完整报告。
3

调整或报告

如果阻止本身没错,只是对你的工作流过于严格,可以改用别的安全模式,或为个别规则添加覆盖。如果安全的命令被阻止,或破坏性命令没被阻止,请参阅故障排除安全策略,了解该向哪里报告。

本页未涵盖的内容

CC Safety Net 只分析智能体发起的工具调用。它看不到任意二进制文件内部、未配置或不透明的命令代理,以及网络活动中的行为。它是静态的执行前策略检查,不是操作系统沙箱或权限边界。绕过已安装集成的命令也不受保护。完整列表和缓解措施见已知限制 接下来,请参阅集成架构,了解每个智能体如何连接到 CC Safety Net。
最后修改于 2026年8月31日