UNPKG

jorel

Version:

A unified wrapper for working with LLMs from multiple providers, including streams, images, documents & automatic tool use.

76 lines (75 loc) 2.57 kB
import { LlmAgent, LlmAgentDefinition, TaskExecution, TaskExecutionDefinition, TaskExecutionEnvironment } from "../agents"; import { Nullable } from "../shared"; import { LlmTool, LlmToolConfiguration, LlmToolKit } from "../tools"; import { JorElTaskInput } from "./jorel"; import { JorElCoreStore } from "./jorel.core"; /** * Manages teams of agents for JorEl */ export declare class JorElAgentManager { readonly tools: LlmToolKit; readonly delegateToAgentToolName = "ask_agent"; readonly transferToAgentToolName = "handover_to_agent"; private readonly _agents; constructor(_core: JorElCoreStore); /** * Change the default agent * @param value */ set defaultAgentId(value: Nullable<string>); /** * Currently registered agents */ get agents(): LlmAgent[]; /** * Get the default agent */ get defaultAgent(): Nullable<LlmAgent>; get logger(): import("..").LogService; /** * Get an agent by name * @param name */ getAgent(name: string): Nullable<LlmAgent>; /** * Add an agent * @param agent Agent instance or definition */ addAgent(agent: LlmAgent | LlmAgentDefinition): LlmAgent; /** * Remove an agent. Will also remove the agent from the allowed delegates of other agents * @param agent */ removeAgent(agent: LlmAgent | string): JorElAgentManager; /** * Register tools for the agents to use (if allowed) * @param tools */ addTools(tools: (LlmTool | LlmToolConfiguration)[] | LlmToolKit): JorElAgentManager; /** * Hydrate a task definition into a task execution * If a task execution is passed, it will be returned as a copy * @param taskOrDefinition */ hydrateTask(taskOrDefinition: TaskExecution | TaskExecutionDefinition): TaskExecution; /** * Create a new task * @param task * @param config */ createTask(task: JorElTaskInput, config?: { agent?: string; }): Promise<TaskExecution>; /** * Resume a task execution. Will * @param taskOrDefinition * @param env */ resumeTask(taskOrDefinition: TaskExecution | TaskExecutionDefinition, env?: Omit<TaskExecutionEnvironment, "limits">): Promise<TaskExecution>; /** * Execute a task to completion, or until stop condition is met (limit, approval, failure) * @param taskOrDefinition * @param env */ executeTask(taskOrDefinition: TaskExecution | TaskExecutionDefinition, env: TaskExecutionEnvironment): Promise<TaskExecution>; }