news 2026/10/28 18:54:03

《AI Agent原理与实战》2026版 第25课 可信赖的 Agent:边界与审核

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《AI Agent原理与实战》2026版 第25课 可信赖的 Agent:边界与审核

本文收录于专栏《AI Agent原理与实战》2026版—— 专栏系统覆盖 AI Agent 的记忆、工具、插件与实战,点击订阅可跟踪后续更新。

本课定位:系统能跑只是及格线,能被信任才能上线。本课讲三道防线:输出质量(系统消息框架)、威胁图谱五类风险、工具权限分级与 human-in-the-loop 确认闸门,实战给"删数据/改订单"加闸。总纲建议你在第 14 课后提前学本课——边界意识越早越好。

阶段 5|生产与安全 | 来源:课程自研补充

关键字:可信Agent、输出质量保障、权限分级、人在回路、安全边界、审核机制、风险防控、生产就绪

本节目录

  • 25.1 "可信赖"拆开看是什么
  • 25.2 输出质量保障:系统消息框架
  • 25.3 威胁图谱:五类风险与缓解
  • 25.4 工具权限分级与执行边界

本节目录

  • 25.1 "可信赖"拆开看是什么
  • 25.2 输出质量保障:系统消息框架
  • 25.3 威胁图谱:五类风险与缓解
  • 25.4 工具权限分级与执行边界

概念讲解

25.1 "可信赖"拆开看是什么

微软原课第 6 课把 trustworthy agent 的要求归纳为三件事:按设计执行(safety)、数据与访问受控(security)、隐私得到保护(privacy)。落到工程上,可信赖是三道防线的叠加:

  1. 输出质量保障——Agent 说的内容可靠、行为可预期;
  2. 工具权限分级——Agent 能做什么被明确划界,越界动作在代码层被拦住,而不是靠模型"自觉";
  3. 人机协同(Human-in-the-loop,人在回路)——高风险动作必须有人按下确认键才执行。

Anthropic 在 2025 年 8 月发布的可信赖 Agent 开发框架(2026-04 追加实践篇,检索日 2026-10,anthropic.com/research/trustworthy-agents)给出同样的结构,五条核心原则:人类保持控制权、对齐人类价值观、保障 Agent 交互安全、保持透明、保护隐私。两家口径的共同点值得记住:可信赖不是模型属性,是系统属性——它由你围绕模型搭的工程结构决定,而不是由模型能力决定。

25.2 输出质量保障:系统消息框架 (微软第 6 课:System Message Framework 四步法)

Agent 的系统提示词(system message)比普通聊天应用更重要,因为 Agent 要拿着它去驱动工具调用。微软课给出的可扩展做法是系统消息框架(system message framework),四步:

  1. 写一条元提示词(meta system message):让 LLM 扮演"系统提示词工程师",输入公司名、角色、职责,输出完整 system message;
  2. 写基础提示词:一段朴素的角色+任务描述(例:“你是 Contoso Travel 的订票助手,可以查航班、订票、取消订单……”);
  3. 组合生成:元提示词作 system、基础提示词作 user,让模型产出结构化的最终 system message(含目标、职责清单、语气、交互规则);
  4. 迭代改进:改基础提示词重新生成,对比评估——第一条 system message 几乎不可能一次写对。

这个框架的价值在于规模化:多个 Agent 共用一条元提示词,风格与安全条款一致,出问题只改一处。输出质量的更系统性度量(在线/离线评估、指标体系)在第 26 课展开。

25.3 威胁图谱:五类风险与缓解 (微软第 6 课:Understanding Threats)

微软课列出的五类威胁,配合缓解措施:

威胁攻击方式缓解
任务与指令篡改通过输入改变 Agent 的指令或目标输入校验与过滤;限制对话轮数
关键系统访问Agent 持有敏感系统权限,通信被攻击或被套话按需授权;通信加密;认证与访问控制
资源与服务过载借 Agent 之手高频调用工具服务,制造故障或账单限制请求数与轮数;预算上限
知识库投毒不攻击 Agent 本身,污染它读的知识库/检索源定期校验数据;写入仅限可信方
级联错误一个工具的错误扩散到下游系统受限执行环境(容器);重试与降级路径

注意这五条里只有第一条是"提示词层"的问题,其余四条都要靠工程控制解决。这也是本课案例的出发点:把"信任"写进代码,而不是写进提示词。

25.4 工具权限分级与执行边界 (微软第 6 课 Human-in-the-loop 思想的本课工程化)

给工具分三级是最小权限原则(principle of least privilege)的落地形式:

  • read(只读):查询类工具,可自动执行;
  • write(可写):改变外部状态的工具(下单、改地址、发邮件),执行前需人工确认;
  • deny(禁止):任何场景都不该由 Agent 触发的操作(删库、转账给新账户),直接拒绝。

