搭建业务 Agent 前,先定义「决策契约」

关于 Decision-first 和 Data-first 的思考

Adam

最近三个月,和客户聊得最多的,就是怎么搭建业务 Agent,也就是数字人。

我发现大家的思路都很像:先盘数据,给 Agent 喂上下文。CRM、订单、合同、知识库、聊天记录、经营报表,能接的都接进来。

这条路径听起来没问题,我一开始也觉得顺理成章,业务 Agent 也确实能搭起来。它会查资料、做总结、提示风险。最后却很容易回到传统问答机器人的状态:什么都知道一点,却不对任何结果负责。

比如,它不会直接告诉你:「某个客户出现了流失风险,现在应该采用什么策略。」

怎样才能让 Agent 像一位资深业务专家那样思考、判断?看到 Data-first 和 Decision-first 这两个方向后,我似乎有了一个新的答案。

Data-first 和 Decision-first 的区别是什么

决策管理领域很早就在讨论这个问题。Decision Management Manifesto 提出,应该先把业务决策建模,再考虑规则和分析怎么支持它。OMG 的 DMN 标准则把决策、子决策、输入数据和业务知识之间的依赖关系画出来,方便业务人员、分析师和开发者一起讨论。

Data-first 的常见链路是:

已有数据 → 指标和分析 → 洞察 → 人理解 → 人做决定 → 人执行

Decision-first 把链路倒过来:

业务目标 → 要做的决定 → 可选动作 → 所需事实和规则
→ Agent 判断 → 人工确认或自动执行 → 结果写回

总结一句话就是,Data-first 先问我们有什么数据。Decision-first 先问业务里有什么决定需要持续做好,然后才去找支撑这个决定的数据、规则和动作。

顺序换一下,最后做出来的东西也会很不一样。

正向之路:Data-first,最后 Agent 只是分析助手

往往我们习惯先走 Data-first 这条路,也就是用数据范围定义 Agent 的职责。接入销售数据,就叫销售 Agent;接入项目数据,就叫项目 Agent;如果把几套系统都接进来,名字可能再大一点,叫企业数字人。

但能读什么,和应该负责什么,是两回事。

一个 Agent 即使读完所有客户资料,也未必知道该先挽回哪位客户。它可以识别订单延期,却不清楚该找谁处理、多久需要升级。它也能生成一份很完整的经营分析,但当利润、库存和客户体验发生冲突时,它缺少可执行的取舍规则。

于是我们会看到一种很常见的结果:Agent 告诉你「这个客户存在风险,建议及时跟进」。这句话当然没错,但缺少了真正有价值的部分:风险多高才需要行动?谁来行动?用什么方式?可以给多少商务条件?几天没有进展要不要升级?

这些判断如果还藏在少数 TOP 销售、主管或老板脑子里,Agent 接再多数据也只是分析助手。

反向而行:Decision-first,换一个起点

假设我们要做一个客户续约 Agent。

Data-first 的做法,通常是先接入 CRM、沟通记录、合同、回款、工单和产品使用等数据。Agent 据此生成客户摘要、风险评分和跟进建议。做到这一步,演示往往已经很好看了。

Decision-first 不急着接数据,而是先定义这项工作中反复出现的关键决策:

当客户进入续约前 45 天且出现风险信号时,我们该继续常规培育、安排高层介入、给出商务方案、升级为经营风险,还是暂不行动?

决策命题一旦明确,后面的需求就会变得具体。

比如:什么情况下触发判断?除了续约日期,可能还包括重大投诉、使用量突然下降或逾期回款。Agent 有哪些可选动作?哪些条件会改变选择?折扣底线是多少?涉及合同承诺时,谁来确认?采取动作后,记录写回哪里?最终评价看续约率、续约周期,还是毛利变化?

很多客户数据其实并不需要。只有那些会改变这项决定的事实,才值得进入 Agent 的上下文。相应地,工具的用途也更明确:查事实、分任务、起草沟通内容、发起审批、写回结果。

业务上下文不能靠堆资料,先写「决策契约」

现在聊搭建 Agent,大家往往很在意给它足够多的上下文。常见做法是不断往里加:多接一个系统、多放一批文档、再做一套知识库。仿佛资料堆得足够多,Agent 自然就会知道该怎么做。

我觉得这里很容易混淆两件事:知道什么,和真正需要什么。

如果把业务 Agent 当成一个数字岗位,我会在写 Prompt、配工作流之前,先把下面这张表填完。

项目要说清楚的事
业务结果希望这项决定改善什么结果。
决策命题对哪个业务对象,要做什么选择。
触发条件什么事件、状态或时间点启动判断。
行动选项可以采取哪些动作,也包括不行动。
事实和规则哪些数据、阈值、政策和例外会改变选择。
权限边界Agent 能做到哪一步,何时必须交给人。
写回记录判断依据、确认人、动作和异常记在哪里。
结果反馈过后如何判断这次选择是否有效。

我把它定义为「决策契约」。它更像一份能运行的岗位说明书,比一段写得很长的 Prompt 管用。

举两个例子,会更容易理解。

电商:这笔售后单该怎么处理

用户发来一张商品破损照片:订单金额 168 元,物流显示昨天已签收。Data-first 的 Agent 可以将订单、物流和历史沟通整理成一份摘要。但客服真正要处理的是一道选择题:直接退款、补发、请用户补充凭证、拒绝申请,还是转人工?

如果给这个售后 Agent 写决策契约,我会这样写:

