feat: solution for 'Практическое задание №3: Память и подтверждение действий'

This commit is contained in:
2026-06-24 15:27:26 +03:00
parent 3e87be504b
commit f45e780aba
3 changed files with 146 additions and 143 deletions
+54 -25
View File
@@ -1,33 +1,62 @@
# Практическое задание №3: Память и подтверждение действий
# LangGraph Agent with Memory and Tool Confirmation
Главная
Мои задания
Практическое задание №3: Память и подтверждение действий
EN
Практическое задание №3: Память и подтверждение действий
Зачёт
Версия 2
Дедлайн сдачи: 31.08.2026
This project demonstrates a simple conversational agent built with **LangGraph** that:
В работе
- **Remembers** the conversation history across turns using an inmemory checkpoint.
- **Pauses** before invoking any tool, asking the user for confirmation.
- Uses the **Rich** library for pretty console output.
Редактирование ответа
## Prerequisites
Заполните ответ и отправьте работу на проверку преподавателю.
- Python 3.10+
- An OpenAI API key (set as the `OPENAI_API_KEY` environment variable).
Тип ответа
Текст
Ссылка
Файлы
Ссылка (URL)
Прикреплённые файлы
Загрузить файл
Отправить на проверку
Отменить
## Installation
Задание
```bash
# Clone the repository (or copy the files)
git clone https://github.com/yourusername/langgraph-agent.git
cd langgraph-agent
Цель
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
Доработать агента из предыдущих заданий: добавить память разговора и механизм подтверждения каждо
# Install dependencies
pip install -r requirements.txt
```
## Usage
```bash
python src/main.py
```
You will see a prompt:
```
Start chat. Type 'exit' to quit.
You:
```
Type any message. If the agent decides to use a tool (e.g., the `echo` tool), it will pause and ask:
```
Agent wants to call tool: echo({"text":"Hello"})
Разрешить? (Y/n):
```
- Type `Y` or press Enter to allow the tool to run.
- Type `n` to cancel the tool call.
The conversation history is preserved across turns, so the agent can refer back to earlier messages.
## Customizing
- **Tools**: Add more tools by defining functions decorated with `@tool` from `langchain.tools`.
- **Memory**: Replace `MemorySaver()` with a persistent checkpoint (e.g., `RedisSaver`) for longterm storage.
- **Prompt**: Modify the `system_prompt` in `create_agent` to change the agents behavior.
## License
MIT License