# Simple Hierarchical AI Shopping‑List Agent ## What it does This repository contains a minimal example of a **hierarchical LangChain agent** that helps you plan a shopping list. The main agent: 1. Accepts a natural‑language request with a list of products and a city. 2. Calls an internal tool `get_price(product, city)` which itself creates a tiny sub‑agent to generate realistic price tables for the requested product in the specified city. 3. Aggregates the prices and prints a final summary. The example demonstrates: - Connecting to a local LLM via LM Studio (OpenAI‑compatible API). - Using `@tool` to expose a function that internally runs another agent. - Running the main agent with `create_agent` and printing all intermediate tool calls. ## File structure | File | Purpose | |------|---------| | `requirements.txt` | Pinning LangChain, langchain‑openai and dotenv dependencies | | `main.py` | Full implementation of the hierarchical agent and demo usage | | `README.md` | This documentation | ## Installation ```bash python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt ``` Make sure LM Studio is running on `http://localhost:1234/v1` (or set `LM_BASE_URL` and `LM_MODEL`). ## Running the demo ```bash python main.py ``` The script will: - Run the main agent with a hard‑coded prompt. - Print each tool call (`get_price`) and its output. - Show aggregated price tables and total cost. Feel free to modify `user_prompt` in `main.py` or pass input from stdin for interactive use.