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

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[]
    • Optionalconfig: any[]

    Returns Promise<ChainValues[]>

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

    Call the chain on all inputs in the list

  • Parameters

    • values: any
    • Optionalconfig: any
    • Optionaltags: string[]

    Returns Promise<ChainValues>

    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.

    • OptionalrunManager: 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.

    • OptionalrunManager: 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.

    • Optionaloptions: 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.

    • OptionalrunManager: any

      Optional CallbackManagerForChainRun instance.

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

    Promise resolving to an array of prioritized tasks.

  • Parameters

    • input: any
    • Optionalconfig: any

    Returns Promise<string>

    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.