基础概念

Storylines:有状态、以图编排、交付一整套流程的智能体

一条 storyline 是一张有向图,智能体会和每个终端用户一起沿着它走——每个节点是一步(有自己的任务、知识和工具),出口携带条件,而每个人的进度、档案和笔记都会跨会话、跨渠道保存并续接。它把一个智能体从做单点任务的助手,变成能亲自交付一套多步骤服务的智能体。

也叫有状态智能体stateful agent智能体状态机对话流程引导式智能体旅程agent workflow有状态工作流对话式工作流多步骤智能体课程智能体onboarding 旅程智能体智能体编排图agent orchestration graph

大多数智能体做的是单点任务:回答一个问题、订一个时段、收集一个细节。它们坐在业务周围,让业务更快。教学本身、辅导本身、咨询本身——业务所卖东西的内核——仍然需要一个真人。一条 storyline 正是让智能体能接手那个内核的东西:一个多步骤、有状态的流程,它与每一个个体一起运行,记住他们走到了哪里,并随他们的推进而调整。一所语言学校的 storyline 不只是帮你订课;它把课教了

storyline editor

storyline 不是“一个技能更多的智能体”

这是首先要厘清的一点,因为两者看起来相似,其实不然。技能是模型能够伸手去取的一种能力;storyline 是事情发生的顺序

一个带若干技能的智能体一个运行 storyline 的智能体
顺序任意技能,任意时刻——无先后“A 没做完就到不了 B”
状态不记得你走到了哪每个人的进度都被保存并续接
由什么驱动模型每一轮自己决定由图及其条件决定
确定性顺序活在模型脑子里顺序被画成一张图——带版本、可度量

技能回答的是一个智能体能做什么。storyline 管的是什么按什么顺序发生,以及这个特定的人此刻在哪里。两者并非对手——storyline 是技能之上的一层:每个节点仍然挂着它自己的技能、知识和工具。而且因为顺序活在一张显式的图里,而非模型的工作记忆里,一条 storyline 会随流程变长而保持可靠——模型只需处理当前这一步,而不必一步不错地记住一套十二步的流程。

storyline vs. 工作流

因为一条 storyline 也是一张由步骤组成的图,很容易把它归到工作流搭建器那一类——世上的那些 Dify、n8n、Zapier。它们是另一种东西。工作流自动化的是系统之间的一个流程:一条固定的流水线,由触发器点燃,每次以相同方式运行,把数据从一个工具搬到下一个。它对为谁运行没有记忆,因为它并不是任何人运行的——它是机器对机器的管道。

一条 storyline 的状态就是一个人。每个个体的进度、档案和在流程中所处的位置都被保存并续接,于是同一张图会为每个终端用户产生一条不同的、可续接的路径,而智能体在每一步把这场对话撑住,而不是在各个应用之间倒腾数据。工作流自动化一个任务;storyline 向某个人交付一项服务,并记住他

工作流(Dify、n8n、Zapier)一条 storyline
流经它的是什么数据,在系统之间一个人,穿过一个流程
状态无状态——每次同样地运行有状态——每个个体一条保存的路径
它为谁运行谁也不为;它由事件触发一个特定的终端用户,跨会话跨渠道被记住
工作的单元一个自动化步骤(“调这个 API”)一个对话步骤(“智能体处理这一阶段”)
你在什么时候用它两个系统需要互相通话一项服务需要大规模交付给人

界线很简单:如果活儿是“当 X 发生时,对数据做 Y”,那是工作流。如果活儿是“带每个人走过这一程,并适应他所处的位置”,那是 storyline。你仍然可以两者并用——一个 storyline 节点可以调出一个工作流,去做一步背后的机器对机器工作。

组成部件

  • **Nodes(节点)**是步骤。每个节点为那一步重新配置同一个智能体:自己的任务提示、知识库、技能和工具(叠加在智能体的基底之上,或就此一步替换掉)。智能体的身份与安全边界,在节点之间从不改变。
  • **Exits(出口)**是节点前进的方式,每个都携带一个条件:一条针对档案的规则(listening ≥ 70)、用户点击一个按钮、AI 对某个模糊标准的判断(“当他们能不经提示地造出句子时”)、来自外部系统的信号,或跳转到另一条 storyline。
  • **A profile(档案)**随人同行——你为每个主题定义的维度(语言的听、说、读、写;换成历史科目则完全是别的东西),跨 storyline 累积,外加一块自由格式的交接便签,从一个节点传给下一个。
  • **Chaining(串接)**把 storyline 首尾相连——一年级流入二年级——于是你可以逐步长成一段庞大的旅程,而不必一次性全建完,还能按结果分支到另一条 storyline(一个没通过考试的用户进入补习线,而不是下一个年级)。

进度是按人、而非按会话记的,所以有人可以中途离开,再从他离开的确切位置接着来——在网页、Telegram 或 WhatsApp 上,无论他从哪里回来。

编排模式

一条 storyline 作为一个 token 沿图行走而运行,而这一个模型就能表达每一种常见的控制流形态。顺序活在图里——带版本、可检视——而非模型的短期记忆里,所以它会随流程变长、分支变多而保持可靠。

分支——if / else / switch。 一个带若干规则出口的节点,自上而下逐一尝试;第一个条件成立的胜出。确定性、基于已保存状态求值、无需模型猜测。

循环——带上限的重试。 一条回边加一个计数器:每次尝试给某个维度加一,一条规则给它封顶并转向。重试由图自己写下的状态所限,而非靠指望模型自己数着。

