Skip to content

多Agent编排

多Agent编排(Orchestrator)是 Luker 的核心独有功能之一,提供了一个灵活的多 AI Agent 协作框架。它允许用户定义多个具有不同职责的 Agent——蒸馏器、约束 Agent、规划器、记忆分析器、审查者、合成器等——按照预设的工作流协同处理每一次 AI 回复的生成。编排器在 WorldInfo 解析完成后自动触发,将多个 Agent 的协作结果注入到最终的提示词中,引导主模型生成更高质量的回复。

编排器完全运行在前端,无后端代码。角色卡级别的编排配置会随角色卡一起保存和导出。

编排器支持五种生成类型的触发:normal(普通生成)、continue(继续)、regenerate(重新生成)、swipe(滑动切换)和 impersonate(扮演)。其他生成类型不会触发编排流程。

三种执行模式

编排器提供三种执行模式,适应从简单到复杂的不同场景:

spec    → 阶段→节点 DAG,最灵活的静态工作流
single  → 单节点简化模式
agenda  → Planner 动态调度,最灵活的动态工作流

Spec 工作流

Spec 工作流是最灵活的静态模式,采用 阶段(Stage) → 节点(Node) 的 DAG(有向无环图)结构:

  • 阶段:工作流的顶层组织单元,阶段之间严格按顺序串行执行
  • 节点:阶段内的执行单元,每个节点引用一个 LLM 预设(Preset),负责特定任务
  • 执行方式:阶段内的节点支持 serial(串行)和 parallel(并行,使用 Promise.all)两种执行方式
  • 节点类型worker(工作节点)和 review(审查节点)

每个节点执行时,系统会构建消息列表(系统提示 + 用户提示模板 + 上下文)调用 LLM,并支持节点迭代(受「节点迭代最大轮次」控制)。阶段输出汇总后自动传递给下一阶段。

默认的 Spec 工作流包含以下 5 个阶段结构:

  1. 蒸馏器(串行执行)
  2. 知识书读取器 + 约束 Agent(并行执行)
  3. 规划器 + 记忆分析器(并行执行)
  4. 审查者(串行执行)
  5. 合成器(串行执行)

模板变量

节点的用户提示模板支持以下占位变量:

变量说明
{{recent_chat}}最近的聊天消息
{{last_user}}最后一条用户消息
{{previous_outputs}}前序阶段的输出
{{distiller}}蒸馏器输出
{{previous_orchestration}}上一次编排的结果(自动注入,无需手动编写)

其中 {{previous_orchestration}} 是自动注入变量,系统会在模板文本之前自动插入上一次编排的结果,无需用户在模板中显式引用。

单 Agent 模式

单 Agent 模式是 Spec 工作流的简化版。系统内部自动构建一个只包含单节点的 Spec,然后走统一的执行流程。适合不需要多 Agent 协作的简单场景,同时保留了 Spec 模式的所有配置能力(如自定义系统提示、API 路由等)。

Agenda 规划器

Agenda 规划器是最动态的模式。一个 Planner Agent 通过工具调用(Function Calling)动态调度其他 Agent:

  • Planner 维护一个 todo 列表,根据任务进展动态决定下一步调用哪个 Agent
  • 每个 Agent 可以独立配置系统提示、API 路由和 Chat Completion 预设
  • 受三个参数限制运行边界:
    • Planner 最大轮次:Planner 的最大调度轮次
    • 最大并发 Agent 数:同时运行的 Agent 上限
    • 最大总执行次数:所有 Agent 的总执行次数上限

Agenda 模式依赖 Luker 的函数调用运行时框架来实现 Planner 的工具调用能力。

Agenda 与 Spec 互转

编排器支持 Agenda 和 Spec 两种模式之间的配置互转:

  • 将 Agenda 模式下定义的 Agent 集合尽力转换为 Spec 工作流结构
  • 将 Spec 预设复制到 Agenda 编辑器
  • 将 Agenda Agent 复制到 Spec 编辑器

