Hello,我是Karthik,Perpetual的首席技术官。在本次演讲中,我将探讨如何为金融、财富管理和保险领域构建既可靠又智能的工作流。在受监管的领域中,工作流必须足够可靠以满足合规标准,同时又要具备足够的智能以应对现实世界。在金融和财富管理等领域,这既是一个技术问题也是一个合规问题。可靠性和智能性并非对立面。关键在于你如何划定二者之间的界限,这也是本次演讲的核心:决定那条边界究竟在哪里。
对我们而言,这不仅仅是一个思想实验,而是一个可能引发严重后果的问题。Perpetual是一家财富管理控股公司,我们通过收购传统财富管理机构来运营,并在人工智能的帮助下最大化其吞吐量和收入。财富管理是一个受监管的行业,而正是在这里,我们在生产环境中构建人工智能应用。本次演讲的所有内容都基于在这些约束条件下进行构建的原则。
金融和财富管理领域的工作流具有四个特征,每一个都推动架构向同一方向发展。首先,它们很复杂,随着流程的展开需要运行时策略。你无法提前编写所有路径的代码。其次,数据是敏感的,因此你需要一条将所有工作流完全迁移到私有托管模型的路径。第三,在高度受监管的行业里,政策违规不是一份错误报告,它具有严重的后果。
因此,第四点,执行必须高度可靠且确定性强。仅在真正需要运行时判断的地方注入智能,并在其他地方尽量减少对大语言模型的依赖。人工智能正在渗透受监管的行业,但目前对于如何在最少使用LLM智能的情况下实现高可靠性,仍缺乏共识。与此同时,开发者从大型实验室听到的大多是关于如何消耗更多Token的内容。但在受监管的行业里,“最大化Token使用”是错误的目标。
这些任务接近于“主线”,你可以提前规划并将它们构建为一个巨大的状态机。而这个机器只需要少许智能来导航它,大多数步骤只需遵循下一个边缘路径即可。仅在少数几个判断点上,模型才会选择分支。因此,智能的构建方式是最小化且有针对性地使用智能。让我们用一个真实的财富管理流程来具体说明这一点。
一位财富顾问向助手下达指令,只说了一句话:“为哈珀先生填写IRS W9表格。”对人来说,这是一个简单的指令。但请看当人类执行时实际触发的过程:任务复杂性远超表面所见。首先,助手从公司记录或IRS网站找到W9表格。然后,他们在主数据系统中查找哈珀先生,结果找到了三个名为哈珀的家庭。
于是他们致电顾问:“您指的是哪一位哈珀?”只有解决了这个歧义后,流程才会继续。一次查询、一个歧义点以及人工介入,所有这些发生在一行指令的第一分钟内。填写表格听起来像是数据录入,其实不然。每一份表单都是一个小型程序。W9首先要确定纳税人身份:是个人还是所有者(如果是被忽视实体)。
外国人到此为止,因为他们需要填写W8表格。接着确定纳税方式:第3A行恰好只勾选一个框,有限责任公司则添加其字母标识。这决定了第一行和第二行的姓名填写方式。接着是谁的号码?是社保号(SSN)还是雇主识别码(EIN)?绝不能两者都有。必须从验证过的文件中获取,绝不可凭记忆填写。
豁免代码仅适用于某些实体,绝不适用S型公司。最后,谁在伪证罪处罚下签字?每个答案都会影响下一个问题。相关人员只会遇到三种类型的关卡:一个问题、一份需要收集的文件,或一个签名。现在开始填写表格,他们发现主数据系统缺少三个所需值。
查阅存档文件和再次检查系统后,仍然缺失这三个值。于是他们开始与客户进行邮件沟通,专门请求提供这确切的三个数值。此时任务依赖于公司外部的人及其时间表,工作流因此暂停。请求已发送给客户,三个值仍然缺失。如果客户在两天内未回复,助手将跟进并在每日站会上向顾问汇报。
若客户仅回复了三个值中的两个,助手将再次跟进以获取缺失的那个。当所有三个值都到达后,他们完成表格填写,并将新信息连同获取这些值的轨迹写回主数据系统。在这个行业里,“如何得知某个值”与“该值本身”同样重要。
表格填写完成后,进入电子签名环节。如果客户在一天或两天内未签署,助手会再次提醒他们。一旦签字完成,他们将表格归档给客户,发送确认通知,并在次日站会上更新顾问情况。来自顾问的一句话变成了一个持续数天的流程,跨越多个系统,等待两个人响应,并多次自我循环。
看看这句话内部包含了什么:需要解决的歧义、待收集的数据、审批环节、以天为单位衡量的权重、跟进循环以及最终的证据链。工作流自动化工具确实存在,但它们很少能处理这种现实世界的复杂性和歧义性。固定的流程图在遇到“哪个哈珀”时就会崩溃,而缺乏原生主数据系统、集成以及能即兴发挥的代理程序,正是合规团队无法签字批准的原因。
一个在歧义面前崩溃,另一个则无法通过审批。两者都无法处理那句话内部的复杂性。那么我们该怎么办?流行的观点是更多的代理能力和更好的模型:把整个任务交给代理,等待下一个模型使其变得可靠。特别是在受监管的公司内部,本能的回答恰恰相反:更少的代理能力、更多的规则、锁定系统并将每条路径硬编码。
这两种思路都是错误的维度。在受监管的垂直领域,可靠性来自于你在两者之间放置边界的位置:即必须确定性的部分与真正需要判断的部分之间的界限。这里有一个原则:确定性控制流程、证据和副作用(即下一步运行什么、我们知道了什么以及如何知道它)。任何改变现实世界的操作,如写入记录、发送邮件或归档表格。
智能提供解释和判断:解读模糊指令、决定是哪位哈珀先生、理解客户的回复。模型回答类型问题,而确定性系统决定对答案采取什么行动。这种相互作用是递归的:一个判断可以开启一个新的、更小的计划,该计划经过编译、门控且是确定性的。稍后你将在跟进环节看到这一点。两者之间的边界就是设计所在。以下是我们在构建的工作流引擎中的实现方式。
请求被发送至一个由模型调用的规划器,其唯一职责是进行翻译。它生成意图、实体、事实、工件、事件和约束的语义图,每种元素都基于请求中的具体措辞,并标注出发现的任何歧义。图中的每个节点都会回溯指向其来源的原始文字。随后,该图被送入编译器,编译器在11个确定性阶段中绝不调用模型。它将图形转化为执行标签,否则就会关闭系统(fail closed)。编译器仅有三种裁决:有效、需要澄清或拒绝。若需澄清,Harper(系统组件)会返回一个问题而非猜测。计划被编译为不可变状态,并通过哈希值固定。
模型负责翻译,随后编译器对计划进行编译。编译器依据公司允许操作的语法和词汇表来检查该计划,涵盖表单、文档、电子邮件、电子签名、日历及人工步骤等42种类型的动作契约。规划器请求的每个动作都必须匹配相应的契约。例如,“填写表单”会找到其对应的表单契约并锁定。如果规划器请求了语法中不存在的动作,或连接错误,编译器将予以拒绝。从图中的循环到不支持的动作,约有40种情况会导致系统关闭。相同的契约摘要被固定在引擎、后端和用户界面中,确保三方对动作含义达成一致。这就是封闭领域带来的优势:模型只能请求公司已知能安全执行的操作。
这里展示了一个针对W9表格追讨的编译计划:发送表单给客户,等待返回,检查并归档。在任何操作运行之前,由人工批准该计划本身:查找表单、准备供客户填写的PDF并渲染草稿邮件。起草是模型调用,因此被视为“易变”(violet)。发送则是动作门控。在人工批准该特定邮件之前,任何内容都不会离开公司。随后计划等待回复,并由裁判介入阅读返回的表单并进行验证。如果匹配成功,则归档于另一个门控之后;如果不匹配,计划将跟进。
请注意虚线步骤:渲染PDF、附加文件、判断回复。规划器从未要求执行这些操作,而是语法根据契约需求添加了它们。在这个故事中,等待、审批和跟进占据了大部分工作流。在此处,计划中包含的是节点而非提示词。回复权重默认为72小时,显式截止日期可以是1分钟到30天之间的任何值。当时间到期时,由规则决定后续动作,而非模型。一个审批涵盖整个计划,而每个外部动作(如发送邮件或签名请求)都有各自的门控。审批与确切载荷的哈希值绑定,并在发送前再次检查。
当客户仅回复部分所需信息时,回复裁判会标记为“部分完成”。该判断是临时的。步骤保持阻塞状态,直到人工确认。一旦人工确认,步骤解除阻塞,随后作为新的子计划运行跟进操作。已批准的父计划永远不会被更改,且最多进行五轮迭代。一旦计划获得批准,状态机便运行该流程,选择每个步骤并记录结果。当某个步骤需要判断时,它会发起一次固定模式架构的模型调用:撰写邮件、评判回复、发现缺失值、提取字段或验证文档。返回的答案具有类型,状态机据此决定后续动作。
副作用拥有独立的生命周期:准备、分发、成功或当世界未能清晰回应时的“结果未知”及人工审查。系统没有自动重试机制。聊天消息可以批准步骤或回答问题,但不能更改已批准的计划。模型负责引导方向,但从不直接驾驶(控制)。现在看看留给模型的剩余工作:在规划器之外,判断任务小而具体。例如:“此回复是否完整?”、“文档是否匹配?”或“哪个字段对应哪一项?”。这些任务不需要前沿智能,快速的小型模型(Flash层级)即可处理。
在这20次决策的示例运行中,19次由Flash层级处理,仅1次涉及前沿模型。这就是为什么我们将工作流中约95%的模型决策设计为无需使用前沿模型的原因。Flash层级可以在您控制的硬件上运行,只有真正困难的案例才会交由前沿模型处理。这5%并非永久性成本,因为每个判断都有类型、被记录且临时的判断由人工确认或拒绝。每次前沿决策都会通过构造过程产生评估等级分布的真实训练数据,这些数据可用于对Flash层级进行后训练。日志和评估功能现已存在,接下来的步骤是建立训练循环。
因此,前沿模型的占比会随着每次发布而缩减,直到连困难案例也能在本地运行。回顾我们最初的需求:由于数据敏感,您需要一条将所有工作流完全迁移至私有托管LLM的路径。这种设计真的能实现吗?以Harper Berby 9计划中的一个模型调用为例,每个模型调用都是小型的、有类型的,并针对模式进行检查。因此,将其指向私有托管模型仅是配置更改而非重写。只需修改一行代码即可返回相同的答案。其他所有调用都具有相同的微小类型结构,因此同样的更改几乎适用于它们全部。
这就是为何约95%的本地推理成为可能:这是架构的自然结果,而非政策承诺。这也是敏感数据所要求的路径,随着每次发布的工程路线图推进,合规风险逐步降低。因此,如果您只记住一件事:不要问您的系统应该拥有更多或更少的代理权(agency),而应询问边界在哪里。让确定性控制流程、证据和副作用,让智能处理解释和判断。在有类型的节点处,您可以检查并使用记录的每一个判断以减少对其依赖。下次演讲时,请询问边界在哪里。
谢谢。我是Perpetual的首席技术官Karthik Rao。如果您正在将人工智能构建于受监管的工作环境中,我很乐意与您交流心得。