Agent 365:半成品还是过度推销?
摘要
作者分享了设置 Microsoft Agent 365 的挫折经历,包括管理门户冲突、许可不明确、API 文档错误以及注册失败等问题。
过去几周我一直在尝试使用微软新的 Entra Agent ID 相关功能。蓝图、代理身份、注册到 Agent 365 注册表,整个流程都走了一遍。我们工作中有 Agent 365,所以我想看看端到端的真正上手指南是怎样的。发帖以防其他人也遇到同样的情况。​有两个管理门户(admin.cloud.microsoft 和 entra.microsoft.com),代理相关内容分散在两者之间,与文档描述完全不符。你花上第一个小时来搞清做某件事应该使用哪个界面。Entra 门户负责蓝图和代理身份,而 admin.cloud 门户负责注册表视图的一部分。某些流程会强制你完全离开用户界面。​许可本身就像一个小迷宫。Agent 365 涵盖基础功能。代理的条件访问需要 Entra ID P1 或 M365 E3。身份保护需要 P2 或 E5 或 Entra 套件。身份治理同样如此。所以,对于“能否用条件访问来限制这个代理”这个问题,答案取决于你的租户拥有哪个 SKU。这些信息没有一处集中总结,我找了很久都没找到。​然后实际设置。Entra 管理门户让你可以很清晰地创建蓝图:名称、所有者,一路点击即可。这部分没问题。问题从你需要凭据时就开始了。推荐的方法(使用 FIC 的托管标识)需要在 Azure 计算资源上运行,而其他所有人则不得不使用 Graph API。好吧,我用了 Graph API。但文档大量依赖 Microsoft.Graph PowerShell 模块,而不是直接的 REST 调用,而且很多示例负载与实际端点接受的格式不完全匹配。最终我将大部分内容改为 curl 加 az rest,因为这样调试更容易。​这部分花了我好几个小时。文档说要创建一个蓝图主体(一个表示运行时蓝图的服务主体)。他们给你一个 POST 到 /servicePrincipals/microsoft.graph.agentIdentityBlueprintPrincipal。于是我执行了。然后得到:Request_MultipleObjectsWithSameKeyValue:无法创建、更新或恢复服务主体,因为服务主体名称 <guid> 已被占用。原来文档的另一页说蓝图主体在你实例化蓝图时会自动创建。所以对我采用的路径来说,显式 POST 是错误的,但指示你调用它的页面并没有说明“如果使用了向导请跳过此步”。你遇到了一个你根本不知道存在的服务主体的冲突错误。虽然不是破坏性的,但这种事足以动摇你对这个模型的信心。​凭据之后,你需要在 Agent 365 注册表中注册代理,以便管理员进行管理。文档中提供了三种路径:Agents SDK(推荐)、Agent 365 CLI 或直接使用 Agent Registry API。我三种都试了。SDK 快速入门说 SDK 会自动处理代理身份创建和 Agent 365 注册表注册,因此你的代理身份会无需额外代码自动出现。我完整运行了快速入门,在匿名模式下本地运行代理,观察它处理请求。然后查看管理门户。代理并不在那里。快速入门本身实际上并没有说它会执行注册步骤。是 SDK 静默失败了,还是它只是不在本地匿名模式下做这件事?我不知道。我读过的文档中没有任何明确说明。​Agent 365 CLI 需要 .NET 8.0+,并且包设置位于与 CLI 命令引用不同的文档页面,因此你需要在两个页面之间来回切换。我不想仅仅为此就在我的 Mac 上安装 .NET,所以我直接使用了 Agent Registry API。这算是成功了。我构建了一个 POST 到 /beta/copilot/agentRegistrations,带上代理卡片负载,然后执行。响应:Forbidden,代码 UnknownError,消息为空。真有用。我还是检查了 Entra 管理中心:代理已经注册了。所以 API 返回了一个错误,但事情却办成了。要么是响应在撒谎,要么是错误指的是后续某个步骤,而该步骤后来静默成功了。说实话,我很想知道到底是哪种情况。​其他一些小问题。管理门户根本不支持删除代理身份,你必须使用 Graph API 或 Entra PowerShell 来删除你创建的任何内容。文档中有一个拼写错误,我就不引用了。有些链接指向的页面根本不再提及 Agent 365。​问题不在于某个单独的 bug。而是每一步都有两三种文档化的方法,而这些方法相互矛盾。当你猜错时,返回的错误不会告诉你这就是原因。你可能会遇到你并未要求创建的服务主体冲突,或者在实际上成功的调用中遇到 403 UnknownError,或者 SDK 静默地没有执行文档声称它该做的事情。​到了这一步真是令人沮丧,他们的示例静默地没有按照文档承诺的方式注册代理,这远未达到生产级别……
相似文章
为公司构建 AI Agent
作者分享了在工作中构建代理系统的经验教训,描述了使用巨型提示、过多工具和动态子代理的失败,最终通过固定编排器和针对每个领域的专业子代理取得成功。
我让智能体跑起来了,然后发现无聊的服务器杂事才是真正的问题
一位开发者反思将 AI 智能体工作流迁移到服务器的经历,发现 systemd、日志、幂等性和故障告警这些枯燥的基础设施问题比智能体本身更重要。
真实用户出现后,AI代理的构建变得奇怪起来
一位经验丰富的开发者反思了AI代理演示与实际性能之间的差距,强调了诸如文档不完善、权限期望过于简单,以及认为概率性软件在生产中会变得确定性的误解等问题。
微软如何大规模投产数千个AI代理(18分钟阅读)
微软分享了从原型到生产过程中,在企业级规模下部署数千个AI代理的工程经验,涵盖代理框架、检索即子代理、代理身份以及基于评估标准的自动化优化循环等关键挑战。
@freeman1266: https://x.com/freeman1266/status/2055293363893768463
这篇文章总结了将AI Agent从Demo部署到生产环境过程中遇到的四个常见陷阱:function calling不可靠、多步任务失败率累积、记忆管理不当、以及安全权限问题,并给出了相应的解决方案。