注意:互转是尽力而为的(best-effort),不保证完美还原。例如 Agenda 模式的动态调度逻辑无法完全映射到 Spec 的静态 DAG 结构,转换后可能需要手动调整。

工作流编辑器

编排器提供了可视化的工作流编辑器(支持在独立弹窗中打开),用户可以:

  • 添加、删除、重排阶段
  • 在阶段内添加、删除、重排节点
  • 为每个节点配置独立的 LLM 预设和 API 预设
  • 设置节点的系统提示词和用户提示模板
  • 配置阶段的执行方式(串行 / 并行)
  • 标记节点为审查节点

每个预设可以独立配置 API 路由,这意味着不同的 Agent 可以使用不同的 LLM 后端。例如:蒸馏器使用低成本模型降低开销,而合成器使用高质量模型保证输出品质。空值的 API 预设会回退到全局编排 API 预设,空值的 Chat Completion 预设会回退到全局编排预设。

Agenda 模式也有对应的编辑器面板,用于管理 Agent 列表和 Planner 配置。

审查节点

审查节点(Review Node)是 Spec 工作流中的特殊节点类型,用于对前序工作节点的输出进行质量把关。审查节点通过两个专用工具与工作流引擎交互:

工具作用
luker_orch_review_approve批准前序工作节点的输出,工作流继续执行下一阶段
luker_orch_request_rerun要求重跑指定的前序工作节点,并附带修改建议

审查节点的关键约束:

  • 只能审查直接相邻的前一个工作阶段的节点
  • 重跑时只重跑指定的节点 ID,而非整个阶段
  • 重跑次数受「审查重跑最大轮次」限制(默认 0,最大 20)
  • 重跑后审查节点会再次运行,形成「执行 → 审查 → 重跑 → 再审查」的循环,直到批准或达到轮次上限
  • 审查节点必须输出审查反馈

系统内置了多条审查节点提示工程规则,确保审查行为的一致性和可靠性。这些规则定义了审查节点必须包含的检查门,用于 AI 生成审查节点配置时的约束。

AI 生成配置

编排器提供两种 AI 辅助配置生成方式,降低手动配置的门槛。

AI Quick Build

一键生成完整的编排配置。用户通过自然语言描述需求,AI 自动生成包含阶段、节点、预设分配的完整工作流。生成过程会考虑知识书读取节点和 Anti-Data Guard 节点,确保生成的配置包含必要的保护机制。

AI 迭代工作台

AI 迭代工作台(AI Iteration Studio)提供多轮对话式的精细编辑能力,是比 Quick Build 更强大的 AI 辅助工具:

  • 会话持久化:迭代会话保存到角色卡或全局设置,最多支持 24 个会话。会话可以加载、删除和管理
  • 模拟测试:在不实际执行编排的情况下模拟工作流运行,验证配置的正确性。例如你可以输入「请使用『我走进了酒馆,环顾四周』模拟当前用户最新输入」来测试编排在特定场景下的表现
  • 自动继续:支持 AI 自动推进迭代过程,无需用户手动触发每一步
  • Diff 审批:每次 AI 修改都会生成 diff,用户可以逐项审批或拒绝
  • 回滚:支持撤销已应用的 AI 修改
  • 重新生成:支持重新生成 AI 的回复
  • <thought> 标签剥离:AI 回复中的思考过程(<thought> 标签内容)在显示时自动移除
  • 消息折叠:超过 1200 字符或 18 行的长消息自动折叠,模拟上下文也会自动折叠

AI 迭代工作台的会话历史会持久化到角色卡或全局设置中。这与运行态轨迹(仅保存在内存中)是不同的概念。

Diff 引擎

编排器内置了完整的 Diff 引擎,用于 AI 迭代工作台中的修改可视化:

  • LCS 行级 diff:基于最长公共子序列(Longest Common Subsequence)算法的精确差异计算
  • 内联视图(Inline Diff):在同一列中以颜色标记显示增删改
  • 并排视图(Side-by-Side Diff):左右对比显示修改前后的内容
  • 可拖拽分割条:并排视图中可自由调整左右面板宽度
  • 展开 Diff:支持展开折叠的 diff 区块查看完整上下文
  • 回滚支持:可以撤销已应用的修改,恢复到修改前的状态