分级的判断依据是可逆性与影响面:只读操作天然可逆;写操作需要确认;不可逆且影响大的操作没有理由暴露给模型。哪些操作必须人工确认?微软课给的判据是"用户批准或终止运行中的过程"——用户在多 Agent 系统里本身就是一个"Agent",拥有最终否决权。

案例实战:给"删数据/改订单"类操作加确认闸门

运行环境:本案例为纯 Python 标准库实现,无第三方依赖。Windows 环境:安装 Python 3.10+(python.org 下载或winget install Python.Python.3.12),python l25_gate_demo.py直接运行;Linux/macOS 同样零依赖可直接运行。以下实测在 Linux(Python 3.10.12)完成,输出在 Windows 上逐字节一致(代码只用json/input/print,无平台相关调用)。

目标:实现一个权限分级执行器——只读自动放行、写操作弹人工确认、危险操作直接拒绝,且每一步落审计日志。

步骤:

  1. 定义工具策略表(TOOL_POLICY):每个工具标 tier;
  2. 实现gated_execute():按 tier 分流,write 级暂停等待输入;
  3. 每次决策追加审计日志(谁、何时、什么参数、放行还是拒绝)。

完整代码(纯 Python 标准库,无框架依赖):

# 权限分级 + 人工确认闸门 + 审计日志(纯标准库)# 【已实测】2026-10,Python 3.10importjson TOOL_POLICY={"query_order":{"tier":"read","require_approval":False},"search_kb":{"tier":"read","require_approval":False},"update_address":{"tier":"write","require_approval":True},"cancel_order":{"tier":"write","require_approval":True},"drop_table":{"tier":"deny","require_approval":None},# 永不执行}AUDIT_LOG=[]defgated_execute(tool_name:str,args:dict,approver=None)->dict:policy=TOOL_POLICY.get(tool_name)ifpolicyisNone:return{"ok":False,"reason":f"未注册工具:{tool_name}"}tier=policy["tier"]iftier=="deny":AUDIT_LOG.append({"tool":tool_name,"args":args,"decision":"DENY"})return{"ok":False,"reason":"该操作被策略禁止 (tier=deny)"}iftier=="read":result=TOOLS_IMPL[tool_name](**args)AUDIT_LOG.append({"tool":tool_name,"args":args,"decision":"AUTO","result":result})return{"ok":True,"result":result,"approved":"auto"}# tier == "write": 人工确认闸门print(f"⚠️ 待确认操作:{tool_name}({json.dumps(args,ensure_ascii=False)})")answer=input(" 输入 yes 执行 / 其他取消: ").strip().lower()ifanswer=="yes":result=TOOLS_IMPL[tool_name](**args)AUDIT_LOG.append({"tool":tool_name,"args":args,"decision":"APPROVED","approver":"human"})return{"ok":True,"result":result,"approved":"human"}AUDIT_LOG.append({"tool":tool_name,"args":args,"decision":"REJECTED","approver":"human"})return{"ok":False,"reason":"人工否决"}

(TOOLS_IMPL为各工具的具体实现字典,完整脚本见本课代码包l25_gate_demo.py。)

预期输出(实测 2026-10):

== 1. 只读: 自动执行 == -> {'ok': True, 'result': {'status': '已发货', ...}, 'approved': 'auto'} == 2. 写操作: 人工确认 (输入 yes) == ⚠️ 待确认操作: cancel_order({"order_id": "A1001", "reason": "买重复了"}) -> {'ok': True, 'result': {'status': '订单已取消', ...}, 'approved': 'human'} == 3. 写操作: 人工否决 == -> {'ok': False, 'reason': '人工否决', 'approved': 'human'} == 4. 危险操作: 直接拒绝 == -> {'ok': False, 'reason': '该操作被策略禁止 (tier=deny)'} == 审计日志 == {"tool": "query_order", "decision": "AUTO", ...} {"tool": "cancel_order", "decision": "APPROVED", "approver": "human", ...} {"tool": "update_address", "decision": "REJECTED", ...} {"tool": "drop_table", "decision": "DENY"}

要点:闸门在工具执行层而不是提示词层——无论模型被怎样诱导(参见第 29 课的注入攻击实验),drop_table都不会执行,写操作都必须有人按确认。这就是"系统属性"的含义。

