## 新成员 Onboarding 自动欢迎与引导 {.case data-case-id="005"}

| 字段 | 值 |
| --- | --- |
| 案例编号 | `005` |
| 行业 / 部门 | 互联网 / 研发 |
| 角色 | 工程经理 |
| 难度 | `入门` |
| 调用来源 | `schedule`（定时由获授权 Agent 经 App/Extension 查询 HR/IM 获取当日新入职名单） |

<!-- slot: 目标 -->
新成员入职第一天，频道里没人主动欢迎，也没有结构化的引导信息，新人不知道第一步该做什么。目标：定时由获授权 Agent 经 App/Extension 查询 HR/IM 拿到当日新入职名单，由引导 Agent 为每位生成欢迎语和入职检查清单，再通知团队频道；查询失败、当日无人入职（结果为 0）、有人入职三种结果各有可见回执。指标：从查询启动到引导消息发出的中位数 < 10 分钟；每日抽样由 HR 核对欢迎消息的称呼回填与岗位类别和 HR/IM 记录一致。

<!-- slot: 边界 -->
- **覆盖**：定时查 HR/IM 拿当日名单，生成欢迎语与入职检查清单，三种结果各出回执，有人入职时通知团队频道。
- **不覆盖**：自动创建账号、配置权限、分配导师、写回 HR/IM 系统。
- **假设**：有一个经授权能查询 HR/IM 的 Agent（通过 App/Extension）；团队里有一个能生成欢迎内容的引导 Agent。

<!-- slot: 提示词 -->
把下面这段发给 Loop，它会在后台帮你创建这个 Workflow：

```text
帮我创建一个 Workflow：定时由获授权的查询 Agent 经 App/Extension 读取 HR/IM，拿到当日新入职成员名单，再由引导 Agent 为每位生成欢迎语和入职第一天检查清单（配置开发环境、加入频道、认识导师、阅读团队规范），然后通知团队频道。
触发：定时（计划）发起调用，调用时带入团队频道、查询 Agent 和引导 Agent。
输入：App/Extension 在读取侧即完成聚合与脱敏，查询 Agent 只回传内部标识（受控令牌：权限受控且 Agent 无法反查原值）、岗位类别与入职日期等白名单字段；姓名、证件、联系方式、薪酬等原始字段不进入工作流。欢迎消息中的称呼不进入 Agent，由 HR 侧模板经平台 App 在发送时按受控令牌回填（如"新同学 A"），引导 Agent 不接触姓名原文。HR/IM 缺字段时，欢迎消息里对应位置写"待确认"，不编造。
结果分三类处理：
  有人入职：引导 Agent 生成欢迎+清单后通知团队频道，并留审计时间戳。
  当日无人入职（结果为 0）：发一条"本期无新入职"的汇总回执并留时间戳，不静默结束。
  查询失败（HR/IM 不可达或数据陈旧）：告警失败、留审计时间戳，按重试上限重试，仍失败则升级到值班频道。
审批：不涉及审批，欢迎通知是低风险信息，直接触达。
异常：任一 Agent 回传不合结构就停在等待点等它重新提交，不自动重跑；通知发送失败按重试上限重试，仍失败则升级到值班频道并保留待发内容供人工补发。
完成：三类结果各自出回执后结束。
```

