Logo
Tutorials

Basic Agent

We have a comprehensive, step-by-step guide to building agents in LlamaIndex.TS that we recommend to learn what agents are and how to build them for production. But building a basic agent is simple:

Set up

In a new folder:

npm init
npm install -D typescript @types/node

Run agent

Create the file example.ts. This code will:

  • Create two tools for use by the agent:
    • A sumNumbers tool that adds two numbers
    • A divideNumbers tool that divides numbers
  • Give an example of the data structure we wish to generate
  • Prompt the LLM with instructions and the example, plus a sample transcript
import { openai } from "@llamaindex/openai";
import { agent, tool } from "llamaindex";
import { z } from "zod";
 
const sumNumbers = tool({
  name: "sumNumbers",
  description: "Use this function to sum two numbers",
  parameters: z.object({
    a: z.number().describe("The first number"),
    b: z.number().describe("The second number"),
  }),
  execute: ({ a, b }: { a: number; b: number }) => `${a + b}`,
});
 
const divideNumbers = tool({
  name: "divideNumbers",
  description: "Use this function to divide two numbers",
  parameters: z.object({
    a: z.number().describe("The dividend a to divide"),
    b: z.number().describe("The divisor b to divide by"),
  }),
  execute: ({ a, b }: { a: number; b: number }) => `${a / b}`,
});
 
async function main() {
  const mathAgent = agent({
    tools: [sumNumbers, divideNumbers],
    llm: openai({ model: "gpt-4o-mini" }),
    verbose: false,
  });
 
  const response = await mathAgent.run("How much is 5 + 5? then divide by 2");
  console.log(response.data);
}
 
void main().then(() => {
  console.log("Done");
});
 

To run the code:

npx tsx example.ts

You should expect output something like:

{
  content: 'The sum of 5 + 5 is 10. When you divide 10 by 2, you get 5.',
  role: 'assistant',
  options: {}
}
Done
Edit on GitHub

Last updated on

On this page