文章讲述 Trail of Bits 如何把 AI 从“员工自用工具”升级为组织级操作系统:先定义 AI-assisted、AI-augmented、AI-native 三层演进,再针对自我优越偏差、身份威胁、对不完美的容忍度低和不透明感等阻力,建立 AI Handbook、能力成熟度矩阵、黑客松机制、技能仓库、受控插件市场、沙箱与安全默认配置,并把经验沉淀为可复用资产。
这篇文章改编自我在 [un]prompted 上的一次演讲,该会议面向 AI 安全从业者。感谢 Gadi Evron 邀请我发言。你可以在下面观看录制的演讲,或下载 slides。
大多数公司发放 ChatGPT 许可证,然后等着看生产力数据是否会发生变化。而我们构建了一套系统。
一年前,Trail of Bits 大约只有 5% 的人支持我们的 AI 计划。其余 95% 的人从被动怀疑到积极抵制不等。如今,我们已经拥有 94 个插件、201 个 skills、84 个 specialized agents,并且在合适的项目中,AI 增强的审计员每周能发现 200 个 bug。这篇文章就是我们如何做到这一点的行动手册。我们已经将其中大部分开源了,所以你今天就可以直接拿去用。
Dan Guido - 200 Bugs/Week/Engineer: How We Rebuilt Trail of Bits Around AI | [un]prompted 2026 - YouTube
点击取消静音
Dan Guido - 200 Bugs/Week/Engineer: How We Rebuilt Trail of Bits Around AI | [un]prompted 2026 unprompted

