核心概念
本页介绍 AgentGuard 使用过程中最常见的几个概念。重点不在内部实现,而在于帮助用户理解系统如何接入、如何配置,以及规则最终作用于什么对象。
智能体
这里的“智能体”是指你已经在使用的 Agent 应用或运行单元,例如由 LangChain、AutoGen、Dify、OpenAI Agents SDK 等框架构建出的应用,或你自行实现的工具调用流程。
AgentGuard 不替代智能体本身的任务执行逻辑。智能体仍负责理解任务、组织步骤并发起工具调用,AgentGuard 负责对这些调用进行运行时检查。
访问控制客户端
访问控制客户端位于智能体一侧,用于把工具调用接入 AgentGuard。在实际使用中,用户通常直接接触的是 Guard。
它的主要职责包括:
- 负责与中控服务进行通信,传递当前智能体执行状态
RuntimeEvent - 拦截智能体的工具调用请求
- 通过 HTTP 请求将当前操作提交给中控服务判定
- 根据判定结果决定工具的执行策略
对于用户而言,可以将其理解为 AgentGuard 在智能体侧的探针。
身份 (Principal)
身份用于描述“当前执行这次操作的智能体具有哪些属性”。在策略判断中,身份信息通常用于区分不同智能体的权限范围和信任等级。
常见身份信息包括:
- 智能体 ID
- 会话 ID
- 角色
- 信任级别
这些信息的价值在于使策略能够表达差异化约束。例如,可以要求低信任智能体禁止执行某类操作,或仅允许特定角色访问高风险工具。
会话
会话表示智能体当前这一轮任务的上下文范围。
一次完整任务往往会包含多次工具调用,而很多安全判断并不能只依据单次操作完成。例如,前面读取了敏感数据,后面又准备向外部发送内容,这种情况通常需要结合整轮任务过程来判断。
因此,会话的作用主要在于:
- 关联同一轮任务中的多次工具调用
- 保留必要的上下文信息
- 为跨步骤规则提供判断基础
工具
工具是智能体实际执行操作的能力单元,例如发送邮件、访问 HTTP 接口、执行命令、读写文件或查询数据库。
在 AgentGuard 中,工具是最核心的治理对象。原因很简单:真正带来安全影响的,往往不是模型生成的文本,而是工具所触发的实际动作。
你应当重点关注以下几类工具的访问控制:
- 外发类工具
- 系统操作类工具
- 数据写入类工具
- 敏感数据读取类工具
策略
策略是用户为 AgentGuard 定义的控制规则。它用于说明在什么条件下,某类工具调用应被允许、拒绝或转入人工处理。
从使用角度看,策略通常围绕以下两类目标展开:
禁止
用于处理明确不允许发生的操作,例如:
- 危险命令执行
- 敏感数据外发
- 对关键资源的未授权修改
审批
用于处理风险较高但不适合直接拒绝的操作,例如:
- 向外部联系人发送内容
- 访问未事先批准的目标地址
- 执行影响范围较大的操作
对于大多数项目,建议先从禁止项开始,再逐步引入更细的审批策略。
中控服务
中控服务是 AgentGuard 的服务端组件,用于集中处理规则判断和管理操作。
中控服务通常承担以下职责:
- 接收智能体发起的判定请求
- 访问控制策略的制定、决策
- 统一处理人工审批
- 提供审计和管理接口
审计
审计用于记录智能体执行过的关键操作及其处理结果。
审计信息的主要用途包括:
- 回溯智能体的实际行为
- 分析某次操作被拒绝或被限制的原因
- 验证规则是否按预期生效
- 为问题排查和合规记录提供依据
因此,审计不仅是事后追踪手段,也是规则调优过程中的重要参考。
数据来源 (Provenance)
在实际使用中,用户经常需要判断一项外发操作是否涉及此前读取到的敏感数据。
这就是“数据来源”概念的重要性所在。对 AgentGuard 而言,只有系统能够识别哪些数据属于敏感数据,相关规则才能在后续外发、共享或处理过程中生效。
如果希望系统限制敏感数据外发,就需要在接入过程中明确标记哪些数据为敏感数据,以便于编写针对性的访问控制策略。