项目决策契约示例
业务结果缩短售后处理时间,同时控制异常退款和重复投诉。
决策命题当前售后单应该退款、补发、补证、拒绝,还是转人工。
触发条件用户提交售后申请,或物流、投诉系统出现异常。
行动选项自动退款、创建补发单、索要照片、给出拒绝原因、转交客服。
事实和规则订单金额、商品类目、签收时间、破损证据、物流异常、用户历史售后次数和平台规则。
权限边界低金额、证据完整且规则明确的订单可以自动处理;高客单价、食品安全、疑似欺诈或连续投诉必须交给人。
写回记录保存采用了哪些事实、命中了哪条规则、做了什么动作,以及谁确认了例外。
结果反馈看处理时长、二次投诉、退款损失和人工改判率。

写到这里,Agent 需要接什么数据已经很清楚了。它不需要翻完整个会员画像,只要拿到会改变这次售后决定的事实。

制造:订单出现交期风险后怎么办

再看一个制造现场:某张订单将在 48 小时后出货,关键物料预计晚到 10 小时,原定产线又临时停机。分析型 Agent 很容易给出「存在延期风险,请及时关注」的结论。但计划员面对的是一组更具体的选择:调整排产、切换产线、安排加班、拆单先发、临时外协,还是尽快与客户重谈交期?

这份决策契约可以这样写:

项目决策契约示例
业务结果提高按期交付率,同时控制加班、换线、外协和报废成本。
决策命题当前风险订单应该怎样调整生产和交付方案。
触发条件物料晚到、设备停机、质检不通过,或系统预测无法按承诺日期完工。
行动选项同车间重排、切线、加班、拆单发货、外协、调整交期或暂不动作。
事实和规则客户承诺日、订单优先级、在制进度、物料到货时间、设备能力、换线损耗、质量要求和各方案成本。
权限边界Agent 可以在既定产能和成本范围内给出重排建议;新增外协、改变客户交期、插单影响其他客户或突破加班上限时,必须由计划、生产和销售共同确认。
写回记录保存原排产、风险原因、备选方案、确认人和最终执行结果。
结果反馈看按期交付率、额外成本、质量损失,以及这次调整对其他订单造成的影响。

这个例子里,数据更多,参与的人也更多。决策契约的价值在于先把冲突摊在桌面上:保交期要多花多少钱,谁有权改排产,谁能对客户改口。Agent 可以算方案、追进度、发起确认,但不能在大家不知情的情况下替组织做掉这些取舍。

OpenAI 的 Agent 实践指南把数据工具和行动工具分开讨论,也建议对高风险动作设置人工介入。这个区分很务实:一旦系统开始发消息、改记录、分任务或做审批,权限边界和接管机制就不能留到最后再补。

这也是我现在理解「业务数字人」的关键点:先把服务对象、目标、职责范围、行动权限、升级关系和工作记录定下来。如果缺少这些东西,它更像一个问答机器人的界面。

容易踩的坑:Decision-first 也会走偏

从决策出发,并不意味着什么都要交给 Agent 拍板。恰恰相反,先对决策建模的一个好处,就是可以提前定义权限边界,让它真正稳定地运行。

定义业务 Agent 的作用,不要盲目把自动化程度当作核心指标。真正需要考虑的是:一旦 Agent 判断错了,损失有多大?动作能不能撤回?过程有没有记录?谁可以及时接手?

更需要关注的是,怎样把那些经常重复、却分散在个人经验中的判断,变得可管理、可修改。

Data-first 该放在哪

这并不意味着要把 Data-first 推到对立面。很多时候,我们一开始确实不知道问题在哪里:探索一批数据、寻找异常、做一次战略分析,或先摸清企业有哪些数据资产,这些工作都适合从数据出发。

但当一个场景准备进入生产,要求 Agent 反复运行、调用工具、改变业务状态,并对结果进行评估时,就该切换到 Decision-first,也就是决策视角。因此,我更倾向于这样划分:

探索阶段用 Data-first 找问题
生产阶段用 Decision-first 接工作

数据基础设施可以从 Data-first 建设
具体业务 Agent 应围绕 Decision-first 设计

两条路不冲突。Data-first 负责打开可能性,Decision-first 负责把其中一项可能性做成组织可以长期使用的业务 Agent。

在开始搭业务 Agent 时,先列「决策清单」

很多 Agent 项目的需求文档,第一页往往是能力清单:查数据、写报告、发消息、建任务、调用系统。现在我会把这一页先放到后面,把更重要的事提前,先列清业务里需要做出的决定:

选中一项写决策契约:只接入最少且必要的数据,配置关键规则和工具。

第一版不必追求自动化,先做到「给出建议,由人确认」即可,但每次判断都要写回依据、动作与结果。运行一段时间后,再复盘哪些规则有效、哪些例外此前没有覆盖。

这样的第一版通常不大,却更容易验证。你能看见它究竟接走了哪段工作,也能说清它做得好不好。

随着运行的积累,Agent 会越来越贴近业务,连接系统的工具也会逐步标准化。企业最终留下来的差异,往往正是这些看似不起眼的细节:一项决定需要看哪些事实,遇到哪些例外必须暂停,谁有权批准,以及过去的选择带来了什么结果。

所以,下次搭建业务 Agent:

参考来源

  1. James Taylor, The Decision Management Manifesto
  2. Object Management Group, Decision Model and Notation (DMN)
  3. IBM, What is Decision Management?
  4. OpenAI, A practical guide to building agents