unprompted10.2K subscribers
最近一篇 Fortune 文章 报道称,一项针对美国、英国、德国和澳大利亚 6,000 名高管的 National Bureau of Economic Research 研究 发现,AI 对就业或生产力没有可测量的影响。三分之二的高管表示他们在使用 AI,但实际使用时间只有每周 1.5 小时,90% 的公司报告称毫无影响。经济学家称之为新的 Solow 悖论,引用的是 Robert Solow 在 1987 年指出的模式:“你能到处看到计算机时代,但在生产率统计中看不到。”
AI 是有效的。大多数公司只是用错了方式。它们给人们工具,却没有改变系统。这就是 AI-assisted 和 AI-native 之间的差距。前者是工具,后者是操作系统。
“AI-native” 这个词被频繁提起。按照我的理解,它有三个层次:
AI-assisted 是几乎每个人的起点。你给人们提供 ChatGPT 或 Claude 的访问权限。他们用它来起草邮件、生成模板、总结文档。它是一个生产力工具。组织没有改变,工作流没有改变。你只是把同样的事情做得稍微快一点。
AI-augmented 是你开始重新设计工作流的阶段。你不再只是把 AI 当作工具,而是把 agents 放进流程中,改变工作的实际流转方式。也许 AI 先做一轮代码审查,然后人类做第二轮。这个过程本身就不同了。
AI-native 是结构性的转变。组织从一开始就按照 AI 是核心参与者来设计。它不是你拿来使用的工具,而是一个始终在场的队友。你的知识管理、交付模型、专业能力,全部都被设计成可以被 agents 消费并放大的形式。
在 Trail of Bits,这在具体层面意味着:我们的安全专业知识像代码一样复利增长。我们做的每一个项目,构建的 skills 和 workflows 都会让下一个项目更快。每个工程师都能使用一整套基于 14 年审计知识构建出来的 specialized agents。这不是“我们使用 AI”,而是“AI 在团队里”。
当我第一次在 Trail of Bits 内部发起这项计划时,遭遇了大量反对。关于技术采用的研究一直显示同样的事情:问题从来不是软件本身,而是人们不愿意接受别的东西可能比他们的直觉更好。在我能够设计出一个能在这些阻力中运作的系统之前,我必须先理解四种具体的心理障碍。
自我增强偏差。 我们会高估自己的判断力。Paul Meehl 和 Robyn Dawes 证明,如果你把专家声称自己使用的变量拿出来,构建一个哪怕很粗糙的线性模型,这个模型也会胜过专家。不是因为它更聪明,而是因为它每次都应用相同的权重。你不会。你有时宿醉,有时分心,而且你从不会注意到这一点,因为你会把胜利归功于自己,把失误归咎于外部因素。随着资历提升,这种情况会更糟。你越是专家,就越相信自己的直觉,也就越不相信机器可能做得更好。正如 Jonathan Levav 所说:你越觉得自己独特,就越会抵制机器替你做决策。
身份威胁。 在 一项研究 中,研究人员向人们展示了同一个厨房自动化设备,但用了两种不同的表述:“替你做饭”和“帮助你更好地做饭”。自认是厨师的人拒绝了第一种表述,而接受了第二种表述,尽管设备是同一个。这里还有一个象征层面:人们不想让机器人给他们纹身(人类技艺),但他们并不介意一个去除纹身的机器人(工具性强,没有象征意义)。安全审计是象征性工作。会替代技能的 AI,会让人感觉像是在攻击“你是谁”。
对不完美的低容忍度。 Dietvorst 等人 做了一项研究,让参与者看到一个算法优于人类预测者。但在看到算法犯了一次错误后,他们就放弃了它,回到了人类,即使人类明显更差。我们会原谅自己的错误,却不会原谅机器的错误。他们的后续研究 找到了修复办法:让人们修改算法。哪怕只有一个可调整参数,也足以克服这种排斥。
不透明性。 2021 年发表在 Nature Human Behaviour 的一项研究 发现,人们对人类判断的主观理解很高,对 AI 判断的主观理解很低,但对两者的客观理解都接近于零。人们觉得自己理解医生是如何诊断的,实际上他们同样解释不了。那种“不理解”的感觉会扼杀“可控感”。
我们围绕这些阻力来设计系统,而不是对抗它们。
真正有效的解决办法
针对自我增强偏差,我们构建了一个成熟度矩阵。没人喜欢被告知自己还在 level 1。但这正是重点:当有一条可见的阶梯时,你就无法再争辩自己已经足够好了。它让讨论变得具体,而不是停留在“我觉得 AI 没用”。它还创造了社会证明。当你看到同伴处于 level 2 或 3 时,原本持观望态度的大多数人就会开始行动。
针对身份威胁,我们从不要求任何人停止做安全专家。我们只是给他们提供了一种表达这种身份的新方式。当一位资深审计员编写一个 constant-time-analysis skill 时,他并没有被替代,而是变得更加“持久”。他的专业知识被编码并可复用。这是身份升级,而不是威胁。成熟度矩阵也强化了这一点:level 3 不是“最会用 AI”,而是“发明新方法、构建工具”。专家的身份从“我不需要 AI”转变为“我是让 AI 变得危险的人”。
针对对不完美的低容忍度,我们投入了大量精力,减少 AI 以尴尬方式失败的可能性。经过筛选的 marketplace 意味着不会有带后门的随机插件。sandboxing 意味着 Claude Code 不会意外删除你的工作。guardrails 和减少 footgun 意味着在 Slack 里流传的“AI 干了蠢事”故事会更少。如果某人的第一次 AI 体验很糟,你可能会失去他好几个月。
针对不透明性,我们编写了一本 AI Handbook,把一切都写得很具体:哪些是被批准的,哪些是不允许的,哪些属于例外情况,以及该去问谁。清晰的规则恢复了控制感。
而贯穿始终的是:我们让采用变得可见且快速。延迟收益会扼杀采用。如果设置要花一个小时,而第一次结果又平平无奇,你就验证了每个怀疑者原有的判断。可复制粘贴的配置、一键设置、标准化工具链,全部都是为了让第一次体验又快又好。CEO 率先使用比人们想象的更重要。那 50% 的观望者看的是领导层实际做了什么,而不是它说了什么。
下面是我们实际构建的系统。六个部分,每个都针对我刚才描述的障碍:
| 障碍 | 核心问题 | 我们构建了什么 |
|---|---|---|
| 自我增强偏差 | “我已经足够好了” | 带有可见层级和真实后果的成熟度矩阵 |
| 身份威胁 | “AI 正在替代我是谁” | 奖励构建而不只是使用的 Skills 仓库 + hackathons |
| 对不完美的低容忍度 | 一次糟糕体验 = 失去数月 | 经过筛选的 marketplace、sandboxing、guardrails |
| 不透明性 / 信任 | “我不理解它如何做决定” | 解释风险模型而不只是规则的 AI Handbook |
这不是我们写好再交给别人的战略幻灯片。我们亲手构建了每一部分,把其中大部分开源,并在一家拥有 140 名员工、从事真实客户工作的公司里反复迭代。
第一步很枯燥,但至关重要:我们做了标准化。我们让所有人都使用 Claude Code,并把它当作任何其他企业工具来对待:受支持的配置、已知良好的默认值,以及一条明确的路径,告诉大家“我们这里就是这么做的”。
如果跳过这一步,你什么都做不成。最后你会有 40 套不同的工作流,却没有任何杠杆效应。
我们编写了一本 AI Handbook。不是用来教人如何 prompt 的,它的作用是消除歧义。
关键部分是使用政策:哪些工具被批准,哪些不被批准,尤其是在敏感数据方面。Cursor 不能用于客户代码(区块链项目除外;请改用 Claude Code 或 Continue.dev)。在受法律特权保护的客户会议中,不允许使用会议录音工具。现在,当客户问我们在他们的代码库上使用什么时,每个人都会给出相同的答案。
这本 handbook 不只是列出哪些被批准。它解释了每个决定背后的风险模型,让人们理解为什么。这正是解决不透明性障碍的方法:不是“直接相信这个”,而是“这是我们的推理”。一旦有了政策,你就可以更安全地推动采用。
我们构建了一个 AI Maturity Matrix,把 AI 使用变成一种一等的职业能力,就像“你会不会用 Git”或者“你会不会写测试”一样。
Trail of Bits AI Maturity Matrix,截至 2026 年 3 月
这不是一种感觉,而是一条阶梯:清晰的级别、清晰的期望、清晰的上升路径,以及停滞不前的真实后果。level 3 的样子取决于你的角色。一个 level 3 的工程师会构建能够自动提交 PR 和关闭 issue 的 agent 系统。一个 level 3 的销售代表会使用 agents 生成 pipeline 报告和 QBR 准备材料,而不需要手把手指导。一个 level 3 的审计员会运行能够执行完整分析、产出 findings、triage 和报告草稿的 agents。
这就是你如何避免两种失败模式:领导层一厢情愿地幻想采用会自然发生,或者组织分裂成“AI 人”和其他所有人。
我们把 hackathons 当作一种管理系统:短而集中的 2 到 3 天 sprint,只有一个目标。每当生态系统每周都在变化时,它们就是我们保持节奏的方式。
Claude Code Hackathon v2: Autonomous Agents
最近一个例子是:“Claude Code Hackathon v2: Autonomous Agents”。其中真正关键的是这两行:
这个变化是有意为之。它迫使每个人学习真实的约束条件:sandboxing、guardrails,以及如何组织工作,才能让 agents 成功。
这里有几个设计选择很重要:我们聚焦公共 repos,这样就能快速推进并展示真实结果。我们用活动量来衡量成功(创建/修复的 issues、审查/合并的 PR),而不是代码行数。每个人都两两结对工作,每次改动都由 buddy 审查。即使是“快速推进”的 sprint,也内置了质量控制。
hackathons 会创造动能。但如果不把它沉淀下来,动能就不会形成复利。
最重要的 artifact 是一个 skills repo。Skills 是可复用的、结构化的工作流,最好带有示例、约束,以及验证输出的方法。我们维护一个用于公司特定工作流的内部 skills repo,以及一个外部 skills repo,这样更广泛的社区可以验证并改进我们正在做的事情。
我们还创建了一个 curated marketplace,作为第三方 skills 的“已知良好”来源。一旦你告诉人们“去用 skills 和 plugins”,他们就会安装各种随机内容。这是把企业级思维应用到 agent 工具中的基本做法:如果你想推动采用,就需要一条安全的供应链。
我们让 默认值可以直接复制粘贴。我们建立了一个集中推荐 Claude Code 配置的 repo,这样 onboarding 就不再依赖口口相传。这是我们存放已知良好的设置、个人 ~/.claude/CLAUDE.md 的推荐模式,以及任何我们想标准化内容的地方。
我们让 sandboxing 成为默认值。如果你想要 autonomous agents,就需要 sandboxing。我们给人们提供了多种安全路径:devcontainer 选项、原生 macOS sandboxing 和 Dropkit。重点不是每个人都使用同一个 sandbox,而是每个人都有一个安全的 sandbox,而且它很容易采用。
我们减少了 footguns。我们通过 MDM 强化默认值。例如,我们通过 Jamf 推出了更安全的 package manager 默认设置,包括强制性的 package cooldown policies。降低风险最简单的方法,就是让默认路径成为安全路径。
最后,我们把 agents 连接到真实工具。一旦你有了政策、guardrails、sandboxes 和 skills,你就可以把 agents 连接到真实工具。我们发布过的一个例子是用于 Slither 的 MCP server。即使你不特别关心 Slither,重点也是一样的:MCP 会把你的内部工具变成 agents 可以可靠使用、而且组织可以治理的东西。
让我给你一些数据,看看这个系统实际上产出了什么。
在 [un]prompted 上引起全场注意的数据
工具规模: 在我们的内部和公共 skills repos 中,我们有 94 个插件,包含 201 个 skills、84 个 specialized agents、29 个 commands、125 个 scripts,以及 414 多个编码领域知识的 reference files。这就是复利效应:每个项目、每个审计员、每个实验都在扩充这个武器库。
广度很重要。我们有用于撰写销售提案、跟踪项目工时、新员工入职、准备会议博客文章,以及交付政府合同报告的 skills。内部 repo 有 20 多个针对特定漏洞类别的插件:ERC-4337、merkle trees、precision loss、slippage、state machines、CUDA/Rust review、Go 中的整数运算。每一个都把原本存在于某个人脑海中的专业知识打包成任何审计员都可以调用的东西。
交付影响: 对于某些代码库和范围允许的客户,我们从每周发现大约 15 个 bug 提升到了 200 个。一个审计员会运行一组 specialized agents,对整个代码库并行进行定向分析,然后验证结果。
现在,我们向客户报告的所有 bug 中,大约有 20% 最初都是由 AI 以某种形式发现的。它们会进入真正的客户报告。审计员会逐个验证,但 AI 正在发现那些人类可能会错过、或者根本没有时间去找的问题。
业务影响: 我们销售团队的人均收入平均为 800 万美元,而咨询行业基准是 200 万到 400 万美元。销售团队使用同样的 skills repos 来撰写提案、做竞争定位、准备会议,以及补充线索信息。同样的系统,同样的复利效应。
而且,这大概只是在认真构建这个系统的一年左右。模型每个月都在变好,skills repo 每周都在增长。
下面这些是我们正在积极攻关、但还没有很好答案的问题。
Private inference。 我们希望使用本地模型来降低成本并提高保密性,但 open models 还不够好。与最佳 closed models 相比,在 coding benchmarks 上仍然存在显著差距。我们正在评估本地 inference servers,以 full precision 运行 230B+ 模型。关键洞见是:速度比能力更能推动 adoption。没有人会用一个慢模型,即使它很聪明。与此同时,像 Tinfoil.sh 这样的 private inference providers(在 NVIDIA GPUs 上进行 confidential computing,并且可进行 cryptographically verifiable 验证)正在变得很有吸引力。
Prompt injection 和客户代码保护。 这是在客户代码上使用 AI 的一个生死攸关的问题。agent 所处理的数据,本质上对它自己就是可访问的。今天我们使用的是粗暴手段:敏感客户意味着不能访问 Web。长期来看,我们在研究像 nono 和 agentsh 这样的 agent-native shells,它们在 kernel 层面执行策略。
策略执行与持续学习。 我们通过 MDM 下发设置,但还没有把信号回收回来。目标是把整个公司变成一个每周都在改进操作系统的反馈回路。一种可能的长期架构是:位于 agents 和内部资源之间的 master MCP server,在 server 端执行策略。我们还没到那一步。
咨询业的未来。 这是让我夜里睡不着的那个问题。咨询商业模式假设你是在按时间计费,而且时间大致与专业能力相关。但当有些人借助合适的 agent setup 能比别人强出几个数量级时,这种相关性就会失效。问题就从“审计员花了多少小时”变成“审计员是否知道该把 agents 指向哪里,以及哪些 findings 才是真实的”。
我们还没有答案。但 Trail of Bits 提供服务的方式很可能会在未来 6 到 12 个月内改变。审计范围、定价、交付物,所有这些都在讨论之中。最先弄清楚这件事的公司会拥有结构性优势,而那些继续按小时计费的公司,会看到自己的利润率被压缩,因为竞争对手会用更少的时间交付更多成果。我们不会等着看自己会站在哪一边。
如果你想复制这一切,复制系统,而不是具体工具:
这就是我们到目前为止所做的,它已经改变了我们的交付速度,以及我们适应变化的速度。
我们所有的工具都是开源的:
我们正在招聘!我们正在寻找一位 AI Systems Engineer,直接与我一起加速本文中提到的一切;以及一位 Head of Application Security,带领一支大约 15 人、表现异常出色的顾问团队。请查看 trailofbits.com/careers。
- 原文链接: blog.trailofbits.com/202...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
作者暂未设置收款二维码