1. 从一次后台巡检说起:Agent 365 到底在管什么
第一次进 Agent 365 后台的时候,我脑子里其实带着一个很具体的疑问:当企业里的智能体数量从个位数涨到几百上千个,到底靠什么把它们管住?这不是一个学术问题,而是我手上真实遇到的场景——客服智能体、代码检视智能体、销售辅助智能体、知识问答智能体,各自跑在不同的平台上,有的用 Coze 搭的,有的用 Dify 搭的,还有几个是团队自己用 Python 框架写的。数量一多,问题就来了:谁在调用什么数据、哪个智能体最近行为异常、某个智能体是不是越权访问了不该碰的知识库,这些事靠人盯根本盯不过来。
Agent 365 这个后台给我的第一印象,是它没有把智能体当成一个普通的“应用”来管,而是当成一个“有身份、有行为、有数据触达”的数字员工来管。这个定位差异很关键。普通应用管理关注的是部署、版本、可用性;而智能体管理关注的是身份、权限、行为审计、数据边界。前者是运维视角,后者是治理视角。你如果只是把智能体当成一个 API 服务来运维,那迟早会在合规和安全上踩坑,因为智能体的自主性决定了它会做出你预设之外的动作。
这篇文章我想聊的就是这个后台背后的管理逻辑:它怎么给成千上万个智能体建立身份体系,怎么用 Entra 做身份与访问控制,怎么用 Defender 做威胁检测与响应,怎么用 Purview 做数据合规与审计。这四个东西不是简单堆在一起,而是形成了一条从“身份”到“行为”到“数据”的完整链路。我会把这条链路拆开讲,结合我自己在搭建和治理智能体过程中的实操经验,把每个环节的关键配置、常见坑点和排查思路都说清楚。
适合谁来读?如果你正在负责企业级智能体平台的搭建,或者你手上有几十个以上的智能体需要统一治理,再或者你是一个正在从“自己写 Python 智能体”转向“平台化智能体管理”的开发者,这篇内容应该能给你一些直接可参考的思路。如果你只是刚接触智能体,想了解企业级治理长什么样,也可以先收藏,等你的智能体数量涨到需要管的时候再翻出来看。
2. 智能体治理的核心思路:为什么不能只靠一个平台
2.1 平台化智能体与自建智能体的治理差异
热词里有一个问题被反复提到:“利用平台构建的智能体与用 Python 构建的智能体有什么不一样?”这个问题在治理层面尤其明显。用 Coze、Dify 这类平台搭出来的智能体,天然带有一层平台提供的身份和权限抽象,你可以在平台内部配置知识库访问范围、工具调用权限、对话历史留存策略。但问题是,当你有多个平台的时候,每个平台都有一套自己的权限模型,彼此之间不互通。A 平台上的智能体可以访问的知识库,B 平台上的智能体可能通过一个 API 调用就绕过去了。
自己用 Python 写的智能体更麻烦。你可以在代码里写死一个 API Key,也可以让它直接读环境变量里的数据库连接串。这种灵活性在开发阶段很爽,但到了治理阶段就是灾难——你根本不知道这个智能体在运行时到底访问了哪些数据、调用了哪些外部服务。我见过一个团队用 Python 写了一个销售辅助智能体,结果它为了“更智能地回答问题”,自己偷偷去调了一个外部搜索接口,把客户名称传了出去。这种事在代码审查阶段很难发现,因为它是运行时行为。
Agent 365 这类后台的价值就在于,它不关心你的智能体是用什么框架搭的,它关心的是这个智能体作为一个“实体”在系统里的身份是什么、它能访问什么、它实际做了什么。这就把治理从“平台绑定”变成了“实体绑定”,不管你用 Coze 还是用 Python,只要接入这个身份体系,就统一受管。
2.2 身份、行为、数据三层治理模型
我把这套治理逻辑拆成三层来看,这样更容易理解每个组件的位置。
第一层是身份层。每个智能体必须有一个唯一身份,这个身份不是简单的 API Key,而是一个可被验证、可被授权、可被审计的主体。Entra 在这里扮演的就是身份提供者的角色。你可以把它理解成给每个智能体发了一张“工牌”,这张工牌上写着它是谁、属于哪个部门、有什么权限。没有这张工牌,智能体连门都进不去。
第二层是行为层。智能体有了身份之后,它做的每一个动作——调用某个工具、访问某个数据源、发起某个外部请求——都需要被记录和评估。Defender 在这里的作用是检测异常行为。比如一个平时只读知识库的问答智能体,突然开始尝试写入数据库,这就是一个异常信号。Defender 不是简单地拦截,而是基于行为基线来判断风险等级,然后触发相应的响应策略。
第三层是数据层。智能体最终要接触的是数据,而数据是有合规要求的。Purview 在这里做的是数据分类、敏感度标记和访问审计。比如一个智能体访问了包含个人信息的客户记录,Purview 会记录这次访问,并根据预设的合规策略判断是否允许。如果这个智能体没有处理个人信息的授权,这次访问就会被标记为违规。
这三层不是孤立的。身份层决定了行为层的基线,行为层产生的日志又反过来丰富数据层的审计。一个智能体如果身份配置错了,行为检测就会误报;行为检测如果漏了,数据审计就失去了上下文。所以这套体系的关键不在于单个组件多强,而在于它们之间的联动。
2.3 为什么是 Entra、Defender、Purview 这三个组合
你可能会问,为什么是这三个东西组合在一起?我用一个类比来解释。想象一个大型办公楼,Entra 是门禁系统,它知道谁可以进哪个楼层;Defender 是楼里的监控和安保,它盯着有没有人行为异常;Purview 是档案室的管理员,它记录谁看了哪些文件、哪些文件是机密。这三者缺一不可。没有门禁,谁都能进;没有监控,进了门之后干什么没人知道;没有档案管理,机密文件被谁看了也查不到。
在智能体场景里,这个类比几乎完全成立。Entra 管的是智能体的身份和访问权限,Defender 管的是智能体运行时的行为安全,Purview 管的是智能体接触的数据的合规性。这三个组合在一起,才构成了一个完整的治理闭环。单独用任何一个,都会有盲区。
我自己的经验是,很多团队在智能体数量少的时候,靠人工审查和简单的日志就能管住。但一旦超过五十个,人工审查就失效了。你不可能每天去看五十个智能体的日志。这时候就需要一套自动化的治理体系,而 Entra、Defender、Purview 的组合就是这套体系的骨架。
3. 身份层实操:用 Entra 给每个智能体发一张“工牌”
3.1 智能体身份注册的关键步骤
在 Agent 365 后台里,给智能体注册身份是第一步。这个过程和给一个普通应用注册身份类似,但有几个关键差异。
第一步是创建智能体身份主体。你需要在 Entra 里为每个智能体创建一个独立的身份,而不是共用一个应用注册。共用的后果是,你无法区分是哪个智能体在调用某个接口,审计日志里只会显示同一个身份,排查问题时根本找不到源头。我见过一个团队为了省事,把十个智能体都挂在同一个应用注册下,结果有一次一个智能体行为异常,他们花了整整两天才定位到是哪一个。
第二步是配置凭证。智能体的凭证可以是客户端密钥,也可以是证书。我的建议是优先用证书,因为密钥容易泄露,而且轮换麻烦。证书虽然配置起来稍微复杂一点,但安全性高很多。如果你用的是平台化智能体,比如 Coze 或 Dify 搭的,通常平台会提供一个接入方式,你需要在平台侧配置 Entra 的租户 ID、客户端 ID 和凭证。
第三步是分配权限。这里的关键是最小权限原则。一个只做知识问答的智能体,不应该有写入权限;一个只读客户信息的智能体,不应该有访问财务数据的权限。在 Entra 里,你可以通过应用角色和 API 权限来精细控制。我通常会为每一类智能体定义一个角色,比如“只读知识库智能体”、“客户数据读写智能体”、“代码仓库访问智能体”,然后把智能体分配到对应的角色上。
3.2 条件访问策略在智能体场景下的配置
条件访问是 Entra 里一个非常强大的功能,但在智能体场景下需要特别配置。普通用户登录时,条件访问可以基于设备状态、地理位置、登录风险来决策。智能体没有“设备”的概念,也没有“地理位置”,所以你需要换一套条件。
我常用的几个条件维度是:调用来源 IP 范围、调用时间窗口、调用频率、目标资源敏感度。比如,一个销售智能体只允许在工作时间从公司内网 IP 段调用;一个代码检视智能体只允许访问代码仓库相关的 API,不允许访问客户数据库。这些条件可以在 Entra 的条件访问策略里配置,结合 Defender 的风险信号做动态决策。
有一个坑要注意:条件访问策略如果配置得太严,会导致智能体在正常运行时被频繁拦截,影响可用性。我的做法是先以“仅记录”模式运行一周,观察智能体的实际调用模式,然后再逐步收紧策略。这样既能保证安全,又不会误伤正常行为。
3.3 身份生命周期管理:智能体的创建、变更与注销
智能体不是永久的。一个项目结束了,对应的智能体可能就要下线。但很多团队只记得创建,不记得注销。结果就是,系统里堆积了大量“僵尸智能体”,它们可能还在用旧的凭证访问数据,成为安全隐患。
在 Agent 365 后台里,身份生命周期管理应该和智能体的实际生命周期绑定。创建智能体时自动注册身份,智能体下线时自动禁用身份并吊销凭证。如果智能体是临时性的,比如一个一次性数据分析任务,可以给它设置一个过期时间,到期自动失效。
我自己的做法是维护一个智能体清单,记录每个智能体的负责人、用途、创建时间、预期生命周期。每个月做一次巡检,把超过预期生命周期还在运行的智能体标记出来,确认是续期还是注销。这个习惯看起来简单,但能避免很多潜在风险。
4. 行为层实操:用 Defender 盯住智能体的每一个动作
4.1 智能体行为基线的建立方法
Defender 要检测异常,首先要知道什么是“正常”。智能体的行为基线不是拍脑袋定的,而是从实际运行数据里学出来的。我的做法是,新智能体上线后的前两周,只记录不拦截,收集它的调用模式:它通常在什么时间被调用、调用频率是多少、访问哪些资源、调用哪些工具、每次调用的数据量大概多大。
两周之后,你会得到一个相对稳定的行为画像。比如一个客服智能体,它的典型行为是:工作时间每秒钟处理 2 到 5 个请求,访问知识库的只读接口,偶尔调用一次工单创建接口,从不访问客户支付信息。这个画像就是基线。之后如果它突然在凌晨三点开始高频调用工单删除接口,Defender 就会标记为异常。
这里的关键是,基线要分智能体类型来建,不能一刀切。销售智能体和代码检视智能体的行为模式完全不同,用同一套基线去检测,必然误报连连。
4.2 常见异常行为模式与检测规则
在实际运行中,我总结了几类常见的智能体异常行为,以及对应的检测思路。
第一类是权限提升尝试。智能体突然尝试调用它没有权限的接口,比如一个只读智能体尝试写入数据库。这可能是代码 bug,也可能是被恶意利用。Defender 可以基于 Entra 的权限配置来检测这类行为,一旦发现越权调用,立即告警。
第二类是数据外传。智能体在正常回答问题的过程中,突然开始向外部地址发送大量数据。这可能是数据泄露的信号。检测方法是监控智能体的出站流量,如果发现它向非白名单地址发送数据,就触发告警。
第三类是行为突变。智能体的调用频率、访问资源类型、调用时间突然发生显著变化。比如一个平时只在工作时间运行的智能体,突然在凌晨开始高频活动。这种突变往往意味着智能体被篡改或者被用于非预期用途。
第四类是凭证异常。智能体使用的凭证在非预期位置被使用,或者同一个凭证同时从多个地理位置发起调用。这通常意味着凭证泄露。
4.3 自动化响应策略:从告警到阻断
检测到异常之后,Defender 可以触发自动化响应。响应策略分几个等级:低风险只记录,中风险告警并通知负责人,高风险自动阻断并吊销凭证。
我建议对高风险行为配置自动阻断,但一定要有回滚机制。因为有时候异常行为可能是误报,比如智能体因为业务需求变化,确实需要在非工作时间运行。如果自动阻断没有回滚机制,可能会导致业务中断。我的做法是,自动阻断后立即通知负责人,负责人可以在后台一键恢复,同时系统会记录这次阻断和恢复的完整过程,供后续审计。
还有一个细节:阻断策略要区分“阻断单个请求”和“阻断整个智能体”。对于疑似凭证泄露的情况,应该阻断整个智能体并吊销凭证;对于单次越权尝试,可以只阻断那个请求,让智能体继续运行但记录告警。
5. 数据层实操:用 Purview 划清智能体的数据边界
5.1 数据分类与敏感度标记的落地方法
Purview 的核心能力是数据分类和敏感度标记。在智能体场景下,这一步尤其重要,因为智能体往往会接触到大量数据,而你不可能靠人工去判断每一条数据是否敏感。
我的做法是,先对智能体可能接触的数据源做一次全面盘点,然后根据数据类型打上敏感度标签。比如客户姓名、手机号、身份证号属于高敏感;产品文档、公开知识库属于低敏感;内部流程文档属于中敏感。这些标签可以在 Purview 里配置自动分类规则,比如通过正则表达式识别身份证号格式,自动打上高敏感标签。
打标签的目的是为了后续的访问控制。一个智能体如果只有低敏感数据的访问权限,当它尝试访问高敏感数据时,Purview 会拦截并记录。这样就把数据边界从“靠自觉”变成了“靠系统”。
5.2 智能体访问审计日志的解读
Purview 会记录每一次智能体对数据的访问,包括访问时间、访问的数据对象、访问类型(读/写/删除)、访问结果(允许/拒绝)。这些日志是排查问题和合规审计的关键依据。
我通常会关注几个指标:高敏感数据的访问频率、被拒绝的访问尝试、异常时间段的访问。如果某个智能体突然开始频繁访问高敏感数据,或者出现大量被拒绝的访问尝试,这通常意味着智能体的行为出了问题,需要进一步排查。
解读日志时要注意上下文。单独看一条“访问被拒绝”的日志,可能只是智能体尝试了一个它不该访问的资源,属于正常的安全拦截。但如果同一个智能体在短时间内出现大量被拒绝的访问,那就可能是智能体被篡改,或者它的权限配置出了问题。
5.3 数据合规策略与智能体权限的联动
Purview 的数据合规策略不是孤立的,它需要和 Entra 的权限体系联动。比如,你在 Purview 里把某个数据源标记为高敏感,那么只有被 Entra 授予了高敏感数据访问权限的智能体才能访问。这种联动确保了权限和数据敏感度的一致性。
我在配置时的一个经验是,先定义数据敏感度等级,再定义智能体角色,然后把角色和敏感度等级做映射。比如“客户数据读写智能体”角色可以访问中敏感和高敏感数据,“知识问答智能体”角色只能访问低敏感数据。这样在新增智能体时,只需要给它分配角色,权限和数据边界就自动确定了,不需要每次单独配置。
6. 常见问题与排查技巧实录
6.1 智能体身份配置常见错误与修复
在实际操作中,身份配置是最容易出问题的环节。我整理了几个高频错误和对应的修复方法。
| 问题现象 | 可能原因 | 排查方法 | 修复建议 |
|---|---|---|---|
| 智能体无法获取令牌 | 凭证过期或配置错误 | 检查 Entra 中的应用注册凭证有效期 | 轮换凭证,优先使用证书 |
| 智能体被频繁拦截 | 条件访问策略过严 | 查看条件访问日志,确认拦截原因 | 先以仅记录模式运行,逐步收紧 |
| 审计日志中无法区分智能体 | 多个智能体共用同一身份 | 检查应用注册数量与智能体数量是否匹配 | 为每个智能体创建独立身份 |
| 智能体权限过大 | 未遵循最小权限原则 | 审查智能体的 API 权限列表 | 按角色重新分配权限 |
6.2 行为检测误报的排查思路
误报是行为检测中最让人头疼的问题。我的排查思路是分三步走。
第一步,确认告警是否真实。查看 Defender 的告警详情,确认触发告警的具体行为是什么。有时候告警是因为智能体的正常行为超出了旧基线,而不是真的异常。
第二步,检查基线是否需要更新。如果智能体的业务逻辑发生了变化,比如新增了一个功能,那么它的行为模式也会变化,旧基线就不适用了。这时候需要重新采集基线。
第三步,调整检测规则的阈值。如果确认是误报,可以适当放宽阈值,但要记录调整原因,避免后续忘记为什么放宽了。
6.3 数据访问被拒绝的快速定位方法
当智能体访问数据被拒绝时,快速定位原因很重要。我通常按这个顺序排查:先看 Purview 的访问日志,确认是哪个数据对象被拒绝;然后看 Entra 的权限配置,确认智能体是否有对应权限;最后看数据敏感度标签,确认数据是否被标记为高敏感而智能体没有对应授权。这三步走下来,大部分问题都能定位到。
6.4 智能体数量增长后的治理扩展建议
当智能体数量从几十个涨到几百个,治理策略需要相应调整。我的建议是:第一,建立智能体分组,按业务线或功能类型分组,权限按组分配,减少单个配置的工作量;第二,自动化巡检,定期扫描僵尸智能体和权限过大的智能体;第三,建立智能体上线审批流程,新智能体上线前必须经过安全和合规审查。
7. 我在实际治理中踩过的坑和总结的经验
踩过几次坑之后,我最大的体会是:智能体治理不是一次性工程,而是一个持续运营的过程。你不可能配好一套策略就一劳永逸,因为智能体在变,业务在变,威胁也在变。
第一个坑是过度依赖平台自带的安全能力。很多智能体平台会提供一些基础的安全配置,比如 API Key 管理、调用频率限制。但这些远远不够。平台的安全能力是通用的,而你的智能体治理需求是具体的。你需要一套独立的治理体系,不绑定在任何单一平台上。
第二个坑是忽视日志的上下文。单独看一条告警日志,你很难判断它是真异常还是误报。必须结合身份信息、行为基线、数据敏感度一起来看。这也是为什么 Entra、Defender、Purview 要联动,单独用任何一个都会有盲区。
第三个坑是权限配置的“临时放宽”变成永久放宽。有时候为了赶项目进度,会给智能体临时开一些额外权限,想着上线后再收紧。但上线后往往就忘了。我的做法是,任何临时权限都必须设置过期时间,到期自动回收,不给遗忘留空间。
最后分享一个小技巧:定期做一次“红队演练”,模拟一个智能体被篡改的场景,看看你的治理体系能不能检测到、能不能阻断、能不能追溯。这种演练比看文档有用得多,能暴露很多配置上的漏洞。