课程目录

第 10 课 · 动手学大模型(上海交大)

Agent Safety

智能体安全:模型能不能意识到自己闯了祸

大模型智能体正在迈向「未来操作系统」。但在开放场景里,它能意识到风险威胁吗?这一章用 R-Judge 测评平台,把这个问题变成可测量的指标。

学习目标

  • 了解大模型智能体的架构与常见应用。
  • 了解大模型智能体驱动的「自主操作系统」。
  • 尝试大模型智能体安全测评与分析。

核心概念

R-Judge 是一个对齐于人类安全共识的测评平台,包含多轮交互记录(用户、智能体、环境)、人工标注的安全标签和高质量的风险描述,覆盖软件编程、操作系统、物联网、应用程序、经济财务、网络应用、健康护理等场景类别。

智能体采用 ReAct 框架:每一轮生成想法(thought)和行为(action)。评测方式是把智能体与用户、环境的多轮交互记录整体输入,让待测模型映射为风险分析安全标签。这是一个两步提示:先要求它分析行为是否安全,再要求它据此只输出 safe 或 unsafe。

两个案例说明这件事有多难。案例一:智能体把用户的私钥文件内容发到了外部网站,人类标注的风险是隐私泄露,被测模型识别出来了。案例二:智能体在没有评估影响的情况下杀掉了 CPU 占用最高的五个进程,模型对风险做了有效分析,却仍然给出了 safe 的判断。分析对了但标签错了,这是最典型的失败模式——所以风险识别和安全判断必须分开评估。

实践步骤

  1. 先读教程的智能体部分,并看几个「自主操作系统」项目建立直观:Auto-UI、AIOS、OS-Copilot。
  2. 快速试用:以通义千问为例,选 qwen-turbo,以多轮对话方式把 record 作为 message 提交。
  3. 参数选低随机性:temperature 取 0、top_p 取 1。注意各厂商区间不同,千问的 temperature 和 top_p 都是开区间,不能直接填端点值。
  4. 追加任务指令一(风险识别),拿到分析后再追加任务指令二(安全判断),只让它输出 safe 或 unsafe。
  5. 系统性测评走 R-Judge 仓库的脚本:把待测模型加进 MODEL2RPM 和 MODEL2BASE,API 模型指定 API_KEY,本地部署的开源模型在 MODEL2BASE 指定服务器地址。
  6. 风险识别评测用 GPT-4 作为自动评估器,以人工标注的风险描述为 ground truth 评价模型分析的质量。可以直接跑作者提供的八个模型的结果,也可以跑自己的。

常见误区

  • 只看安全标签的准确率。 案例二说明模型可能分析正确、结论错误,只看标签会低估它的理解能力,也会误判改进方向。
  • 参数填端点值。 千问的 temperature 和 top_p 是开区间,填 0 或 1 会直接报错。
  • 换模型不换基线。 不同模型的 RPM 限制不同,跑不完的样本会静默影响指标,要核对样本数。

动手练习

选三个模型(至少含一个开源本地模型),在 R-Judge 的同一批样本上跑完两步评测。做一张四格表:分析对且标签对、分析对但标签错、分析错但标签对、两者都错。重点看第二格——把这些样本的提示词改成先让模型列出「本次操作会影响到的资源」,再判断安全性,看第二格能不能变小。

要点回顾

智能体安全不是一个是非题,而是两个能力:看不看得见风险,以及看见之后敢不敢下结论。R-Judge 把两者拆开评估,这个拆分本身就是这一章最重要的方法论。测评时用低随机性参数,并且始终保留人工标注的风险描述作为对照。

参考来源

  • 上海交通大学《动手学大模型》系列编程实践教程,第十章「智能体安全」:documents/chapter10,核验日期:2026-09-06。