Skip to content

多 Agent 編排

是不是有過這種情況:你精心設置了一個場景——劍拔弩張的對峙、微妙的政治談判、慢熱的浪漫——AI 的回覆卻跳過了你剛鋪墊的節奏、忘了兩段以前確立的世界規則、突然出戲跳出來給你做總結、或者把不該這一回合解決的伏筆倉促收尾了。這不是模型笨,是它一次只能想一件事,而你讓它在一次回覆裡同時幹太多了:守人設、調上下文、守世界觀、規劃下一步、還要把文筆寫好。

編排器解決這件事的方法是——在主模型動筆之前,先派一支小隊進去。一個 Agent 把最近聊天裡的關鍵狀態抽出來。一個查當前啟用了哪些世界規則。一個起草這一回合該推進什麼。一個審查它們的活兒。最後一個 Agent 把全隊的成果打包成一份精簡的「作業說明」。等到主模型開始寫回覆,它已經拿到了這份說明(並且只是這份),所以可以把它的預算都花在文筆上,而不是繁瑣的核對工作。

編排器自帶一套能跑的預設 Spec 工作流——你不用先設計什麼,啟用就能用。 後面想換玩法、想自己改,各執行模式都有獨立編輯器。

它什麼時候觸發?

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

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

不用先選模式、不用先寫工作流——預設 Spec 已經能跑。下面這一節帶你把它啟動起來,看清楚它到底替你幹了什麼。

Step 0 — 你需要先有什麼

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

Step 1 — 啟用編排器

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

編排器開關與預設

Step 2 — 給各 Agent 選模型

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

這裡能省錢

編排器一次跑會調 5–10 次 LLM(每個節點一次)。如果主對話用的是 Claude Opus 這種貴的,這裡挑一個便宜模型——Haiku、Gemini Flash 之類——能省 70% 以上成本。如果需要更高品質,可以給不同節點配不同模型(每個節點都能單獨覆寫 API/預設)。

Step 3 — 直接發一條訊息

回主對話發條訊息——不用動其他設定。主模型回覆之前,預設 Spec 工作流會自動在後台跑一遍。第一次跑會比平時慢一點(順序調 5–10 個 Agent),後續就習慣了。

Step 4 — 看它替你幹了什麼

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

編排器開始運行時的面板

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

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

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

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

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

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

面板只活在記憶體裡。切換聊天或重新整理頁面會清空;聊天記錄裡只留最終回覆,且逐字保留——不會被過程資訊撐大。你還能:

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

這就是「AI 在回覆前先思考」的物理含義。如果回覆不理想,打開面板就能找到哪一步出了問題。

到這裡你已經在用編排器了。下面三件事按需選:

  • 預設 Spec 流程不夠用,想自己 / 讓 AI 幫你改 → Spec 模式
  • 流程要根據情況動態變,不能寫死 DAG → Agenda 模式
  • 想讓一個 Agent 反覆呼叫工具(查記憶、查世界書...)直到它自己說「夠了」 → Loop 模式

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

AI 迭代工作台 是編排器的核心定製工具——一句話描述需求,AI 給方案,逐條審。Spec / Agenda / Loop 三種模式都共用這個工作台,99% 的定製場景下都比手撸划算

選你的執行模式

模式是什麼何時用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;出廠自帶預繫結 24 個 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 / 單 Agent / Agenda / Loop 都支援)
  • 卡覆寫可以獨立啟用 / 停用,不影響全域
  • 「清除卡覆寫」恢復到全域設定
  • 你可以在卡綁定設定上層疊個人調整

四種模式現在都支援卡覆寫。

匯入匯出

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 建構