将声明性代理转换为自定义引擎代理

Microsoft 365 Copilot 提供迁移功能,允许你将声明性代理(包括已提升为声明性代理的消息扩展)转换为自定义引擎代理。 将声明性代理转换为自定义引擎代理时,可以完全控制业务流程、AI 模型和数据集成,并可以利用高级功能创建更复杂的工作流。

本文介绍将声明性代理转换为自定义引擎代理以利用自己的业务流程更好地满足组织的独特需求所要执行的步骤。

先决条件

本文中的步骤要求满足以下先决条件:

  • 使用 Microsoft 365 代理工具包生成的现有声明性代理。

    注意

    目前不支持使用 Copilot Studio 精简体验生成的代理。

  • 自定义机器人和机器人 ID。 有关如何创建自定义机器人的信息,请参阅 机器人和代理

  • Visual Studio Code已安装 Microsoft 365 代理工具包扩展。

  • 如果要实现特定于 Copilot 的功能(如流式处理或引文),Microsoft 365 智能体 SDK或 Teams AI 库

  • 在环境中上传应用清单的权限。

转换声明性代理

若要将现有声明性代理转换为自定义引擎代理,请对应用清单和应用包进行更新。

更新应用清单

若要更新应用清单,请执行以下作:

  1. 在 Visual Studio Code 中,打开声明性代理的应用清单文件。

  2. 添加 机器人 节点并将机器人 ID 包含在 id 字段中。 以下示例显示了 机器人节点的 架构。

        "bots": [ 
            { 
                "botId": "${{BOT_ID}}", 
                "scopes": [ 
                    "copilot", 
                    "personal", 
                    "team" 
                ], 
                "supportsFiles": false, 
                "isNotificationOnly": false, 
                "commandLists": [ 
                    { 
                        "scopes": [ 
                            "copilot", 
                            "personal" 
                        ], 
                        "commands": [ 
                            { 
                                "title": "How can you help me?", 
                                "description": "How can you help me?" 
                            } 
                        ] 
                    } 
                ] 
            } 
        ], 
    

    有关机器人节点的架构的详细信息,请参阅 机器人对象

    注意

    使用应用清单架构版本 1.21 或更高版本。 清单版本 1.21 及更高版本中支持自定义引擎代理。

  3. copilotAgents 对象中,将 declarativeAgents 节点更改为 customEngineAgents 节点,如以下示例所示。

    声明性代理节点

    "copilotAgents": { 
        "declarativeAgents": [             
            { 
                "id": "declarativeAgent", 
                "file": "declarativeAgent.json" 
            } 
        ] 
    }, 
    

    将 替换为自定义引擎代理节点

    "copilotAgents": {
        "customEngineAgents": [
            {
                "type": "bot",
                "id": "${{BOT_ID}}"
            }
        ]
    },
    "bots": [
        { 
          "botId": "${{BOT_ID}}",
            "scopes": [
                "copilot",
                "personal",
                "team"
            ], 
            "supportsFiles": false,
            "isNotificationOnly": false,
            "commandLists": [
                {
                    "scopes": [
                        "copilot",
                        "personal"
                    ],
                    "commands": [
                        {
                            "title": "How can you help me?",
                            "description": "How can you help me?"
                        }
                    ]
                }
            ]
        }
    ],
    

    有关架构参考信息,请参阅 copilotAgents 对象

    注意

    应用清单可以包含声明性代理节点或自定义引擎代理节点,但不能同时包含这两者。

  4. 在 version 属性中更新应用 的应用版本号

  5. 确保 id 属性使用的 ID 与声明性代理的应用清单中使用的 ID 相同。

自定义代理 UX

为用户定义代理体验。 可以添加对话初学者和建议的提示,实现流式处理响应和引文等。 请注意,需要定义并测试自定义引擎代理功能。

有关详细信息,请参阅 自定义引擎代理用户体验功能

更新并提交应用包

更新代理清单后,重新打包应用:

  1. 将更新后的代理清单、应用图标和任何其他资产添加到新的 .zip 文件中。

  2. 提交新包以更新现有应用。 如果代理是组织内部的,请使用Microsoft 365 管理中心 (要求租户管理员权限) 。

    注意

    目前不支持通过合作伙伴中心将应用包提交到商业市场。

用户体验

对于用户来说,从声明性代理到自定义引擎代理的转换是无缝的。 如果你在应用包中使用的名称和徽标相同,则用户不会看到任何可见的更改。

如果用户固定了代理,则需要在发布更新后再次固定代理。