该 Diff 引擎与角色卡编辑助手共享。

结果注入与复用

编排结果会自动注入到 SillyTavern 的提示词构建流程中。注入行为可通过以下设置项控制:

设置项说明默认值
注入位置编排结果在提示词中的插入位置IN_CHAT
注入深度编排结果的注入深度1
注入角色编排结果以哪个角色身份注入SYSTEM(也支持 USER / ASSISTANT
自定义指令前缀注入文本前的自定义指令前缀"Follow the orchestration guidance below and prioritize it when drafting the next in-character reply."

编排结果绑定到触发编排的用户消息楼层。当用户对同一楼层进行 swipe(滑动切换)时,系统会复用已有的编排结果,避免重复执行整个工作流。当配置变更时,系统会自动重新应用最新的编排结果。

运行态轨迹(每个节点的输入输出、执行时间等)仅保存在内存中,聊天切换时自动清空,不持久化到磁盘。

导入导出

编排配置支持 JSON 文件的导入导出,使用两种格式标识:

格式标识适用模式
V1luker_orchestrator_profile_v1Spec 工作流模式
V2luker_orchestrator_profile_v2Agenda 规划器模式

导出文件名格式为 luker-orchestrator-[agenda-][global|character-{name}].json,支持全局导出和角色卡级别导出。

导入时系统会自动检测文件的模式(Spec / Agenda),并要求与当前执行模式匹配。用户可以选择将导入的配置应用到全局或特定角色卡。

配置项列表

以下是编排器的主要配置项:

设置项说明默认值 / 范围
执行模式Spec / 单 Agent / Agendaspec
注入位置编排结果在提示词中的插入位置IN_CHAT
注入深度编排结果的注入深度1
注入角色编排结果以哪个角色身份注入SYSTEM / USER / ASSISTANT
自定义指令前缀编排结果自定义指令前缀见上文
Planner 最大轮次Agenda 模式 Planner 最大调度轮次
最大并发 Agent 数Agenda 模式最大并发 Agent 数
最大总执行次数Agenda 模式最大总执行次数
每分钟请求限制每分钟请求数限制(并行节点节流)
Agent 超时时间单个 Agent 的执行超时时间(秒)
工具调用重试次数LLM 工具调用失败时的重试次数
节点迭代最大轮次单个节点的迭代轮次控制
审查重跑最大轮次审查节点重跑最大轮次0(最大 20)
全局 API 预设全局默认 API 连接预设
全局 Chat Completion 预设全局默认 Chat Completion 预设
包含世界书是否在编排节点中包含世界书信息
Anti-Data Guard屏蔽特定词汇(如 OOCmetasystem noteauthor启用
<thought> 标签剥离是否从 AI 输出中移除思考标签
消息折叠阈值字符数 1200 / 行数 18
节点 API 预设节点级 API 预设覆盖空(回退到全局)
节点 Chat Completion 预设节点级 Chat Completion 预设覆盖空(回退到全局)

TIP

编排器的每个节点都可以独立配置 API 预设和 Chat Completion 预设,覆盖全局默认值。这使得你可以为不同的 Agent 分配不同的模型和参数——例如用低成本模型处理蒸馏和约束任务,用高质量模型处理最终合成。

与角色卡的集成

编排配置可以绑定到角色卡,随角色卡一起保存。绑定后:

  • 编排配置随角色卡导出,其他用户导入角色卡时自动获得推荐的编排工作流
  • 角色卡创作者可以为角色定制最佳的多 Agent 协作方案
  • 角色卡可以指定独立的执行模式,切换角色时自动应用
  • 角色卡覆盖可以独立启用或禁用
  • 支持清除角色卡覆盖(恢复使用全局配置)
  • 用户可以在角色卡绑定的配置基础上进行个性化调整

相关页面

Built upon SillyTavern