import { SubAgent } from "./sub-agent"; import { ToolRegistry } from "../tools/registry"; import { ToolExecutor } from "./tool-executor"; export interface SchedulerDecision { agentId: string; task: string; reason: string; } export interface DispatchRequest { agentId: string; task: string; } export interface DispatchResult { agentId: string; task: string; result: string; success: boolean; } /** * 动态 SubAgent 注册配置(决策四:给"不落进 5 类预设的新题"留口子)。 * MainAgent 基于自身分类结论,按需 spawn 一个通用深挖 agent。 * toolNames 会过滤到注册表内已有工具;空集则拒绝注册。 */ export interface DynamicAgentConfig { id: string; name: string; role: string; systemPrompt: string; toolNames: string[]; maxSteps?: number; } export declare class Scheduler { private agents; private toolRegistry; private toolExecutor?; private dynamicConfigs; private routingHistory; constructor(toolRegistry: ToolRegistry, toolExecutor?: ToolExecutor); registerAgent(agent: SubAgent): void; unregisterAgent(id: string): void; getAgent(id: string): SubAgent | undefined; getAllAgents(): SubAgent[]; /** 工具注册表(阶段7 registerDynamicAgent 构造动态 SubAgent 时使用) */ getToolRegistry(): ToolRegistry; /** * 动态注册一个 generic SubAgent(决策四)。 * - id 唯一性校验(冲突抛错) * - toolNames 过滤到注册表内已有工具;全部未知则拒绝(避免空壳 agent) * - 独立 ContextManager(context 隔离),共享 toolExecutor(统一权限/并发策略) * 注册后即可纳入 dispatchConcurrent / DELEGATE。返回 agentId。 */ registerDynamicAgent(config: DynamicAgentConfig): string; /** 注销动态 agent(任务完成后清理,避免 agent map 膨胀)。预设 agent 也可注销。 */ unregisterDynamicAgent(id: string): boolean; /** 当前已注册的动态 agent 配置(用于会话序列化;预设 agent 不在列表)。 */ getDynamicAgentConfigs(): DynamicAgentConfig[]; route(task: string): Promise<{ agent: SubAgent; decision: SchedulerDecision; }>; dispatch(task: string): Promise<{ agentId: string; result: string; decision: string; }>; /** * 并发委派多个子智能体:MainAgent 一次 DELEGATE 多个 agent 时使用。 * 各 agent 各自独立 context,互不干扰;未找到的 agent 标记失败,不影响其他。 * 注意:此处并发度等于请求数,LLM 限流/429 退避重试属阶段7待加项。 */ dispatchConcurrent(requests: DispatchRequest[]): Promise; private parseDecision; } //# sourceMappingURL=scheduler.d.ts.map