Microsoft Copilot Studio 企业AI开发教程

教程简介

零基础Microsoft Copilot Studio企业AI开发教程,涵盖Copilot Studio架构与能力、自定义Copilot创建、Topic与对话流设计、Power Platform集成、Copilot连接器、GPT模型配置、企业知识库集成、Teams部署、Copilot API扩展、与Azure AI Foundry集成等核心技能,配有企业智能HR助手与IT运维Copilot两大实战项目,适合企业IT开发者和AI工程师系统学习。

Microsoft Copilot Studio 企业AI开发教程

适用人群:企业IT开发者、AI工程师、Power Platform管理员、希望构建企业级对话式AI的技术人员 前置要求:基本的Web开发概念、了解Microsoft 365生态(非必须) 预计学习时间:15-20小时


目录


第一章:Microsoft Copilot Studio 概述与架构

1.1 什么是 Copilot Studio

Microsoft Copilot Studio(前身是 Power Virtual Agents)是微软推出的企业级对话式AI构建平台。它允许开发者和业务用户通过低代码/无代码的方式创建智能对话代理(Copilot),这些代理可以理解自然语言、调用外部服务、集成企业数据,并部署到多个渠道。

Copilot Studio 的核心价值主张:

  • 低代码开发:可视化画布拖拽构建对话逻辑,无需深厚的AI背景
  • 企业级集成:原生连接 Microsoft 365、Dynamics 365、Azure 服务
  • 生成式 AI 驱动:内置 GPT 能力,支持基于企业知识的智能问答
  • 多渠道部署:Teams、Web、Facebook、自定义渠道一键发布
  • 安全与合规:继承 Microsoft Azure 的企业级安全体系

1.2 核心架构与组件

Copilot Studio 的架构由以下核心层次组成:

┌─────────────────────────────────────────────────┐
│                   用户交互层                       │
│   Teams │ Web Chat │ Facebook │ 自定义渠道          │
├─────────────────────────────────────────────────┤
│               Copilot 运行时引擎                    │
│   NLU 意图识别 │ 对话管理 │ 生成式 AI │ 会话状态       │
├─────────────────────────────────────────────────┤
│                  Topic 处理层                      │
│   系统 Topic │ 自定义 Topic │ 回退 Topic │ 事件 Topic  │
├─────────────────────────────────────────────────┤
│                  动作与连接层                       │
│   Power Automate │ 自定义连接器 │ 插件 │ API 扩展      │
├─────────────────────────────────────────────────┤
│                  知识与数据层                       │
│   SharePoint │ Dataverse │ 网站 │ 文档 │ Azure AI     │
└─────────────────────────────────────────────────┘

关键组件说明:

组件 功能描述
Topic(主题) 对话流的基本单元,定义特定意图的对话逻辑
Entity(实体) 从用户输入中提取的结构化信息(如日期、地点)
Action(动作) 调用外部服务或执行操作的连接点
Knowledge(知识源) Copilot 用于生成回答的信息来源
Channel(频道) Copilot 对外发布的通信渠道
Environment(环境) Power Platform 环境,隔离开发/测试/生产

1.3 与传统聊天机器人平台的对比

特性 Copilot Studio 传统 Bot Framework 第三方平台
开发方式 低代码 + 专业代码 纯代码 混合
AI 能力 内置 GPT + NLU 需自行集成 依赖平台
企业集成 原生 M365/Azure 需手动开发 有限
部署渠道 多渠道内置 需逐一配置 平台依赖
学习曲线 低-中 高 中
许可证成本 按消息计费 免费(Azure 费用) 因平台而异

1.4 许可证与定价模型

Copilot Studio 采用基于消息(Message)的计费模型:

  • Microsoft 365 Copilot 许可证:包含基础 Copilot Studio 功能,每个租户有消息配额
  • Copilot Studio 独立许可证:按消息包购买,适合大规模部署
  • 消息类型分类:
    • 经典消息(Classic):传统对话交互
    • 生成式 AI 消息(Generative):使用 GPT 生成回复,消耗更多配额
    • 受管消息(Managed):企业自定义的受控回复

成本优化建议:合理使用缓存、限制生成式 AI 调用频率、对高频问题使用预设回复。


第二章:环境准备与第一个 Copilot

2.1 环境配置

前提条件:

  1. 拥有 Microsoft 365 租户(企业版或教育版)
  2. 具备 Power Platform 环境管理员权限
  3. 已启用 Copilot Studio 许可证

操作步骤:

步骤 1:访问 Copilot Studio

打开浏览器,导航至 https://copilotstudio.microsoft.com,使用企业账号登录。

步骤 2:选择或创建 Power Platform 环境

在 Copilot Studio 首页右上角,点击环境选择器:

开发环境(推荐):Copilot-Dev
测试环境:Copilot-Test
生产环境:Copilot-Prod

步骤 3:确认 Copilot Studio 功能已启用

