← 返回全部作品
SELECTED WORK / 03 · Agent / Workflow

让 AI 知道,何时交给人

Human-in-the-Loop · AI 决策与人工复核

项目形态个人项目 · 已搭建跑通
我的角色独立搭建与流程验证
技术栈Copilot Studio / SharePoint / Human Review
案例速览

将 AI 分类、人工复核与结果回写串联起来:规则明确时自动处理,规则未覆盖时由人接手。

查看完整搭建步骤 ↓
BUILD WALKTHROUGH / 实施步骤

从一条申请,到一次有记录的决定。

以申请用途审核为演示场景,下面按数据、决策、执行与验证展开配置过程。重点是明确 Agent 能处理什么、何时需要人接手,以及人工回复后如何继续执行。

步骤说明配有原作者 Matthew Devaney 的 20 张教程参考截图,可点击查看原图。教程中的示例数据与运行结果用于说明配置,个人环境的实机记录可另行补充。

01

先定义输入、规则与结果

在 SharePoint 中分别保存申请记录与用途规则。每次处理时读取规则列表;审核结果仍写回原申请,避免形成一条无法对应来源的新记录。

申请列表 · Bank Loan Applications

字段类型用途
Full Legal Name单行文本审核通知中识别申请人
Loan Amount Requested数字保存申请金额;本演示的分类依据为用途
Loan Purpose单行文本作为 Agent 的分类输入
Decision选项Allowed / Flagged;新申请暂留空
Is Human-Reviewed是 / 否标记是否完成了人工复核
Human-Review Rationale多行文本保存审核人给出的理由
SharePoint 申请列表:姓名、金额与用途字段 查看原图 ↗
SharePoint 申请列表:姓名、金额与用途字段

为申请列表创建提交表单,只收集姓名、金额和用途三个输入。结果字段由工作流维护。

从申请列表打开 Forms,创建提交入口 查看原图 ↗
从申请列表打开 Forms,创建提交入口
在申请表单中配置三个输入字段 查看原图 ↗
在申请表单中配置三个输入字段

规则列表 · Loan Purposes

设置 Purpose(文本)和 Category(Allowed / Flagged 选项)。下面的少量演示规则用于说明匹配过程,可替换成实际业务规则。

演示规则

住房修缮 → Allowed
博彩活动 → Flagged
未被规则覆盖的用途 → 交由人工复核

用途规则列表:标准用途与分类 查看原图 ↗
用途规则列表:标准用途与分类
02

把判断边界写成三种状态

先确定分类结果对应的行为,再编写 Agent 指令。Human-Review 是暂待人工判断的路由状态;Allowed 与 Flagged 才是本演示保存的最终结果。

Allowed

匹配允许用途

直接记录分类结果,并标记未经人工复核。

Flagged

匹配标记用途

直接记录标记结果,保留自动处理路径。

Human-Review

规则未覆盖

发起复核并等待回复,再保存人工决定和理由。

这条边界避免把“没有找到规则”直接当成“允许”。它也决定了后面条件节点只需判断是否进入人工路径。

03

连接触发器、规则列表与 Agent

  1. 在 Copilot Studio 新建工作流,选择 SharePoint 的 When an item is created 连接器触发器,指向申请列表。
  2. 添加 Get items,读取用途规则列表;列表视图选择 All Items。读取操作使用规则列表,触发器使用申请列表。
  3. 添加 Agent 节点并选择环境中可用的模型,将申请用途和规则数组作为输入,配置下方指令及结构化输出。
配置新建列表项触发器,选择申请列表 查看原图 ↗
配置新建列表项触发器,选择申请列表
使用 Get items 读取用途规则列表 查看原图 ↗
使用 Get items 读取用途规则列表

Agent 指令示例

你是申请用途分类器。输入包含申请人填写的用途和当前有效的用途规则。
只根据给定规则匹配,不自行创造允许或标记类别。

输出约定:
• stated_purpose:原样保留申请用途。
• matching_purpose:匹配成功时填规则中的标准用途;无法匹配则留空。
• category:匹配成功时沿用规则的 Allowed 或 Flagged;
  没有足够依据匹配时返回 Human-Review。

申请用途:[插入触发器中的 Loan Purpose 动态值]
用途规则:[插入 Get items 返回的 value 数组]

使用配置的结构化字段返回结果,不附加解释段落。
配置用途分类 Agent 的输入与指令 查看原图 ↗
配置用途分类 Agent 的输入与指令

结构化输出字段

stated_purpose 和 matching_purpose 为文本;category 限定为 Allowed、Flagged、Human-Review 三个选项。这样,下一节点读取分类字段即可判断分支。

