/** Group 调度策略:为当前消息上下文生成一组有依赖关系的成员投递节点。 */ import type { GroupMessage } from "./Group.js"; import type { Agent } from "../../agent/Agent.js"; import type { AgentModel } from "../../agent/AgentModel.js"; /** 一个投递节点内成员的发言方式。 */ export type DispatchResponseMode = "single" | "parallel"; /** 本次调度的触发来源。 */ export type DispatchTrigger = "user" | "auto"; /** 调度图中的一个成员投递节点。 */ export interface DispatchNode { /** 当前调度图内的稳定节点标识。 */ readonly node_id: string; /** 当前节点允许接收消息的成员标识。 */ readonly member_ids: readonly string[]; /** 当前节点只运行首个成员,还是允许全部成员并行运行。 */ readonly response_mode: DispatchResponseMode; /** 当前节点依赖的前置节点标识;依赖完成后才能投递。 */ readonly depends_on_node_ids: readonly string[]; /** 注入成员 AgentSession 的发言约束。 */ readonly instruction: string; } /** 一次调度生成的当前最佳响应图。 */ export interface DispatchDecision { /** 当前调度图中的投递节点。 */ readonly nodes: readonly DispatchNode[]; /** 当前图完成后是否允许唯一的 GroupSession auto dispatch 继续判断。 */ readonly terminal: boolean; } /** Group 调度策略协议。 */ export interface DispatchStrategy { /** 根据触发来源、当前消息、历史和成员关系生成当前最佳响应图。 */ decide_dispatch(input: { /** 本次调度由用户消息触发,还是由 GroupSession 自动收口触发。 */ readonly trigger: DispatchTrigger; /** 当前待调度的 Group 消息;auto dispatch 时为本批新增消息中的最后一条。 */ readonly message: GroupMessage; /** 当前 auto dispatch 尚未消费的新增消息。 */ readonly pending_messages: readonly GroupMessage[]; /** 当前 Group 已存在的消息历史。 */ readonly messages: readonly GroupMessage[]; /** 当前 Group 成员快照。 */ readonly members: readonly Agent[]; /** 当前 Dispatch Session Turn 的取消信号。 */ readonly abort_signal: AbortSignal; }): Promise | DispatchDecision; } /** AI 调度策略的构造参数。 */ export interface AiDispatchStrategyOptions { /** Group 用于理解群聊意图并生成调度图的模型。 */ readonly model?: AgentModel; } /** 使用 Group.model 理解群聊意图并通过内部 tool call 生成成员投递决定。 */ export declare class AiDispatchStrategy implements DispatchStrategy { private readonly model?; constructor(options?: AiDispatchStrategyOptions); decide_dispatch(input: { readonly trigger: DispatchTrigger; readonly message: GroupMessage; readonly pending_messages: readonly GroupMessage[]; readonly messages: readonly GroupMessage[]; readonly members: readonly Agent[]; readonly abort_signal: AbortSignal; }): Promise; } //# sourceMappingURL=DispatchStrategy.d.ts.map