进入 Power Platform 管理中心(https://admin.powerplatform.microsoft.com),导航至:

设置 → Copilot Studio → 确认功能状态为"已启用"

步骤 4:配置数据策略

在 Power Platform 管理中心创建数据丢失防护(DLP)策略,确保 Copilot 使用的连接器在允许的策略组中。

2.2 创建第一个自定义 Copilot

步骤 1:新建 Copilot

在 Copilot Studio 首页,点击 "Create" → "New copilot"。

填写基本信息:

名称:Company FAQ Bot
描述:公司常见问题解答助手
语言:中文(简体)

步骤 2:配置基础设置

进入 Copilot 后,导航至 "Settings" → "General":

  • 显示名称:公司FAQ助手
  • 欢迎消息:您好!我是公司FAQ助手,有什么可以帮您?
  • 无法回答时的回复:抱歉,我暂时无法回答这个问题,让我为您转接人工客服。

步骤 3:添加第一个 Topic

在左侧导航栏点击 "Topics" → "+ New topic":

Topic 名称:查询公司地址
触发短语:
  - 公司地址在哪里
  - 你们公司在哪
  - 公司怎么走
  - 办公地点

步骤 4:设计对话流

在 Topic 编辑画布中,添加消息节点:

节点 1(消息):我们公司的地址信息如下:
节点 2(消息):
  📍 总部地址:北京市海淀区中关村科技园区
  🏢 邮编:100080
  📞 电话:010-12345678
节点 3(问句):还有什么其他问题吗?

步骤 5:测试

点击右侧面板的 "Test" 按钮,在测试窗口中输入:

用户输入:公司地址在哪里
预期回复:我们公司的地址信息如下...

2.3 Copilot Studio 界面导览

Copilot Studio 的主要界面区域:

┌──────────────────────────────────────────┐
│  顶部导航栏:Copilot名称 | 环境 | 设置      │
├──────┬───────────────────────────────────┤
│      │                                   │
│ 左侧 │        主编辑区域                    │
│ 导航  │    (Topic画布 / 知识源 / 设置)      │
│      │                                   │
│ Topics│                                  │
│ Knowledge│                               │
│ Actions│                                 │
│ Analytics│                               │
│ Channels│                                │
│      │                                   │
├──────┴───────────────────────────────────┤
│  右侧面板:测试 / 属性编辑 / 预览             │
└──────────────────────────────────────────┘

核心导航项说明:

  • Topics:管理所有对话主题,是 Copilot 的"大脑"
  • Knowledge:配置知识源,让 Copilot 能够回答基于文档的问题
  • Actions:连接外部服务和 Power Automate 流程
  • Analytics:查看使用数据、会话分析和性能指标
  • Channels:管理 Copilot 的发布渠道

2.4 测试与调试基础

内置测试面板:

测试面板支持以下功能:

  • 实时对话测试
  • 变量值检查
  • Topic 匹配追踪
  • 会话重置

调试技巧:

  1. 查看 Topic 匹配日志:当 Copilot 回复不符合预期时,检查是哪个 Topic 被触发
  2. 使用追踪模式:在测试面板中开启追踪,查看完整的对话处理流程
  3. 检查变量值:在调试过程中监控变量的赋值和变化
  4. 测试边界情况:输入模糊、拼写错误或完全无关的内容

第三章:Topic 与对话流设计

3.1 Topic 概念与分类

Topic 是 Copilot Studio 的核心构建单元。每个 Topic 代表一个特定的对话场景或用户意图。

Topic 的组成部分:

Topic = 触发条件(Trigger Phrases) + 对话流(Conversation Flow)

Topic 分类:

类型 说明 示例
自定义 Topic 开发者创建的业务对话 查询订单、请假申请
系统 Topic 平台预置的通用对话 开始对话、无法识别意图
回退 Topic 无法匹配时的兜底处理 转人工、推荐话题
事件 Topic 由系统事件触发 会话开始、会话结束

3.2 系统 Topic 与自定义 Topic

系统 Topic 详解:

  • Conversation Start(对话开始):用户首次与 Copilot 交互时触发,用于设置欢迎消息和初始变量
  • Fallback(回退):当用户输入无法匹配任何 Topic 时触发
  • Goodbye(告别):用户表达结束对话意图时触发
  • Start Over(重新开始):用户要求重置对话时触发
  • Escalation(转人工):将对话转接给人工客服

自定义 Topic 设计原则:

  1. 单一职责:每个 Topic 只处理一个明确的用户意图
  2. 命名规范:使用动词+名词结构,如"查询余额"、"提交工单"
  3. 触发短语多样性:每个 Topic 至少准备 5-10 个触发短语变体
  4. 避免冲突:确保不同 Topic 的触发短语不会过度重叠

3.3 触发器与意图识别

触发短语最佳实践:

Topic 名称:查询休假余额

触发短语(推荐写法):
  - 我还有多少天年假
  - 查看我的休假余额
  - 剩余假期天数
  - 我能休几天假
  - 年假还剩多少
  - 假期余额查询
  - 请假天数查询

触发短语(避免的写法):
  - 假期(太宽泛)
  - 我想请假(这是另一个Topic)
  - 你好(与欢迎Topic冲突)

触发优先级机制:

当多个 Topic 的触发条件匹配时,Copilot Studio 按以下优先级选择:

  1. 精确匹配(完全一致的短语)
  2. 置信度最高的 Topic
  3. 最近编辑的 Topic(同等置信度下)

3.4 对话节点与分支逻辑

Copilot Studio 的对话流由不同类型的节点组成:

节点类型:

消息节点(Message Node)
├── 纯文本消息
├── 富文本消息(支持格式化)
├── 图片/视频/附件
└── 卡片消息(自适应卡片)

问句节点(Question Node)
├── 文本输入
├── 选项选择(单选/多选)
├── 日期选择
├── 数字输入
└── 文件上传

动作节点(Action Node)
├── 调用 Power Automate 流
├── 调用自定义连接器
├── 调用插件
└── 发送 HTTP 请求

逻辑节点(Logic Node)
├── 条件分支(If/Then/Else)
├── 变量操作(Set/Increment)
├── 循环(Loop)
└── 转接到其他 Topic

条件分支示例:

场景:根据用户身份提供不同服务

节点1(问句):请选择您的身份
  选项:[正式员工] [实习生] [外包人员]

节点2(条件分支):
  如果 Topic.identity == "正式员工":
    → 显示正式员工服务菜单
  否则如果 Topic.identity == "实习生":
    → 显示实习生服务菜单
  否则:
    → 显示外包人员服务菜单

3.5 变量与上下文管理

变量作用域:

作用域 生命周期 使用场景
Topic 变量 单个 Topic 内 收集用户输入、临时计算
全局变量 整个会话 用户信息、会话状态
系统变量 平台管理 用户ID、时间戳、渠道信息

变量操作:

设置变量:
  Action: Set variable
  变量名: Topic.userName
  值: "张三"

条件检查:
  条件: Topic.orderAmount > 1000
  Then: 提供VIP服务
  Else: 提供标准服务

变量拼接:
  消息: "您好,{{Topic.userName}},您的订单金额为 {{Topic.orderAmount}} 元"

系统变量使用:
  Global.Session.UserDisplayName  → 用户显示名称
  Global.Session.UserID           → 用户ID
  Global.Session.Channel          → 当前渠道
  Global.Session.StartTime        → 会话开始时间

3.6 实体与槽位填充

实体(Entity)是从用户输入中提取的结构化信息。槽位填充(Slot Filling)是确保对话流获得所需信息的机制。

内置实体类型:

  • DateTime:日期时间识别("明天下午3点")
  • Number:数字识别("5天"、"3个")
  • Money:金额识别("500元")
  • Email:邮箱地址识别
  • Phone:电话号码识别
  • URL:网址识别
  • PersonName:人名识别

自定义实体:

实体名称:Department(部门)
类型:列表(List)
值列表:
  - 信息技术部(别名:IT、技术部、信息部)
  - 人力资源部(别名:HR、人事部)
  - 财务部(别名:Finance、会计部)
  - 市场部(别名:Marketing、营销部)

槽位填充示例:

Topic:提交IT工单

问句节点(带槽位填充):
  问题:"请描述您遇到的IT问题"
  实体:无特定实体
  变量:Topic.issueDescription

问句节点(带槽位填充):
  问题:"请选择问题的紧急程度"
  实体:自定义实体 "UrgencyLevel"
  变量:Topic.urgencyLevel
  - 如果用户未选择 → 再次询问
  - 最大重试次数:2
  - 超过重试 → 使用默认值"中等"

3.7 多轮对话与会话管理

多轮对话设计模式:

模式一:漏斗式引导
  广泛意图 → 逐步聚焦 → 具体操作

模式二:信息收集
  多个问句节点依次收集 → 汇总处理 → 执行操作

模式三:确认-执行
  收集信息 → 展示摘要 → 用户确认 → 执行操作

模式四:异常处理
  正常流程 → 检测异常 → 引导修正 → 恢复流程

会话状态管理:

场景:用户中途离开又回来

系统变量:
  Global.Session.IsReturningUser  → 是否为回访用户
  Global.Session.LastActivityTime → 上次活动时间

逻辑:
  如果 IsReturningUser == true:
    如果 LastActivityTime < 当前时间 - 30分钟:
      → "欢迎回来,您之前正在处理XX,是否继续?"
    否则:
      → 直接继续之前的对话流

第四章:GPT 模型与生成式 AI 配置

4.1 Copilot Studio 中的 AI 能力概览

Copilot Studio 提供两种 AI 模式:

  1. 经典模式(Classic):基于规则的意图匹配,使用触发短语和关键词
  2. 生成式 AI 模式(Generative):使用 GPT 模型理解意图、生成回复

生成式 AI 的应用场景:

  • 自动生成 Topic 的触发条件
  • 基于知识源生成自然语言回答
  • 增强意图识别的准确性
  • 智能摘要和信息提取

4.2 启用生成式 AI 回复

操作步骤:

  1. 进入 Copilot 设置 → "Generative AI"
  2. 开启 "Generative AI responses" 开关
  3. 配置以下参数:
回复风格:
  [ ] 简洁(适合快速问答)
  [x] 平衡(推荐)
  [ ] 详细(适合复杂问题)

知识源优先级:
  [x] 优先使用知识源
  [ ] 优先使用 Topic

安全设置:
  [x] 启用内容过滤
  [x] 阻止敏感话题
  [x] 引用来源显示

4.3 知识源配置

在 "Knowledge" 标签页中添加知识源:

支持的知识源类型:

1. SharePoint 站点/文档库
   URL: https://company.sharepoint.com/sites/HRDocs
   
2. 公共网站
   URL: https://company.com/faq
   
3. 上传文档
   支持格式:PDF、Word、Excel、TXT、CSV
   
4. Dataverse 表格
   表格名:EmployeeInfo
   
5. 自定义数据源(通过连接器)

知识源配置示例:

知识源名称:公司制度文档库
类型:SharePoint
URL:https://contoso.sharepoint.com/sites/CompanyPolicies
范围:整个站点
更新频率:每天自动同步
语言:中文

4.4 GPT 模型选择与调优

Copilot Studio 底层使用 Azure OpenAI Service,支持以下配置:

模型参数调优:

Temperature(创造性):
  - 0.0-0.3:精确、一致,适合事实性问答
  - 0.4-0.7:平衡,推荐大多数场景
  - 0.8-1.0:创造性强,适合创意类任务

Top P(核采样):
  - 建议保持默认值 1.0
  - 需要精确输出时可降低到 0.5

Max Tokens(最大生成长度):
  - 简短回答:256-512
  - 标准回答:1024
  - 详细回答:2048

Prompt 模板自定义:

在高级设置中,可以自定义系统提示词(System Prompt):

你是 Contoso 公司的AI助手,专门回答员工关于公司政策、制度和流程的问题。

回答规则:
1. 只基于提供的知识源内容回答,不编造信息
2. 如果知识源中没有相关信息,明确告知用户
3. 回答使用中文,语气专业但友好
4. 涉及具体政策条款时,引用文档来源
5. 敏感话题(薪资、裁员等)建议联系HR部门

输出格式:
- 先给出直接回答
- 如有必要,补充相关信息
- 最后提供相关文档链接或联系方式

4.5 AI 安全与内容过滤

内容过滤层级:

层级1:Microsoft 内置过滤
  - 暴力内容
  - 仇恨言论
  - 性相关内容
  - 自残相关内容

层级2:组织自定义过滤
  - 禁止讨论的话题列表
  - 必须拒绝的问题模式
  - 敏感关键词屏蔽

层级3:Copilot 特定限制
  - 不回答非业务相关问题
  - 不泄露内部系统信息
  - 不提供法律/医疗建议

配置内容过滤:

Settings → Safety → Content filtering

阻止的话题示例:
  - 竞争对手信息
  - 未公开的财务数据
  - 员工个人隐私
  - 政治敏感话题

第五章:企业知识库集成

5.1 SharePoint 知识源

SharePoint 是企业最常用的知识源,适合存储政策文档、操作手册、FAQ等。

配置步骤:

  1. 在 Knowledge 页面点击 "+ Add knowledge"
  2. 选择 "SharePoint"
  3. 输入 SharePoint 站点或文档库 URL
  4. 选择同步范围(整个站点或特定文件夹)
  5. 设置同步频率

支持的 SharePoint 内容类型:

✅ 文档库(Document Libraries)
✅ 站点页面(Site Pages)
✅ 列表数据(Lists)
✅ Wiki 页面

❌ 不支持:
   - 权限受限的内容(用户无权访问的文件)
   - 音视频文件
   - 超过大小限制的文件(单文件通常限制 20-50MB)

SharePoint 权限要求:

Copilot 访问 SharePoint 所需的最低权限:
  - 站点读取权限
  - 文档库读取权限
  - 如果使用应用身份:SharePoint Sites.Read.All

5.2 公共网站与文档知识源

网站知识源配置:

类型:Website
URL:https://company.com/help
爬取深度:3 层
排除模式:
  - */login/*
  - */admin/*
  - *.pdf(如不需要PDF内容)
更新频率:每周

文档上传:

支持的文件格式:
  - PDF(.pdf)
  - Word(.docx, .doc)
  - Excel(.xlsx, .xls)
  - PowerPoint(.pptx, .ppt)
  - 纯文本(.txt)
  - CSV(.csv)
  - Markdown(.md)

单文件大小限制:通常 20-50MB
文件数量限制:因许可证而异

5.3 Dataverse 表格数据

Dataverse 是 Power Platform 的数据存储层,适合结构化数据查询。

配置示例:

数据源:Dataverse
表格名:Employee(员工表)
选择列:
  - EmployeeName(员工姓名)
  - Department(部门)
  - Position(职位)
  - OfficeLocation(办公地点)
  - Email(邮箱)

允许 Copilot 查询此表格的数据

查询优化:

1. 限制返回列数:只选择用户可能查询的列
2. 设置筛选条件:只同步活跃记录
3. 建立索引:在常用查询列上建立索引
4. 数据量控制:避免同步过多记录(建议 < 10,000 行)

5.4 自定义知识源与 API

当内置知识源无法满足需求时,可以通过自定义连接器接入外部知识库。

场景示例:接入企业 Wiki 系统

// 自定义连接器配置
{
  "name": "EnterpriseWiki",
  "host": "wiki.company.com",
  "basePath": "/api/v2",
  "authentication": "OAuth2",
  "operations": [
    {
      "name": "SearchArticles",
      "method": "GET",
      "path": "/articles/search",
      "parameters": [
        {
          "name": "query",
          "type": "string",
          "required": true
        },
        {
          "name": "limit",
          "type": "integer",
          "default": 5
        }
      ]
    }
  ]
}

5.5 知识检索优化策略

提高检索准确性的方法:

1. 文档预处理
   - 清理格式混乱的文档
   - 添加清晰的标题和小标题
   - 将长文档拆分为多个短文档
   - 添加关键词和摘要

2. 知识源组织
   - 按主题分类创建不同的知识源
   - 为每个知识源设置清晰的描述
   - 避免重复和过时的内容

3. 检索调优
   - 测试不同类型的查询
   - 根据测试结果调整文档内容
   - 使用"验证答案"功能检查准确性

4. 持续维护
   - 定期更新知识源内容
   - 删除过时的文档
   - 根据用户反馈优化文档

第六章:Power Platform 集成

6.1 Power Automate 流程集成

Power Automate 是 Copilot Studio 执行后台操作的核心工具。

典型集成场景:

场景1:发送邮件通知
  Copilot 收集信息 → Power Automate → 发送 Outlook 邮件

场景2:创建审批流程
  Copilot 提交申请 → Power Automate → 创建审批 → 通知审批人

场景3:查询外部系统
  用户提问 → Copilot → Power Automate → 查询 SAP/ERP → 返回结果

场景4:数据录入
  Copilot 收集表单 → Power Automate → 写入 SharePoint/Dataverse

创建 Power Automate 流程:

步骤 1:在 Copilot Studio 的 Actions 页面,点击 "+ Add an action"

步骤 2:选择 "New Power Automate flow"

步骤 3:设计流程:

触发器:Copilot Studio(V2)
  - 输入参数:userName (string), requestType (string), description (string)

动作1:创建 SharePoint 列表项
  - 站点:https://company.sharepoint.com/sites/ITRequests
  - 列表:ITRequests
  - 字段映射:
    Title = 触发器.userName
    RequestType = 触发器.requestType  
    Description = 触发器.description
    Status = "新建"
    CreatedDate = utcNow()

动作2:发送邮件通知
  - 收件人:it-support@company.com
  - 主题:新IT请求 - {{触发器.userName}}
  - 内容:{{触发器.userName}} 提交了 {{触发器.requestType}} 请求

响应:返回结果给 Copilot Studio
  - ticketNumber = 动作1.Id
  - status = "已创建"

步骤 4:在 Copilot 中调用流程:

在 Topic 对话流中:
  动作节点 → 选择刚创建的流程
  映射变量:
    userName = Topic.userName
    requestType = Topic.requestType
    description = Topic.description
  输出变量:
    Flow.ticketNumber → Topic.ticketNumber
    Flow.status → Topic.status

6.2 Power Apps 连接

将 Copilot 嵌入 Power Apps 应用:

方法1:使用 Copilot 控件
  1. 在 Power Apps 编辑器中插入 "Copilot" 控件
  2. 选择要使用的 Copilot
  3. 配置控件位置和大小
  4. 发布应用

方法2:使用组件库
  1. 导入 Copilot Studio 组件库
  2. 在应用中拖放组件
  3. 配置数据绑定

6.3 Dataverse 数据操作

常见 Dataverse 操作:

查询操作:
  表格:Account(客户)
  筛选:AccountType eq 'Enterprise'
  排序:CreatedOn desc
  返回前 10 条记录

创建操作:
  表格:Case(工单)
  字段:
    Title = "用户报告的问题"
    CustomerId = 当前客户
    Priority = "High"
    StatusReason = "新建"

更新操作:
  表格:Case
  记录ID:指定工单ID
  更新字段:
    StatusReason = "已解决"
    Resolution = "已远程修复"

6.4 自定义连接器

当需要连接非标准外部系统时,使用自定义连接器。

创建自定义连接器:

步骤1:定义 API 规范
  - 获取 API 的 OpenAPI/Swagger 规范文件
  - 或手动定义 API 端点和参数

步骤2:配置连接器
  名称:CustomERPConnector
  主机:erp.company.com
  基础路径:/api/v1
  认证方式:API Key / OAuth2 / Basic Auth

步骤3:定义操作
  操作1:GetEmployeeInfo
    方法:GET
    路径:/employees/{employeeId}
    参数:employeeId (path, string)
    
  操作2:SubmitLeaveRequest
    方法:POST
    路径:/leaves
    Body:
    {
      "employeeId": "string",
      "startDate": "string",
      "endDate": "string",
      "leaveType": "string",
      "reason": "string"
    }

步骤4:测试连接器
  在 Power Platform 中测试每个操作
  确保认证和数据返回正确

步骤5:在 Copilot Studio 中使用
  在 Actions 中添加此连接器
  在 Topic 对话流中调用操作

第七章:Copilot 连接器与外部系统集成

7.1 Copilot 连接器概述

Copilot 连接器(Copilot Connectors)用于将外部数据源连接到 Microsoft 365 生态系统,使 Copilot 能够检索和使用这些数据。

连接器类型:

数据连接器(Data Connectors):
  - 为 Copilot 提供外部数据的访问能力
  - 支持索引和搜索
  - 示例:ServiceNow、Salesforce、Confluence

操作连接器(Action Connectors):
  - 允许 Copilot 在外部系统中执行操作
  - 支持读写操作
  - 示例:创建工单、更新记录、发送通知

7.2 配置标准连接器

常用标准连接器:

连接器 用途 认证方式
Office 365 Outlook 邮件操作 OAuth2
SharePoint 文档和列表操作 OAuth2
Microsoft Teams 消息和团队操作 OAuth2
Dataverse 数据操作 OAuth2
HTTP 通用HTTP请求 多种
SQL Server 数据库查询 SQL认证
Azure AD 用户管理 OAuth2

配置示例 - Office 365 Outlook:

连接器:Office 365 Outlook
操作:Send an email (V2)
参数配置:
  To: Topic.userEmail
  Subject: "您的请求已处理 - " + Topic.ticketNumber
  Body: 
    "<h2>请求处理通知</h2>
     <p>尊敬的 {{Topic.userName}},</p>
     <p>您的请求(工单号:{{Topic.ticketNumber}})已处理完成。</p>
     <p>处理结果:{{Topic.resolution}}</p>"
  Importance: Normal

7.3 构建自定义连接器

完整示例 - ITSM 系统连接器:

{
  "swagger": "2.0",
  "info": {
    "title": "ITSM Connector",
    "description": "连接企业IT服务管理系统",
    "version": "1.0"
  },
  "host": "itsm.company.com",
  "basePath": "/api/v2",
  "schemes": ["https"],
  "securityDefinitions": {
    "api_key": {
      "type": "apiKey",
      "in": "header",
      "name": "Authorization"
    }
  },
  "paths": {
    "/incidents": {
      "post": {
        "summary": "创建事件工单",
        "operationId": "CreateIncident",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "short_description": { "type": "string" },
                "description": { "type": "string" },
                "urgency": { "type": "string", "enum": ["1", "2", "3"] },
                "category": { "type": "string" },
                "caller_id": { "type": "string" }
              },
              "required": ["short_description", "urgency"]
            }
          }
        ],
        "responses": {
          "201": {
            "description": "工单创建成功",
            "schema": {
              "type": "object",
              "properties": {
                "incident_id": { "type": "string" },
                "status": { "type": "string" },
                "created_at": { "type": "string" }
              }
            }
          }
        }
      }
    },
    "/incidents/{incident_id}": {
      "get": {
        "summary": "查询工单状态",
        "operationId": "GetIncident",
        "parameters": [
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "工单详情",
            "schema": {
              "type": "object",
              "properties": {
                "incident_id": { "type": "string" },
                "short_description": { "type": "string" },
                "status": { "type": "string" },
                "assigned_to": { "type": "string" },
                "updated_at": { "type": "string" }
              }
            }
          }
        }
      }
    }
  }
}

7.4 插件与扩展机制

Copilot Studio 插件架构:

插件类型:
  1. Power Platform 组件插件
     - Power Automate 流作为插件
     - Power Fx 公式插件
     
  2. API 插件
     - REST API 调用
     - GraphQL 查询
     
  3. AI 插件
     - Azure AI 服务调用
     - 自定义模型推理

插件注册流程:
  1. 在 Copilot Studio 中选择 "Actions" → "New action"
  2. 选择插件类型
  3. 配置连接参数
  4. 定义输入输出
  5. 测试插件
  6. 在 Topic 中调用

第八章:Teams 部署与企业分发

8.1 Teams 频道配置

配置步骤:

  1. 在 Copilot Studio 中,进入 "Channels" 页面
  2. 选择 "Microsoft Teams"
  3. 点击 "Turn on Teams"
  4. 配置 Teams 特定设置:
Teams 配置项:
  显示名称:企业AI助手
  图标:上传自定义图标(192x192 PNG)
  描述:您的智能工作助手,随时解答问题
  颜色主题:#0078D4(品牌色)
  
  高级设置:
    [x] 允许个人聊天
    [x] 允许团队聊天
    [x] 允许频道帖子
    [ ] 允许会议集成(如需要)

8.2 Teams 应用包发布

通过 Teams 管理中心发布:

步骤 1:导出应用包

在 Copilot Studio → Channels → Teams
点击 "Submit for admin approval"
系统生成 .zip 应用包

步骤 2:上传到 Teams 管理中心

登录 Teams 管理中心(https://admin.teams.microsoft.com)
导航至 Teams apps → Manage apps
点击 "Upload" 上传应用包
配置应用可用性策略

步骤 3:配置应用权限策略

应用权限策略设置:
  允许的应用:企业AI助手
  应用可用性:
    - 整个组织(推荐逐步推出)
    - 或特定安全组

步骤 4:配置应用设置策略

Teams 应用设置策略:
  名称:Copilot 应用策略
  固定应用:是 → 将企业AI助手固定到 Teams 左侧栏
  安装应用:允许用户自行安装

8.3 企业级部署策略

分阶段部署计划:

阶段1:试点测试(2周)
  - 范围:IT部门 + 2个业务部门
  - 用户数:50-100人
  - 目标:验证功能、收集反馈
  
阶段2:扩展测试(2周)
  - 范围:3-5个业务部门
  - 用户数:200-500人
  - 目标:性能测试、场景扩展
  
阶段3:全量部署(1周)
  - 范围:整个组织
  - 用户数:全体员工
  - 目标:全面推广、持续优化

每个阶段的关键活动:
  - 部署前:培训材料准备、管理员培训
  - 部署中:监控系统性能、处理用户反馈
  - 部署后:数据分析、优化迭代

8.4 权限与安全控制

Teams 中的安全配置:

1. 数据丢失防护(DLP)策略
   - 配置 Copilot 可以使用的数据分类
   - 限制敏感信息的显示

2. 条件访问策略
   - 限制 Copilot 的访问位置
   - 要求多因素认证

3. 应用权限控制
   - 限制 Copilot 可以访问的 Teams 资源
   - 配置消息权限范围

4. 审计日志
   - 启用 Copilot 交互日志
   - 配置合规性保留策略

Copilot 级别的安全设置:

Settings → Security

身份验证:
  - 无需认证(匿名访问)
  - Microsoft Entra ID(推荐)
  - 自定义OAuth

数据保护:
  - 会话数据加密
  - PII脱敏处理
  - 数据驻留区域选择

访问控制:
  - IP白名单
  - 时间段限制
  - 并发会话限制

第九章:Copilot API 与高级扩展

9.1 Copilot Studio API 概述

Copilot Studio 提供 REST API 用于高级集成场景。

主要 API 端点:

基础URL:https://{environment}.api.crm.dynamics.com/api/copilot/v1

会话管理:
  POST /conversations                    - 创建新会话
  DELETE /conversations/{conversationId} - 结束会话

消息交互:
  POST /conversations/{conversationId}/activities - 发送消息
  GET /conversations/{conversationId}/activities   - 获取消息历史

Copilot 管理:
  GET  /copilots                      - 获取 Copilot 列表
  GET  /copilots/{copilotId}          - 获取 Copilot 详情
  POST /copilots/{copilotId}/publish  - 发布 Copilot

9.2 直接线路集成

直接线路(Direct Line)允许通过自定义客户端与 Copilot 交互。

JavaScript 集成示例:

// 初始化直接线路连接
class CopilotClient {
  constructor(copilotId, directLineSecret) {
    this.copilotId = copilotId;
    this.directLineSecret = directLineSecret;
    this.conversationId = null;
    this.token = null;
  }

  // 创建会话
  async createConversation() {
    const response = await fetch(
      'https://directline.botframework.com/v3.0/directline/conversations',
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${this.directLineSecret}`,
          'Content-Type': 'application/json'
        }
      }
    );
    const data = await response.json();
    this.conversationId = data.conversationId;
    this.token = data.token;
    return data;
  }

  // 发送消息
  async sendMessage(text, userId, userName) {
    const response = await fetch(
      `https://directline.botframework.com/v3.0/directline/conversations/${this.conversationId}/activities`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${this.token}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          type: 'message',
          from: { id: userId, name: userName },
          text: text,
          textFormat: 'plain'
        })
      }
    );
    return await response.json();
  }

  // 获取回复
  async getResponses(watermark = '') {
    const response = await fetch(
      `https://directline.botframework.com/v3.0/directline/conversations/${this.conversationId}/activities?watermark=${watermark}`,
      {
        headers: {
          'Authorization': `Bearer ${this.token}`
        }
      }
    );
    return await response.json();
  }
}

// 使用示例
const client = new CopilotClient('your-copilot-id', 'your-direct-line-secret');
await client.createConversation();
await client.sendMessage('查询我的休假余额', 'user123', '张三');
const responses = await client.getResponses();

9.3 自定义客户端开发

Web 嵌入示例:

<!DOCTYPE html>
<html>
<head>
  <title>企业AI助手</title>
  <style>
    .copilot-container {
      width: 400px;
      height: 600px;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    }
    .copilot-header {
      background: #0078D4;
      color: white;
      padding: 12px 16px;
      font-size: 16px;
      font-weight: 600;
    }
    .copilot-iframe {
      width: 100%;
      height: calc(100% - 48px);
      border: none;
    }
  </style>
</head>
<body>
  <div class="copilot-container">
    <div class="copilot-header">企业AI助手</div>
    <iframe 
      class="copilot-iframe"
      src="https://copilotstudio.microsoft.com/environments/{environment-id}/bots/{copilot-id}/webchat"
      sandbox="allow-scripts allow-same-origin allow-forms"
    ></iframe>
  </div>
</body>
</html>

9.4 Webhook 与事件处理

配置 Copilot Studio Webhook:

Webhook 配置:
  事件类型:
    - ConversationStarted(会话开始)
    - ConversationEnded(会话结束)
    - MessageReceived(收到消息)
    - EscalationTriggered(触发转人工)
    - ErrorOccurred(发生错误)

  Webhook URL:https://your-api.com/copilot-events
  认证方式:Bearer Token
  重试策略:3次,间隔递增

Webhook 处理示例(Node.js):

const express = require('express');
const app = express();

app.post('/copilot-events', (req, res) => {
  const { eventType, conversationId, userId, timestamp, data } = req.body;
  
  switch (eventType) {
    case 'ConversationStarted':
      console.log(`会话开始: ${conversationId}, 用户: ${userId}`);
      // 记录会话指标
      logSessionMetric(conversationId, 'started', timestamp);
      break;
      
    case 'EscalationTriggered':
      console.log(`转人工请求: ${conversationId}`);
      // 创建人工客服工单
      createSupportTicket(conversationId, data.reason);
      // 通知客服团队
      notifySupportTeam(conversationId, userId);
      break;
      
    case 'ErrorOccurred':
      console.error(`错误: ${conversationId}, ${data.error}`);
      // 记录错误并告警
      logError(conversationId, data.error);
      break;
  }
  
  res.status(200).json({ received: true });
});

app.listen(3000, () => console.log('Webhook 服务已启动'));

第十章:与 Azure AI Foundry 集成

10.1 Azure AI Foundry 概述

Azure AI Foundry(原 Azure AI Studio)是微软统一的AI开发平台,提供:

核心能力:
  - Azure OpenAI Service(GPT-4、GPT-3.5、DALL-E 等)
  - Azure AI Search(企业级搜索)
  - Azure AI Content Safety(内容安全)
  - Azure AI Language(语言理解)
  - Azure AI Speech(语音服务)
  - Azure AI Vision(视觉服务)

与 Copilot Studio 的集成点:
  - 使用 Azure OpenAI 增强生成能力
  - 使用 Azure AI Search 作为知识检索后端
  - 使用 Azure AI Content Safety 加强内容过滤
  - 使用自定义模型扩展 AI 能力

10.2 Azure OpenAI Service 集成

配置 Azure OpenAI 连接:

步骤 1:在 Azure 门户创建 Azure OpenAI 资源

资源名称:contoso-openai
区域:East US(或可用区域)
定价层:S0

步骤 2:部署模型

模型:gpt-4o
部署名称:gpt-4o-deployment
版本:2024-08-06
TPM 限制:根据需求配置

步骤 3:在 Copilot Studio 中配置

Settings → Generative AI → Azure OpenAI

连接信息:
  Endpoint:https://contoso-openai.openai.azure.com/
  API Key:(从 Azure 门户获取)
  Deployment Name:gpt-4o-deployment

模型参数:
  Temperature:0.7
  Max Tokens:1024
  Top P:1.0

10.3 自定义 AI 模型接入

场景:接入企业自训练的分类模型

# Azure Functions 作为模型推理服务
import azure.functions as func
import json
from azure.ai.textanalytics import TextAnalyticsClient

def classify_request(text: str) -> dict:
    """使用自训练模型分类用户请求"""
    # 这里可以是自定义模型的推理逻辑
    categories = {
        "IT": ["电脑故障", "网络问题", "软件安装", "密码重置"],
        "HR": ["请假", "薪资", "入职", "离职"],
        "Finance": ["报销", "预算", "发票"]
    }
    
    for category, keywords in categories.items():
        for keyword in keywords:
            if keyword in text:
                return {"category": category, "confidence": 0.95}
    
    return {"category": "Unknown", "confidence": 0.3}

app = func.FunctionApp()

@app.route(route="classify", auth_level=func.AuthLevel.FUNCTION)
def classify(req: func.HttpRequest) -> func.HttpResponse:
    body = req.get_json()
    text = body.get("text", "")
    result = classify_request(text)
    
    return func.HttpResponse(
        json.dumps(result, ensure_ascii=False),
        mimetype="application/json"
    )

10.4 企业级 AI 治理

AI 治理框架:

1. 数据治理
   - 训练数据审查
   - 知识源内容审核
   - 用户数据保护(GDPR/CCPA)
   - 数据分类与标签

2. 模型治理
   - 模型版本管理
   - 性能监控与评估
   - 偏见检测与缓解
   - 模型使用审计

3. 输出治理
   - 内容安全过滤
   - 事实性验证
   - 引用来源追溯
   - 用户反馈收集

4. 访问治理
   - 角色基础访问控制
   - API 使用配额
   - 敏感操作审批
   - 审计日志记录

实施 Copilot 治理策略:

在 Power Platform 管理中心配置:

1. 环境策略
   - 限制可以创建 Copilot 的用户
   - 要求 Copilot 发布前审批
   - 配置数据保留策略

2. DLP 策略
   - 定义业务和非业务数据组
   - 限制跨组数据流动
   - 配置连接器分类

3. 审计配置
   - 启用 Copilot Studio 审计日志
   - 配置日志保留期
   - 设置告警规则

第十一章:实战项目一 — 企业智能 HR 助手

项目概述

构建一个企业级 HR 智能助手,覆盖员工日常 HR 需求。

功能范围

核心功能:
  1. 公司政策查询(休假、考勤、报销等)
  2. 请假申请提交
  3. 薪资疑问解答
  4. 入职/离职流程指引
  5. 培训课程查询与报名
  6. 员工福利说明

扩展功能:
  7. 员工信息查询(通过 Dataverse)
  8. 审批状态追踪
  9. 生日/节日祝福
  10. 满意度调查

实现步骤

第 1 步:创建 Copilot 并配置基础信息

Copilot 名称:HR 智能助手
显示名称:小H - 您的HR助手
欢迎消息:
  "您好!我是小H,您的智能HR助手 🙋‍♀️
   
   我可以帮您:
   📋 查询公司政策和制度
   🏖️ 提交请假申请
   💰 解答薪资相关问题
   📚 查询培训课程
   🎁 了解员工福利
   
   请问有什么可以帮您的?"

第 2 步:配置知识源

知识源 1:HR 政策文档库
  类型:SharePoint
  URL:https://contoso.sharepoint.com/sites/HR/Policies
  描述:公司人力资源政策文档,包含休假、考勤、报销等制度

知识源 2:员工手册
  类型:文档上传
  文件:员工手册2024.pdf、入职指南.pdf
  
知识源 3:培训课程信息
  类型:SharePoint 列表
  URL:https://contoso.sharepoint.com/sites/HR/Lists/TrainingCourses

第 3 步:设计核心 Topic

Topic 1:查询休假政策
触发短语:
  - 年假有几天
  - 请假流程是什么
  - 病假需要什么证明
  - 婚假多少天
  - 产假政策
对话流:
  1. 使用知识源检索相关政策
  2. 生成结构化回答
  3. 询问是否需要提交请假申请

Topic 2:提交请假申请
触发短语:
  - 我想请假
  - 提交请假申请
  - 请年假
  - 请病假
对话流:
  1. 问句:选择请假类型(年假/事假/病假/其他)
  2. 问句:选择开始日期(日期实体)
  3. 问句:选择结束日期(日期实体)
  4. 问句:输入请假原因
  5. 显示摘要并确认
  6. 调用 Power Automate 创建审批
  7. 返回工单号和预计审批时间

Topic 3:查询薪资明细
触发短语:
  - 工资条在哪看
  - 这个月工资多少
  - 薪资构成是什么
  - 社保公积金查询
对话流:
  1. 验证用户身份(通过 Entra ID)
  2. 查询 Dataverse 中的薪资数据
  3. 以安全方式展示薪资信息
  4. 提供常见薪资问题解答

第 4 步:创建 Power Automate 流程

流程1:HR-CreateLeaveRequest
触发器:Copilot Studio
输入参数:
  - employeeId (string)
  - leaveType (string)
  - startDate (string)
  - endDate (string)
  - reason (string)

动作:
  1. 计算请假天数(排除周末)
  2. 检查剩余假期余额
  3. 创建 Dataverse 记录
  4. 发送审批请求给直接主管
  5. 发送邮件通知员工
  6. 返回工单号

流程2:HR-CheckLeaveBalance
触发器:Copilot Studio
输入参数:
  - employeeId (string)

动作:
  1. 查询 Dataverse 员工假期表
  2. 计算各类型假期余额
  3. 返回假期余额信息

第 5 步:配置 Actions

Action 1:创建请假申请
  连接器:Power Automate
  流程:HR-CreateLeaveRequest
  输入映射:
    employeeId → Global.Session.UserID
    leaveType → Topic.leaveType
    startDate → Topic.startDate
    endDate → Topic.endDate
    reason → Topic.reason
  输出映射:
    ticketNumber → Topic.ticketNumber
    status → Topic.requestStatus

Action 2:查询假期余额
  连接器:Power Automate
  流程:HR-CheckLeaveBalance
  输入映释:
    employeeId → Global.Session.UserID
  输出映释:
    annualLeave → Topic.annualLeaveBalance
    sickLeave → Topic.sickLeaveBalance
    personalLeave → Topic.personalLeaveBalance

第 6 步:部署到 Teams

1. 配置 Teams 频道
2. 设置应用图标和描述
3. 提交管理员审批
4. 配置应用策略
5. 发布到全员

测试用例

用例1:政策查询
  输入:公司年假政策是什么?
  预期:返回年假相关制度,包含天数、申请流程等

用例2:请假申请
  输入:我想请3天年假
  预期:
    1. 询问开始日期
    2. 确认结束日期(自动计算)
    3. 询问请假原因
    4. 展示申请摘要
    5. 确认后创建申请

用例3:模糊查询
  输入:假期
  预期:询问用户具体想了解什么(政策查询 or 申请 or 余额)

用例4:异常处理
  输入:我想请30天假
  预期:检查余额不足,提示剩余天数并建议调整

第十二章:实战项目二 — IT 运维 Copilot

项目概述

构建面向企业 IT 部门的运维 Copilot,帮助员工自助解决常见 IT 问题,并支持工单创建和状态追踪。

功能范围

核心功能:
  1. 常见IT问题自助解答(密码重置、VPN连接、打印机问题等)
  2. IT工单创建与追踪
  3. 资产查询(电脑、软件许可等)
  4. 新员工IT入职指引
  5. 软件申请与安装指引

高级功能:
  6. 与 ITSM 系统集成(ServiceNow/Jira)
  7. 自动化故障诊断
  8. 变更管理通知
  9. IT 维护窗口提醒

实现步骤

第 1 步:创建 Copilot

Copilot 名称:IT 运维助手
显示名称:IT小助
欢迎消息:
  "您好!我是IT小助 🖥️
   
   我可以帮您解决IT问题:
   🔑 密码重置与账户问题
   🌐 网络与VPN连接
   🖨️ 打印机故障
   💻 电脑问题诊断
   📦 软件申请
   📋 IT工单查询
   
   请描述您遇到的问题,或选择上方选项。"

第 2 步:设计问题诊断 Topic

Topic:密码重置引导
触发短语:
  - 密码忘了
  - 无法登录
  - 密码重置
  - 账户被锁定
  - 忘记密码

对话流设计:
  1. 问句:您遇到的是哪种问题?
     选项:[忘记密码] [账户被锁定] [密码过期]
  
  2a. 如果 选择"忘记密码":
      消息:请访问自助密码重置页面:https://password.company.com
      消息:如果无法自助重置,请提供以下信息:
      问句:请输入您的工号
      问句:请输入您的注册手机号后4位
      验证:调用 Power Automate 验证身份
      如果验证成功:
        调用 Power Automate 发送重置链接
        消息:重置链接已发送到您的手机,请查收
      如果验证失败:
        消息:身份验证失败,请联系IT服务台 400-xxx-xxxx
  
  2b. 如果 选择"账户被锁定":
      消息:账户锁定通常是由于多次输入错误密码导致
      消息:系统将在30分钟后自动解锁
      问句:您是否需要立即解锁?
      选项:[需要立即解锁] [等待自动解锁]
      如果选择"需要立即解锁":
        → 创建紧急解锁工单

第 3 步:集成 ITSM 系统

自定义连接器配置:
  名称:ServiceNowConnector
  主机:contoso.service-now.com
  认证:Basic Auth(使用服务账户)

操作定义:
  1. CreateIncident(创建事件)
     POST /api/now/table/incident
     Body:
     {
       "short_description": "{{summary}}",
       "description": "{{description}}",
       "urgency": "{{urgency}}",
       "category": "{{category}}",
       "caller_id": "{{callerId}}"
     }
     Response:{ "result": { "number": "INC0012345" } }

  2. GetIncidentStatus(查询事件状态)
     GET /api/now/table/incident?sysparm_query=number={{incidentNumber}}
     Response:{ "result": [{ "state": "In Progress", "assigned_to": "..." }] }

  3. UpdateIncident(更新事件)
     PATCH /api/now/table/incident/{{sysId}}
     Body:{ "comments": "{{comment}}" }

第 4 步:自动化故障诊断

Topic:电脑运行缓慢诊断
触发短语:
  - 电脑很卡
  - 运行缓慢
  - 系统很慢
  - 电脑卡顿

诊断流程:
  1. 消息:我来帮您诊断电脑问题 🔍
  
  2. 问句:问题是什么时候开始的?
     选项:[今天] [最近几天] [一直很慢]
  
  3. 问句:重启电脑后问题是否改善?
     选项:[已尝试重启,没有改善] [没有重启过] [重启后有改善]
  
  4. 问句:主要在使用什么软件时感觉慢?
     选项:[所有软件] [浏览器] [Office] [特定软件]
  
  5. 条件判断:
     如果 "最近几天" + "所有软件":
       建议:
         1. 检查任务管理器中的CPU/内存使用
         2. 清理临时文件
         3. 检查是否有Windows更新
         提供操作指南文档链接
     
     如果 "今天" + 没有重启:
       建议:请先重启电脑,大多数临时问题可以通过重启解决
       如果重启后仍存在问题,请告诉我
     
     如果 "一直很慢":
       可能是硬件配置问题
       建议:提交硬件升级申请
       → 跳转到工单创建流程
  
  6. 问句:以上建议是否解决了您的问题?
     选项:[已解决] [仍未解决,需要创建工单]
     如果未解决 → 创建IT支持工单

第 5 步:资产查询功能

Topic:查询我的IT资产
触发短语:
  - 我的电脑型号
  - 查看我的设备
  - 软件许可证
  - 我的IT资产

对话流:
  1. 验证用户身份(通过 Teams 身份)
  
  2. 调用 Power Automate 查询 CMDB:
     输入:userId
     输出:
       - computer:电脑型号、序列号、配置
       - monitor:显示器信息
       - software:已安装软件列表
       - license:软件许可证到期日期
  
  3. 展示资产信息:
     消息:
       📱 您的IT资产信息:
       
       💻 电脑:Dell Latitude 5540
          序列号:XXXXX
          配置:i7-1365U / 16GB / 512GB SSD
          保修到期:2025-12-31
       
       🖥️ 显示器:Dell P2723QE (27寸 4K)
       
       📦 已安装软件:
          - Microsoft 365 Apps(许可证有效)
          - Adobe Acrobat Pro(到期:2024-06-30)
          - Visual Studio Enterprise(许可证有效)
  
  4. 问句:需要进行什么操作?
     选项:[申请新软件] [报告设备问题] [软件续期] [无]

第 6 步:创建自动化流程

流程1:IT-CreateTicket
  输入:问题描述、分类、优先级、用户信息
  处理:
    1. 在 ServiceNow 创建事件工单
    2. 发送确认邮件给用户
    3. 通知对应支持组
  输出:工单号

流程2:IT-CheckTicketStatus
  输入:工单号
  处理:
    1. 查询 ServiceNow 工单状态
    2. 获取处理进度和备注
  输出:状态、分配人、更新时间、最新备注

流程3:IT-PasswordReset
  输入:工号、手机后4位
  处理:
    1. 验证用户身份
    2. 调用 AD 接口发送密码重置链接
    3. 记录操作日志
  输出:操作结果

流程4:IT-AssetQuery
  输入:用户ID
  处理:
    1. 查询 CMDB 数据库
    2. 格式化资产信息
  输出:资产列表

测试用例

用例1:密码重置
  输入:我忘记密码了
  预期:引导用户选择问题类型,完成自助重置或创建工单

用例2:电脑问题
  输入:我的电脑特别卡,所有软件都很慢
  预期:
    1. 询问问题发生时间
    2. 询问是否尝试重启
    3. 根据回答提供诊断建议
    4. 如果未解决,创建工单

用例3:工单查询
  输入:帮我查一下 INC0012345 的状态
  预期:
    1. 查询 ServiceNow
    2. 返回工单状态、处理人、最新进展

用例4:软件申请
  输入:我需要申请 Visio
  预期:
    1. 确认用户部门和职位
    2. 检查是否有可用许可
    3. 创建软件申请工单
    4. 发送审批流程

第十三章:监控、分析与持续优化

数据分析指标

Copilot Studio Analytics 关键指标:

会话指标:
  - 总会话数
  - 平均会话时长
  - 会话完成率
  - 转人工率

Topic 指标:
  - 各 Topic 触发次数
  - Topic 匹配成功率
  - 回退(Fallback)率
  - 用户满意度评分

知识源指标:
  - 知识检索次数
  - 答案准确率
  - 引用来源分布

性能指标:
  - 平均响应时间
  - 错误率
  - 可用性

监控仪表板配置:

Power BI 仪表板设计:

页面1:总览
  - 今日/本周/本月会话趋势图
  - 热门 Topic 排行
  - 用户满意度趋势
  - 转人工率趋势

页面2:详细分析
  - 会话漏斗分析
  - 用户旅程热图
  - 回退原因分析
  - 响应时间分布

页面3:知识源效果
  - 知识源使用频率
  - 答案准确率
  - 未覆盖问题列表
  - 知识更新建议

持续优化策略

1. 每周优化循环
   周一:分析上周数据,识别问题
   周二-周三:更新触发短语和对话流
   周四:更新知识源内容
   周五:测试并发布更新

2. 月度优化重点
   - 分析 Top 10 回退原因,创建对应 Topic
   - 更新过时的知识源内容
   - 优化对话流的用户体验
   - 收集并处理用户反馈

3. 季度评估
   - 评估 Copilot 整体效果
   - 规划新功能需求
   - 评估技术架构调整
   - 成本效益分析

用户反馈收集

在对话流中嵌入反馈收集:

方法1:每次回答后
  消息节点后添加:
  问句:"这个回答对您有帮助吗?"
  选项:[👍 有帮助] [👎 没帮助]
  如果 "没帮助":
    问句:"请告诉我哪里不满意(可选)"
    记录反馈到 Dataverse

方法2:会话结束时
  系统 Topic "Goodbye" 中添加:
  问句:"请为本次服务评分"
  选项:[⭐⭐⭐⭐⭐] [⭐⭐⭐⭐] [⭐⭐⭐] [⭐⭐] [⭐]
  记录评分到 Dataverse

方法3:定期调查
  通过 Teams 消息定期推送满意度调查链接

第十四章:常见问题与故障排除

Q1:Copilot 无法正确匹配 Topic

症状:用户输入触发短语,但 Copilot 进入回退 Topic。

可能原因与解决方案:

原因1:触发短语与实际输入差异太大
  解决:增加更多触发短语变体,包括口语化表达

原因2:多个 Topic 触发短语冲突
  解决:检查 Topics 的触发短语是否有重叠,调整优先级

原因3:生成式 AI 模式干扰
  解决:检查是否开启"生成式编排",尝试关闭或调整设置

原因4:实体识别错误
  解决:检查实体定义是否正确,添加更多示例

Q2:生成式 AI 回复不准确

症状:基于知识源的回答包含错误信息或编造内容。

解决方案:

1. 检查知识源内容
   - 确保知识源文档内容准确
   - 删除过时或矛盾的内容
   - 使用清晰的结构化文档

2. 调整模型参数
   - 降低 Temperature(建议 0.3-0.5)
   - 添加更严格的系统提示词
   - 启用"仅基于知识源回答"

3. 添加引用验证
   - 开启"显示引用来源"功能
   - 要求 Copilot 标注信息来源

4. 配置内容过滤
   - 添加敏感话题的阻止规则
   - 设置"不知道"的标准回复

Q3:Power Automate 流程调用失败

症状:Copilot 调用 Action 时返回错误。

排查步骤:

1. 检查连接状态
   Settings → Actions → 检查连接器状态
   确保认证未过期

2. 检查输入参数
   在 Topic 中检查变量映射是否正确
   确认数据类型匹配

3. 查看流运行历史
   Power Automate → 流程 → 运行历史
   查看失败运行的错误详情

4. 常见错误:
   - 401 Unauthorized:认证过期或权限不足
   - 400 Bad Request:输入参数格式错误
   - 429 Too Many Requests:触发速率限制
   - 500 Internal Server Error:目标系统异常

Q4:Teams 中 Copilot 不可用

症状:用户在 Teams 中找不到 Copilot 或无法使用。

解决方案:

1. 检查应用发布状态
   Copilot Studio → Channels → Teams → 确认已开启

2. 检查应用策略
   Teams 管理中心 → Teams apps → Setup policies
   确认 Copilot 在允许列表中

3. 检查用户权限
   确认用户在目标安全组中
   检查条件访问策略

4. 清除 Teams 缓存
   退出 Teams → 删除缓存文件夹 → 重新登录

5. 检查 Copilot 状态
   Copilot Studio → 确认 Copilot 已发布
   检查是否有错误状态

Q5:性能问题与响应延迟

症状:Copilot 响应时间过长。

优化方案:

1. 减少知识源范围
   - 只索引必要文档
   - 限制网站爬取深度
   - 优化知识源组织结构

2. 优化 Power Automate 流程
   - 减少不必要的 API 调用
   - 使用并行分支优化流程
   - 添加超时处理

3. 调整模型参数
   - 降低 Max Tokens
   - 使用更轻量的模型(如 GPT-3.5)

4. 配置缓存
   - 对常见问答启用缓存
   - 使用 CDN 加速静态资源

Q6:许可证与成本问题

常见问题:

Q:消息配额用完了怎么办?
A: 
  1. 分析消息使用情况,优化不必要的生成式 AI 调用
  2. 对简单问题使用经典 Topic 而非生成式 AI
  3. 考虑购买更多消息包
  4. 实施缓存策略减少重复查询

Q:如何估算所需消息数?
A:
  1. 统计预期用户数
  2. 估算每用户每日平均交互次数
  3. 区分经典消息和生成式消息比例
  4. 计算月度总消息数 = 用户数 × 日均交互 × 30天

Q:如何优化成本?
A:
  1. 使用经典 Topic 处理高频简单问题
  2. 生成式 AI 仅用于复杂问答
  3. 启用结果缓存
  4. 定期清理无用 Topic 和知识源
  5. 监控消息使用量,设置预算告警

Q7:数据安全与合规

常见安全问题:

Q:Copilot 会存储用户对话内容吗?
A:是的,对话历史会存储在 Power Platform 环境中。
   可以配置数据保留策略,设置自动删除时间。

Q:如何确保敏感数据不被泄露?
A:
  1. 配置 DLP 策略限制数据访问
  2. 使用条件访问控制用户范围
  3. 配置内容过滤阻止敏感信息显示
  4. 定期审计 Copilot 使用日志

Q:是否符合 GDPR/CCPA 等法规?
A:Microsoft Copilot Studio 符合多项国际合规标准。
   但需要正确配置数据保留和访问策略。
   建议与法务团队确认具体合规要求。

附录:资源与参考

官方资源

Microsoft Copilot Studio 官方文档:
  https://learn.microsoft.com/copilotstudio/

Power Platform 文档:
  https://learn.microsoft.com/power-platform/

Azure AI Foundry 文档:
  https://learn.microsoft.com/azure/ai-studio/

Copilot Studio 社区论坛:
  https://community.powerplatform.com/forums/

推荐学习路径

入门阶段(1-2周):
  1. 完成本教程第1-4章
  2. 创建一个简单的 FAQ Copilot
  3. 部署到 Teams 测试

进阶阶段(2-4周):
  1. 完成第5-8章
  2. 集成企业知识库
  3. 创建 Power Automate 流程
  4. 完成一个实战项目

高级阶段(4-8周):
  1. 完成第9-10章
  2. API 扩展开发
  3. Azure AI 集成
  4. 企业级部署与优化

常用快捷键

Copilot Studio 编辑器快捷键:
  Ctrl + S      保存当前 Topic
  Ctrl + Z      撤销操作
  Ctrl + Y      重做操作
  Ctrl + C/V    复制/粘贴节点
  Delete        删除选中节点
  Ctrl + F      搜索 Topic

本教程持续更新中。Microsoft Copilot Studio 是一个快速演进的平台,建议定期查阅官方文档获取最新功能和最佳实践。

最后更新:2025年

内容声明

本文内容为AI技术学习教程,仅供学习参考。如涉及技术问题,欢迎通过 xurj005@163.com 与我们交流。

目录