Class responsible for managing tasks, including their creation, prioritization, and execution. It uses three chains for these operations: creationChain, prioritizationChain, and executionChain.

Example

const babyAGI = BabyAGI.fromLLM({
llm: new OpenAI({ temperature: 0 }),
vectorstore: new MemoryVectorStore(new OpenAIEmbeddings()),
maxIterations: 3,
});

const result = await babyAGI.call({
objective: "Write a weather report for SF today",
});

Hierarchy (view full)

Implements

Constructors

Properties

creationChain: BaseChain<ChainValues, ChainValues>
executionChain: BaseChain<ChainValues, ChainValues>
maxIterations: number
prioritizationChain: BaseChain<ChainValues, ChainValues>
taskIDCounter: number
taskList: Task[]
vectorstore: VectorStoreInterface
memory?: any

Accessors

Methods

  • Parameters

    • inputs: ChainValues[]
    • Optional config: any[]

    Returns Promise<ChainValues[]>

    ⚠️ Deprecated ⚠️

    Use .batch() instead. Will be removed in 0.2.0.

    This feature is deprecated and will be removed in the future.

    It is not recommended for use.

    Call the chain on all inputs in the list

  • Parameters

    • values: any
    • Optional config: any
    • Optional tags: string[]

      Deprecated

    Returns Promise<ChainValues>

    Deprecated

    Use .invoke() instead. Will be removed in 0.2.0.

    Run the core logic of this chain and add to output if desired.

    Wraps _call and handles memory.

  • Executes a task based on the objective and the task description.

    Parameters

    • objective: string

      The objective of the task.

    • task: string

      The task to be executed.

    • Optional runManager: any

      Optional CallbackManagerForChainRun instance.

    Returns Promise<string>

    Promise resolving to the result of the task execution as a string.

  • Generates the next tasks based on the result of the previous task, the task description, and the objective.

    Parameters

    • result: string

      The result of the previous task.

    • task_description: string

      The description of the task.

    • objective: string

      The objective of the task.

    • Optional runManager: any

      Optional CallbackManagerForChainRun instance.

    Returns Promise<Optional<Task, "taskID">[]>

    Promise resolving to an array of tasks without taskID.

  • Retrieves the top tasks that are most similar to the given query.

    Parameters

    • query: string

      The query to search for.

    • k: number = 5

      The number of top tasks to retrieve.

    Returns Promise<any>

    Promise resolving to an array of top tasks.

  • Invoke the chain with the provided input and returns the output.

    Parameters

    • input: ChainValues

      Input values for the chain run.

    • Optional options: any

    Returns Promise<ChainValues>

    Promise that resolves with the output of the chain run.

  • Parameters

    • inputs: Record<string, unknown>
    • outputs: Record<string, unknown>
    • returnOnlyOutputs: boolean = false

    Returns Promise<Record<string, unknown>>

  • Prioritizes the tasks based on the current task ID and the objective.

    Parameters

    • thisTaskID: number

      The ID of the current task.

    • objective: string

      The objective of the task.

    • Optional runManager: any

      Optional CallbackManagerForChainRun instance.

    Returns Promise<{
        taskID: string;
        taskName: string;
    }[]>

    Promise resolving to an array of prioritized tasks.

  • Parameters

    • input: any
    • Optional config: any

    Returns Promise<string>

    Deprecated

    Use .invoke() instead. Will be removed in 0.2.0.

  • Static method to create a new BabyAGI instance from a BaseLanguageModel.

    Parameters

    • __namedParameters: Omit<BabyAGIInputs, "executionChain" | "creationChain" | "prioritizationChain"> & Partial<Pick<BabyAGIInputs, "executionChain" | "creationChain" | "prioritizationChain">> & {
          llm: BaseLanguageModelInterface;
      }

    Returns BabyAGI

    A new instance of BabyAGI.

Generated using TypeDoc