Skip to content

多 Agent 編排 ​

精心設置的場景——劍拔弩張的對峙、微妙的政治談判、慢熱的浪漫——仍可能被回覆破壞:它跳過你剛鋪墊的節奏、忘了兩段以前確立的世界規則、出戲做總結、或者把不該這一回合解決的伏筆倉促收尾。這不是模型能力的問題,而是它一次只能關注一件事,而你讓它在一次回覆裡同時處理太多事:守人設、調上下文、守世界觀、規劃下一步、還要把文筆寫好。

編排器的做法是讓 agent 團隊在主模型動筆之前先完成準備工作:提取最近聊天裡的關鍵狀態、確定當前生效的世界規則、起草這一回合應推進的內容、審校方案,最後把產出整合為一份精簡的「作業說明」。等到主模型開始寫回覆,它已收到這份說明(且僅有這份),因此可以把預算用於文筆,而不是繁瑣的核對工作。

編排器自帶一套可用的預設 Spec 工作流,無需先行設計,啟用即可運行。 後續需要不同形態時,各執行模式均有獨立編輯器。

它什麼時候觸發?

編排器在 normal(普通生成)、continue(繼續)、regenerate(重新生成)、swipe(滑動切換)和 impersonate(扮演)這些生成類型上觸發。它在世界書解析之後、主模型回覆之前運行。運行面板只儲存在記憶體中,切換聊天時會清空。

5 分鐘跑起來(用預設編排) ​

無需先選模式,也無需先編寫工作流——預設 Spec 已經配置好。本節只介紹如何啟用它,以便觀察它的實際行為。

Step 0 — 你需要先有什麼 ​

  • 你的主對話已經能正常用 Chat Completion API 出回覆
  • 當前對話至少有數輪聊天記錄(沒有內容,工作流沒什麼可規劃的)

Step 1 — 啟用編排器 ​

打開頂欄的擴展抽屜,找到 多智能體編排 那一節。把 啟用 開關打開。

編排器啟用開關

Step 2 — 給各 Agent 選模型 ​

在同一面板裡繼續往下看,找到 LLM 節點 API 預設 和 AI 生成 API 預設。這兩個欄位告訴編排器各 Agent 用哪個 API、哪個 Chat Completion 預設。

這裡能省錢

編排器各節點各呼叫一次 LLM。如果主對話使用的是 Claude Opus 這類昂貴模型,為編排器選擇更便宜的模型——如 Haiku、Gemini Flash——可顯著節省成本。如果需要更高的品質,可以為不同節點配置不同模型(每個節點均能單獨覆寫 API/預設)。

Step 3 — 直接發一條訊息 ​

在主對話中發送一則訊息,無需調整其他設定。主模型回覆之前,預設 Spec 工作流會自動在後台執行。首次運行會比平時慢一些(agent 依序執行),後續運行會更快。

Step 4 — 看它替你幹了什麼 ​

運行一開始,運行面板就會從聊天區右側滑入(窄屏上從底部升起)。面板即時更新:輪次是一張可折疊的卡片,展開後就能看到模型當時怎麼想、呼叫了哪些工具、工具回傳了什麼。

編排器開始運行時的面板

模型流式輸出時,面板在原地即時更新——不閃屏、也不會打亂聊天區:

流式過程:思考、文字與工具分節即時填充

展開任意工具呼叫,能看到它的傳入參數和回傳:

工具呼叫展開——參數與結果

窄屏下面板變成底部抽屜,可以上拉展開或下滑關閉:

窄屏下的運行面板(抽屜佈局)

面板僅儲存在記憶體中。切換聊天或重新整理頁面會清空;聊天記錄裡只保留最終回覆,且逐字保留——不會被過程資訊撐大。還可以執行以下操作:

  • 運行中停止
  • 複製任意分節的原始內容
  • 把整次運行匯出為 JSON(便於分享或回報問題)
  • 一鍵全部收起所有卡片

這就是「AI 在回覆前先思考」在實際中的體現。如果回覆不理想,打開面板就能定位問題出在哪一步。

至此編排器已啟用。接下來根據需求選擇方向:

  • 預設 Spec 流程不夠用,需要自行或由 AI 協助定製 → Spec 模式
  • 流程需要根據情況動態變化,無法預先寫死 DAG → Agenda 模式
  • 希望單一 Agent 反覆呼叫工具(查記憶、查世界書……)直到自行判定完成 → Loop 模式

不管你選哪種模式,定製均從這裡開始

AI 迭代工作台 是編排器的核心定製工具——用一句話描述目標,AI 傳回方案,逐條審批。Spec / Agenda / Loop / Director 共用同一個工作台,多數定製場景下均優於手動編輯。

選你的執行模式 ​

模式是什麼何時用Skill詳細文件
Spec(預設)固定的 Stage → Node DAG預設。你要一個可預期的管道每節點注入目錄;每節點 skills.visible 覆寫Spec 模式
單 Agent只有一個節點的 Spec成本低、速度快。不需要多 Agent 協作在那一個節點上注入目錄單 Agent 模式
Agenda一個 Planner Agent 透過工具呼叫動態調度其他 Agent流程要動態決定運行什麼,像 Agent loopPlanner + 每個被派遣 worker 上注入目錄Agenda 模式
Loop單 Agent 在同一會話裡循環呼叫工具,自己決定何時 finalize速度與效果之間想要平衡;探索性研究、動態決策在 loop agent 上注入目錄Loop 模式
Director主代理 + 子代理團隊探索上下文資訊、創作正文接管模式,用於高品質長篇 RP;出廠自帶預繫結 Skill主代理 + 子代理派遣時注入目錄Director 模式

