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
TypeScript
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>;
}