接国产模型:闸门逻辑与模型完全解耦,gated_execute()不关心上层是谁在决策。把 Agent 的 LLM 后端换成国产模型(DeepSeek/GLM/MiniMax/MiMo,均支持 OpenAI 兼容 tools 协议,接入方法见第 7 课"国内模型适配"节)后,闸门代码零改动——这正是"把信任写进代码而不是提示词"的直接收益:第 29 课实测同一注入 prompt 下不同模型的被劫持率差异很大(本地小模型 30%,云端商业模型 0/10),但闸门让任何劫持率都无法变现。

小结

  • 可信赖 = 输出质量 + 权限分级 + 人在回路,是系统属性而非模型属性;
  • 系统消息框架让多个 Agent 的安全条款可规模化维护;
  • 五类威胁中四类靠工程控制缓解,提示词只是第一道闸;
  • 工具三级分级的判据是可逆性与影响面,闸门必须设在代码层;
  • 审计日志是事后追责与第 29 课"密码学回执"的基础。

参见第 7 课《工具调用模式:给模型装上双手》(工具的注册与执行链路)、第 26 课《生产环境:稳定性、成本与可观测》(输出质量的度量体系)、第 29 课《Agent 安全》(对闸门的攻击测试)。

扩展阅读

🌐 网络提示:github.com 需代理(clone 可走 ghproxy 加速、push 优先 SSH);anthropic.com 需代理(核心结论已摘进本课正文);openai.com 系需代理(协议层知识已进正文,实测均可用国产端点替代)。详见总纲附录《国内网络访问与国产适配指南》。

  • 微软原课第 6 课(含 system message framework 与 HITL notebook):https://github.com/microsoft/ai-agents-for-beginners/tree/main/06-building-trustworthy-agents
  • Anthropic 可信赖 Agent 框架(2025-08):https://www.anthropic.com/research/trustworthy-agents
  • Anthropic《Building Effective Agents》:https://www.anthropic.com/engineering/building-effective-agents
  • OpenAI Agents SDK Guardrails 文档(input/output 护栏):https://openai.github.io/openai-agents-python/guardrails/
  • Azure Responsible AI 概述:https://learn.microsoft.com/azure/ai-studio/responsible-use-of-ai-overview

我的专栏

蛋白 / 抗体 / 多肽 / 核酸分子模拟 / 动力学 / 对接药物 / 设计 / 案例AI / Agent / 大模型
开源蛋白结构预测分子模拟基础小分子药物设计案例AI Agent系列
开源蛋白生成方法实践分子动力学模拟-Amber蛋白药物设计案例化学大模型
开源多肽设计模型分子动力学模拟-Gromacs多肽药物设计案例《AI Agent原理与实战》
开源多肽性质预测分子动力学模拟-OpenMM开源小分子生成设计CADD中的机器学习模型
DNA/RNA药物设计結合自由能高效计算配置《MCP 入门实战》
siRNA药物设计模型UCSF DOCK系列我胡师兄说药《AI入门实战2026》
ASO药物设计模型rDock系列 LeDock系列 gnina系列《经典机器学习实战》
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 18:51:06

MORUS算法的各种密码分析方法全面盘点

MORUS算法的各种密码分析方法全面盘点针对MORUS算法的密码分析,已有研究从多个角度进行了深入探索。这些分析主要针对全版本或简化轮数的MORUS,其结论对评估算法的安全边界有重要参考价值。以下是各项攻击方法的盘点。核心发现:全版本MORUS的…

作者头像 李华
网站建设 2026/10/28 18:50:16

生活 RAG 的评估表怎么写:先说清分母,再谈“准确率提升”

“准确率从 64.2% 提升到 94.8%”很醒目,但若只有 50 道题,每题只算对错,单次整体比例应以 2 个百分点为步长变化。小数不一定错,也可能来自多次平均或不同指标;问题是这些口径有没有写出来。 个人知识库的评估至少拆…

作者头像 李华
网站建设 2026/10/28 18:41:07

C++项目中Jsoncpp动态库与静态库链接实战指南

简介:本资源为面向Windows平台C开发者的Jsoncpp库预编译二进制包,专为Visual Studio环境优化,解决开发者自行编译Jsoncpp耗时、配置复杂及C ABI兼容性问题。资源包含动态库(.dll)与静态库(.lib)…

作者头像 李华
网站建设 2026/10/28 18:38:53

3D Design for AI插件开发指南:从提示词到三维网格的工程实践

简介:这是一款面向Adobe Illustrator用户的增强型三维效果处理插件,主要解决AI原生3D功能有限、平面设计师难以在熟悉工作流中完成立体建模的问题。它适合希望将二维设计快速转化为具有深度与维度作品的平面设计师、插画师及视觉创作者,无需在…

作者头像 李华
网站建设 2026/10/28 18:38:23

基于Springboot环保公益网站【附源码+文档】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华