并行——全做 / AND-合并。 若干个此人可按任意顺序完成的子流程,各有自己不同的步骤;只有当每一条分支都完成后,storyline 才前进。

让这些具备确定性的,是一个出口在被走过时能设置或递增档案的一部分——一个完成标志、一个重试计数、一个路由结果。分支与合并随后读取的,是图自己在前一步写下的状态,而绝非某个 LLM 对发生过什么的回忆。模型处理当前这一步的对话;图处理接下来发生什么

可以展开成计划的步骤

有些步骤太依赖具体情形,没法预先写全。比如「收集材料」这一步,对一个住在美国的中国创始人和一个待在本国的德国创始人来说,就是两份不同的清单。把这样的步骤标记为可展开,用户走到它时智能体就会提出把它展开——针对这个用户、就在当下——变成一份由 Dynamic Planner 生成的临时子计划:有自己的步骤、清单和看得见的进度。计划以嵌套方式运行:你的 storyline 在这一步暂停,子计划执行,完成后 storyline 从它离开的确切位置继续。有两条规则让角色分得清楚:手工编写的 storyline 永远优先于任何生成出来的东西,而每一次展开都是被提出的、绝不被强加——用户先确认。(Dynamic Planner 是一项 Pro 能力,它自己的概念页还讲了在 storyline 之外计划是怎么被触发的。)

引入外部系统

一个节点可以交接给第三方,并对返回的结果采取行动:一份评分过的测评、一次 KYC 核验、一个内嵌小游戏。那个结果——一个分数、一个裁定、一次支付确认——可以更新档案或满足某个出口。有两种形态:一次后端交接(数据流出到某个工具,一个结果流回,全程不可见)和一次跳转并等待的交接(对话显示一个链接、锁住,待外部步骤完成后续接——正如支付流程那样)。

它适合放在哪里

Storylines 适合任何其核心服务本身就是一场结构化、分阶段、按人进行的对话的业务:辅导与语言练习、教练与督促计划、分阶段咨询与引导式销售、申请受理与预审、认证与培训。凡是价值如今被一个人的工时所封顶的地方,storyline 都能让一个智能体同时为成千上万人运行那套流程——而那些真正需要真人的部分,仍留给真人。

Storylines 是一项 Pro 能力,按租户开启。它们在 console 里被作为一张图来编写(或通过 API,好让一个向导或一个助手来搭建),带版本并发布,进行中的用户被固定在他们开始时所用的版本上。

常见问题

这跟把系统提示写长一点有什么不同?
提示是把所有事情一次性描述完,然后指望模型自己记住走到了哪;storyline 只把这个人当前所在的那一步交给智能体,并把他的进度存在模型之外。这就是为什么一条 storyline 在第二十轮对话时、或者一个人隔一周换个渠道回来时,行为依然是对的。
客户在流程中途跑题了会怎样?
智能体会回答那个问题,并停在同一步——跑题不会推进流程,也不会把任何东西标记为已收集。等这个人回到正事上,storyline 会从原来的位置接着走。
已经有人在走这条 storyline 时,我还能改它吗?
可以。每个人的这一次运行都被固定在他开始时所用的那个已发布版本上,所以编辑并重新发布不会打扰任何正在流程中的人。什么时候把已有的运行迁移到新版本,由你决定。
终端用户看得出自己正在一条 storyline 里吗?
这由你按每条流程自己选:可以完全不可见,可以只显示流程名称,可以显示一张隐去细节的路线图告诉他走到了哪,也可以显示带进度的完整步骤图。在隐去细节的模式下,关于后续步骤和未走分支的任何信息都不会发到浏览器。
如果客户一直没走完呢?
他的进度就那么等着——它属于这个人或这个案子,而不属于某一次浏览器会话。你能看到谁卡住了、卡在哪,而这通常正是重点:一份没填完的申请是一条你可以去跟进的线索,而不是一次无声的流失。
想看它怎么实现?搭建一条 storyline
让它跑起来
搭建知识库

智能体需要知道的东西,绝大部分早就写下来了——在你的官网上,在你团队天天发给客户的那几份 PDF 里。从 URL 导入解决公开的那一半,上传解决剩下的一半。

结构化索引

结构化索引是一个小型表格,智能体根据文档中已有的字段(如标题、价格、等级、链接、图片)以及用于语义搜索的向量搜索来构建。向量搜索能找出与问题语义相似的段落,但无法进行计数、按数值过滤或分组。结构化索引则能回答这些问题,并让智能体精确引用链接或标识符,而不是从片段中重构它们。

Dynamic Planner

Dynamic Planner 盯着对话:当一位用户正在办的事确实需要多步才能完成、又落在这个智能体的领域之内,而且他明显不确定该怎么往下走时,它会提出把这件事展开成一条临时 storyline——一份由清单驱动、一步一步的计划,随后由智能体每次只专注执行其中一步,进度用户看得见。规划只发生一次,且要过校验;执行是确定性的。

长文写作

长文写作是一个智能体,它通过先规划大纲、在开始之前询问所需的一切、对照你的材料和公开来源研究每个章节,然后逐个章节撰写,从而生成一份完整的多章节文档——例如备案文件、市场进入报告、尽职调查备忘录——且该工作支持断点续传。你可以在聊天旁边的画布中编辑它,通过选中文本来重写任何段落,并且保留每一个版本。