配置 stated_purpose、matching_purpose 和 category 输出字段 查看原图 ↗
配置 stated_purpose、matching_purpose 和 category 输出字段
未覆盖用途 · 示例输出
{
  "stated_purpose": "购买家庭应急储能设备",
  "matching_purpose": "",
  "category": "Human-Review"
}
04

让人工回复成为流程输入

在 Agent 后加入 If 条件:category 等于 Human-Review。成立时进入 Human Review 节点;否则走自动回写分支。

通过分类结果决定是否进入人工复核分支 查看原图 ↗
通过分类结果决定是否进入人工复核分支
  1. 在人工分支中添加 Human Review 动作,指定审核人。以下以 Outlook 为通知通道;Teams 可作为另一种配置选择。
  2. 通知标题包含申请人姓名。正文说明“用途未匹配现有规则”,并插入 stated_purpose,让审核人看到需要判断的原始信息。
  3. 添加 Decision(Yes / No)与 Rationale(文本)两个回复字段,用于收集决定和理由。
  4. 将人工分支的回写动作放在复核节点之后,使其在收到回复后执行。
设置 Human Review 的标题与通知正文 查看原图 ↗
设置 Human Review 的标题与通知正文
配置审核人、Outlook 通道与回复字段 查看原图 ↗
配置审核人、Outlook 通道与回复字段
通知内容示例

这条申请的用途尚未匹配当前规则,请查看申请用途并决定是否允许。提交时请说明判断理由,工作流将把决定和理由保存到原申请。

05

两条路径,回到同一条申请

两条分支分别添加 SharePoint 的 Update item 动作,均选择申请列表,并使用触发器返回的 ID。若连接器要求其他必填字段,也从原申请映射相应值。

为申请列表补充决定与复核记录字段 查看原图 ↗
为申请列表补充决定与复核记录字段
写入字段自动处理人工复核完成后
DecisionAgent 的 categoryYes → Allowed;No → Flagged
Is Human-ReviewedNoYes
Human-Review Rationale留空审核人填写的 Rationale

Decision 转换表达式

技术参考中的复核输出虽然使用 boolean 作为字段名,其值为文本 Yes / No。下面以动作为 Human_Review 举例,配置时替换为实际动作名,并检查运行输出的数据类型。

if(
  equals(body('Human_Review')?['boolean'], 'Yes'),
  'Allowed',
  'Flagged'
)
人工分支:选择待更新的申请列表与记录 查看原图 ↗
人工分支:选择待更新的申请列表与记录
人工分支:映射决定、复核标记与理由 查看原图 ↗
人工分支:映射决定、复核标记与理由
自动分支:写入 Agent 分类结果 查看原图 ↗
自动分支:写入 Agent 分类结果
06

按分支验证,而不只看一次成功

保存并发布工作流后,通过表单创建新的演示申请。按下表分别核对 Agent 输出、实际执行分支与 SharePoint 最终字段。以下为可复现的验证示例与预期结果,实际运行记录可另行补充。

演示输入期望路径预期回写
住房修缮匹配 Allowed,自动处理Allowed / 人工标记 No
博彩活动匹配 Flagged,自动处理Flagged / 人工标记 No
购买家庭应急储能设备;人工回复 YesHuman-Review → 人工允许Allowed / 人工标记 Yes / 保存理由
同一未覆盖用途;人工回复 NoHuman-Review → 人工标记Flagged / 人工标记 Yes / 保存理由
未覆盖用途;暂不回复等待人工复核人工分支暂不写入最终决定

对照教程,查看一次完整运行

教程演示:提交一条需要人工判断的申请 查看原图 ↗
教程演示:提交一条需要人工判断的申请
教程运行记录:Agent 返回人工复核分类 查看原图 ↗
教程运行记录:Agent 返回人工复核分类
教程演示:审核人在通知中提交决定和理由 查看原图 ↗
教程演示:审核人在通知中提交决定和理由
教程运行记录:收到回复后继续执行回写 查看原图 ↗
教程运行记录:收到回复后继续执行回写
教程演示:在原申请中查看最终结果 查看原图 ↗
教程演示:在原申请中查看最终结果

面试展示时,沿着一条申请讲清楚

先展示申请记录,再展开工作流中的结构化分类结果、人工复核通知和最终回写。用同一个申请 ID 串联这些节点,就能说明判断依据、执行顺序和结果来源。

建议补充的实机材料

完整工作流画布 · Agent 输入输出 · 一次复核通知与回复 · 同一申请的回写结果。本页已加入原作者的教程截图;你个人环境中的实机材料可补充在相应步骤旁边。

03 / OUTCOME

交付与沉淀

已独立搭建并跑通从申请触发、AI 分类、人工复核到结果回写的完整流程,将人工判断作为 Agent 工作流中的明确节点。

下一个项目

Multi-Agent Workflow · 文档审核自动化

↗