切換模式:擴展抽屜裡的 執行模式 下拉。Spec 與 Agenda 可以在編輯器中互相轉換(盡力而為);Loop 結構差異較大,沒有對應的互轉入口。

想定製?優先用 AI 迭代工作台

切到任何模式後,AI 迭代工作台 均為優先選擇。Spec / Agenda 提供 diff 供審批,Loop 直接 patch profile,兩者的面板與工作流程一致。

Skill 這一列

所有模式共用同一套 Skill 策略形狀(模式級 skills.visible / skills.deny、每 agent 可選的 + 繼承覆寫)。完整模型見 編排器整合。Director 是唯一在出廠設定中預繫結預設 Skill 的模式;其它模式起步為 visible: ["*"](所有已安裝 Skill 可見)。

通用設定 ​

無論選哪種模式,以下設定均共享。

結果注入 ​

編排器的最終輸出(「capsule」)會被注入到主模型 prompt 裡。設定:

設定預設說明
注入位置atDepthcapsule 在 prompt 裡的位置
注入深度0在該位置的深度
注入角色SYSTEMSYSTEM / USER / ASSISTANT 之一
自定義指令前綴(預設一句話)加在 capsule 文字前面

capsule 綁定到觸發編排的使用者訊息樓層。同一樓層 swipe 時,系統會複用現有 capsule 而不是重跑。設定變更時,系統會重新套用最新結果。

角色卡綁定 ​

編排設定可以綁到角色卡。綁定後:

  • 設定隨卡匯出。別人匯入卡片自動獲得推薦工作流
  • 卡作者可以為自己的角色定製最優工作流
  • 切換到這張卡自動套用其工作流
  • 卡可以指定自己的執行模式(Spec / Agenda / Loop / Director 均支援)
  • 從卡的下拉中選擇某個預設後,這次聊天會立即切換到它;無論怎麼選,卡上的庫均會保留
  • 「清除這張卡上的預設」恢復到全域設定
  • 你可以在卡綁定設定上層疊個人調整

卡上預設各模式均支援。

匯入匯出 ​

Spec 與 Agenda 設定以 JSON 匯出。

格式標識適用
V1luker_orchestrator_profile_v1Spec 模式
V2luker_orchestrator_profile_v2Agenda 模式

檔名形如 luker-orchestrator-[agenda-][global|character-{name}].json。匯出器同時支援全域和角色卡作用域。

匯入時,檔案的模式(Spec / Agenda)必須和你當前執行模式一致。你選擇套用到全域或某張特定的卡。

Loop 模式的匯入匯出

Loop 模式目前尚未提供檔案級的 Profile 匯入匯出按鈕,可透過 AI 迭代工作台 複用工作流。

通用設定參考 ​

最常用的幾項:

設定預設
執行模式spec
注入位置atDepth
注入深度0
注入角色SYSTEM
完整設定參考
設定說明
執行模式Spec / 單 Agent / Agenda / Loop
注入位置capsule 在主 prompt 中的位置
注入深度注入深度
注入角色SYSTEM / USER / ASSISTANT
自定義指令前綴加在 capsule 前的前綴文字
RPM 限制並行節點的速率限制
工具呼叫重試次數工具呼叫失敗的重試次數
全域 API 預設預設 API 連接預設
全域 Chat Completion 預設預設 Chat Completion 預設
包含世界書節點是否能看到世界書
<thought> 標籤剝離從 Agent 輸出剝離思考標籤
訊息摺疊閾值1200 字元 / 18 行

模式專屬的參數(節點 / 審查 / Planner / Loop 工具開關...)在各自的子頁面裡詳述。

事件 / 二開 API ​

給其他擴展和腳本

編排器在運行結束後會派發一個前端事件,其他程式碼可以消費編排結果而不必讀 UI 內部狀態。

  • 事件名: luker.orchestrator.result
  • 頻道: getContext().eventSource
  • 觸發時機: completed / reused / cancelled / failed 時

事件載荷欄位:

欄位型別說明
modulestring始終為 orchestrator
eventstring始終為 luker.orchestrator.result
statusstringcompleted / reused / cancelled / failed
generationTypestring觸發的生成類型
chatKeystring當前聊天 key
atstringISO 時間戳
anchorPlayableFloornumber綁定的使用者回合樓層(不可用時為 0)
anchorHashstring用於校驗的 anchor hash
capsuleTextstring最終注入的引導文字
stageOutputsarray緊湊的階段輸出(completed / reused 時存在)
reviewRerunCountnumber審查重跑次數
reasonstring取消 / 失敗的機器可讀原因
notestring人類可讀說明
errorstringfailed 時的錯誤訊息

訂閱範例:

js
const context = getContext();
context.eventSource.on('luker.orchestrator.result', (evt) => {
    if (evt.status === 'completed' || evt.status === 'reused') {
        console.log('Orchestrator capsule:', evt.capsuleText);
    }
});

相關頁面 ​

基於 SillyTavern 建構