From 88efd3438f78cdbd78c2f4eb8e27ac1a5615de54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B8=D1=80=D0=B8=D0=BB=D0=BB=20=D0=9A=D1=83=D1=82?= =?UTF-8?q?=D0=BB=D0=B0=D1=85=D0=BC=D0=B5=D1=82=D0=BE=D0=B2?= Date: Tue, 26 May 2026 14:45:13 +0000 Subject: [PATCH] add README.md --- README.md | 62 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index a4f5eba..eef8bcd 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,43 @@ -# Simple Hierarchical AI Shopping‑List Agent +# Shopping‑List AI Assistant -## What it does -This repository contains a minimal example of a **hierarchical LangChain agent** that helps you plan a shopping list. The main agent: +This repository contains a minimal example of a hierarchical LangChain agent that can estimate prices for products in a city. The top‑level agent uses the ``get_price`` tool, which internally creates a short‑lived sub‑agent to generate a markdown table row with the price. -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. +## Project structure -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 | +- **main.py** – entry point; demonstrates three example calls and prints the full message chain. +- **agent.py** – defines the ``get_price`` tool used by the main agent. +- **requirements.txt** – Python dependencies (no pinned versions, only ``>=``). +- **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 +pip install -r requirements.txt +# Ensure LM Studio is running at http://localhost:1234/v1 or set the env vars below: +export LOCAL_LLM_MODEL=gpt-3.5-turbo +export LOCAL_LLM_BASE_URL=http://localhost:1234/v1 +export LOCAL_LLM_API_KEY=fake +``` + +## Running the examples + ```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. +You should see three blocks of output, each showing the assistant’s messages and the tool calls that were made. + +## How it works + +1. **Sub‑agent** – The ``get_price`` tool creates a lightweight sub‑agent with a focused system prompt to generate a single markdown table row containing product name, price (rub.) and store. +2. **Main agent** – Uses the ``get_price`` tool to estimate prices for each product in the user’s list. +3. **Output** – The assistant prints all intermediate messages (tool calls) followed by the final answer summarizing the shopping list and total cost. + +## Dependencies + +- `langchain-openai>=0.3.0` +- `langgraph>=0.2.0` +- `langchain-core>=0.3.0` +- `python-dotenv>=1.0.0` + +All versions are specified with ``>=`` to avoid pinning to potentially non‑existent releases.