class: center, middle, nord-dark # 从看板到执行体 ### Hermes Agent 驱动的订单履行工作台 #### 基于 WeLink CLI、Supply CLI 与业务进展接口的订单履行 Agent 实践 .mt-lg[ 黄凤 | 企业订单履行部 | 2026-04-28 ] --- class: pangujs ## 工作台的价值正在从"展示状态"走向"推动执行" .column-2.mt-lg[ .col[ <div style="background:#f8f9fa; padding:18px 22px; border-radius:8px;"> <div style="font-size:1.1em; color:#888; font-weight:bold; margin-bottom:10px;">传统工作台</div> <div style="line-height:2; color:#555;"> 现在是什么状态?<br> 谁在负责?<br> 进度多少? </div> </div> ] .col[ <div style="background:#fff5f5; padding:18px 22px; border-radius:8px;"> <div style="font-size:1.1em; color:#bf616a; font-weight:bold; margin-bottom:10px;">Agent 工作台</div> <div style="line-height:2; color:#555;"> 为什么是这个状态?<br> 下一步该做什么?<br> 能不能帮我推进? </div> </div> ] ] .center.mt-xl[ .text-muted[工作台不再只是状态视图,而是参与业务流转的执行体] ] --- class: pangujs ## 业务现场散落在系统、消息和邮件里 .mt-md[ <table class="st st-allline" style="width:100%;"> <tr style="background:#f8f9fa;"> <th style="width:18%;">来源</th> <th style="width:42%;">能拿到什么</th> <th style="width:40%;">问题</th> </tr> <tr> <td><b>系统</b></td> <td>合同、订单、批次、交付状态</td> <td>能查询,但不会自己说话</td> </tr> <tr> <td><b>WeLink/邮件</b></td> <td>真实的进展沟通、风险预警、催办、异常说明</td> <td>非结构化,散落在多个群</td> </tr> <tr> <td><b>人脑/Excel</b></td> <td>跟单笔记、待跟进事项、客户口头承诺</td> <td>断点严重、易遗忘、不可追溯</td> </tr> </table> ] .center.mt-lg[ .text-muted[查状态、问进展、写汇报,全靠人工把这三个来源串起来] ] --- class: pangujs ## 让 AI 有用的第一步,是让业务现场可读取 .column-3.mt-xl[ .col.center[ <div style="font-size:2em; color:#bf616a;">①</div> ### 读取 Agent 能看到 WeLink 群消息、邮件、聊天记录 ] .col.center[ <div style="font-size:2em; color:#bf616a;">②</div> ### 查询 Agent 能查到合同、订单、批次、交付的真实系统状态 ] .col.center[ <div style="font-size:2em; color:#bf616a;">③</div> ### 沉淀 Agent 能把判断结果写回到进展记录、风险登记、待办列表 ] ] .center.mt-xl[ <div style="display:inline-block; padding:14px 24px; background:#f8f9fa; border-radius:8px; color:#555; font-size:0.9em;"> 数据底座 → 工具链 → Skill 编排 → Agent 执行 </div> ] --- class: pangujs ## 批量导出先补齐基础数据底座 .column-2.mt-md[ .col[ **当前做法(Playwright 批量导出)** - 管理批次数据 → 本地缓存 - 与自己相关的合同信息 → 本地缓存 - 每日定时跑,覆盖最近窗口 **为什么先这样做** 不是终极方案,但能在没有数据库直连的情况下,先把判断要用的数据准备好。 ] .col[ **下一步演进** <div style="background:#f8f9fa; border-radius:6px; padding:14px 18px; line-height:2;"> Playwright 批量导出 <span style="color:#bbb;">·当前·</span><br> ↓<br> 数据库查询 / 只读副本<br> ↓<br> 专门接口 / 实时订阅 </div> .text-muted.mt-md[先有数据,再谈智能。批量导出是第一步,不是终点。] ] ] --- class: pangujs ## WeLink CLI 让沟通现场可被 Agent 读取 .column-2.mt-md[ .col[ **能查什么** - 最近 N 条群消息 / 私聊消息 - 按关键字、合同号、批次号、机会点检索 - 拉取某个时间段的沟通记录 **Agent 能做什么** 从消息里提取: - 合同号 / 批次号 / 机会点(或项目名称) - 进展节点(已交单、已收货) - 风险点(延期、缺料、变更) - 责任人 + 时间承诺 ] .col[ **示例命令** ```bash welink-cli messages \ --group "供应协调" \ --since 2d \ --grep "1Y010525" ``` ```bash welink-cli messages \ --user "张供应" \ --since 1d ``` .text-muted.mt-md[Agent 不是直接听消息,而是按需求去取它要的那一段] ] ] --- class: pangujs ## Supply CLI 让业务状态可被 Agent 查询 .column-2.mt-md[ .col[ **能查什么** - 合同详情 / 合同清单 - 订单状态 / 交付进度 - 管理批次 / 批次明细 - 按机会点 / 项目名称聚合 - 异常清单 / 风险标记 **Agent 能做什么** 让判断基于真实系统状态,而不是消息里的口头承诺。 ] .col[ **示例命令** ```bash supply contract show \ 1Y01052508470L ``` ```bash supply contract list \ --opportunity OPP-2026-0421 ``` ```bash supply batch list \ --contract 1Y01052508470L ``` .text-muted.mt-md[群里说"已推进"不算数,系统里查到的状态才算数] ] ] --- class: pangujs ## 进展记录需要从原始 API 走向标准工具 .column-2.mt-md[ .col[ **现状** <div style="background:#fff5f5; padding:14px 18px; border-radius:8px; line-height:1.9;"> 进展能力来自原始 API 调用<br> 鉴权、参数、错误处理散落在各处<br> Agent 调用容易出错、难审计 </div> **问题** API 是给程序用的,不是给 Agent 用的。Agent 需要的是稳定、自描述、可审计的工具。 ] .col[ **建议封装为标准命令** ```bash supply progress add \ --contract 1Y01052508470L \ --content "已交单,等待客户确认" \ --tag normal ``` ```bash supply progress list \ --contract 1Y01052508470L ``` .text-muted.mt-md[让 Agent 调用更稳定、更安全、可审计] ] ] --- class: pangujs ## CLI 给 Agent 手,Agent 决定怎么做事 .column-2.mt-lg[ .col[ <div style="background:#f8f9fa; border-radius:8px; padding:18px 22px;"> <div style="font-size:1.1em; color:#5e81ac; font-weight:bold; margin-bottom:10px;">CLI = 手</div> <div style="line-height:2; color:#555;"> welink-cli :读消息<br> supply CLI :查业务、写进展<br> <br> <b>解决"能不能做"</b> </div> </div> ] .col[ <div style="background:#fff5f5; border-radius:8px; padding:18px 22px;"> <div style="font-size:1.1em; color:#bf616a; font-weight:bold; margin-bottom:10px;">Agent = 脑</div> <div style="line-height:2; color:#555;"> 理解任务(用户要的是哪类)<br> 选择工具(先读还是先查)<br> 调用工具(参数、重试)<br> 汇总结果(多源信息合成)<br> 推进下一步(追问 / 草稿 / 提醒)<br> <br> <b>解决"怎么做事"</b> </div> </div> ] ] .center.mt-md[ .text-muted[没有手,再聪明也只能空想;没有脑,再多工具也用不起来] ] --- class: pangujs ## Skill 把业务经验固化成 Agent 的执行流程 .column-2.mt-md[ .col[ **Skill 是业务 SOP** 不是抽象指令,而是把"老员工怎么处理这件事"写成 Agent 能照着做的步骤。 **好处** - Agent 走预定路径,不发挥 - 业务经验沉淀,可复用 - 出错时能定位到哪一步 - 新业务可以快速加 Skill ] .col[ **示例:合同交单监控 Skill** ```markdown --- name: 合同交单监控 description: 监控合同交单进展、风险和待办 --- ## 步骤 1. supply CLI 查合同基本信息和订单状态 2. welink-cli 拉最近相关沟通 3. 综合判断:交单进度、风险、不一致 4. 生成进展草稿,等待人工确认 5. 确认后写入进展记录 ``` ] ] --- class: pangujs ## 一句话触发合同交单监控 Skill .center.mt-md[ <div style="display:inline-block; background:#f8f9fa; border-radius:10px; padding:14px 22px; color:#444; font-size:1.05em; max-width:780px;"> <b>用户说</b>:"帮我关注合同 <code>1Y01052508470L HWA0012Q</code>,看看最近有没有交单进展" </div> ] .mt-lg[ <table style="width:100%; border-collapse:collapse;"> <tr><td style="width:48px; vertical-align:top; padding:8px;"><b style="color:#bf616a;">①</b></td><td style="padding:8px;">supply CLI → 拉合同详情、订单状态、批次明细</td></tr> <tr><td style="vertical-align:top; padding:8px;"><b style="color:#bf616a;">②</b></td><td style="padding:8px;">welink-cli → 搜最近 3 天相关消息</td></tr> <tr><td style="vertical-align:top; padding:8px;"><b style="color:#bf616a;">③</b></td><td style="padding:8px;">综合判断 → 输出"状态 / 进展 / 风险 / 下一步"</td></tr> <tr><td style="vertical-align:top; padding:8px;"><b style="color:#bf616a;">④</b></td><td style="padding:8px;">生成进展草稿 → 等待人工确认</td></tr> <tr><td style="vertical-align:top; padding:8px;"><b style="color:#bf616a;">⑤</b></td><td style="padding:8px;">确认后写入进展记录</td></tr> </table> ] .center.mt-md[ .text-muted[一句话从"问"到"沉淀"] ] --- class: pangujs ## 每日简报不是消息摘要,而是履行状态更新 .column-2.mt-md[ .col[ **普通做法** 把消息摘要列出来: - "群里说 X 合同已交单" - "李四问 Y 批次进展" - "客户反馈 Z 订单延期" → 信息很多,但还是要人去理解 ] .col[ **Agent 简报** 按履行状态归类: - 今天**有新进展**的合同(含进展内容) - 今天**没动静**的合同(沉默 N 天的) - **临近交付**的合同(按时间排序) - **需要人工跟进**的事项(明确动作) → 不是消息列表,是状态变化清单 ] ] .center.mt-md[ .text-muted[简报应该回答"今天我该关心什么",而不是"今天发生了什么"] ] --- class: pangujs ## 重点合同可以从人工盯办变成 Agent 跟踪 .column-2.mt-md[ .col[ **用户操作** 把某个合同标为"关注",告诉 Agent: - 关注哪些维度(交付 / 风险 / 沟通) - 提醒频率(实时 / 每日 / 异常时) ] .col[ **Agent 自动做的事** - 定期查系统状态、关联消息 - 对比变化(昨天 vs 今天) - 出现以下情况主动提醒: - 有交单 / 收货迹象 - 出现延期、缺料、变更 - 系统状态和沟通承诺不一致 - 沉默超过 N 天 ] ] .center.mt-lg[ <div style="display:inline-block; padding:12px 24px; background:#fff5f5; border-radius:8px; color:#bf616a; font-size:1.05em;"> 把"我得记得盯"变成"它会告诉我" </div> ] --- class: pangujs ## Agent 不只发现异常,还要解释异常 .column-2.mt-md[ .col[ **普通异常清单** <div style="background:#f8f9fa; padding:14px 18px; border-radius:8px; color:#888;"> 合同 X 有异常<br> → 自己去查 </div> → 异常多了反而麻木 ] .col[ **Agent 解释** <div style="background:#fff5f5; padding:14px 18px; border-radius:8px; line-height:1.9;"> <b>合同 X 异常分析:</b><br> 卡在哪个环节(系统状态显示)<br> 最近有没有人处理(消息记录)<br> 系统和沟通是否一致(关键看点)<br> 下一步该找谁(责任人识别) </div> → 像一份诊断报告 ] ] .center.mt-md[ .text-muted[异常清单是负担,诊断报告才是帮手] ] --- class: pangujs ## 散落的沟通可以沉淀成正式进展 .center.mt-md[ <div style="display:inline-block; background:#f8f9fa; border-radius:8px; padding:14px 22px; font-size:0.95em;"> WeLink 消息 + 业务查询结果 + 人工补充 <br>↓<br> Agent 提取结构化进展 → 草稿 → 人工确认 → 写入 </div> ] .column-2.mt-lg[ .col[ **结构化进展字段** - 时间 / 合同号 / 批次号 / 机会点(或项目名称) - 进展内容("已交单"/"延期到..."/"收到客户确认") - 风险标记(如有) - 来源(哪条消息、哪次查询) ] .col[ **为什么要这么做** - 群里说一句的事,能进合同档案 - 不依赖个人记忆和手工录入 - 复盘时有据可查 - 接手时一目了然 ] ] --- class: pangujs ## 每个合同都应该有自己的履行时间线 .column-2.mt-md[ .col[ **时间线包含** - 历史进展(结构化) - 关键沟通节选(带时间戳) - 系统状态变化(节点流转) - 风险出现 / 解除时间 - 承诺人 + 后续动作 ] .col[ **为什么重要** - 接手合同时一目了然 - 复盘异常订单时可追溯 - 客户问起时有据可查 - 跨部门协同时有共同上下文 ] ] .center.mt-lg[ <div style="display:inline-block; background:#fff5f5; border-radius:8px; padding:12px 20px; color:#bf616a;"> 合同档案 ≠ 字段列表,合同档案 = 履行故事 </div> ] --- class: pangujs ## Agent 可以发现系统、消息和进展之间的不一致 .mt-md[ **典型不一致** <table class="st st-allline" style="width:100%;"> <tr style="background:#f8f9fa;"> <th>消息说</th><th>系统显示</th><th>进展记录</th><th>状态</th> </tr> <tr> <td>"已推进"</td><td>状态没更新</td><td>—</td><td><span style="color:#bf616a;">⚠️ 沟通承诺与系统脱节</span></td> </tr> <tr> <td>"延期到 X 日"</td><td>—</td><td>没写</td><td><span style="color:#bf616a;">⚠️ 风险未沉淀</span></td> </tr> <tr> <td>—</td><td>状态"在途"</td><td>"已交付"</td><td><span style="color:#bf616a;">⚠️ 进展超前于系统</span></td> </tr> </table> ] .center.mt-lg[ <div style="display:inline-block; background:#fff5f5; border-radius:8px; padding:12px 20px; color:#bf616a;"> 对比三方 → 发现不一致 → 提示用户去核实 </div> ] .center.mt-md[ .text-muted[把口径不一致这件事,从隐性变成显性] ] --- class: pangujs ## 从"人问 Agent"走向"Agent 主动盯变化" .column-2.mt-md[ .col[ <div style="background:#f8f9fa; border-radius:8px; padding:18px 22px;"> <div style="font-size:1.1em; color:#888; font-weight:bold; margin-bottom:10px;">被动模式</div> <div style="line-height:2; color:#555;"> 人问 Agent<br> → Agent 回答<br> <br> 人想得起来才会用 </div> </div> ] .col[ <div style="background:#fff5f5; border-radius:8px; padding:18px 22px;"> <div style="font-size:1.1em; color:#bf616a; font-weight:bold; margin-bottom:10px;">主动模式</div> <div style="line-height:2; color:#555;"> 人定义关注<br> → Agent 定期检查<br> → 有变化才通知<br> <br> Agent 不会忘事 </div> </div> ] ] .center.mt-md[ .text-muted[关注:某个合同 / 某类异常 / 某个节点 / 某个客户 / 某个供应商] ] .center.mt-md[ <div style="display:inline-block; padding:10px 20px; background:#fff5f5; border-radius:8px; color:#bf616a; font-size:1em;"> 像一个不会忘事的助手,但只在重要时打扰你 </div> ] --- class: pangujs ## 让 Agent 稳定执行,比让它会回答更重要 .mt-md[ **从 Demo 到可用** <table style="width:100%; border-collapse:collapse;"> <tr><td style="width:50px; vertical-align:top; padding:10px;"><b style="color:#bf616a;">①</b></td><td style="padding:10px;"><b>Skill 约束流程</b> — 让 Agent 走预定路径,不发挥</td></tr> <tr><td style="vertical-align:top; padding:10px;"><b style="color:#bf616a;">②</b></td><td style="padding:10px;"><b>CLI 标准化工具</b> — 减少调用错误、提升可审计性</td></tr> <tr><td style="vertical-align:top; padding:10px;"><b style="color:#bf616a;">③</b></td><td style="padding:10px;"><b>结构化输出</b> — 不是自由文本,是可解析的字段</td></tr> <tr><td style="vertical-align:top; padding:10px;"><b style="color:#bf616a;">④</b></td><td style="padding:10px;"><b>写入前确认</b> — 重要动作(写进展、发提醒)人工审一遍</td></tr> <tr><td style="vertical-align:top; padding:10px;"><b style="color:#bf616a;">⑤</b></td><td style="padding:10px;"><b>可复用的业务模板</b> — 把好用的 Skill 沉淀下来</td></tr> </table> ] .center.mt-lg[ <div style="display:inline-block; padding:10px 22px; background:#fff5f5; border-radius:8px; color:#bf616a;"> 会回答的 Demo 一周做出来,稳定执行的工作台要做半年 </div> ] --- class: center, middle, nord-dark # 工作台的下一步,是成为业务执行体 .mt-lg[ 工作台不只是展示更多字段, ] .mt-md[ 而是让 Agent 通过工具链 ] .mt-md[ **读取现场、理解状态、沉淀进展,并推动业务继续往前走。** ] .mt-xl[ .text-muted[黄凤 · 企业订单履行部 · 2026-04-28] ]