<!-- slot: 流程 -->
![案例 005 新成员 Onboarding：定时让获授权 Agent 查询 HR/IM 取当日名单；查询失败留审计并重试升级，当日无人入职发汇总回执，有人入职则由引导 Agent 生成欢迎与清单后通知频道，均留审计时间戳](../../../media/cases/fig-case-005-01-flow.svg){#fig-case-005-01 width=94%}

如上图所示，正常路径与异常同时可见，三种结果都有可见回执：

1. **定时触发**：计划到点发起一次调用，带入团队频道、查询 Agent 与引导 Agent。
2. **查询 HR/IM**：获授权 Agent 经 App/Extension 读取当日新入职名单并回传；回传结构不合要求时停在原等待点，等其重新提交，不自动重跑。
3. **三种结果分流**：
   - **查询失败**：HR/IM 不可达或数据陈旧，告警失败并留审计时间戳，按重试上限重试，仍失败则升级到值班频道。
   - **当日无人入职**：结果为 0，发一条汇总回执并留时间戳，不静默结束。
   - **有人入职**：引导 Agent 为每位生成欢迎语与检查清单，回传后通知团队频道并留审计时间戳。

<!-- slot: 配置 -->
你不需要手写代码或配置。把上面的提示词发给 Loop，AI 会理解意图、在后台画出这个"定时查询 + 三路分流"流程——它知道"查名单"需要一个发消息并等待回调的 Agent 环节、"生成欢迎"是另一个等待回调的 Agent 环节、"分三种结果"需要一个条件路由、"通知与回执"各需要一个发消息环节。AI 还会在后台校验流程结构是否完整（每个环节的输入是否都连好），你不必关心这些技术细节。

<!-- slot: 异常 -->
- **HR/IM 查询失败或数据陈旧**：不落入"无人入职"或静默结束，而是告警失败、留审计时间戳，按重试上限重试；仍失败则升级到值班频道由人工确认。
- **当日无人入职（结果为 0）**：仍发一条"本期无新入职"汇总回执并留时间戳，让"没消息"变成可核验的记录，而不是无声结束。
- **引导 Agent 编造信息**：在提示词里写明"缺字段写待确认、不编造"，并每日抽样由 HR 核对称呼回填与岗位类别；发现错误更正后重发，并留审计时间戳。
- **任一 Agent 回传不合结构**：本次完成请求被拒绝，停在等待点等其修正后重新提交，不自动重跑。
- **通知发送失败**：按重试上限重试投递；超过上限则升级，并保留待发内容供人工补发。

<!-- slot: 审批 -->
本案例不涉及审批。欢迎与引导通知是低风险信息，应第一时间触达团队；因此不设 `request_approval` 环节，三种结果直接出回执。若担心名单有误，可在提示词里加"通知前先让 HR 确认名单"，AI 会多加一个审批环节，确认后才发，驳回则本次失败结束。

<!-- slot: 外部系统 -->
本工作流的 HR/IM 查询由获授权 Agent 通过 App/Extension 完成，工作流本身不直接调用外部系统。新成员的入职信息由该 Agent 从 HR/IM 读取，不靠工作流硬编码；进入 Agent 消息、Run/Activation/Effect 记录与 App/Extension 工具日志的字段以白名单为准（仅令牌化/白名单字段，原值不进入以上任何一层），可回溯个人的字段（姓名/邮箱/证件/联系方式等）在源头即被令牌化/伪名化，并按 10% 抽查四层实际记录。HR/IM 的访问凭据用 `<token>` 占位，由 Agent 运行时从密钥引用。HR/IM 不可达或数据陈旧属于查询失败，走上面的失败回执与升级，不当作"无人入职"。

<!-- slot: 验收 -->
- **回放集与基准**：用 50 组已标注的"新入职名单+岗位"回放，人工基准答案为既定欢迎模板与检查清单；清单必含 4 类项（环境配置、加入频道、认识导师、阅读规范），缺字段应写"待确认"而非编造。
- **分母与口径**：清单完整率分母为回放总数；每次回放记录查询与通知时间戳。
- **结果可见**：有人入职、无人入职、查询失败三类结果 100% 各有可见回执，不出现静默成功。
- **人工抽样**：每日抽取 10% 已发欢迎消息，由 HR 核对称呼回填与岗位类别是否与 HR/IM 一致，不一致计入差错并更正重发。
- **源头脱敏**：进入 Agent 消息、Run/Activation/Effect 记录与 App/Extension 工具日志的字段 100% 在白名单内（仅令牌化/白名单字段，原值不进入以上任何一层），并按 10% 抽查四层实际记录。
- **时效**：从查询启动到引导消息发出的中位数 < 10 分钟。

### 复用与变体
- **同构迁移**：新客户欢迎、会议提醒、入职周年祝福。
- **名单确认**：在通知前加一步让 HR 确认当日名单，AI 会多加一个审批环节。

<!-- slot: 媒体槽位 -->
<!-- media: fig-case-005-01-flow.svg -->
