TDM 19000: Overview About Single Agent Models

Project Objectives

Motivation: Large Language Models (LLMs) can generate text, but many tasks require them to interact with external systems, and to make decisions based on available information. AI agents extend what LLMs can do by allowing the model to use tools, follow workflows, and complete tasks on behalf of users.

Context: In this project, students will build a single-agent system using LangGraph, LangChain, Ollama, and a customer order dataset. Students will create tools, design agent workflows, connect the agent to a dataset, and implement safeguards to ensure the agent follows set rules.

Scope: AI agents, LangGraph, LangChain, tool calling

Learning Objectives
  • Understand the purpose and workflow of a single-agent system.

  • Build agent workflows using LangGraph and state-based execution.

  • Connect an agent to an external dataset.

  • Set rules for agent behavior to ensure reliability.

Dataset

  • /anvil/projects/tdm/data/orders/Superstore_modified.csv

You can see the first several rows of the data by typing in the terminal:

/anvil/projects/tdm/data/orders/Superstore_modified.csv

or by using a bash magic cell inside Jupyter Lab:

%%bash
/anvil/projects/tdm/data/orders/Superstore_modified.csv

Superstore

This dataset contains a collection of insights into sales, customer behavior, and product performance of a store’s sales. There are 22 columns and nearly 10,000 rows of data. The columns cover many details from each order placed with this store, describing who placed the order, what item was ordered, what country it was from, and more.

Some of the columns from the Superstore dataset we will be working with include:

  • Order ID: representing the origin country, year, and a code unique to the order

  • Customer Name: name connected to the user who placed the order

  • Order Status: current status of the order

The Order Status column starts only containing "Shipped" and "Pending" values. However, thoughout this project, we will modify it by "cancelling" certain orders. Use myDF.value_counts() to check how these values have shifted as you go.

Use 4 cores for this project!

pusheen computer