安全优先设计
Triggerfish 建立在一个前提之上:LLM 零权限。它请求操作;策略层做决定。每个安全决策都由 AI 无法绕过、覆盖或影响的确定性代码做出。
本页解释 Triggerfish 为何采用这种方法,它与传统 AI 智能体平台有何不同,以及在哪里可以找到安全模型每个组件的详细信息。
为什么安全必须在 LLM 之下
大语言模型可以被提示注入。精心构造的输入——无论来自恶意外部消息、被污染的文档还是被入侵的工具响应——都可能导致 LLM 忽视其指令并执行被禁止的操作。这不是理论风险,而是 AI 行业中有充分文档记录的、尚未解决的问题。
如果你的安全模型依赖 LLM 遵守规则,一次成功的注入就可以绕过你构建的所有安全防护。
Triggerfish 通过将所有安全执行移至 LLM 之下的代码层来解决这个问题。AI 永远看不到安全决策。它永远不评估某个操作是否应该被允许。它只是请求操作,而策略执行层——作为纯粹的确定性代码运行——决定这些操作是否继续。
安全 LLM 层没有任何机制可以覆盖、跳过或影响策略执行层。没有"解析 LLM 输出寻找绕过命令"的逻辑。这种分离是架构性的,而非行为性的。 :::
核心不变量
Triggerfish 中的每个设计决策都源于一个不变量:
相同输入始终产生相同的安全决策。没有随机性,没有 LLM 调用,没有裁量权。
这意味着安全行为是:
- 可审计的 —— 你可以重放任何决策并得到相同结果
- 可测试的 —— 确定性代码可以被自动化测试覆盖
- 可验证的 —— 策略引擎是开源的(Apache 2.0 许可),任何人都可以检查
安全原则
| 原则 | 含义 | 详情页面 |
|---|---|---|
| 数据分类 | 所有数据携带敏感度级别(RESTRICTED、CONFIDENTIAL、INTERNAL、PUBLIC)。分类在数据进入系统时由代码分配。 | 架构:分类 |
| 禁止降级写入 | 数据只能流向分类级别相同或更高的渠道和接收者。CONFIDENTIAL 数据不能到达 PUBLIC 渠道。无例外。 | 禁止降级写入规则 |
| 会话 Taint | 当会话访问某个分类级别的数据时,整个会话被标记为该级别。Taint 只能升级,永不降低。 | 架构:Taint |
| 确定性 Hook | 八个执行 hook 在每个数据流的关键点运行。每个 hook 都是同步的、有日志记录的和不可伪造的。 | 架构:策略引擎 |
| 代码级身份 | 用户身份在会话建立时由代码确定,而非由 LLM 解释消息内容。 | 身份与认证 |
| 智能体委托 | 智能体间调用由加密证书、分类上限和深度限制管控。 | 智能体委托 |
| 密钥隔离 | 凭证存储在操作系统钥匙串或保管库中,永远不在配置文件中。插件不能访问系统凭证。 | 密钥管理 |
| 审计一切 | 每个策略决策都记录完整上下文:时间戳、hook 类型、会话 ID、输入、结果和评估的规则。 | 审计与合规 |
传统 AI 智能体 vs. Triggerfish
大多数 AI 智能体平台依赖 LLM 来执行安全。系统提示说"不要分享敏感数据",然后信任智能体会遵守。这种方法有根本性弱点。
| 方面 | 传统 AI 智能体 | Triggerfish |
|---|---|---|
| 安全执行 | 给 LLM 的系统提示指令 | LLM 之下的确定性代码 |
| 提示注入防御 | 寄希望于 LLM 抵抗 | LLM 一开始就没有权限 |
| 数据流控制 | LLM 决定分享什么是安全的 | 分类标签 + 代码中的禁止降级写入规则 |
| 身份验证 | LLM 解释"我是管理员" | 代码检查加密渠道身份 |
| 审计跟踪 | LLM 对话日志 | 带完整上下文的结构化策略决策日志 |
| 凭证访问 | 所有用户共用的系统服务账户 | 委托用户凭证;继承源系统权限 |
| 可测试性 | 模糊——取决于提示措辞 | 确定性——相同输入,相同决策,每一次 |
| 开放验证 | 通常是专有的 | Apache 2.0 许可,完全可审计 |
Triggerfish 并不声称 LLM 不可靠。它声称 LLM 是安全执行的错误层级。经过良好提示的 LLM 大多数时候会遵循其指令。但"大多数时候"不是安全保证。Triggerfish 提供保证:策略层是代码,代码每次都按指令执行。 :::
纵深防御
Triggerfish 实现了十三层防御。没有单独一层是够用的;它们共同形成安全边界:
- 渠道认证 —— 会话建立时代码验证的身份
- 权限感知的数据访问 —— 源系统权限,而非系统凭证
- 会话 taint 跟踪 —— 自动的、强制的、仅升级的
- 数据溯源 —— 每个数据元素的完整出处链
- 策略执行 hook —— 确定性的、不可绕过的、有日志记录的
- MCP Gateway —— 安全的外部工具访问,具有按工具的权限
- Plugin 沙箱 —— Deno + WASM 双重隔离
- 密钥隔离 —— 操作系统钥匙串或保管库,永远不在配置文件中
- 文件系统工具沙箱 —— 路径限制、路径分类、taint 作用域的操作系统级 I/O 权限
- 智能体身份 —— 加密委托链
- 审计日志 —— 所有决策都记录,无例外
- SSRF 防护 —— IP 拒绝列表 + 所有出站 HTTP 的 DNS 解析检查
- 记忆分类门控 —— 写入自身级别,只能向下读取
后续步骤
| 页面 | 描述 |
|---|---|
| 分类指南 | 为渠道、MCP 服务器和集成选择正确级别的实用指南 |
| 禁止降级写入规则 | 基本数据流规则及其执行方式 |
| 身份与认证 | 渠道认证和所有者身份验证 |
| 智能体委托 | 智能体间身份、证书和委托链 |
| 密钥管理 | Triggerfish 如何跨层级处理凭证 |
| 审计与合规 | 审计跟踪结构、追踪和合规导出 |
